unityのアニメーションクリップのbake into poseについてのメモ

Unity

 

アニメーションクリップ設定で、bake into pose(ポーズにベイク)にチェックを入れると、ルート移動や回転が反映「されない」

これ、逆に反映「される」だと勘違いしていた( ̄▽ ̄;)

参考にした頭のいい先輩のページ。

【Unity】アニメーションクリップのプロパティを理解する | XR-Hub
» 【Unity】アニメーションクリップのプロパティを理解する

 

アニメーションクリップの設定で、全部チェックを入れてしまっていたんだけど、

これだと回転も座標移動も反映されないため、ループさせると場所が初期位置に戻るっぽい。

Y軸は地面に埋まったりしちゃうのを防止するためにチェック入れたほうがいいっぽい?けど、アニメーションを移動に使いたい時は、回転とXZ軸はチェック外しとかないとダメっぽい。

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って、こちらの頭のいい先輩によると、アニメーションと物理を組み合わせる機能みたいな感じ?

【Unity】アニメーションと物理演算を連動させる 5.6以降 - テラシュールブログ
以前、アニメーションと物理演算を連動させる方法について紹介しましたが、Unity 5.6でもっとシンプルになりました。 tsubakit1.hateblo.jp Animate Physicsなる機能 Unity 5.6のアップグレードガイドを眺めていると、少し気になる項目がありました。 docs.unity3d.co...

でも、壁際に行ったら物理の影響を受けたのか、180度ターンしたりして意図しない挙動をしてしまった( ̄▽ ̄;)

 

まぁとりあえずルートの問題は解決したので、これはこれで別に調べておきます。

 

タイトルとURLをコピーしました