テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

2D

【Unity】コライダーに特定の機能を追加するEffectorで少し遊んでみる

Unity 5で新しく追加された2D向けEffectorで色々と遊んでみました。 Effector Surface Effector 2D Point Effector 2D Area Effector 2D Buoyancy Effector 2D Platform Effector2d Effector Effectorは2Dと付くColliderに対してエフェクトを追加する機能で…

【Unity】Rigidbody2DとJointで、物理パズルみたいなやつ

何となく以前に作ったロケットをRigidbody2Dでリメイクしました。素材やアセット・スクリプトは使用せず、全てアリものだけで作っています。 以前はRigidbody2DのJointにBreakable設定やConstant Force2Dが無かったのでRigidbody2Dでは作れませんでしたが、…

【Unity】ステンシルバッファを使った2D面白表現を色々と試す

ステンシルバッファをUnityで利用した表現で、面白かった2D的な表現について書いてみようと思います。 ステンシルバッファとは? ステンシルバッファで色々と試す 壁の向こうにいるキャラクターのシルエットを表現 2Dマスク ImageEffectがかからないスプラ…

【Unity】二つのカメラをクロスフェードで切り替える

二つのカメラをクロスフェードして切り替えます。 概要 カメラのフェード実装方法 フェード実装時の注意点 絵が上下反転する ScreenOverlayで代用 uGUIとの連携 参考 概要 やり方はなんてことは無い、ImageEffectとRenderTextureの合わせ技です。もう一つの…

【Unity】AssetBundleからMultiple Spriteに含まれるスプライトを取得する方法とその周辺

今回はAssetBundleの中に格納したMultiple Spriteから特定のスプライトを取得する方法と、その挙動についてです。 Multiple Spriteの取得方法について AssetBundle.LoadAllAssetsでは駄目 AssetBundle.LoadAssetWithSubAssets 不要なスプライトの破棄 特定の…

【Unity】uGUIドロップダウンメニュー(コンボボックス)の使い方

ドロップダウンについてです。 ドロップダウン(或いはコンボボックス)とは、よくある「ボタンを押したら選択肢が出てきて、その中から選択する」的なアレです。 目次 目次 とりあえずの使い方 カスタマイズ 要素を増やす UIの表示を変える 関連 とりあえず…

【Unity】パフォーマンスが良いらしいUIのマスク、RectMask2Dについて

Maskと異なり四角形でしか切り抜けませんが、Maskよりかなり高速に動作するRectMask2Dが何時ごろか追加されました。 このRectMask2DはRectTransformの範囲で切り抜きを行うためMaskで必要だった「画像」を必要としませんが、その代わり高速で動作するみたい…

【Unity】Unityでトランジションを使用した綺麗な場面転換(uGUI対応版)

以前に紹介した「場面転換」をよりスムーズな感じで行う処理ですが、uGUIに対応させるついでにUI単位で削除出来るようにしました。 UnityでuGUIのトランジション。パターンはマスク画像(白黒画像)を使用。トランジションするUIの下にあるUIも一緒に消える …

【Unity】uGUIのテキストがボケる問題の対策について

Unityの新しいUIシステム、通称uGUIでフォントがボケる問題についてです。 以前に UnityのuGUIのテキスト表示機能について解説してみる で解説していますが、もう少し詳しく紹介します。 目次 目次 uGUIでフォントがボケる問題の対策 ScreenSpaceの場合 Worl…

【Unity】uGUIのシェーダーを改造してシェーダーを練習…のススメ

目次 目次 シェーダーの用意 シェーダーのカスタマイズの準備 シェーダーの改造(色を変える) パラメータをシェーダーの外から設定する その他 関連 シェーダーの用意 まずはuGUI用のシェーダーを用意します。 UnityのビルトインシェーダーはUnityのダウン…

【Unity】各要素の高さが変動するスクロールビューを使ってチャットっぽい何かを作る

「高さの要素が異なる&テキストにある程度のマージンがあるリストビュー」を作る方法について紹介します。 リストビューを作る方法については、下の記事参照。 tsubakit1.hateblo.jp 作り方 こんな感じのスクロールビューを作ります。 各要素の高さに合わせ…

【Unity】2Dカメラを制御する奴を試作した日記

なんか面白くなって色々やってたら無駄に時間かかってしまったので、コードとコードの解説についてはモチベーションが上がった時に。 スタート地点はこんな感じです。プレイヤーの子オブジェクトとしてカメラがくっ付いている、Unityでは良くあるパターンで…

