キャラクターの移動の設定方法

UE4 でキャラクターに移動を設定するためのガイドです。

Choose your operating system:

Windows

macOS

Linux

コンテンツ

キャラクターの移動 を作成するには、いくつかの構成要素が必要で、それらが互いに作用することで、最終的にゲーム内でキャラクターが移動します。必要なものは、キャラクター、キャラクターへの入力、プレイヤーからの入力に対するキャラクターの反応方法、キャラクター移動用のアニメーション、アニメーション間の遷移、アニメーション間の遷移を成り立たせるロジックです。

このガイドでは、ブループリントで全ての設定をゼロから行う方法を紹介し、シリーズの最後には、様々な動き方を表現できるプレイ可能なキャラクターが完成します。

実装ガイド

クイックスター ガイドでは、 ブループリント を使って完全にプレイ可能かつアニメートされたキャラクターを作成するために必要な作業を段階的に説明します。このガイドは最後に、歩く、走る、しゃがむ、しゃがんで歩く、前かがみになる、静止した立ち姿勢または動作しながらジャンプするなどの動きができるキャラクターを完成する内容になっています。

完成品のサンプルはこちらのビデオで紹介されています。

以下のステップでは Animation Starter Pack を使用します。これは、キャラクターの移動を作成できるアニメーションが幾つか含まれており、 マーケットプレイス から無料でご利用いただけます。Animation Pack をダウンロードすると、ランチャーの [Add to project (プロジェクトに追加する)] ボタンで既存プロジェクト (できれば新規のブランク プロジェクト) に追加してから、アセットを追加するプロジェクトを指定することができます。

AnimationStartePack1.jpg

最初に、次の手順を行います。

1. キャラクターを設定する

キャラクターで使うアセットを幾つか作成することから開始します。まず最初にキャラクターのアニメーションを操作するための Animation ブループリント (ステップの中で後ほど実装していきます) を作成し、次にキャラクターのアクションや入力への反応方法のロジックを司る Character ブループリント を作成します。

このプロジェクトでは Animation Starter Pack を使用します。 マーケットプレイス から無料でご利用いただけます。Animation Starter Pack をダウンロードしたら、ランチャーの [Add to project] ボタンで既存プロジェクト (できれば新規のブランク プロジェクト) に追加します。これで、アセットを追加するプロジェクトを指定することができます。

ブランクのプロジェクトから開始するために、 Blank Project テンプレートを使用します。

  1. プロジェクトを開いたら、 コンテンツブラウザ 右クリック して、 [New Asset (新規アセット)] を選択し、 [Animation] そして [Animation Blueprint] を選択します。

    Characters_1b.png

  2. [Target Skeleton] ウィンドウで UE4_Mannequin_Skeleton アセットを選択します。

    Characters_1c.png

  3. Animation ブループリント に「 MyAnimationBlueprint 」などの名前を付けます。

  4. コンテンツブラウザ 右クリック して、 [Blueprint Class] から [Character] をクラスとして選択します。

  5. MyCharacter 」などの名前を付けて開きます。

  6. [Component] ウィンドウで、 Mesh コンポーネントをクリックします。

    ClickMesh.png

  7. [Details] パネルで [Skeletal Mesh] の隣にある [None] ボックスをクリックして、 SK_Mannequin_Skeleton スケルタルメッシュを割り当てます。

    Characters_2a.png

  8. Transform Z に対する Location Rotation -90 に設定し、ステップ 1 で作成した Animation ブループリント に割り当てます。

    Characters_3.png

  9. [Add Component] ボタンをクリックして、 Spring Arm コンポーネントを追加します。

  10. [Details] パネルで Z に対する Location 50 に、 Z に対する Socket Offset 30 に設定して、 [Use Pawn Control Rotation] にチェックを入れます。

    Characters_4.png

    Spring Arm コンポーネントは、 Camera と一緒に使ってサードパーソン視点を作成します。

  11. [Add Component] ボタンをクリックして、 Camera コンポーネントを追加します。

  12. [Components] ウィンドウ Camera をクリックして Spring Arm 上にドラッグし、 Spring Arm Component の子を作成します。

    MakeCameraChild.png

  13. Camera [Details] パネルで、 [Transform] [Location] と [Rotation] の値をゼロアウトします。

    Characters_5.png

  14. [Component] ウィンドウ で、 Character Movement コンポーネントをクリックします。

  15. [Details] パネルで Rotation を検索して、 [Character Movement] の以下のボックスにチェックを入れます。

    Characters_6.png

  16. 次に Walk Speed を検索して、 Max Walk Speed 200 に、 Max Walk Speed Crouched 160 に設定します。

    Characters_7.png

    お好きな値に設定することができますが、適切な値を選んでください。

  17. [MyBlueprint] ウィンドウで [Create Variable] ボタンをクリックし、 JogPressed という Bool を作成します。

  18. 次の 4 つの Bool 変数を作成します。 CrouchPressed PronePressed JumpPressed DisableMovement

    Characters_8.png

  19. コンパイル 保存 してから、ブループリントを終了します。

