ついにアニメーション。もちろんモーションの調整は初めてなので、色々と苦戦した。
まずは、もちろんBlenderでアニメーションを作ることですね。事前ではネットでいろいろな情報を探したんだけど、やはりいざっ作るというときではそううまくいかない。途中ではアーマチュアを調整したり、キーフレームや操作を間違ったり、さらにウェイトペイントなどをやらないといけない。と、しかし1時間ほどで、なんとなく「歩く」というモーションを仕上げた。
やはりモーションを作ることは一筋ではないんですね…。ボーンを動くだけではなく、髪や服やほかのオブジェクトも調整したり、細かい動きも。しかし、一番厄介なのはこれではない…。
「歩く」モーションを仕上げ、いよいよUnityにエクスポートすることになるが…ここが関門であった。Blender 2.8ではそのままアニメーションを作ってFBXにエクスポートすると思ったが、そういう甘い話ではなかった。
Unityにエクスポートはできたが、なぜかアニメーションは不完全である。あるいは一部のアニメーションが消えた。何度もやり直したが、結局「静止」「歩く」モーションの両方をうまく認識することは一度もない。さらにアーマチュアを分離したせいか、髪の「静止」とボディーの「歩く」だけが登録されて、全然思い通りにはならなかった。
何がだめだったんだろうか、全くわからないまま色々と試したが、数時間を掛けてもわからない…
と、モーションは1つだけ認識される問題に対し、ネットで色々と調べた結果、やっと打開策を見つけた。複数のモーションにエクスポートするには、Blender側で「アクションをストリップ化してNLAに登録する必要である」。さらに、NLAストリップのみ選択し、全アクションを外すこと。
また、パーツによって複数のアーマチュアを作成するとUnityは複数のアニメーションと認識するので、それではUnity側の作業は極めて面倒なので、結局アーマチュアを全部一つにまとめた。幸い、こっちの作業による影響はあまりない。おそらく既にメッシュの判定をやったんだろう。
うまく行けた!
これですね、Unityの本のような状態です。なるほど、NLAに登録されたアニメーションだけ出力に調整する必要がある、と。
Blenderの知識はまだ不足であることは認めます、なにせずん子モデリングでいきなりやることなんですから、基本の操作や知識をまともに勉強したこともない…。実際変な操作で手こずったことは何度もあった。
さて、Unity側が認識すると話は早い…というわけでもない。なぜかBlenderで調整された髪などの動きは、Humanoidに設定されると無効化されてる…。まあポリゴンに少しおかしな挙動もあった、そのへんは未だに解決策を見つからない。
服のウェイトペイントはBlenderで大丈夫だとしても、Unityでは問題が起こるのでそれも何度をやり直した…。と、やっと無事に、操作もできた。
まだまだいろんな調整が必要なんですけど(動きは正直あまりw)、ここまで来たら、もう目的は本当に達成したね…長年の念願だった……。