Download - Mecanim on Unity 4.3 実例による新機能の紹介
Mecanim on Unity 4.3 !実例による新機能の紹介
2013/12/08 森本陽介
自己紹介
森本陽介
九州大学芸術工学部
卒論やばいです@YosukeM
二人の漸近線(制作中)
http://www.facebook.com/throbofencounters
http://www.facebook.com/throbofencounters
なぜMecanimを使うのか?
Animation vs Mecanim
• 昔からある • シンプル
• Unity 4から登場 • ステートマシンを作る必要がある • IKが使える
Animation(Legacy) Mecanim
Only for Mecanim部分的なブレンド リターゲット
「二人の漸近線」ではこの2つを積極的に利用
Mecanimの簡単な使い方
インポート設定
• コンポーネント「Animator」がアタッチされる
• インポート時にGenericまたはHumanoidを選択
AnimatorControllerの作成• プロジェクトウィンドウでCreate/AnimatorControllerを選択
• StateとTransitionを追加していく
パラメータの設定
• Transitionを選択し、遷移の発生条件を設定する
• Animatorを制御するための変数を作成
• Bool • Int • Float
Coding
Animator animator; !void Awake() { animator = GetComponent<Animator>(); } !void Update() { if (Input.GetKey(KeyCode.RightArrow)) { animator.SetInteger("Action", 3); } else { animator.SetInteger("Action", 0); } }
Mecanimの実情
複雑化するステートマシン
• Transition数がState数の二乗に比例して増加
• AnyStateを使いたいけれど……
AnyStateループ
• AnyStateで移動した先もAnyStateなので、同じTransitionが連続して発生してしまう
• ステートの遷移を監視しても完全には回避できない
• なぜならAnimatorは別スレッドだから
ここまでは Unity 4.2 の話
New in Unity 4.3• Trigger(自動でfalseになるbool値)の追加
Mecanimはようやく実用的に
• Play / CrossFadeメソッドの追加
→AnyStateループからの解放
→Transition地獄からの解放
AnimationEventSEとの同期
エフェクトとの同期
BlendShape
• リグを入れなくてもアニメーションが可能に
• モデラーが嬉しい
OverrideAnimatorController
レベル毎に個別のクリア演出
Animation Window
MechanimのモーションをUnityから編集できるようになった
カメラやライトもアニメーションできる ※FBXからインポートできるわけではない
まとめ
まとめ
• Unity 4.3でMecanimはようやく実用的に
• 人型以外でも利点はある
• そろそろLegacy Animationから乗り換えてもいいかも