キャラクターに設定してあるアニメーションを実行する方法を解説します。
今回はキャラクターとアニメーションデータは付属のものを使います。
プロジェクトを作成し、Projectのビューで右クリックをし、「Character Controller」をImportします。
※もちろん、プロジェクト作成時に「Character Controller.unityPackage」にチェックを付けて追加してもおいても良いです。
First Person Controllerについては必要無いのでチェックを外してから「Import」ボタンを押します。
3rd Person ControllerにはデフォルトでScriptファイルが幾つかついていますので全てRemoveします。
次に「Animation」の項目の「Play Automatically」のチェックを外します。
3rd Person ControllerをSceneビューに追加後、カメラの位置調整やライトの追加を行います。
キャラクターのPositionとRotationはこの様に設定にします。
さて、事前準備はここで完了です。メインのアニメーション処理に取り掛かります。
ボタンを押したらアニメーションをする様にしたいので以下の記述をしたJavaScriptを用意し、空のGameObjectを作成(メニューから「GameObject」-「Create Empty」)し、そこにJavaScriptをドラッグします。
【GUIScript.js】
var Charcter : GameObject; function Start () { Charcter = GameObject.Find("3rd Person Controller"); } function OnGUI () { GUILayout.BeginArea (Rect (0, Screen.height-105, Screen.width, 105)); if(GUI.Button (Rect (5, 0, 100, 100), "idle")) { Charcter.animation.Play("idle"); } if(GUI.Button (Rect (5+105, 0, 100, 100), "walk")) { Charcter.animation.Play("walk"); } if(GUI.Button (Rect (5+105*2, 0, 100, 100), "jump_pose")) { Charcter.animation.Play("jump_pose"); } if(GUI.Button (Rect (5+105*3, 0, 100, 100), "run")) { Charcter.animation.Play("run"); } GUILayout.EndArea (); }
それぞれのボタンを押すと該当するアニメーションが実行されます。
jumpだけは繰り返しアニメでは無く、1回しかアニメーションしない様です。
確認してみるとjumpだけは「WrapMode」がDefaultに成っているみたいです。
Unity Script Reference – Animation.wrapMode
http://unity3d.com/support/documentation/ScriptReference/Animation-wrapMode.html