江上宿六です。
色々ありながらもなんとかアニメーションの制御が出来たりしました。
そんな中、新しいアニメーションが出来たので追加をしてみようと思ったので
アセット内のモデルをRefreshなりReimportなりしてみても何も起きませんね。
こういう形での更新はおそらく出来ないようです。
だったら古いモデルを消して新しいアニメーションを持つモデルをインポートすれば
良いんじゃないかということで実行、アニメーションを再びリネームしたりして
シーンに配置し、AnimatorControllerとスクリプトをセットして実行してみました。
無の構えが出ました。 アニメーションが無いとこんなポーズを取ったりします。
なんとか原因を探ろうとAnimatorControllerを開いてみました。
一見何の問題も無いように思われますが、Stateのインスペクターを見てみると
Motionの所が無くなっていました。 前のモデルを消したことによってリンクが
外れてしまったという感じですね。 名前がそのままなので気づきにくいですが。
とりあえず新しいモデルのアニメーションをセットしてやることにします。
このようにちゃんと動いてくれましたが、アニメーションの追加がある度に
モデルを再追加してアニメーション名を書き換えたり、リグなんかの設定をしたり、
Stateにアニメーションをセットするなんてのは大変なのではないかと思います。
なのでこんな風にしてみる事にしました。
→
モデル内にあるアニメーションのファイルを選択し、Ctrl+Dで複製します。
するとモデルファイルからアニメーションが飛び出してアセット内に複製されます。
それらをフォルダーを作ってまとめておき、今まで同様にAnimatorControllerに
セットして使ったりするわけです。 こうすればアニメーションを追加する為に
現在のモデルを削除せずに済みますし、追加したいアニメーションを持つモデルから
上記のようにアニメーションを複製して設定してやれば良いので手間がだいぶ
削減されると思います。
複製する時の注意で、Blenderでアニメーションを作っていた場合はファイル名が
"アーマチュア|Idle"とかになっていたりしますが、Unityでは基本的に縦棒"|"を
ファイル名に使う事ができないので、複製できずエラーになる事があります。
リネームするなりしてから複製するようにしましょう。
自分が不便に思っていた所ですが、これである程度の解決が出来た感じですね。
次回以降もまた不定期、ちょっと制御関係で書きたいことはありますけど。