テラシュールブログ

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

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

【Unity】RootMotionを持たないアニメーションをTimelineで動かす

今回はTimelineで、RootMotionを持たないキャラクターを動かしてみました。 Timelineと移動 Root Motoinで動く前提? Animationで動かす カーブエディタを使いたい 関連 Timelineと移動 Unity 2017より、やっとこさTimeline(カットシーンエディタ)が追加さ…

【Unity】ビルドしたゲームのログをエディタに表示する

Unity 2017から、Consoleが表示するログに接続先が追加されました。 ビルドしたゲームのログを確認する Development Buildで接続が可能に 関連 ビルドしたゲームのログを確認する Consoleには今まではUnityエディターで操作したログしか表示されていませんで…

【Unity】Ctrl + Dで複製したオブジェクトから(1)を無くし、元オブジェクトの下に生成する

昨日のエディタ拡張で調子に乗って作ってみました。 ただ色々確認してる所、Macでは動かないかもしれません。 Ctrl + Dで複製しかし()は無し ファイルの複製(適当) コード 関連 Ctrl + Dで複製しかし()は無し Ctrl + Dでオブジェクトを複製しますが、…

【Unity】シーンの変更を「無かったこと」にする

ちょっとしたTipsです。 シーンの変更を「無かったこと」にする シーンの内容を変更すると、シーン名の右にアスタリスク(*)が表示されます。この状態であれば、シーンの変更を破棄する事が出来ます。 Hierarchyのシーンを右クリック Discard Changesを選…

【Unity】ゲームのビルド直前に "ファイルの退避" や "シーンの最適化" 等の処理を挟む

今回はUnityでゲームをビルドする前にプロジェクトやシーンに何らかの処理を行い、、ビルド完了後に戻す方法についての紹介です。 Unity 5.6以降で動作します。 作る際に便利なものとパフォーマンスに良いもの ビルド前とビルド後に処理を行う(全体) ビル…

【Unity】知っておくと少し便利な Profiler に関する小技集

今回はプロファイラーの小技についてです。 プロファイラー小技集 CPUとGPUの使用時間を確認 表示する項目を増やす・減らす CPUプロファイラの表示項目を隠す CPUプロファイラの表示順を変更する 負荷のあるオブジェクトがドレかを確認する Timelineで表示す…

【Unity】ノードベースでAssetBundleを作成するツール AssetBundleGraphTool が予想以上に高機能

今回はAssetBundleをグラフィカルに生成するAssetBundleGraphToolについて紹介します。 AssetBundleGraphTool 入手 基本は絞込と構築、あと生成 アセットの絞り込み グルーピングで、条件毎にAssetBundleのグループを構築 AssetBundleの設定と生成と AssetBu…

【Unity】コンポーネントのイベント実行順についてのTips

GameObjectにアタッチしたスクリプトの実行順番は、特に何もしなければ割とランダムです。今回はその辺りについて少し整理します。 スクリプトの実行順番 スクリプトの実行順を制御する Script Execution OrderをGUIで設定 メタデータに直接書き込む Default…

【Unity】Statemachinebehaviourの処理の実行順について

Statemachinebehaviourをステートに貼り付けた際、Statemachinebehaviourはどのような順番で呼ばれるのか。 確認してみました。 Statemachinebehaviourを呼ばれる順番 SubStateMachineのStatemachinebehaviour 関連 Statemachinebehaviourを呼ばれる順番 ル…

【Unity】Display 1 No cameras rendering を消す方法

小ネタです。 Display 1 No cameras rendering Cameraが不要なケース Display 1 No cameras renderingを消す方法 関連 Display 1 No cameras rendering 画面のこの表示は、要するにCameraコンポーネントで何も描画してないよという意味です。つまりCameraを…

【Unity】エディタ拡張でstaticなフィールドに置いたインスタンスが、コンパイル/再生時に初期化される問題の対策について

長ったらしいタイトルですが、その通り「エディタ拡張で、staticなフィールドに置いたインスタンスがコンパイル/再生時に初期化される問題の対策について」です。 初期化されるパラメータ 例:シリアライズしないデータがある場合 解決方法 シリアライズ出来…

【Unity】SpriteEditorでSpriteが自動生成したポリゴンを削減したり透過部分に穴を開けたり

今回はUnity 5.6に新しく追加されたSpriteEditorのポリゴン調整機能について。 Spriteとポリゴン SpriteEditorでポリゴンを削減 穴を空ける 関連 その他 Spriteとポリゴン Unityはスプライトを表現する際、QUAD(4頂点の板ポリ)ではなくポリゴンに切り抜い…

