簡単なiPhone向け3Dゲームを作ろう
iPhone向けの3Dゲーム制作の練習シリーズです。
アンリアルエンジンでiPhone向けの3Dゲーム制作方法をまとめていきます。
細かな数値設定などの説明をしない場合もありますので、ご参考程度で確認ください。
※作業環境:UEバージョン5.5.1 Macbook Pro 2019年モデル iPhone11
私の使用したMacの性能だと、作業中の処理落ち、遅延が頻繁に発生しました。
もし同じような端末を使用する場合は、細目に保存することをお勧めします。
移動アニメーション追加
今回は、移動アニメーションを追加していきます。
移動モーションの移行条件を追加する
「ABP_Player」を開き、「New State Machine」画面に切り替えます。

前回までの処理状態は、こんな感じです。

「Idle」をドラッグして矢印を出し、適当な位置で離して、「Add State」をクリックします。

名前を「Run」に変更します。

「Run」から「Idle」へ矢印を繋げます。

こんな感じになります。

「Idle」から「Run」に伸ばした方の矢印の間にあるシンボルマークをダブルクリックします。

この画面に切り替わります。

「My Blueprint」内にある「VARIABLES」の横の「+」をクリックして、変数を追加します。

以前作成した「InAir」変数の下に新しい変数が追加されるので、型を「Boolean」から「Float」に変更し、名前を「Speed」にします。

こんな感じになります。

作成した「Speed」変数をドラック&ドロップします。

「Get Speed」と「Set Speed」のどちらにするかの選択肢が表示されるので、「Get Speed」をクリックします。

「Speed」のGetノードが配置できました。

「Speed」ノードから「Greater (>)」ノードを呼び出します。

「Greater (>)」ノードが配置できました。

「Greater (>)」ノードと「Result」ノードを繋げます。

「New State Machine」画面に切り替えて、これと同じような処理を組んでいきます。

「Run」から「Idle」に伸ばした方の矢印の間にあるシンボルマークをダブルクリックします。

画面が切り替わるので、「Speed」変数のGetノードを配置し、「Equal (==)」ノードを呼び出します。

「Equal (==)」ノードと「Result」ノードを繋げます。

これで、プレイヤーの移動速度が0になったら、待機中モーションになり、0より大きいなら、移動モーションに切り替える条件が作成できました。
移動モーションを追加する
移動モーションを追加していきます。
「New State Machine」画面に切り替えます。

「Run」をダブルクリックします。

画面が切り替わります。

「Asset Browser」内の移動アニメーションファイルを選択して、ドラック&ドロップします。

今回は「Anim_1_rig」になります。
配置した「Anim_1_rig」と「Output Animation Pose」を繋げます。

「Anim_1_rig」を選択した状態で、「Details」の「Loop Animation」にチェックを入れます。

「Compile」します。

プレイヤーの移動スピードを取得する
プレイヤーの移動スピードを取得し、アニメーションに反映できるようにしていきます。
「Event Graph」画面に切り替えます。

前回作成したジャンプの処理があると思うので、これに追加していきます。

「Event BlueprintUpdateAnimation」ノードから「Struct」の「is Valid」ノードを呼び出します。

「Is Valid」ノードが配置できました。

「Try Get Pawn Owner」ノードと「Is Valid」ノードを繋げます。

「Try Get Pawn Owner」ノードから「Get Velocity」ノードを呼び出します。

「Get Velocity」ノードが配置できました。

「Get Velocity」ノードから「Vector Length」ノードを呼び出します。

「Vector Length」ノードが配置できました。

「Is Valid」ノードのOutputピン「Is Valid」と「In Air」ノードの繋がりを解除しておきます。

「My Blueprint」内にある「VARIABLES」の「Speed」変数をドラック&ドロップします。

今回は「Set Speed」をクリックし、「Is Valid」ノードに繋げます。

「Vector Length」ノードと「Speed」ノードを繋げます。

「Speed」ノードと「In Air」ノードを繋げます。

「Compile」します。

ノード全体は、こんな感じになります。

これでテストプレイして走りながらジャンプしようとすると、ジャンプのアニメーションが反映されていないことが分かると思います。

アニメーションの流れを変更する
現状、止まった状態からしかジャンプアニメーションに切り替わりません。
移動しているときもジャンプアニメーションが反映されるように変更していきます。
「New State Machine」画面に切り替えます。

「Run」と「Jump」ノードを繋げます。

「Jump」と「Idle」間で作成した処理をコピーします。(Resultノードは不要)

「Jump」から「Run」の間のシンボルマークをダブルクリックします。

コピーした処理を貼り付けて、「Result」ノードと繋げます。

「Run」から「Jump」への処理も追加します。

こちらは「In Air」ノードと「Result」ノードを繋げるだけです。

「New State Machine」画面に切り替え、下の写真のように整理します。

このとき「Idle」と「Jump」との繋ぎは削除します。
テストプレイしてみると、走りながらのジャンプアニメーションが反映されています。

移動アニメーション追加完了
今回はここまでです。
次回は「サブレベルを設定する」です。
前後記事
他の記事を探す
他の記事も気になる方は、以下の記事の目次を確認ください。