2. 入力とゲームモード

このページでは、キャラクターを制御する 入力 (ゲーム制御) を設定し、キャラクターを使用する ゲームモード を作成します。

  1. コンテンツブラウザ 内を 右クリック して Game Mode クラスの Blueprint クラス を作成し、「 MyGame 」と名前を付けます。

  2. MyGame ブループリントを開いて、ツールバーの [Class Defaults] ボタンをクリックします。

    SelectClassDefaults.png

  3. [Details] パネルの [Classes] で、 Default Pawn Class MyCharacter ブループリントを使用するように設定します。

    GameMode_1.png

  4. コンパイル 保存 してから、ブループリントを終了します。

  5. メインのエディタ ウィンドウの メニュー バー [Edit] をクリックし [Project Settings] を選びます。

  6. プロジェクト設定で [Engine] セクションの [Input] をクリックします。

  7. Bindings Action Mappings Axis Mappings を 4 つずつ追加します。

  8. 始めの 2 つの Axis Mappings は、それぞれの隣にあるプラス記号をクリックして、マッピングをグループに追加します。

    Input_1.png

    空のバインディングはこのようになります。

  9. Bindings を以下のように設定します ( Scale A S そして Mouse Y -1.0 に設定するようにしてください)。

    Input_2.png

    ここで Action Mappings Jump Crouch Jog Prone に、 Axis Mappings MoveForward MoveRight Turn LookUp に設定します。以下のように設定するか、それぞれ自分で入力を選ぶことができます。

    このプロセスに関する詳細は、「ブループリントの入力の設定方法」を参照してください。

  10. Project Settings の [Project] セクションの [Maps & Modes] オプションをクリックします。

  11. Maps & Modes の Default Modes で、 Default GameMode MyGame ゲームモードを使用するように設定します。

    GameMode_2.png

    ゲームモードに関する詳細は「 ゲームモードをセットアップする 」を参照してください。

  12. 入力とゲームモードの設定が完了したら、[Project Settings] ウィンドウを終了します。

3. キャラクター設定の完了

