ドワーフが「立ち」状態のとき、かがませられるようにします。「かがむ」状態のアニメーションは2つの部分に分けられます。「立ち」状態から「かがむ」状態への座標変換、そして「かがむ」状態のアニメーションの繰り返しです。

○「立ち」状態で、「Spaceキー」を押下された場合、「かがむ」状態のアニメーションの経過時間に 0 を設定します。繰り返しをしないようにし、 AnimationEnded を登録します。このイベントはアニメーションが繰り返さないように設定されたときだけ実行されます。「+=」演算子と「Tabキー」を2回押すことでイベントを登録できます。
  1. // Add this in the if (state=="idle") block of the UpdateState method
  2. if (keyState.IsKeyDown(Keys.Space))
  3. {
  4. crouch.ElapsedTime = 0;
  5. crouch.IsLooping = false;
  6. crouch.AnimationEnded += new AnimationEventHandler(crouch_AnimationEnded);
  7. state = "crouchDown";
  8. }
  9.  
○VisualStudio のオートコンプリート機能によって作成された crouch_AnimationEnded メソッドまで下へスクロールして下さい。これはアニメーションが終了したときに実行されます。実行されたとき、「かがみ中」状態にし、イベントを外します。
  1. // Add this in the crouch_AnimationEnded method
  2. state = "stayCrouched";
  3. crouch.AnimationEnded -= crouch_AnimationEnded;
  4.  
○「かがむ」状態と「かがみ中」状態を追加し、ボーンのアニメーションに設定して下さい。
  1. // Add this in the UpdateState method
  2. else if (state == "crouchDown")
  3. {
  4. RunController(dwarfAnimator, crouch);
  5. }
  6. else if (state == "stayCrouched")
  7. {
  8. RunController(dwarfAnimator, stayCrouched);
  9. }
  10.  
○ここでのポイントは、ドワーフに立ち上がらせる必要があるが、ドワーフは「立ち上がる」状態のアニメーションを持っていないことです。「かがむ」状態から「立ち」状態に戻す、もしくは「かがむ」状態と「立ち」状態の間を混ぜるように「立ち上がる」状態を作成できます。または、「かがむ」状態のアニメーションを逆再生し、戻すことができます。最後のオプションは次のチュートリアルのセクションでカバーします。

最終更新:2009年06月21日 12:49