テラシュールブログ

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

エディタ拡張・エディタ機能

【Unity】キーボードでメニューの操作やオブジェクト検索を行うクィックランチャー Haste

Hasteは、キーボードでメニューバーのコマンドを実行したりオブジェクトが検索出来たりするクィックランチャーです。 我々の友人は“まるで Spotlight や Alfred のようだ”と喜んでくれました。 …確かに! https://www.assetstore.unity3d.com/jp/#!/content/…

【Unity】Inspectorビューのプレビューを分離する

Inspectorビューの下には、選択中のオブジェクトの簡易的なプレビューが表示されます。例えばモデルであればモデルのプレビュー、テクスチャであればテクスチャの、アニメーションであればアニメーションのプレビューが表示されます。 このプレビューですが…

【Unity】FBXに格納されたAnimationClipを取り出し編集可能にする

FBXに格納されているAnimationClipはReadonlyである関係上、アニメーションを調整する事が非常に面倒になっています。 そこで、FBXからAnimationClipを取り出してイベントを設定・アニメーションイベントを調整する方法を紹介します。 AnimationClipを取り出…

エディター操作で登録するのが面倒なボタンのクリックイベントを、スクリプトで登録する

Unityのボタン等のイベントをシーン内に登録/保持するには、UnityEditor.EventsのUnityEventToolsを使用します。 エディタ上でメソッドを登録するメリットは3つです。 実行時にイベントの登録処理を必要としない EventListenerの引数とマッチしないメソッド…

Unity5 MecanimのStateMachineBehaviourと戯れる

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

コンポーネント追加時にパラメータも設定する

コンポーネントを設定したタイミングで「シーン内の」オブジェクトに対する参照や、パラメータを設定したくなるケースが有ります。 そんな時はResetに初期化処理を書いておくと、コンポーネントを設定したタイミングで呼ばれます。 Unity - スクリプティング…

UnityのOcclusion Cullingの機能を使って3D空間を効率的に描画する

Occlusion Culling OccluderとOccludee Smallest OccluderとSmallest Hole Occlusion AreaとOcclusion Portal Occlusion Cullingがあんまり効かないケース 参考 Occlusion Culling Occlusion Cullingとはオブジェクトが遮蔽物に隠れていた場合にオブジェクト…

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

新しい対処法はこちら tsubakit1.hateblo.jp --- マニュアルに書いてあったか記憶が微妙なのですが、UnityのAnimatorはGameObjectが非アクティブになるとリセットされます。 ここで言うリセットとはアニメーションが最初に戻るだけ等の生易しい物ではなく、…

UnityのAnimatorControllerにAnimationClipを内蔵する

ことUIにAnimatorを使う場合、ほとんど使いまわす事ができずプレハブもしくはシーンに従う形でAnimationControllerが 作られ、AnimationControllerが参照するAnimationClipは参照という形を取りながら完全に専用アニメーションとして扱われ ます。 そのためA…

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

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

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

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

Unityのシーンカメラの距離に応じてGizmoをOFFにする

Gizmoはカメラの位置に関係なく描画されます。そのため、Gizmoの量や場合によっては非常に凄まじいことになります。 例えばHandleでラベルを表現している場合、フォントのサイズ一定で常に表示されるため、少しカメラを離すとゴチャゴチャとなります。 これ…

Unityのシーンビュー上にあるGizmoを非表示にする

Unityはシーン上にGizmoといった形でオブジェクトの情報を表示する事が出来ます。Gizmoを使うことでオブジェクトの影響範囲や移動ルート、その他諸々がシーン上でビジュアル的に確認出来るため、ゲームの進行や状態の確認に非常に有用です。 GizmoはOnDrawGi…

UnityのAttribute(属性)についてまとめてメモる。

Unityの属性について紹介します。 目次 目次 属性(Attribute)とは 属性の表記ルール Unity標準の属性 Inspectorを拡張する属性 SerializeField TooltipAttribute SpaceAttribute HeaderAttribute MultilineAttribute TextAreaAttribute HideInInspector NonS…

Unityゲーム起動時の解像度設定ダイアログをスキップする