【Unity】GameObjectのstatic設定についてのアレコレ

UnityはGameObjectにstaticのフラグを設定する事が出来ます。面倒な場合はeverything(全部)で設定してしまうのですが、これは結構意味がり、場合によってはチェックを外したほうが良い事もあります。 色々なstatic Lightmap Static Reflection Probe Stati…

【Unity】複数のオブジェクトを同時編集する際に便利な、Inspectorビューをサクっと複製してLockするエディタ拡張

さる御方のふとした一言により、試しに作ってみたら思ってた以上に便利だったので、ここにメモします。 Inspectorビューは使われすぎではないかという意見 Inspectorビューを複数表示してLockする Inspectorビューの追加と固定をもっと簡単に 使い方 既知の…

【Unity】スプラッシュスクリーンがPersonal ライセンスでもカスタマイズ可能に

Unity 5.5 b3より、スプラッシュスクリーンのカスタム機能が追加されました。 unity3d.com スプラッシュスクリーンのカスタム ロゴの表示順番や背景も設定可能 プレビューボタンで確認 Personalライセンスでもカスタマイズ可能 Plus / Professional は Unity…

【Unity】Local CacheServerでSwitch platformを高速で行う

Unity 5.5から、LocalにCacheServerを用意する設定が追加されました。これで、あの長かったプラットフォーム切替が、かなり短縮されます。 Unity 5.5で一番素晴らしい機能は「Cache Serverを内蔵してプラットフォーム切替を超早くした」だと思う pic.twitter…

【Unity】知っておくと便利なAnimation Windowの操作(5.5以降対応)