ゲーム開発37時間を約15分に収めた2Dドット絵ゲーのメイキングムービーが公開

アベンジャーズがヴィラン(多分)と戦う、2Dドットライクなベルトスクロールアクションのメイキングムービーが公開されていました。 作成するゲーム内容は下のような内容です。キャプテンアメリカによって、特に理由のない暴力がヴィランを襲います。 www.…

一方通行のコライダーを設定する、Platform Effector 2D #Unity

Platform Effector 2Dは、一方通行の当たり判定が設定できるコライダーのエフェクターです。 例えばマリオやロックマンでよくある、下からの通過は可能だが上から降りた時は止まる、一方からの攻撃は通すが反対からの攻撃は通さない等の挙動が、LayerやTrigg…

【Unity】とりあえずメニューを作るサンプルにはなる、Game Jam Menu Template

店主!とりあえずメニューくれ! みたいな事はやったことが無いのですが(居酒屋とか怖すぎる)、とりあえずメニューが欲しくなる事があります。具体的にはゲームジャムとか。 それを作る手間は正直それ程では無いのですが、あると何かと参考になるかなーと…

Unity5 MecanimのStateMachineBehaviourと戯れる

Unity5で唯でさえややこしいMecanim(アニメーション管理システム)に新しくStateMachineBehaviourが追加されました。 この機能はMecanimのステート管理機能の各ステートに振る舞いを設定できる機能です。各ステート毎に振るまいを設定することで、コンポー…

Unityで2DスケルタルアニメーションするUni2Dの使い方について

Uni2Dの使い方について、以前書いた記事が古かったので新しくします。他にも興味のあるアセットがあれば、教えてくれると嬉しいです。 http://u3d.as/content/bento-studio/uni2d/37H スプライト(2D絵)をシーンに配置する メニューバー > Uni2D > Sprite E…

UnityのuGUIでボタンと一緒に後ろのオブジェクトが押されないようにする

UnityのuGUIのボタンを押した際、背面にあるオブジェクトも一緒に押されるケースの対策について紹介します。 これを回避するには、EventSystems.EventSystem.IsPointerOverGameObjectでボタンを選択中か判定し、選択中なら押さない事にする…といった形で修正…

シーンビューのオブジェクトをタップしても選択できない

最近シーンビューのオブジェクトを選択しようとした際、何故か上手く選択できないケースが発生しました。 これはどうやらCanvasを選択してしまっている為に発生していました。Hierarchyビューをよく見ると、ボールを選択したつもりがCanvasがアクティブにな…

Unityの2DやuGUIのパフォーマンス最適化についての7つのTips

最適化というか、改善する話です。 モバイル向けに作った時に妙に遅かった場合、この辺りの要因が絡んでいるケースが多い印象です。この辺りは作る際に確認しながら作ると、後々痛みが少なくて良いかなと思います。 目次 目次 プロファイラで確認する エディ…

UnityのuGUIとImageとSpriteとスライスについて

uGUIのスライスは覚えておくと便利な機能です。 今回はコレを作ろうと思いましたが、スライス部分が予想以上に色々と出来たので分割します。コレの作り方は次回。 目次 目次 スライスする方法 大きさを調整する 真ん中を塗りつぶさないでフィルレートを節約…

UnityのuGUIでコンボボックス(或いはドロップダウンリスト)を作る