このセクションでは、プレイヤー入力に合わせてキャラクターを制御するスクリプトを実行して、キャラクター設定を完了させます。

  1. MyCharacter ブループリントを開きます。

  2. グラフ内で InputAxis MoveForward Event と InputAxis MoveRight Event を 右クリック して追加します。

  3. Control キーを押したまま DisableMovement 変数をドラッグし、各イベントの Branch Condition に接続します。

  4. 残りのノード ネットワークを以下のように設定します。

    画像をクリックしてフルサイズで表示

    DisableMovement False の場合のみ、キャラクターの移動が可能になります。これは、アニメーションが存在しないのに、キャラクターが移動してしまうことを防ぐためです。これは、アニメーションが存在しないのに、キャラクターが移動してしまうことを防ぐためです。Prone Idle アニメーションはあっても、Prone Crawl アニメーションがない場合などです。前かがみになった時にプレイヤーが地面に滑り落ちないようにするために、移動を無効にします。

  5. 右クリック して InputAxis Turn Event と InputAxis LookUp Event を追加します。

  6. Turn Event を Add Controller Yaw Input ノードに、 LookUp Event を Add Controller Pitch Input ノードに接続します。

    Character_MouseInput.png

  7. グラフ内を 右クリック して、 InputAction Jog Event を追加します。

  8. [MyBlueprint] ウィンドウで、 [Show inherited variables] チェックボックスをクリックし、 Control キーを押しながら、 CharacterMovement をグラフへドラッグします。

    Character_JogA.png

  9. Alt キーを押しながら Jog Pressed 変数をドラッグしたら、 Control キーを押しながら Crouch Pressed 変数をドラッグします。

  10. 適切な Set ノードの Jog Pressed がチェックされるように、ノード ネットワークを以下のように設定します。

    画像をクリックしてフルサイズで表示

    Jog が Pressed の場合、 Jog Pressed True に設定します。 Character Movement コンポーネントでキャラクターの Max Walk Speed 375 に設定します (この値を調整して Jog 速度を増減することができます)。

    Jog が Released の場合、しゃがんでいるかどうかをチェックし、しゃがんでいる場合は、Walk Speed を 160 (しゃがんで歩く速度) に設定します。しゃがんでいなければ、 Walk Speed を 200 (デフォルトの歩行速度) に設定します。これにより、キャラクターが Jog から Crouch または Walking ステートモードになり、適宜元に戻るようになります。

  11. グラフ内を 右クリック して、 InputAction Crouch Eventを追加します。

  12. Alt キーを押しながら Crouch Pressed 変数をドラッグしたら、 Control キーを押しながら Jog Pressed 変数と Prone Pressed 変数をドラッグします。

  13. 適切な Set ノードの Crouch Pressed がチェックされるように、ノード ネットワークを以下のように設定します。

    画像をクリックしてフルサイズで表示

    Crouch スクリプトの場合は、 Prone ステートだとしゃがむことが不可能なので、まずそれを確認します。 (Prone から Crouch またはその逆のアニメーションがないためです。アニメーションがあれば、プレイヤーを Crouch から Prone ステートにさせることができるでしょう)。 ずっと Crouch ボタンを押し続けるのではなく、 FlipFlop ノードをしゃがむためのトグルとして使用しています (使用する方法によってオプションとなります)。1 度目に押す時は、 Crouch Pressed True に、そして Max Walk Speed 160 に設定します。Crouch をオフに切り替えるために 2 度目を押すと、 Crouch から Jog になることを確認し (歩行速度は 375 に設定します)、そうでない場合は歩行速度を 200 に戻します。

  14. グラフ内を 右クリック して、 InputAction Prone Event を追加します。

  15. Alt キーを押しながら Prone Pressed 変数と DisableMovement 変数をドラッグします。

  16. Control キーを押しながら、 Crouch Pressed 変数をドラッグします。

  17. 適切な Set ノードの Prone Pressed がチェックされるように、ノード ネットワークを以下のように設定します。

    画像をクリックしてフルサイズで表示

    Prone スクリプトの場合、まず Crouched ステートかどうかを確認します。Crouched の場合はキャラクターは Prone ステートにはなれません (前述の通り、それ用の遷移アニメーションがありません)。そこで FlipFlop ノードをここでも使い、 Prone ステート間の切り替えを行います。

    1 回目に押す時は、 Prone Pressed DisableMovement が両方 True に設定されて、Prone ステートになりキャラクターの移動は無効にされます。2 度目を押すと、Prone ステートを終了するために Prone Pressed false に設定されて、再度移動が可能になるまで若干遅れ ( 1.4 に設定) を加えます (立っている状態にアニメーションが戻る途中でプレイヤーが移動しないようにするためです)。

  18. グラフ内を 右クリック して、 InputAction Jump Event を追加し、 [MyBlueprint] ウィンドウから CharacterMovement コンポーネントをドラッグします。

  19. Alt キーを押しながら Jump Pressed 変数をドラッグしたら、 Control キーを押しながら DisableMovement 変数と CrouchPressed 変数をドラッグします。

  20. 適切な Set ノードの "Jump Pressed" をチェックするように、ノード ネットワークを以下のように設定します。

    画像をクリックしてフルサイズで表示

    Jump スクリプトの場合は、まずステートが Prone か Crouched のいずれかになっているかを確認します。両方とも True ではなければ、 CharacterMovement コンポーネントを使って現在の速度を判断します。 0 より大きければ、移動していることになります。

    移動しているかどうかに応じて、まだ固定状態のうちに JumpZVelocity 365 (キャラクターが移動している場合) または 340 に設定して、キャラクターがジャンプできる高さを設定します。どちらの場合も Jump Pressed True に設定し、 Jump が解除されると Jump Pressed False に設定します。

4. ブレンド スペースの作成

キャラクターを移動させるために、次は各移動ステート (Walking、Jogging、Crouch Walking) 用の Blend Space を作成します。ブレンド スペースは 2 つの入力値に基づいたアニメーションのブレンドを可能にする特殊なアセットです。ここでは、キャラクターの移動の速さと方向に合わせて、前後と左右をブレンドします。

