2015年4月26日日曜日

Unityでゲームつくり4

人型のキャラクターを動かす


矢印キーで操作
スペースでジャンプ
controlでパンチ

ゲームではなくただ動かすだけ


覚書:
・RigidBodyとColliderとスクリプトで動かした
CharacterControllerは使わず
・人型のキャラクターのアニメーションは流用できる
(3dsmaxのbipedで確認
Blenderは未確認

インポートした後にhumanoid
に設定
人型キャラにボーンを追加したモデルにもアニメーションを使えるが
追加したボーンについては動かない
モデルのスキンについては人型キャラクターのルートのボーンを追加してはいけない
(これはUnityに限らず当たり前だったか
ルートのボーンはPlevisの位置と一見近いが激しい動作をするとかなりずれる)

・AnimatorのApply Root motion
をチェックするとインポートしたアニメーションの動きがそのままキャラクターに適用される
つまりfbxなどのアニメーションを作る際にキャラクターが前進するようにすると
キャラクターのアニメーションを再生しただけで前進する
回転させれば回転する
(アニメーションで回転させる場合はRigidBodyのConstraintsでFreezeRotationをチェックしないと動かした時にこける)
スクリプトでtransformの位置を直接操作する必要はなく
スクリプト側からはAnimatorControllerの変数を制御するだけで良い

・AvatarMask作成して
AnimatorController
でレイヤー追加してAvatarMask設定すると
設定した部分のみを動かせる
これは例えば走りながら上半身を追加で動かしたりしたい時
そのまま上半身を動かしたアニメーションをブレンドしてしまうと
下半身の走りとブレンドされてしまうがAvatarMaskを使えば防げる

・AnimatorControllerでトランジションのパラメータを設定する際に
HasExitTimeのチェックオフにしておかないと条件を満たしてもすぐには遷移しない

・Colliderコンポーネントをもつオブジェクトを
アニメーションのあるキャラクターのボーンの子にすれば
そのオブジェクトの動きや衝突もアニメーションにともなって適切に行われる
(今回はキューブを右手の子にしてメッシュレンダラーを削除して不可視にして
あるのでパンチ動作でリジッドボディを叩いて動かせる)

参考サイト:
https://www.youtube.com/watch?v=Xx21y9eJq1U


人気ブログランキングへ
にほんブログ村 デザインブログランキング

0 件のコメント:

コメントを投稿