Unity備忘録29頁目「3Dモデルのアニメーション4」

江上宿六です。

 

色々ありながらもなんとかアニメーションの制御が出来たりしました。

そんな中、新しいアニメーションが出来たので追加をしてみようと思ったので

アセット内のモデルをRefreshなりReimportなりしてみても何も起きませんね。

こういう形での更新はおそらく出来ないようです。

 

だったら古いモデルを消して新しいアニメーションを持つモデルをインポートすれば

良いんじゃないかということで実行、アニメーションを再びリネームしたりして

シーンに配置し、AnimatorControllerとスクリプトをセットして実行してみました。

f:id:y6yegami:20181204105109p:plain

無の構えが出ました。 アニメーションが無いとこんなポーズを取ったりします。

なんとか原因を探ろうとAnimatorControllerを開いてみました。

f:id:y6yegami:20181202180303p:plain

一見何の問題も無いように思われますが、Stateのインスペクターを見てみると

f:id:y6yegami:20181204110014p:plain

Motionの所が無くなっていました。 前のモデルを消したことによってリンクが

外れてしまったという感じですね。 名前がそのままなので気づきにくいですが。

とりあえず新しいモデルのアニメーションをセットしてやることにします。

f:id:y6yegami:20181204111031g:plain

このようにちゃんと動いてくれましたが、アニメーションの追加がある度に

モデルを再追加してアニメーション名を書き換えたり、リグなんかの設定をしたり、

Stateにアニメーションをセットするなんてのは大変なのではないかと思います。

なのでこんな風にしてみる事にしました。

f:id:y6yegami:20181204112201p:plainf:id:y6yegami:20181204112352p:plain

モデル内にあるアニメーションのファイルを選択し、Ctrl+Dで複製します。

するとモデルファイルからアニメーションが飛び出してアセット内に複製されます。

f:id:y6yegami:20181204112556p:plain

それらをフォルダーを作ってまとめておき、今まで同様にAnimatorControllerに

セットして使ったりするわけです。 こうすればアニメーションを追加する為に

現在のモデルを削除せずに済みますし、追加したいアニメーションを持つモデルから

上記のようにアニメーションを複製して設定してやれば良いので手間がだいぶ

削減されると思います。

 f:id:y6yegami:20181205085811p:plain

複製する時の注意で、Blenderでアニメーションを作っていた場合はファイル名が

"アーマチュア|Idle"とかになっていたりしますが、Unityでは基本的に縦棒"|"を

ファイル名に使う事ができないので、複製できずエラーになる事があります。

リネームするなりしてから複製するようにしましょう。

 

自分が不便に思っていた所ですが、これである程度の解決が出来た感じですね。

次回以降もまた不定期、ちょっと制御関係で書きたいことはありますけど。