Blend Space に関する詳細は、 Blend Spaces のページを参照してください。

移動の Blend Space は、以下の方法で設定します。

  1. コンテンツ ブラウザ 内を 右クリック して、 [Animation] そして [Blend Space] を選択してアセットを新規作成します。

    Blendspace_1.png

  2. [Pick Skeleton] ウィンドウで、スケルトン ( UE4_Mannequin_Skeleton ) を選び、アセットに「 Walk_BS 」という名前を付けます。

  3. Walk_BS ブレンドスペースを開き、 [Parameters] の、 X Axis Label Direction に、 Y Axis Label Speed に設定します。

  4. X Axis Range -180 から 180 に、 X Axis Divisions 4 に設定します。

  5. Y Axis Label Speed に、 Y Axis Range 0 から 200 に、そして Y Axis Divisions 4 に設定します。

  6. X 軸と Y 軸の両方の値を設定したら、 [Apply Parameter Changes] ボタンをクリックします。

    Blendspace_2.png

    適用をクリックすると、移動アニメーションのブレンドの判断に使う入力値を使用するために、 [Parameter] ウィンドウの左側のグリッドスペースが更新されます。

  7. [Asset Browser] ウィンドウで rifle ironsights アニメーション (これらの動作をキャラクターに使います) を検索します。

    Blendspace_3.png

  8. Walk_Fwd_Rifle_Ironsights アニメーションを見つけたら、ドラッグ&ドロップして、グリッドスペースの中央下に置きます。

    Blendspace_4.png

    これにより、グリッドスペース上にリファレンス用のポイントが作成されます。

  9. Walk_Lt_Rifle_Ironsights アニメーションと Walk_Rt_Rifle_Ironsights アニメーションをグリッドの歩行前方ポイントの左右にドラッグします。

    Blendspace_5.png

    上記の Walk_Lt_Rifle_Ironsights (L) 、 Walk_Fwd_Rifle_Ironsights (F) 、 Walk_Rt_Rifle_Ironsights (R) がグリッド上に表示されます。

  10. Walk_Bwd_Rifle_Ironsights アニメーションをドラッグし、左下隅と右下隅に配置します。

  11. 下部の左から右と同様のレイアウト (Bwd、 Lt、 Fwd、 Rt、 Bwd) を、グリッドの上部にも繰り返します。

    Blendspace_6.png

    マウスをグリッド上に移動させると、キャラクターは歩いたり方向間でブレンドします。

  12. Sample Interpolation Anim Asset Details で、 Target Weight Interpolation Speed Per Sec 2.0 に設定します。

    Blendspace_7.png

    こうすると、方向が変わる時に、スムーズにブレンドされます。

  13. Walk_BS Blend Space ウィンドウを 保存 してから終了します。

  14. コンテンツブラウザ Walk_BS アセットを 右クリック [Duplicate] を選択します。

  15. コピーの名前を「 Jog_BS 」に変えて開きます。

  16. [Parameters] Y Axis Range 最大値を 200 から 375 に変えて適用をクリックします。

    Blendspace_8.png

    375 という値は、 MyCharacter ブループリントで設定した Jog の速度を表します。

  17. 速度の最大値を使用するためにグリッドは更新されますが、グリッド上のポイントは更新前のままとなります。

    Blendspace_9.png

  18. 左クリック して各位置のグリッドの上部まで、ポイントを移動します。

  19. [Asset] ウィンドウで、 Jog アニメーションを探します。

  20. Jog アニメーションをグリッド上の Walk ポイントにドラッグして、グリッド上で歩くアニメーションを走るアニメーションに変えます。

    Blendspace_10.png

    グリッドの上と下に沿って、 Jog (Bwd, Lt, Fwd, Rt, Bwd) Rifle アニメーションを使っています。

  21. 保存 してから [ Jog_BS Blend Space] ウィンドウを閉じます。

  22. Jog_BS を複製し、その名前を「 Crouch_BS 」に変更して開きます。

  23. [Parameters] Y Axis Range 最大値を 375 から 160 に変えて適用をクリックします。

  24. アセットブラウザ rifle ironsights を検索します。

  25. グリッド上のポイントを、それぞれの Crouch_Walk アニメーションに置き換えます。

    Blendspace_11.png

  26. 保存 してから [ Crouch_BS Blend Space] ウィンドウを閉じます。

5. Animation ブループリント - Idle ステートと Walk ステート

