こんにちは。
SAT-BOXのカピバラさんです。
今回は、IKシリーズからアニメーションについて書いていきたいと思います。
では、白い人型のモデルに登場してもらいたいと思います。
登場回数も結構な回数になってきたので、
そろそろこのモデルにも名前を付けますか。
命名『SAT-MAN』
、
…センスのある、いい名前ですね。
今回も「SAT-MAN」に働いてもらいましょう!
SAT-MANの視線の先にはとてもおいしそうなファーストフード達!
(体に悪そう)
今回は、このキャラを移動のスクリプトを書かずにアニメーションだけで、アニメーションに合わせてGameObjectを動かしていきたいと思います。
今回のアニメーションはこちらのアセットから拝借いたしました。
https://www.assetstore.unity3d.com/jp/#!/content/15667:AssetStore「Taichi Character Pack」
今回は前に転がるアニメーションを使いたいと思います。
こんな感じのアニメーションになります。
まずはスペースキーを押すと転がるように処理を書きます。
※これは「移動のスクリプト」には含みません。
これで見てみましょう。
このままだと転がるアニメーションをしたあと、元の位置に戻ってしまいますね。。。
「こんなの、Animatorの [ApplyRootMotion]にチェックを入れればええんちゃうの?」とか思っている、そこのあなた。
「ところがどっこいそれだけじゃ上手くいきません。」
アニメーションデータの、Root Transform Position (XZ)のBake Into Poseにチェックを外してみます。
するとあら不思議、うまくいきました!
この項目は、チェックを入れると、Transformの値をアニメーションによって変更するかどうかになります。
Transformの座標が変更しているかどうか、シーンビューで見てみるとよくわかると思います。
【チェックを入れた場合】
【チェック外した場合】
こんな感じでアニメーションに合わせてTransformの位置を変更することが出来ます!ただ、アニメーションに合わせてTransformの位置を変更するようにすると、入ってはいけない場所に行けるようになってしまったり色んな所にめり込んで行ったりと、デメリットもたくさんあります。
これらのデメリットは、色んな工夫で解決できます。
ですが個人的には今後の拡張性も兼ねてスクリプトで移動の制御をするようにすることをお勧めします。
「Foooooooo!!! I love fast-food!!!」
「あっ、通り過ぎた」
では(^^)/