Unityの学習 part6
今回は、モデルにアニメーションを設定していきます
ちなみにロードマップは以下のようになっております
モデルを使用したアニメーションのロードマップ
1. モデルの取得と配置
2. モデルにアニメーションの設定 ←今回の記事
3. モデルの移動に合わせたアニメーションの設定
4. モデルを追尾するカメラの設定
目標は、モデルの動かし方、アニメーションの設定、カメラの向きに合わせた移動の仕方を学習することです
モデルにアニメーションを設定
ProjectフォルダにAnimator Controllerを作成します
やり方はProjectのタブ内で右クリックをして Create > Animator Controllerです
作成したファイル名は好きな名前で良いので、適当に付けてダブルクリックでファイルを開きます
するとAnimatorの編集画面へ遷移します
なぜか初期画面では、Any StateとEntryが半分見切れているので、D&Dで見える位置に持ってきます
Entryと言うのは、オブジェクトが設置された時から始まる状態です
開始時には、待ちのポーズをしてほしいので設定していきます
Animatorタブ内の適当なところを右クリックして、CreateState > Emptyで空の状態を作成します
Entryから、今作成した状態へ矢印が伸びていることが、確認できるかと思います
これは、開始するとNew Stateへ移行するということです
New Stateの名前をPauseにして、Motionに好きなアニメーションを設定します
そして、今作成したAnimatorを、unitychanオブジェクトへD&Dします
unitychanにAnimatorコンポーネントが追加されていることを確認して、AvatarをBoxUnityChanAvatarにします
プレイすると、自分が設定したアニメーションが実行されていることがわかります
スクリプト内からの変更
アニメーションは、時間や操作によって常に変化しているために今回は、あるキーを押したらポーズが変わるようにします
先ほど作成したAnimatorに、もう一つの状態を追加します
さらにPauseを右クリックして、Make Transitionで新たに追加した状態へ矢印を伸ばします
逆に、新たに追加した状態からもPauseへ矢印を伸ばします
これだけでは、無条件で状態が変化するので条件を追加します
Parametersにある+で追加していきます
今回は上矢印キーを押すたびに状態の変化をさせたいのでBoolでいいと思います
名前はお好きなのでどうぞ
では、Pauseから伸びる矢印をクリックします
Conditionsの+を押すとParametersで追加した値を条件にすることができます
逆の矢印には、逆の条件を追加します
プレイした状態でParametersの値を変化させることもできるのでそこで確認もしてみましょう
スクリプトの作成をしていきます
using UnityEngine;
public class unitychan : MonoBehaviour {
bool up = false;
Animator animator;
void Start () {
//最初にunitycahnのコンポーネントからAnimatorを取得
animator = GetComponent();
}
void Update () {
//設定した変数名と状態のセット
animator.SetBool("State", up);
}
private void FixedUpdate()
{
//上矢印の感知
if (Input.GetKeyDown(KeyCode.UpArrow))
{
//現在の値と逆の値を入れる(trueならfalse, falseならtrue)
up = !up;
}
}
}
最後に今、作成したスクリプトをunitychanにD&Dすることで完了です!
最後に
アニメーションはゲームやムービーでは、非常に重要な役割を持っていますので、見ている人に違和感を与えないようにアニメーションを設定することが重要となります
今回では、現在の動きが完了するまで次の動作には移れないような設定になっていますが、これがゲームだと非常に操作感の悪いものになります
こういったことに気を付けてアニメーションを触っていきたいです
火曜日担当:poppy
admin at 2017年02月21日 10:00:45