このセクションでは、プレイヤーがゲーム内で取るアクションに合わせて、どのアニメーションを再生するかを判断する Animation ブループリント を設定します。その後で ステートマシン を設定し、 Idle Walk ステートを作成し、両ステート間の遷移を設定します。

Animation ブループリント に関する詳細は、「 Animation ブループリント 」ドキュメントを参照してください。

Animation ブループリントは以下の方法で設定します。

  1. MyAnimationBlueprint アセットを探して開きます。

  2. MyBlueprint ウィンドウに 4 つの Bool 変数 ( IsJumping IsCrouching IsJogging IsProne ) を作成します。

  3. Float 変数を 2 つ ( Speed Direction ) 作成します。

    AnimBP_1.png

  4. [MyBlueprint] ウィンドウで、 イベントグラフ ダブルクリック して イベントグラフ タブを開きます。

  5. Event Graph で、以下のように設定をして、 [Compile] ボタンをクリックします。

    画像をクリックしてフルサイズで表示

    上のグラフでは、プレイヤー キャラクターの方向と速度を取得し、Animation ブループリント内で使用する変数にそれらを割り当てます。プレイヤーが取るアクションに対応する MyCharacter ブループリントからも変数を取得します ( Try Get Pawn Owner ノードをドラッグし、Character ブループリントへ キャスト します)。そしてこれらの変数は、いつ Animation ステートに移行/ Animation ステートから移行するかを判断する Animation ブループリント内の変数に渡されます。

  6. [Anim Graph] タブをクリックし、グラフ内を 右クリック して State Machine を見つけて追加します。

    AnimBP_AnimGraph2.png

  7. State Machine に名前を付けて、 Final Animation Pose ノードに接続します。

    AnimBP_AnimGraph3.png

  8. State Machine を ダブルクリック して開きます。

  9. Asset Browser ウィンドウで、 Idle を探して Idle_Rifle_Hip アセットをグラフにドラッグします。

    AnimBP_AnimGraph4.png

  10. Entry ノードを Idle_Rifle_Hip ノードに接続して、 [Compile] をクリックします。

    AnimBP_AnimGraph5.png

    プレビュー ウィンドウでキャラクターがアイドルになっていることが確認できます。

  11. [Asset Browser] ウィンドウで、 Walk_BS を検索し、グラフにドラッグします。

    AnimBP_Walk1.png

  12. Walk_BS ダブルクリック し、 [My Blueprint] タブから Control を押したまま Speed 変数と Direction 変数をドラッグします。

    AnimBP_Walk2.png

    上図のように接続します。キャラクターからの値を Blend Space に設定していきます。

  13. [Walk_BS] タブを閉じ、ステートマシン グラフで Idle_Rifle_Hip から Walk_BS への 遷移 を作成します。

    AnimBP_Walk3.png

  14. Walk_BS から Idle_Rifle_Hip への 遷移 を作成し、 Idle_Rifle_Hip から Walk_BS への Transition Rule (遷移ルール) ダブルクリック します。

    AnimBP_Walk4.png

    Transition Rule は、ステートマシンがいつアニメーション ステート間を移動するか判断します。

  15. Transition Rule 内のグラフを、以下のように作り直します。

    AnimBP_Walk5.png

    上記のスクリプトで、プレイヤー キャラクターが宙に浮いていないこと (落下またはジャンプのいずれかによって) 、そして現在の速度が 160 より大きくなっていることを確認し、そうなっていれば Idle から Walk への遷移が起こるようにします。

  16. ステートマシン グラフに戻り、 Walk_BS から Idle_Rifle_Hip への Transition Rule を開きます。

  17. Transition Rule 内のグラフを、以下のように作り直します。

    AnimBP_Walk6.png

    キャラクターの速度が 160 未満だと遷移できるようにします。

  18. Animation ブループリントを コンパイル 保存 します。

6. Animationブループリント - Crouch ステート

