gologiusの巣

プログラミングなどの技術メモです。誰かの役に立てるとうれしいです。

【Unity エディタ拡張】 AnimatorControllerが持つState名のついたAnimationClipファイルを一括作成する

経緯

OverrideControllerを使いたいのですが、AnimationClip名を指定というクソ仕様でした。

なのでState名がついた空のAnimationClipを自動生成し、それをセットします

何がうれしいの?

OverrideControllerの仕様上、下図のOriginalの名前が、Clip名になります。 State名が変わったり、増えたりすると、いちいち設定しないといけません。 また、Clip名とState名が一意に対応している、という保証もありません。

f:id:gologius:20171104130412p:plain

というかなぜStateで指定させてくれないの・・・???

コード

gist31d0b33762a1b5d88b9b8bb9eedd6dc9

printCustomLabel()は、前の記事で作成したものですね。直接今回の処理とか関係ありません。

また、複数レイヤーには対応してません(//todo のところ)

使い方

  1. Assets/Editor内にCustomAnimatorWindow.csを作成(フォルダがなければ新しく作成する)。
  2. 上のコードをコピペ
  3. 下のようにWindow->CustomAnimatorWindowをクリック

f:id:gologius:20171104093618p:plain

以下のような画面が出るので、適当に設定してボタンをおせばいいです。

f:id:gologius:20171104125811p:plain

その他

結局、ウインドウ開いてボタンを押す作業は発生しますが、手作業でファイル名を設定したりするよりも、はるかに安全かつ楽だと思います。