Standalone向けUnity製ゲームが起動した際に表示される解像度設定ダイアログをスキップする方法について紹介します。 ディスプレイ解像度指定のスキップ 解像度指定をスキップするには、以下の設定を行います。 PlayerSettings(Edit>ProjectSettings>Player…

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

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

UnityのHierarchyウィンドウの表示順番をアルファベット順にする

Unity 4.5からHierarchyウィンドウの表示順番が「Transform」順になりました。これは、uGUIの表示順番と合わせるための物ですが、uGUIを操作していない時は正直いらん子です。 なので、Hierarchyウィンドウをアルファベット順にソートするように設定します。…

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

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

Unityエディタのオリジナルレイアウトを保存する

Unityエディタはフローティングウィンドウを採用しているため、自由にレイアウトを変更することができます。レイアウトはエディタ右上のトグルより選択することができます。例えば2 by 3やTall、あと4split等。 ウィンドウは基本的にタブをドラッグ&ドロッ…

UnityのAnimationClipをレガシーアニメーションに設定する

Unity 5でレガシーアニメーションが作りにくくなるので、レガシーアニメーションを簡単に設定する拡張を作りました。 Change Animation Type/Animationを設定すればレガシーアニメーションになります。 // // 選択中のアニメーションをレガシーアニメーショ…

Unityのシーン内で特定のコードを持つコンポーネントを見つける機能を作った

最近ブログの更新に使っていた2〜4時間を全部、Unityのシーン内の構造を解析するアセットの作成に使用してるtsubakiさんです。 シーン内部の構造を解析するアセットですが、機能自体はだいたい完成しましたが、コードの整理にもう少し時間がかかりそうなので…

コンポーネントのアイコンを変更し、Inspectorビューで見た時に役割を把握しやすくする [Unity]

今日はコンポーネントのアイコンを変更する方法を紹介します。 コンポーネントの役割毎にアイコンが設定されていると、一覧で眺めた時に何の機能か認識しやすくなります。 反面、C#やJS等と表示されないため「コレが何かわからない」が発生する可能性があり…

実はAnimatorは親の階層でも行ける

意外と知られていないことですが、Unityのアニメーション管理システムのAnimatorは、モデルの上の階層に配置しても使うことが出来ます。 大抵はAniamtorはモデルのRootに配置されています。 例えばユニティちゃんCRSをインポートし、親オブジェクトにAnimato…

Unityエディタ上で作成したMeshをOBJファイルとして出力する

以前紹介したメッシュの結合ですが、OBJを吐き出せるようにしてみました。 ここからパッケージをダウンロード出来ます。 Unityのシーン上に配置したモデルを結合する - テラシュールブログ Unityのシーン上に配置したモデルを結合する - テラシュールブログ …

複数のシーンを同時に編集出来るAdvancedAdditiveScenesが凄すぎる

Unityは将来的にマルチシーンエディティング(複数のシーンを同時に編集)の機能を持つことになりますが、これは同じくらい凄い機能です。 AdvancedAdditiveScenes Fast Platform Switchと同じくらい、本当に凄いアセットです。 プラットフォーム切替を15倍…

Unityエディタのクラッシュ時に失われたシーン情報を復旧させる裏ワザ

Unity5.3以降の場合はこちら tsubakit1.hateblo.jp 5.3以前の場合は以下の記事をどうぞ(5.3以降でも理屈は同様です。理屈を知りたい場合はどうぞ) 例えばUnityエディタで無限ループを行う処理を書いている場合、Unityはクラッシュします。その際、シーンを…

Sample Assetsのプロトタイプアセットを並べて簡単なステージを作ってみよう[Unity]

Sample Assetsを使用してサンプルステージを構築する方法を紹介します。多くのゲームではありもの(秋葉原の町)や、地面だけ・壁と地面だけといった構造で作られているケースが多いです。もしくはTerrain。 今日はある程度プリミティブなモデルを適当に並べ…

MacでUnityエディタの特定のタブを独立したまま最前面に表示するには

MacのUnityEditorは、特定のタブ(例えばGameView)を独立したタブのまま表示する事ができません。 正しくは、独立したタブとして表示出来ますが、他のウィンドウにフォーカスを当てるとバックグラウンドへ移行してしまうため、扱いが若干面倒です。 もし常…

Unityのパーティクルエディタ

Unity4のパーティクルエンジンとして、3.5辺りから搭載されているShurikenがあります。 これは基本的にInspectorを使用して各エミッター毎に調整する形となりますが、一覧表示出来る専用エディタが用意されています。 このパーティクルエディタウィンドウで…

uGUI の 使い方(β) 〜Canvas周り〜

※この記事の内容は古い(ベータ版のみ有効)です。 新しい方法 uGUIのアスペクト比を固定する(修正版) - テラシュールブログ uGUIのアスペクト比を固定する(修正版) - テラシュールブログ uGUIの使い方について紹介します。*1 今回はキャンバス周りにつ…