引き続き Animation ブループリント ステートマシン を使って、このセクションでは Crouch ステートに焦点を当てていきます。

  1. ステートマシン グラフの MyAnimationBlueprint で、 アセットブラウザ から Crouch_BS Blend Space をドラッグしてきます。

  2. Crouch_BS から Walk_BS へ、また Walk_BS から Crouch_BS への 遷移 を作成します。

    AnimBP_Crouch2.png

  3. Crouch_BS ダブルクリック し、 Direction Speed 変数をドラッグしてきて Blend Space に接続します。

    AnimBP_Crouch3.png

  4. ステートマシン グラフに戻って Walk_BS から Crouch_BS への 遷移ルール を開き、以下のグラフを再度生成します。

    AnimBP_Crouch4.png

    ここでは、Crouch キーが押され速度が 0 より大きい場合、プレイヤーがしゃがんだ状態で歩くことができます。

  5. ステートマシン グラフに戻って Crouch_BS から Walk_BS への 遷移ルール を開き、グラフを以下のように作り直します。

    AnimBP_Crouch5.png

    今度は、しゃがんでいない状態で速度が 0 より大きい場合、プレイヤーは再び Walking ステートへ戻ることができるようになります。

  6. ステートマシン グラフに戻って アセットブラウザ Crouch_Idle_Rifle_Hip アニメーションをグラフへドラッグします。

    AnimBP_CrouchIdle1.png

  7. Crouch_BS から Crouch_Idle_Rifle_Hip へ、また Crouch_Idle_Rifle_Hip から Crouch_BS へ戻る 遷移 を作成します。

  8. さらに Crouch_Idle_Rifle_Hip から Idle_Rifle_Hip へ、また Idle_Rifle_Hip から Crouch_Idle_Rifle_Hip へ戻る 遷移 を作成します。

    AnimBP_CrouchIdle2.png

    ここで、 Crouch Walk から Crouch Idle (および Crouch Idle から Crouch Walk) になる移行を設定します。Crouch Idle から Standing Idle (および Standing Idle から Crouch Idle) になる遷移を設定します。

    必要であれば、遷移がスムーズになるように、グラフ上でノードを移動させることもできます。

  9. Idle_Rifle_Hip から Crouch_Idle_Rifle_Hip への 遷移ルール を開きます。

  10. この 遷移 に必要なことは、 IsCrouch True であることだけです。

    AnimBP_CrouchIdle3.png

  11. ステートマシン グラフに戻り、 Crouch_Idle_Rifle_Hip から Idle_Rifle_Hip への 遷移ルール を開きます。

  12. この 遷移 に必要なことは、 IsCrouch False であることだけです。

    AnimBP_CrouchIdle4.png

  13. ステートマシン グラフに戻り、 Crouch_BS から Crouch_Idle_Rifle_Hip への 遷移ルール を開きます。

    AnimBP_CrouchIdle5.png

  14. 遷移ルール のグラフを以下のように作り直します。

    AnimBP_CrouchIdle6.png

    プレイヤーがしゃがんでいて速度が 0 の場合、アニメーションは Crouch Idle になります。

  15. ステートマシン グラフに戻り、 Crouch_Idle_Rifle_Hip から Crouch_BS への 遷移ルール を開きます。

    AnimBP_CrouchIdle7.png

  16. 遷移ルール のグラフを以下のように作り直します。

    AnimBP_CrouchIdle8.png

    プレイヤーがしゃがんでいて速度が 0 より大きい場合、 Crouch Walk の Blend Space になります。

  17. Animation ブループリントを コンパイル 保存 します。

7. Animation ブループリント - Jog ステート