UnityのuGUIには現状コンボボックスが無いです。それは作ろうと思えば作れますが、正直面倒なのでコミュニティのナレッジより拝借します。 A working, stylable combo box (drop down list) | Unity Community A working, stylable combo box (drop down lis…

UnityのuGUIでアナウンス的な表現を作ってみる

以前にもチラっと紹介しましたが、改めてuGUIでのアナウンス表示の作成について紹介しておきます。 内容はこんな感じです。 逆引き、UnityのuGUIのレイアウトトレーニング(uGUI RectTransform入門その2) - テラシュールブログ 逆引き、UnityのuGUIのレイ…

UnityのuGUIで複数のスクロールビューを切り替える演出の作り方

FacebookのUnity助け合い所で質問があったので、ちょっと書いておきます。(件の問題は解決済み) とりあえず、こんな感じのを作ります。今回はボタンで制御しますが、画面端からのスワイプやスクロールバー自体のスワイプといったギミックで差替えても良い…

UnityのuGUIで「UIのアニメーション制御」

目次 目次 UnityのuGUIで「UIのアニメーション制御」 uGUIでアニメーション アニメーションの作成手順 画面の準備 AnimatorとAnimationClip作成 キーフレームの登録 AnimationControllerの設定 AnimationControllerをスクリプトで制御する 感想 ライセンス …

Unity ローグライクなゲームのチュートリアルが公開された

Unityのチュートリアルでローグライクのゲームが公開されたみたいです。 内容は英語ですが、Google翻訳の字幕しながら見れば大体わかるような内容です。日本語字幕の表示は本家の動画チュートリアル Learn に書いてます。 ゲーム内容はターン制のローグライ…

UnityのuGUIで階層構造を持ったスクロールビューを作る

目次 目次 階層構造を持ったスクロールビュー ソースコード 使い方 感想 階層構造を持ったスクロールビュー 今回はスクロールビュー(横)の中にスクロールビュー(縦)があるような構造のスクロールビューを作成します。 uGUIは子がScrollRectを持っている…

Unity uGUIでスライダーについて解説してみる

uGUIのスライダーについて解説します。 目次 目次 スライダーの作り方 スライダーの範囲調整 画像の調整 挙動の調整 スライダーの作り方 スライダーを作るにはCreate>UI>Sliderを選択します。 スライダーの範囲調整 スライダーは合計6個のオブジェクトで構成…

逆引き、UnityのuGUIのレイアウトトレーニング(uGUI RectTransform入門その2)

RectTransformの座標指定についてです。 内容は以前に書いた入門の焼き直し+αです。理屈については大体書いてるので、そっちを参考にしてくれると助かります。 UnityのuGUIのレイアウト調整機能について解説してみる(RectTransform入門) - テラシュールブ…

UnityのGameObjectを非アクティブにするとAnimatorがリセットされる挙動、その対処法

マニュアルに書いてあったか記憶が微妙なのですが、UnityのAnimatorはGameObjectが非アクティブになるとリセットされます。 ここで言うリセットとはアニメーションが最初に戻るだけ等の生易しい物ではなく、パラメータの持つ値やトリガー状況、アニメーショ…

UnityのCollider2DやColliderに対してクリックやドラッグのイベントを使う

Unity4.6よりUnityにはEventSystemが追加されました。これは例えばドラッグやクリックといった基本的な挙動を登録することが出来ます。 例えばダブルクリックを検知するコード。 // ダブルクリックを検知する これをColliderがアタッチされているオブジェク…

UnityのuGUIのクリック範囲を広げたり制限したりする方法

Unityのボタンは画像の範囲でクリック判定を行います。 この範囲は基本的にGraphicクラスが表示されている範囲に適応されます。要するに「画像が表現されている範囲(の四角)」に適応されます。 この当たり判定の範囲を絞るには、ICanvasRaycastFilterを使…

Unityで画面の指定位置にモデルを移動させる

先日ゲームジャムでメンバーの一人が「3Dモデルを特定の位置に移動」させる事に四苦八苦していたので、作った。スクリプトを。 このスクリプトは指定したスクリーン座標へモデルを移動させる為の物です。スクリーン座標的に(x:45, y:0)の位置へモデルを移…

UnityのuGUIで無限にスクロール出来るスクロールビューを作る

使い方 アイテムの内容調整 制限付きスクロールビューのやり方 以前UnityのuGUIでスクロールビューを作る方法を紹介しました。 UnityのuGUIでスクロールビューを作る - テラシュールブログ UnityのuGUIでスクロールビューを作る - テラシュールブログ 今度は…

Unity 2DのPolygonColliderの超点数を減らす

Unity 2DのPolygon Colliderを使うことでSpriteが使用するテクスチャの形状にそって当たり判定を設定する事ができます。 このPolygonCillderはソコソコ綺麗に当たり判定を設定してくれるのですが、少しやり過ぎる感があります。例えば上のGIFアニメで使って…

Unityでカラーパレットを使う

UIやゲームを構築する際、色調は非常に重要です。この色調ですが、毎回毎回パレットを感覚で調整するのも中々に大変なので(とうか無理なので)、カラーパレットとして利用する色のパターンを登録してしまう方法を紹介します。 まず調整用の色調ですがカラー…

UnityのSpriteとパーティクルとかモデルの描画順番について

Unityのスプライトの描画順は「SortingLayer、Order In Layer、Z値」の順番で設定します。 このSortingLayerですが、実はLineRendererやParticleRenderer、Trail RendererといったSpriteRenderer以外にも適応されます。正しくは透明やブレンドを利用するレン…

フォントに含まれない文字を使うときの動作

UnityはテキストのフォントとしてArialやその他ttfフォーマットのフォントを使用して文字を表現します。しかし、この手のフォントには全てのフォントは含まれていません。 そんなときの挙動として、Unityはフォールバックしてデバイスに含まれるフォント(所…

UnityのuGUIのテキスト表示機能について解説してみる

UnityのuGUIでテキスト表示の扱いについて解説します。 目次 目次 Textの機能 文字のエフェクト 自動改行と禁則処理 フォントサイズと描画範囲 フォントがぼやける問題(uGUIの場合) Textの機能 TextはuGUIでテキストを表示する機能です。 作成するには、以…

Unity 2DやUIで、「テクスチャにRGBA16指定した時に透ける」問題を回避する方法について

問題 どうも「テクスチャのフォーマットがRGBA16」の「透過色を持つ画像」を使用している場合、テクスチャの色に少し透明が追加され、後ろにあるテクスチャの描画結果が薄く前面に表示されてしまうバグがあるみたいです。 Unity Issue Tracker - Using Direc…

Unityの新GUI、UGUIのイベント制御について

Unityの新GUIシステム、(通称)UGUIのイベント制御について紹介します。 エディタのGUI上での設定 ソースコードでの操作 エディタ操作をスクリプトで設定 参考 関連 エディタのGUI上での設定 UGUIのボタンのコールバックは、AnimationEventのようにオブジェ…

UnityのuGUIのレイアウト調整機能について解説してみる(RectTransform入門)

uGUIのレイアウトシステムの調整機能…の基礎であるRectTransformの調整についてについて解説します。今回はGUIで触れる範囲。 目次 目次 Pivot(中心点)の設定 Pivotを動かす Pivotの挙動 Anchorの設定 アンカーとUIのサイズ 画面サイズ(親サイズ)とアン…

UnityのuGUIでスクロールビューを作る

Unity4.6で追加したuGUIでスクロールバーを作る方法について紹介します。 大体こんな感じのスクロールバーを作ります。 作り方 まず、リストに表示するノードのプレハブを用意していきます。 適当な横長のImageを用意します。名前はNodeとします。 左の方に…

Resourcesフォルダからパック済みSpriteを取得する際、文字列検索ではなくenumで呼び出したい

Resourcesからスプライトを取得する際、普通はいかのように入手する必要があります。これは、単純にパック済みスプライトの一つを抜き出すことが出来ないためです*1。取り方は以下のとおり。 // [Unity] Resourcesに配置したパック済みのSpriteを取得する Re…

uGUIのアスペクト比を固定する(修正版)

以前uGUIのアスペクト比固定方法について記載しましたが、バージョンアップに伴い方法が変更されていたので新しい方法を書いておきます。 アスペクト比の固定 アスペクト比の固定は所謂レターボックスと呼ばれる手法を使用します。また、厳密にはアスペクト…

uGUIでノベルゲームのようなものを作る、その2 コマンドによる挙動の管理

uGUIでノベルゲームのようなものを作る…の続きです。 今日はコマンド周りをやります。 uGUIでノベルゲームのようなものを作る。その1 - テラシュールブログ uGUIでノベルゲームのようなものを作る。その1 - テラシュールブログ シナリオをテキストファイル…

uGUIでノベルゲームのようなものを作る、その1 UIの表現と文字表現

uGUIを使ってノベルゲームというか会話シーンを作る方法を紹介していきます。 実際は「宴」とか「ジョーカースクリプト」とか使うお勧めです。 というか、この記事は「手軽にノベルゲームとかRPG作るとか言うけど、その手のシステムをスクラッチするのは簡単…

Unityで2Dのボリュームライト表現

ボリュームライトとは、コンサートや車のヘッドライトで見える光の軌跡です。 Unityでボリュームライト表現やレンズの汚れ表現 - テラシュールブログ Unityでボリュームライト表現やレンズの汚れ表現 - テラシュールブログ 以前、これをやるために頑張って2…

Animatorがリセットされるケース

Animatorはノードベースの状態遷移をスクリプトを使わず制御出来るため便利な機能ですが、いくつかの条件でリセットしてしまうみたいです。 Animatorを持つGameObject自体をDeactiveにする runtimeAnimatorControllerを更新する AnimatorのEnable/Disableで…

横スクロール2Dアクションゲームを作るのに便利そうなPlatformerCharacter2Dの使い方

今回は、2DキャラクターをコントロールするPlatformerCharacter2Dの使い方について紹介します。 このコントローラーでは、キャラクターは左右への移動・ジャンプ・伏せ前後といった挙動をサポートしています。もちろんコードを改造して2段ジャンプといったギ…