Unity 5.5でAnimation Windowに手が加わりました。 今回はソレも踏まえて、Animation Windowのショートカットキーについて確認してみた事をメモします。 ま、アリじゃないか貴様(上から目線 知っておくと便利なAnimation Windowの操作 知っておくと便利なAn…

【Unity】シーンの一括展開を行うSceneSet

Unity 5.5からシーンの一括展開を行う「エディタ機能の」SceneSetが追加されました。 SceneSet SceneSetの設定 SceneSetの作成 感想 関連 SceneSet SceneSetは、シーンの展開を一括で行うエディタの機能です。 例えば複数のシーンを幾つかの組み合わせで開く…

【Unity】Unity 5.5からオブジェクト選択がアウトライン方式になった

Unity 5.5からオブジェクトの選択方式が「アウトライン」になりました。以前は選択中の情報はワイヤー表現でしたが、アウトラインになったことで複雑なシーンでも選択しやすくなったんじゃないかなと思います。 アウトラインの色を変える アウトラインからワ…

【Unity】Rigidbody2Dがスリープになったかどうか確認する

物理演算はスリープしてCPUを節約する 物理演算は複雑な当たり判定と物理的な動作のシミュレーション(再現)を行います。ただゲームのCPUにも限度という物があるため、物理演算はたいてい接触しない・動かないオブジェクトはスリープ状態へ移行する機能を持…

【Unity】Excel Importer Maker、xlsxに対応

今まで出来なかったxlsxのインポートですが、出来るようになりました。 特に設定するような事は無く、xlsと同じような感じでxls importer makerを開いて貰えばインポーターを作れます。 (ブランチ切って改良してくれた方に感謝) それと、WindowsでExcel開…

【Unity】uGUIのコードを編集して動作を改変する

今回はUnityの標準UIシステムであるuGUIの改造方法についてです。 uGUIのコンポーネントを改造する バックアップ uGUIのプロジェクトを取得 プロジェクトの設定 更新されたか確認する デバッグする 注意事項 関連 uGUIのコンポーネントを改造する uGUIの各コ…

【Unity】複数のAssetBundleから参照されるアセットを見つけ出す

AssetBundleにて「AssetBundle一つにつきPrefabを一つ格納」といった感じで設計している場合、一見Prefabのアセットのみが格納されているように見えますが、実際は「Prefabが参照しているすべてのアセット」が含まれます。 といった内容が以前書いた【Unity…

【Unity】コンパイル時についでにテストも行う設定

ソースコードを書いた際、コンパイラが判断出来ないコードや文法的な間違いがあった場合、コンパイラがエラーとして指摘してくれます。コンパイラエラー以外でも、インスタンスを設定されていないオブジェクトを使用するとか、そういった単純なエラーはコン…

【Unity】CPUプロファイラでパフォーマンスを改善する 前編

ゲームを作っているうちに、何か重い的な事もあるかもしれません。そんな時、プロファイラを使用して重い部分を発見・改善する必要があります。 Unityの標準プロファイラはXcodeのInstrumentsよりも精度で劣りますが、サクっと確認する上では結構使い勝手の…

【Unity】プロジェクト内のScriptableObjectを見つける方法

エディタ拡張でエディタ機能を拡張している際、データを保存したくなる事が多々あります。そこでScriptableObjectが大活躍する(ハズ)なのですが、プロジェクト内の「特定のフォルダに格納」といった扱いは微妙にイケていない気がします。 凄く手っ取り早い…

【Unity】C# Project Generationで標準namespaceを設定したり、アセットを参照してるシーン・プレハブをIDEから検索かけたり。

何時ごろからか、Unityのエディタ設定に追加されていた「C# Project Generation」の機能について紹介します。 この機能は簡単に言えば、MonodevelopやVisual Studioに関連する機能で、生成するスクリプトにNamespaceを付与したり、IDEから識別することが出来…

【Unity】マルチシーン編集する際に知っておきたい、複数のシーンに跨ったライトマップを操作した時の挙動について

今回はマルチシーン編集(Multi Scene Editing - MSE)による複数シーン編集とライトマップについてです。 Unity 5.3より複数のシーンを同時に編集可能になりました。これにより広大なシーンを複数のシーンに分割し段階的に構築する事や、屋根や壁といった編…

【Unity】AnimationClipのMissingなパスを見つけて解決しやすくするエディタ拡張

昨日の応用で、アニメーションするオブジェクトでmissingになっているパスを発見し置換するエディタ拡張を作ってみました。 missingなAnimationClip missingなアニメーションを見つける missingなパスを置換する 導入とソースコード 使い方 感想 関連 missin…

【Unity】AnimationClipからTransformを操作するのアニメーションカーブを一括で消すエディタ拡張

アニメーションクリップからTransformのアニメーションを一括で消すエディタ拡張についてです。Animationを使用する目的のある程度はTransformの更新だと思うので必要かどうかは微妙な所ですが、一応。 TransformをAnimationClipから消すエディタ拡張 Transf…

【Unity】5.3に追加されたマルチ・シーン・エディティングで出来る事

今回はマルチシーンエディティングについてです。 マルチシーンエディティング ステージやギミック毎にシーンを分割して同時編集 ステージを複数のシーンに分割して編集・平行構築 シーン毎にUIを作成して加算読込とか管理 本番シーンに機能を移植 マルチシ…

【Unity】マテリアルのInspector表示を拡張するエディタ拡張

Materialの、正確にはShaderのInspectorを拡張するエディタ拡張についてです。下のように、マテリアルの設定について情報を追加したり、入力内容を整理したりすることが可能になります。 MaterialのInspectorを変更するテスト pic.twitter.com/sppjoZ3tjx — …

【Unity】UnityEditorからテキストファイルを作る

Unityでゲームを作ってるとき、ふとしたメモをプロジェクト内に残したい時(ReadMeを作りたい時)等があったりします。そんな時に取れる方法としては、秀丸を立ち上げて保存してUnityプロジェクト内にドラッグ&ドロップする訳ですが、別アプローチとしてUni…

【Unity】Unityでマルチディスプレイする方法

Unity 5.3でマルチディスプレイに対応したので、マルチディスプレイする方法について紹介します。 マルチディスプレイのための準備 マルチディスプレイを設定する カメラを複数台設定する マルチディスプレイを有効化する マルチディスプレイにおけるマウス…

【Unity】Inspectorに数式を書く

数式の入力 変数は無い 数式を使える入力項目 文字列の結合は 数式の入力 Unityの何時だったか、Inspectorで式を書くと答が入力出来るようになりました。数値を入力する項目であれば、式を記述すれば回答が入力されます。 当然、括弧の演算も使用することが…

【Unity】Unity4で書いたコードをUnity5向けに変換する「Script Updater」

Unity 4とUnity 5はAPIが幾つか異なる Script UpdaterによるUnity 5対応 アセットのインポート以外でもお目にかかるケース Script Updateに頼らない No Thanksした後でScriptUpdaterを起動したい Assembly UpdaterでDLLをUnity5向けに変換 Script Updaterの…

【Unity】オブジェクトからオブジェクトへコンポーネントを移動する

UnityのInspectorからComponentがD&Dで別のGameObjectにコピーできるようになってる、すげー便利! #unitytips — 癸シキ (@saishiki) 2015, 10月 27 という機能があったそうで、実際試した処… おぉ、これは気づかなかった。コンポーネントを別のオブジェクト…

【Unity】タグやレイヤー表示を階層構造にする

先日の#UnityTipsで「タグやレイヤーの表示を階層構造にする」といった面白いTipsが紹介されていました。 It's #unitytips Tuesday: Create submenus in the tags & layers dropdown by using a slash in the name! @unity3d pic.twitter.com/wBYT3bxYOC — B…

【Unity】シーンの「追加読込」と、追加読込したシーンの「破棄」

Unity 5.2よりLoadLevelAdtiveでロードしたシーンのアンロード(破棄)が可能になりました。 今までは「LoadLevelAditiveやResourcesからオブジェクトを取得」し、「SceneManagerに親オブジェクトを登録」「不 要になったら親オブジェクトごと消す」のような…

【Unity】コンポーネントの順番を並び替える「Reorder My Components」

「Reorder My Components」はオブジェクトにアタッチされているコンポーネントの順番を簡単に書き換えられるエディタ拡張です。 Reorder My Components このエディタ拡張は正確には「選択中のオブジェクトにアタッチされているコンポーネントの順番を、ドラ…

【Unity】エディタ拡張で作成したカスタムウィンドウがエラーで操作出来なくなった時の対処法

例えばエラー等を起こしてカスタムウィンドウが動かせなくなる事があります。こうなると、右上の「x」ボタンとか効きません。 対策 右上のLayoutよりDefaultとか選択すれば直ります。少なくともウィンドウは消えます。

【Unity】ゲーム起動直後に1度だけ処理を行う

ゲーム起動時に1度だけ処理を行います。 サンプル 今回は解像度を半分にする処理に使用します。これはStartやAwakeでやった場合、そのコンポーネントを持つオブジェクトが呼ばれるたびに解像度が半分になる…といった挙動になるためです。なので1回しか起動し…

【Unity】ScriptableSingletonでエディタウィンドウ間の情報共有

目次 目次 エディタは値を忘れる ScriptableSingletonを使う 感想 エディタは値を忘れる Unityエディタは実は物忘れが激しいです。 何が言いたいかと言えば、エディタウィンドウ等で使用されているstaticな変数を「ゲームの再生時やコンパイル時に忘れる」と…

【Unity】シーン再生中にオブジェクトを調整し、シーン再生終了時も調整内容を保持する

今日のセミナーでチラっと話した「Unityでシーン再生中にオブジェクトを調整し、シーン終了時も調整内容を保持する方法」について書きます。 Unityでシーン再生中にオブジェクトを調整し、シーン再生終了時も調整内容を保持する pic.twitter.com/MAlYSR1jib …

【Unity】オブジェクトの大きさを一括で変更する

オブジェクトのサイズを一括で変更します。 これは「ゲームのサイズを適正なサイズに設定する」事に特に効果があります。 Unityのボックスの1は1mとして扱われています。このため、物理演算を2dチックなゲームに組み込むと動きが「ふわっと」や「モッサリ」…

【Unity】Unityの内部APIを確認する方法、呼び出す方法

Unityを触っている上で、この機能はどのように実装されているのかや、公開されていないAPIを呼び出したい事があります。 その辺りの話です。 Unityの中のAPIを確認する アセンブリブラウザでUnityエディタの中のコードを確認します。 MonodevelopでSolution…

【Unity】UIだけ表示するScene Viewを作った

UIだけ表示するシーンビューを試しに作ってみました。右上の画面がUIのみを表示するシーンビュー、左上がUIを表示しないシーンビューです。 UnityでUIのみシーンビューとUI以外シーンビューとゲームビュー pic.twitter.com/wByCx29Po3 — 椿 (@tsubaki_t1) 20…

【Unity】指定のプレハブやテクスチャが、どのシーンのどのオブジェクトで使用されているのかを見つける

プロジェクト内で使用しているテクスチャやメッシュが何処で使われているのかを追跡する方法です。 目次 目次 どのシーンで使用されているかを探す どのオブジェクトがアセットを使用しているかを探す ref検索を一発で行う どのコンポーネントがアセットを使…

【Unity】Unityエディタのライセンス認証-アクティベーションをCUIで行う

UnityエディタのアクティベーションおよびアクティベーションをCUPで自動化する方法について紹介しようと思います。 ライセンス認証のコマンド 以下のコマンドでUnityエディタのアクティベーションを行えます。管理者権限コマンドプロンプトである必要はあり…

【Unity】unitypackageでインポートするファイルのサムネイルを見る

そこをクリックする事が無かったので気づかなかったのですが、実はImpotPackageを行う際にファイルをクリックすると、サムネイルが表示される機能があったみたいです。 この機能ではTextureやMaterial、Meshといったサムネイルを持つオブジェクトを表示する…