引き続き Animation ブループリント ステートマシン を使って、このセクションでは Jog ステートへの遷移、Jog ステートからの遷移の設定を行います。

  1. ステートマシン グラフに戻って アセットブラウザ Jog_BS をグラフにドラッグします。

    AnimBP_Jog1.png

  2. Jog_BS を開いて Speed 変数と Direction 変数をドラッグして以下のように接続します。

    AnimBP_Jog2.png

  3. ステートマシン グラフに戻ります。

  4. Crouch_Idle_Rifle_Hip から Jog_BS へ、また Jog_BS から Crouch_Idle_Rifle_Hip へ戻る 遷移 を作成します。

    AnimBP_Jog3.png

  5. Crouch_Idle_Rifle_Hip から Jog_BS への Transition Rule (遷移ルール) を開いて、以下のグラフを再度作成します。

    AnimBP_Jog3b.png

    Jogging が True でプレイヤーの速度が 0 より大きい場合、 Jogging Blend Space になります。

  6. ステートマシン グラフに戻り、 Jog_BS から Crouch_Idle_Rifle_Hip への Transition Rule を開きます。

  7. Transition Rule 内のグラフを以下のように作成します。

    AnimBP_Jog3c.png

    ここで、プレイヤーが Crouch ステートから Jog ステートになれるようにします (走るのをやめたら Crouch に戻ります)。

  8. ステートマシン グラフに戻り Crouch_BS から Jog_BS へ、および Jog_BS から Crouch_BS への 遷移 を作成します。

    AnimBP_Jog3d.png

  9. Crouch_BS から Jog_BS への Transition Rule (遷移ルール) を開き、以下のグラフを作成します。

    AnimBP_Jog5.png

    これはプレイヤーがしゃがんでいるかをちぇっくし、 左側の Shift (Jog キー) が押されると、プレイヤーが Jog ステートに遷移します。

  10. ステートマシン グラフに戻り、 Jog_BS から Crouch_BS への 遷移ルール を開きます。

    AnimBP_Jog5b.png

  11. 遷移ルール 内でグラフを以下のように作り直します。

    AnimBP_Jog6.png

    ここで、プレイヤーがゆっくり走っているかをチェックし、 C (Crouch キー) が押されると、プレイヤーが Crouch walk (しゃがみ歩き) ステートに遷移します。

  12. ステートマシン グラフに戻り Jog_BS から Idle_Rifle_Hip への 遷移 を作成します。

    AnimBP_Jog7.png

  13. Jog_BS から Idle_Rifle_Hip への 遷移ルール を開き、以下のグラフを作成します。

    AnimBP_Jog8.png

  14. ステートマシン グラフに戻り Jog_BS から Walk_BS へ、また Walk_BS から Jog_BS への 遷移 を作成します。

    AnimBP_Jog9.png

  15. Jog_BS から Walk_BS への 遷移ルール を開き、以下のグラフを再度作成します。

    AnimBP_Jog10.png

  16. ステートマシン グラフに戻り、 Walk_BS から Jog_BS への 遷移ルール を開きます。

  17. 遷移ルール 内でグラフを以下のように作り直します。

    AnimBP_Jog11.png

  18. Animation ブループリントを コンパイル 保存 します。

8.Animation ブループリント - Jump ステート

ステートマシン 内で Jump ステートを設定します。2 種類の Jump ステートを設定します。 1 つは静止した状態から、もう 1 つはプレイヤーが移動中 (Jogging、Crouch Walking または Walking) に Jump キーを押します。静止と移動という、 2 つの異なるアニメーションを使います。

  1. ステートマシン グラフで、 アセットブラウザ から Jump_From_Jog アニメーションをドラッグします。

    AnimBP_Jump1.png

  2. Jog_BS Jump_From_Jog 間の 遷移 を作成します。

  3. Jog_BS から Jump_From_Jog への 遷移ルール を開き、以下のグラフを作成します。

    AnimBP_Jump2.png

  4. ステートマシン グラフに戻り、 Jump_From_Jog から Jog_BS への 遷移ルール を開きます。

  5. 遷移ルール グラフで、 右クリック して TimeRemaining for 'Jump_From_Jog' ノードを追加します。

    AnimBP_Jump3.png

  6. 以下のグラフを作り直してルールを完了させます。

    AnimBP_Jump4.png

    これにより、Jog アニメーションから Jump するまでの残り時間が確認でき、 0.1 以下の場合は Jump から Jog Blend Space へ遷移させます。他のステートへ遷移する前に Jump アニメーションを確実に終了させる便利な方法です。

  7. ステートマシン グラフへ戻り、 Walk_BS Jump_From_Jog 間の 遷移 を作成します。

    AnimBP_Jump5.png

  8. Walk_BS から Jump_From_Jog への 遷移ルール を開き、以下のようにグラフを作り直します。

    AnimBP_Jump6.png

  9. ステートマシン グラフに戻り、 Jump_From_Jog から Walk_BS への 遷移ルール を開きます。

  10. 移行ルール 内のグラフを以下のように作り直します。

    AnimBP_Jump7.png

  11. ステートマシン グラフで、 アセットブラウザ から Jump_From_Stand アニメーションをドラッグします。

    AnimBP_JumpStand1.png

  12. Idle_Rifle_Hip Jump_From_Stand 間の 遷移 を作成します。

  13. Idle_Rifle_Hip から Jump_From_Stand への 遷移ルール を開きます。

    AnimBP_JumpStand2.png

  14. 遷移ルール 内でグラフを以下のように作り直します。

    AnimBP_JumpStand3.png

    プレイヤーが Jump キーを押すとしゃがんでいないことを、ここで確認します。

  15. ステートマシン グラフに戻り、 Jump_From_Stand から Idle_Rifle_Hip への 遷移ルール を開きます。

  16. 移行ルール 内のグラフを以下のように作り直します。

    AnimBP_JumpStand4.png

    これにより、ジャンプ アニメーションが終了するとキャラクターはアイドルに戻ります。

  17. Animation ブループリントを コンパイル 保存 します。

