Choose your operating system:
Windows
macOS
Linux
キャラクターの移動 を作成するには、いくつかの構成要素が必要で、それらが互いに作用することで、最終的にゲーム内でキャラクターが移動します。必要なものは、キャラクター、キャラクターへの入力、プレイヤーからの入力に対するキャラクターの反応方法、キャラクター移動用のアニメーション、アニメーション間の遷移、アニメーション間の遷移を成り立たせるロジックです。
このガイドでは、ブループリントで全ての設定をゼロから行う方法を紹介し、シリーズの最後には、様々な動き方を表現できるプレイ可能なキャラクターが完成します。
実装ガイド
クイックスター ガイドでは、 ブループリント を使って完全にプレイ可能かつアニメートされたキャラクターを作成するために必要な作業を段階的に説明します。このガイドは最後に、歩く、走る、しゃがむ、しゃがんで歩く、前かがみになる、静止した立ち姿勢または動作しながらジャンプするなどの動きができるキャラクターを完成する内容になっています。
完成品のサンプルはこちらのビデオで紹介されています。
以下のステップでは Animation Starter Pack を使用します。これは、キャラクターの移動を作成できるアニメーションが幾つか含まれており、 マーケットプレイス から無料でご利用いただけます。Animation Pack をダウンロードすると、ランチャーの [Add to project (プロジェクトに追加する)] ボタンで既存プロジェクト (できれば新規のブランク プロジェクト) に追加してから、アセットを追加するプロジェクトを指定することができます。
最初に、次の手順を行います。
1. キャラクターを設定する
キャラクターで使うアセットを幾つか作成することから開始します。まず最初にキャラクターのアニメーションを操作するための Animation ブループリント (ステップの中で後ほど実装していきます) を作成し、次にキャラクターのアクションや入力への反応方法のロジックを司る Character ブループリント を作成します。
このプロジェクトでは Animation Starter Pack を使用します。 マーケットプレイス から無料でご利用いただけます。Animation Starter Pack をダウンロードしたら、ランチャーの [Add to project] ボタンで既存プロジェクト (できれば新規のブランク プロジェクト) に追加します。これで、アセットを追加するプロジェクトを指定することができます。
ブランクのプロジェクトから開始するために、 Blank Project テンプレートを使用します。
-
プロジェクトを開いたら、 コンテンツブラウザ を 右クリック して、 [New Asset (新規アセット)] を選択し、 [Animation] そして [Animation Blueprint] を選択します。
-
[Target Skeleton] ウィンドウで UE4_Mannequin_Skeleton アセットを選択します。
-
Animation ブループリント に「 MyAnimationBlueprint 」などの名前を付けます。
-
コンテンツブラウザ を 右クリック して、 [Blueprint Class] から [Character] をクラスとして選択します。
-
「 MyCharacter 」などの名前を付けて開きます。
-
[Component] ウィンドウで、 Mesh コンポーネントをクリックします。
-
[Details] パネルで [Skeletal Mesh] の隣にある [None] ボックスをクリックして、 SK_Mannequin_Skeleton スケルタルメッシュを割り当てます。
-
Transform で Z に対する Location と Rotation を -90 に設定し、ステップ 1 で作成した Animation ブループリント に割り当てます。
-
[Add Component] ボタンをクリックして、 Spring Arm コンポーネントを追加します。
-
[Details] パネルで Z に対する Location を 50 に、 Z に対する Socket Offset を 30 に設定して、 [Use Pawn Control Rotation] にチェックを入れます。
Spring Arm コンポーネントは、 Camera と一緒に使ってサードパーソン視点を作成します。
-
[Add Component] ボタンをクリックして、 Camera コンポーネントを追加します。
-
[Components] ウィンドウ の Camera をクリックして Spring Arm 上にドラッグし、 Spring Arm Component の子を作成します。
-
Camera の [Details] パネルで、 [Transform] の [Location] と [Rotation] の値をゼロアウトします。
-
[Component] ウィンドウ で、 Character Movement コンポーネントをクリックします。
-
[Details] パネルで Rotation を検索して、 [Character Movement] の以下のボックスにチェックを入れます。
-
次に Walk Speed を検索して、 Max Walk Speed を 200 に、 Max Walk Speed Crouched を 160 に設定します。
お好きな値に設定することができますが、適切な値を選んでください。
-
[MyBlueprint] ウィンドウで [Create Variable] ボタンをクリックし、 JogPressed という Bool を作成します。
-
次の 4 つの Bool 変数を作成します。 CrouchPressed 、 PronePressed 、 JumpPressed 、 DisableMovement
-
コンパイル し 保存 してから、ブループリントを終了します。
2. 入力とゲームモード
このページでは、キャラクターを制御する 入力 (ゲーム制御) を設定し、キャラクターを使用する ゲームモード を作成します。
-
コンテンツブラウザ 内を 右クリック して Game Mode クラスの Blueprint クラス を作成し、「 MyGame 」と名前を付けます。
-
MyGame ブループリントを開いて、ツールバーの [Class Defaults] ボタンをクリックします。
-
[Details] パネルの [Classes] で、 Default Pawn Class が MyCharacter ブループリントを使用するように設定します。
-
コンパイル し 保存 してから、ブループリントを終了します。
-
メインのエディタ ウィンドウの メニュー バー の [Edit] をクリックし [Project Settings] を選びます。
-
プロジェクト設定で [Engine] セクションの [Input] をクリックします。
-
Bindings に Action Mappings と Axis Mappings を 4 つずつ追加します。
-
始めの 2 つの Axis Mappings は、それぞれの隣にあるプラス記号をクリックして、マッピングをグループに追加します。
空のバインディングはこのようになります。
-
Bindings を以下のように設定します ( Scale を A 、 S そして Mouse Y を -1.0 に設定するようにしてください)。
ここで Action Mappings を Jump 、 Crouch 、 Jog 、 Prone に、 Axis Mappings を MoveForward 、 MoveRight 、 Turn 、 LookUp に設定します。以下のように設定するか、それぞれ自分で入力を選ぶことができます。
このプロセスに関する詳細は、「ブループリントの入力の設定方法」を参照してください。
-
Project Settings の [Project] セクションの [Maps & Modes] オプションをクリックします。
-
Maps & Modes の Default Modes で、 Default GameMode が MyGame ゲームモードを使用するように設定します。
ゲームモードに関する詳細は「 ゲームモードをセットアップする 」を参照してください。
-
入力とゲームモードの設定が完了したら、[Project Settings] ウィンドウを終了します。
3. キャラクター設定の完了
このセクションでは、プレイヤー入力に合わせてキャラクターを制御するスクリプトを実行して、キャラクター設定を完了させます。
-
MyCharacter ブループリントを開きます。
-
グラフ内で InputAxis MoveForward Event と InputAxis MoveRight Event を 右クリック して追加します。
-
Control キーを押したまま DisableMovement 変数をドラッグし、各イベントの Branch の Condition に接続します。
-
残りのノード ネットワークを以下のように設定します。
画像をクリックしてフルサイズで表示
DisableMovement が False の場合のみ、キャラクターの移動が可能になります。これは、アニメーションが存在しないのに、キャラクターが移動してしまうことを防ぐためです。これは、アニメーションが存在しないのに、キャラクターが移動してしまうことを防ぐためです。Prone Idle アニメーションはあっても、Prone Crawl アニメーションがない場合などです。前かがみになった時にプレイヤーが地面に滑り落ちないようにするために、移動を無効にします。
-
右クリック して InputAxis Turn Event と InputAxis LookUp Event を追加します。
-
Turn Event を Add Controller Yaw Input ノードに、 LookUp Event を Add Controller Pitch Input ノードに接続します。
-
グラフ内を 右クリック して、 InputAction Jog Event を追加します。
-
[MyBlueprint] ウィンドウで、 [Show inherited variables] チェックボックスをクリックし、 Control キーを押しながら、 CharacterMovement をグラフへドラッグします。
-
Alt キーを押しながら Jog Pressed 変数をドラッグしたら、 Control キーを押しながら Crouch Pressed 変数をドラッグします。
-
適切な 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 ステートモードになり、適宜元に戻るようになります。
-
グラフ内を 右クリック して、 InputAction Crouch Eventを追加します。
-
Alt キーを押しながら Crouch Pressed 変数をドラッグしたら、 Control キーを押しながら Jog Pressed 変数と Prone Pressed 変数をドラッグします。
-
適切な 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 に戻します。
-
グラフ内を 右クリック して、 InputAction Prone Event を追加します。
-
Alt キーを押しながら Prone Pressed 変数と DisableMovement 変数をドラッグします。
-
Control キーを押しながら、 Crouch Pressed 変数をドラッグします。
-
適切な Set ノードの Prone Pressed がチェックされるように、ノード ネットワークを以下のように設定します。
画像をクリックしてフルサイズで表示
Prone スクリプトの場合、まず Crouched ステートかどうかを確認します。Crouched の場合はキャラクターは Prone ステートにはなれません (前述の通り、それ用の遷移アニメーションがありません)。そこで FlipFlop ノードをここでも使い、 Prone ステート間の切り替えを行います。
1 回目に押す時は、 Prone Pressed と DisableMovement が両方 True に設定されて、Prone ステートになりキャラクターの移動は無効にされます。2 度目を押すと、Prone ステートを終了するために Prone Pressed が false に設定されて、再度移動が可能になるまで若干遅れ ( 1.4 に設定) を加えます (立っている状態にアニメーションが戻る途中でプレイヤーが移動しないようにするためです)。
-
グラフ内を 右クリック して、 InputAction Jump Event を追加し、 [MyBlueprint] ウィンドウから CharacterMovement コンポーネントをドラッグします。
-
Alt キーを押しながら Jump Pressed 変数をドラッグしたら、 Control キーを押しながら DisableMovement 変数と CrouchPressed 変数をドラッグします。
-
適切な 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 は、以下の方法で設定します。
-
コンテンツ ブラウザ 内を 右クリック して、 [Animation] そして [Blend Space] を選択してアセットを新規作成します。
-
[Pick Skeleton] ウィンドウで、スケルトン ( UE4_Mannequin_Skeleton ) を選び、アセットに「 Walk_BS 」という名前を付けます。
-
Walk_BS ブレンドスペースを開き、 [Parameters] の、 X Axis Label を Direction に、 Y Axis Label を Speed に設定します。
-
X Axis Range を -180 から 180 に、 X Axis Divisions を 4 に設定します。
-
Y Axis Label を Speed に、 Y Axis Range を 0 から 200 に、そして Y Axis Divisions を 4 に設定します。
-
X 軸と Y 軸の両方の値を設定したら、 [Apply Parameter Changes] ボタンをクリックします。
適用をクリックすると、移動アニメーションのブレンドの判断に使う入力値を使用するために、 [Parameter] ウィンドウの左側のグリッドスペースが更新されます。
-
[Asset Browser] ウィンドウで rifle ironsights アニメーション (これらの動作をキャラクターに使います) を検索します。
-
Walk_Fwd_Rifle_Ironsights アニメーションを見つけたら、ドラッグ&ドロップして、グリッドスペースの中央下に置きます。
これにより、グリッドスペース上にリファレンス用のポイントが作成されます。
-
Walk_Lt_Rifle_Ironsights アニメーションと Walk_Rt_Rifle_Ironsights アニメーションをグリッドの歩行前方ポイントの左右にドラッグします。
上記の Walk_Lt_Rifle_Ironsights (L) 、 Walk_Fwd_Rifle_Ironsights (F) 、 Walk_Rt_Rifle_Ironsights (R) がグリッド上に表示されます。
-
Walk_Bwd_Rifle_Ironsights アニメーションをドラッグし、左下隅と右下隅に配置します。
-
下部の左から右と同様のレイアウト (Bwd、 Lt、 Fwd、 Rt、 Bwd) を、グリッドの上部にも繰り返します。
マウスをグリッド上に移動させると、キャラクターは歩いたり方向間でブレンドします。
-
Sample Interpolation の Anim Asset Details で、 Target Weight Interpolation Speed Per Sec を 2.0 に設定します。
こうすると、方向が変わる時に、スムーズにブレンドされます。
-
Walk_BS Blend Space ウィンドウを 保存 してから終了します。
-
コンテンツブラウザ で Walk_BS アセットを 右クリック し [Duplicate] を選択します。
-
コピーの名前を「 Jog_BS 」に変えて開きます。
-
[Parameters] で Y Axis Range 最大値を 200 から 375 に変えて適用をクリックします。
375 という値は、 MyCharacter ブループリントで設定した Jog の速度を表します。
-
速度の最大値を使用するためにグリッドは更新されますが、グリッド上のポイントは更新前のままとなります。
-
左クリック して各位置のグリッドの上部まで、ポイントを移動します。
-
[Asset] ウィンドウで、 Jog アニメーションを探します。
-
Jog アニメーションをグリッド上の Walk ポイントにドラッグして、グリッド上で歩くアニメーションを走るアニメーションに変えます。
グリッドの上と下に沿って、 Jog (Bwd, Lt, Fwd, Rt, Bwd) Rifle アニメーションを使っています。
-
保存 してから [ Jog_BS Blend Space] ウィンドウを閉じます。
-
Jog_BS を複製し、その名前を「 Crouch_BS 」に変更して開きます。
-
[Parameters] で Y Axis Range 最大値を 375 から 160 に変えて適用をクリックします。
-
アセットブラウザ で rifle ironsights を検索します。
-
グリッド上のポイントを、それぞれの Crouch_Walk アニメーションに置き換えます。
-
保存 してから [ Crouch_BS Blend Space] ウィンドウを閉じます。
5. Animation ブループリント - Idle ステートと Walk ステート
このセクションでは、プレイヤーがゲーム内で取るアクションに合わせて、どのアニメーションを再生するかを判断する Animation ブループリント を設定します。その後で ステートマシン を設定し、 Idle と Walk ステートを作成し、両ステート間の遷移を設定します。
Animation ブループリント に関する詳細は、「 Animation ブループリント 」ドキュメントを参照してください。
Animation ブループリントは以下の方法で設定します。
-
MyAnimationBlueprint アセットを探して開きます。
-
MyBlueprint ウィンドウに 4 つの Bool 変数 ( IsJumping 、 IsCrouching 、 IsJogging 、 IsProne ) を作成します。
-
Float 変数を 2 つ ( Speed と Direction ) 作成します。
-
[MyBlueprint] ウィンドウで、 イベントグラフ を ダブルクリック して イベントグラフ タブを開きます。
-
Event Graph で、以下のように設定をして、 [Compile] ボタンをクリックします。
画像をクリックしてフルサイズで表示
上のグラフでは、プレイヤー キャラクターの方向と速度を取得し、Animation ブループリント内で使用する変数にそれらを割り当てます。プレイヤーが取るアクションに対応する MyCharacter ブループリントからも変数を取得します ( Try Get Pawn Owner ノードをドラッグし、Character ブループリントへ キャスト します)。そしてこれらの変数は、いつ Animation ステートに移行/ Animation ステートから移行するかを判断する Animation ブループリント内の変数に渡されます。
-
[Anim Graph] タブをクリックし、グラフ内を 右クリック して State Machine を見つけて追加します。
-
State Machine に名前を付けて、 Final Animation Pose ノードに接続します。
-
State Machine を ダブルクリック して開きます。
-
Asset Browser ウィンドウで、 Idle を探して Idle_Rifle_Hip アセットをグラフにドラッグします。
-
Entry ノードを Idle_Rifle_Hip ノードに接続して、 [Compile] をクリックします。
プレビュー ウィンドウでキャラクターがアイドルになっていることが確認できます。
-
[Asset Browser] ウィンドウで、 Walk_BS を検索し、グラフにドラッグします。
-
Walk_BS を ダブルクリック し、 [My Blueprint] タブから Control を押したまま Speed 変数と Direction 変数をドラッグします。
上図のように接続します。キャラクターからの値を Blend Space に設定していきます。
-
[Walk_BS] タブを閉じ、ステートマシン グラフで Idle_Rifle_Hip から Walk_BS への 遷移 を作成します。
-
Walk_BS から Idle_Rifle_Hip への 遷移 を作成し、 Idle_Rifle_Hip から Walk_BS への Transition Rule (遷移ルール) を ダブルクリック します。
Transition Rule は、ステートマシンがいつアニメーション ステート間を移動するか判断します。
-
Transition Rule 内のグラフを、以下のように作り直します。
上記のスクリプトで、プレイヤー キャラクターが宙に浮いていないこと (落下またはジャンプのいずれかによって) 、そして現在の速度が 160 より大きくなっていることを確認し、そうなっていれば Idle から Walk への遷移が起こるようにします。
-
ステートマシン グラフに戻り、 Walk_BS から Idle_Rifle_Hip への Transition Rule を開きます。
-
Transition Rule 内のグラフを、以下のように作り直します。
キャラクターの速度が 160 未満だと遷移できるようにします。
-
Animation ブループリントを コンパイル し 保存 します。
6. Animationブループリント - Crouch ステート
引き続き Animation ブループリント と ステートマシン を使って、このセクションでは Crouch ステートに焦点を当てていきます。
-
ステートマシン グラフの MyAnimationBlueprint で、 アセットブラウザ から Crouch_BS Blend Space をドラッグしてきます。
-
Crouch_BS から Walk_BS へ、また Walk_BS から Crouch_BS への 遷移 を作成します。
-
Crouch_BS を ダブルクリック し、 Direction と Speed 変数をドラッグしてきて Blend Space に接続します。
-
ステートマシン グラフに戻って Walk_BS から Crouch_BS への 遷移ルール を開き、以下のグラフを再度生成します。
ここでは、Crouch キーが押され速度が 0 より大きい場合、プレイヤーがしゃがんだ状態で歩くことができます。
-
ステートマシン グラフに戻って Crouch_BS から Walk_BS への 遷移ルール を開き、グラフを以下のように作り直します。
今度は、しゃがんでいない状態で速度が 0 より大きい場合、プレイヤーは再び Walking ステートへ戻ることができるようになります。
-
ステートマシン グラフに戻って アセットブラウザ で Crouch_Idle_Rifle_Hip アニメーションをグラフへドラッグします。
-
Crouch_BS から Crouch_Idle_Rifle_Hip へ、また Crouch_Idle_Rifle_Hip から Crouch_BS へ戻る 遷移 を作成します。
-
さらに Crouch_Idle_Rifle_Hip から Idle_Rifle_Hip へ、また Idle_Rifle_Hip から Crouch_Idle_Rifle_Hip へ戻る 遷移 を作成します。
ここで、 Crouch Walk から Crouch Idle (および Crouch Idle から Crouch Walk) になる移行を設定します。Crouch Idle から Standing Idle (および Standing Idle から Crouch Idle) になる遷移を設定します。
必要であれば、遷移がスムーズになるように、グラフ上でノードを移動させることもできます。
-
Idle_Rifle_Hip から Crouch_Idle_Rifle_Hip への 遷移ルール を開きます。
-
この 遷移 に必要なことは、 IsCrouch が True であることだけです。
-
ステートマシン グラフに戻り、 Crouch_Idle_Rifle_Hip から Idle_Rifle_Hip への 遷移ルール を開きます。
-
この 遷移 に必要なことは、 IsCrouch が False であることだけです。
-
ステートマシン グラフに戻り、 Crouch_BS から Crouch_Idle_Rifle_Hip への 遷移ルール を開きます。
-
遷移ルール のグラフを以下のように作り直します。
プレイヤーがしゃがんでいて速度が 0 の場合、アニメーションは Crouch Idle になります。
-
ステートマシン グラフに戻り、 Crouch_Idle_Rifle_Hip から Crouch_BS への 遷移ルール を開きます。
-
遷移ルール のグラフを以下のように作り直します。
プレイヤーがしゃがんでいて速度が 0 より大きい場合、 Crouch Walk の Blend Space になります。
-
Animation ブループリントを コンパイル し 保存 します。
7. Animation ブループリント - Jog ステート
引き続き Animation ブループリント と ステートマシン を使って、このセクションでは Jog ステートへの遷移、Jog ステートからの遷移の設定を行います。
-
ステートマシン グラフに戻って アセットブラウザ で Jog_BS をグラフにドラッグします。
-
Jog_BS を開いて Speed 変数と Direction 変数をドラッグして以下のように接続します。
-
ステートマシン グラフに戻ります。
-
Crouch_Idle_Rifle_Hip から Jog_BS へ、また Jog_BS から Crouch_Idle_Rifle_Hip へ戻る 遷移 を作成します。
-
Crouch_Idle_Rifle_Hip から Jog_BS への Transition Rule (遷移ルール) を開いて、以下のグラフを再度作成します。
Jogging が True でプレイヤーの速度が 0 より大きい場合、 Jogging Blend Space になります。
-
ステートマシン グラフに戻り、 Jog_BS から Crouch_Idle_Rifle_Hip への Transition Rule を開きます。
-
Transition Rule 内のグラフを以下のように作成します。
ここで、プレイヤーが Crouch ステートから Jog ステートになれるようにします (走るのをやめたら Crouch に戻ります)。
-
ステートマシン グラフに戻り Crouch_BS から Jog_BS へ、および Jog_BS から Crouch_BS への 遷移 を作成します。
-
Crouch_BS から Jog_BS への Transition Rule (遷移ルール) を開き、以下のグラフを作成します。
これはプレイヤーがしゃがんでいるかをちぇっくし、 左側の Shift (Jog キー) が押されると、プレイヤーが Jog ステートに遷移します。
-
ステートマシン グラフに戻り、 Jog_BS から Crouch_BS への 遷移ルール を開きます。
-
遷移ルール 内でグラフを以下のように作り直します。
ここで、プレイヤーがゆっくり走っているかをチェックし、 C (Crouch キー) が押されると、プレイヤーが Crouch walk (しゃがみ歩き) ステートに遷移します。
-
ステートマシン グラフに戻り Jog_BS から Idle_Rifle_Hip への 遷移 を作成します。
-
Jog_BS から Idle_Rifle_Hip への 遷移ルール を開き、以下のグラフを作成します。
-
ステートマシン グラフに戻り Jog_BS から Walk_BS へ、また Walk_BS から Jog_BS への 遷移 を作成します。
-
Jog_BS から Walk_BS への 遷移ルール を開き、以下のグラフを再度作成します。
-
ステートマシン グラフに戻り、 Walk_BS から Jog_BS への 遷移ルール を開きます。
-
遷移ルール 内でグラフを以下のように作り直します。
-
Animation ブループリントを コンパイル し 保存 します。
8.Animation ブループリント - Jump ステート
ステートマシン 内で Jump ステートを設定します。2 種類の Jump ステートを設定します。 1 つは静止した状態から、もう 1 つはプレイヤーが移動中 (Jogging、Crouch Walking または Walking) に Jump キーを押します。静止と移動という、 2 つの異なるアニメーションを使います。
-
ステートマシン グラフで、 アセットブラウザ から Jump_From_Jog アニメーションをドラッグします。
-
Jog_BS と Jump_From_Jog 間の 遷移 を作成します。
-
Jog_BS から Jump_From_Jog への 遷移ルール を開き、以下のグラフを作成します。
-
ステートマシン グラフに戻り、 Jump_From_Jog から Jog_BS への 遷移ルール を開きます。
-
遷移ルール グラフで、 右クリック して TimeRemaining for 'Jump_From_Jog' ノードを追加します。
-
以下のグラフを作り直してルールを完了させます。
これにより、Jog アニメーションから Jump するまでの残り時間が確認でき、 0.1 以下の場合は Jump から Jog Blend Space へ遷移させます。他のステートへ遷移する前に Jump アニメーションを確実に終了させる便利な方法です。
-
ステートマシン グラフへ戻り、 Walk_BS と Jump_From_Jog 間の 遷移 を作成します。
-
Walk_BS から Jump_From_Jog への 遷移ルール を開き、以下のようにグラフを作り直します。
-
ステートマシン グラフに戻り、 Jump_From_Jog から Walk_BS への 遷移ルール を開きます。
-
移行ルール 内のグラフを以下のように作り直します。
-
ステートマシン グラフで、 アセットブラウザ から Jump_From_Stand アニメーションをドラッグします。
-
Idle_Rifle_Hip と Jump_From_Stand 間の 遷移 を作成します。
-
Idle_Rifle_Hip から Jump_From_Stand への 遷移ルール を開きます。
-
遷移ルール 内でグラフを以下のように作り直します。
プレイヤーが Jump キーを押すとしゃがんでいないことを、ここで確認します。
-
ステートマシン グラフに戻り、 Jump_From_Stand から Idle_Rifle_Hip への 遷移ルール を開きます。
-
移行ルール 内のグラフを以下のように作り直します。
これにより、ジャンプ アニメーションが終了するとキャラクターはアイドルに戻ります。
-
Animation ブループリントを コンパイル し 保存 します。
9.Animation ブループリント - Prone ステート
最後のセクションでは、 Prone ステートおよびその移行を追加して ステートマシン を完了します。
-
ステートマシン グラフで、 アセットブラウザ から Stand_To_Prone アニメーションをドラッグします。
-
Idle_Rifle_Hip から Stand_To_Prone への 移行 を作成し、 移行ルール をクリックします。
-
Idle_Rifle_Hip から Stand_To_Prone への 移行ルール を開いて、以下のグラフを再度作成します。
-
ステートマシン グラフに戻り、 アセットブラウザ から Prone_Idle アニメーションをドラッグします。
-
Stand_To_Prone から Prone_Idle への 移行 を作成します。
-
Prone_To_Stand アニメーションを アセットブラウザ からドラッグして Prone_Idle から Prone_To_Stand への 移行 を作成します。
-
Prone_To_Stand から Idle_Rifle_Hip への 移行 を作成します。
-
Stand_To_Prone から Prone_Idle への 移行ルール をクリックします。
-
移行ルール の [Details] パネルで、 BlendSetting の Duration (持続時間) を 0.0 に設定します。
-
Stand_To_Prone から Prone_Idle への 移行ルール を開きます。
-
遷移ルール 内でグラフを以下のように作り直します。
Prone がまだ True になっているか、そして Idle Prone ステートになる前に Prone になったアニメーションが終了しているかどうかを確認します。
-
ステートマシン グラフに戻り、 Prone_Idle から Prone_To_Stand への 移行ルール を開きます。
-
遷移ルール 内でグラフを以下のように作り直します。
Prone が true でなくなっている場合、立った姿勢へ戻るシーケンスを開始します。
-
Prone_To_Stand から Idle_Rifle_Hip への 移行ルール をクリックします。
-
移行ルール の [Details] パネルで、 BlendSetting の Duration (持続時間) を 0.0 に設定します。
-
Prone_To_Stand から Idle_Rifle_Hip への 移行ルール を開き、以下のグラフを作成します。
== ノードが False (チェックが外されている) に設定されていること、つまり Prone が true ではないようにします。
-
ステートマシン グラフ全体は、このような感じになっているはずです (設定によってノードの配置は異なります)。
画像をクリックしてフルサイズで表示
-
Animation ブループリントを コンパイル し 保存 します。
-
コンテンツ ブラウザ に戻り、「 AnimStarterPack 」フォルダ、次に Prone_To_Stand アニメーションを開きます。
-
[Anim Asset Details] ウィンドウで、 [Animation] セクションの Rate Scale 値を 1.4 に設定します。
これにより、アニメーションの再生レートが若干速くなり、 Prone から Standing への移行がスムーズに見えます。
-
コンテンツブラウザ とメイン ツールバーの [保存] ボタンをクリックして、アセットとレベルを保存します。
-
[Play (プレイ)] ボタンをクリックして、エディタで再生します。
完全にアニメートされ、レベル内で様々な動き方をするキャラクターが出来上がりました。歩く、しゃがんで歩く、小走り、 (静止姿勢あるいは移動姿勢からの) ジャンプ、Standing ステートあるいは Jogging ステートからProne (前かがみ)、といった動きが可能です。
このステートマシンにはまだ他のステート (デス (機能停止)、再ロードなど) の追加が可能ですし、既存の動きを独自のものにスワップアウトすることができます。いずれにしても、 ブループリント でのキャラクターの移動の設定方法、 Animation ブループリント を使ったアニメーション ステートの定義方法、 Blend Spaces でのアニメーションのブレンド方法を理解できていることでしょう。