バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はunityのbake into poseについての備忘録です。
この設定次第でアニメーション後にルート移動が反映されるかされないかが決まるので、アニメーションをループさせたり繋げる場合に重要。
これちょくちょく私も忘れるからメモしておきます。
アニメーションクリップ設定で、bake into pose(ポーズにベイク)にチェックを入れると、ルート移動や回転が反映「されない」
これ、逆に反映「される」だと勘違いしていた( ̄▽ ̄;)
参考にした頭のいい先輩のページ。

アニメーションクリップの設定で、全部チェックを入れてしまっていたんだけど、
これだと回転も座標移動も反映されないため、ループさせると場所が初期位置に戻るっぽい。
Y軸は地面に埋まったりしちゃうのを防止するためにチェック入れたほうがいいっぽい?
けど、アニメーションを移動に使いたい時は、回転とXZ軸はチェック外しとかないとダメっぽい。
ちなみに歩くモーションはMixamoさんからもらいました。



Animatorコンポーネントで、Apply Root Motion(ルートモーションを適用)にチェックを入れるのも忘れずに
これで座標移動が反映されて動くだろう…と思ったら、なんか初期位置から動かない。
と思ったら、Apply Root Motion(ルートモーションを適用)にチェックが入っていないのが原因だった。
あれ、でもさっきはチェックしてない状態で、bake into poseに全部チェック入れたら、座標移動は反映されなかったけど一応前には動いてきてたな( ̄▽ ̄;)
反映されないけど動きだけは再生されたってことかな?多分。
- ルートモーションを適用にチェック
- ルートトランスフォーム位置(Y)のポーズにベイクにだけチェック
で、座標移動を反映させて動かすことに成功。
Rigidbodyを設定してなかったのですり抜けていきましたが(笑)。
前に歩く→右にターン のループを動作させることに成功
これまでは全部一つのアニメーションクリップでやらないといけないと思ってたけど、これなら
- 前に歩くアニメーションクリップ
- 右にターンするアニメーションクリップ
と切り分けて作って動作させられるようになった。
短いアニメーションを複数作って組み合わせた方が、一つ一つ作るのも楽だし汎用性があって良いかも。
短いほうが改変もやりやすいからね。
追記:ルートで動かしたい時はこれでいいけど、同じ位置でループ動作させたい時はbake into poseに全部チェック入れて位置を固定したほうがいいかも
じゃないとルートが反映されるので、位置がズレる。
アニメーションごとに設定ちゃんと見て、動きや場面によってルートトランスフォームの設定変えたほうがいいと思う。
具体的に言うと、えっちなモーションを男性モデルと合わせて作っていたら、アニメーション遷移の時に位置がズレた( ̄▽ ̄;)
その場でループして動けばいいだけなら、ルートは反映させないほうがいいかな?
ここの設定次第で、意図しない挙動をしてちょっと詰まる可能性がありそう。というか結構何度も詰まってるので(-_-;)
今回の内容とは関係ないけど、Rigidbodyを付けるとターンの角度が鈍くなった( ̄▽ ̄;)
壁すり抜け防止のために、私のモデルにRigidbody入れてみたんだけど。
アニメーションクリップは全く変更してないんだけど、90度ターンが20度くらいしかターンしなくなっちゃった。
これ重力とか物理の影響受けてるとか?
use gravityはオフにしてるけど…。
Animatorの更新モードをAnimate Phisicsにしたらいい感じに動くようになったが…
なんかここを変えたらちゃんと動くようになった。
Animate Phisicsって、こちらの頭のいい先輩によると、アニメーションと物理を組み合わせる機能みたいな感じ?




でも、壁際に行ったら物理の影響を受けたのか、180度ターンしたりして意図しない挙動をしてしまった( ̄▽ ̄;)
まぁとりあえずルートの問題は解決したので、これはこれで別に調べておきます。
追記:続きはこちらです。