9.Animation ブループリント - Prone ステート

最後のセクションでは、 Prone ステートおよびその移行を追加して ステートマシン を完了します。

  1. ステートマシン グラフで、 アセットブラウザ から Stand_To_Prone アニメーションをドラッグします。

    AnimBP_StandToProne1.png

  2. Idle_Rifle_Hip から Stand_To_Prone への 移行 を作成し、 移行ルール をクリックします。

    AnimBP_StandToProne2.png

  3. Idle_Rifle_Hip から Stand_To_Prone への 移行ルール を開いて、以下のグラフを再度作成します。

    AnimBP_StandToProne3.png

  4. ステートマシン グラフに戻り、 アセットブラウザ から Prone_Idle アニメーションをドラッグします。

    AnimBP_ProneIdle1.png

  5. Stand_To_Prone から Prone_Idle への 移行 を作成します。

  6. Prone_To_Stand アニメーションを アセットブラウザ からドラッグして Prone_Idle から Prone_To_Stand への 移行 を作成します。

  7. Prone_To_Stand から Idle_Rifle_Hip への 移行 を作成します。

  8. Stand_To_Prone から Prone_Idle への 移行ルール をクリックします。

    AnimBP_ProneIdle2.png

  9. 移行ルール [Details] パネルで、 BlendSetting Duration (持続時間) 0.0 に設定します。

    AnimBP_StandToProne1b.png

  10. Stand_To_Prone から Prone_Idle への 移行ルール を開きます。

  11. 遷移ルール 内でグラフを以下のように作り直します。

    AnimBP_ProneIdle3.png

    Prone がまだ True になっているか、そして Idle Prone ステートになる前に Prone になったアニメーションが終了しているかどうかを確認します。

  12. ステートマシン グラフに戻り、 Prone_Idle から Prone_To_Stand への 移行ルール を開きます。

    AnimBP_ProneIdle4.png

  13. 遷移ルール 内でグラフを以下のように作り直します。

    AnimBP_ProneIdle5.png

    Prone が true でなくなっている場合、立った姿勢へ戻るシーケンスを開始します。

  14. Prone_To_Stand から Idle_Rifle_Hip への 移行ルール をクリックします。

    AnimBP_ProneToStand1.png

  15. 移行ルール [Details] パネルで、 BlendSetting Duration (持続時間) 0.0 に設定します。

    AnimBP_ProneToStand1b.png

  16. Prone_To_Stand から Idle_Rifle_Hip への 移行ルール を開き、以下のグラフを作成します。

    AnimBP_ProneToStand2.png

    == ノードが False (チェックが外されている) に設定されていること、つまり Prone が true ではないようにします。

  17. ステートマシン グラフ全体は、このような感じになっているはずです (設定によってノードの配置は異なります)。

    画像をクリックしてフルサイズで表示

  18. Animation ブループリントを コンパイル 保存 します。

  19. コンテンツ ブラウザ に戻り、「 AnimStarterPack 」フォルダ、次に Prone_To_Stand アニメーションを開きます。

  20. [Anim Asset Details] ウィンドウで、 [Animation] セクションの Rate Scale 値を 1.4 に設定します。

    ProneToStand_Rate.png

    これにより、アニメーションの再生レートが若干速くなり、 Prone から Standing への移行がスムーズに見えます。

  21. コンテンツブラウザ とメイン ツールバーの [保存] ボタンをクリックして、アセットとレベルを保存します。

  22. [Play (プレイ)] ボタンをクリックして、エディタで再生します。

完全にアニメートされ、レベル内で様々な動き方をするキャラクターが出来上がりました。歩く、しゃがんで歩く、小走り、 (静止姿勢あるいは移動姿勢からの) ジャンプ、Standing ステートあるいは Jogging ステートからProne (前かがみ)、といった動きが可能です。

このステートマシンにはまだ他のステート (デス (機能停止)、再ロードなど) の追加が可能ですし、既存の動きを独自のものにスワップアウトすることができます。いずれにしても、 ブループリント でのキャラクターの移動の設定方法、 Animation ブループリント を使ったアニメーション ステートの定義方法、 Blend Spaces でのアニメーションのブレンド方法を理解できていることでしょう。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる