ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【ゼロからアンリアルエンジン5】㉖エル●ンリングな昇降機(エレベーター)を作ってみよう。=インターフェース経由でレバーを動かす編=

目次

 

はじめに

注意

UE5Preview2の現在の情報です。

今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。

 

前回エル●ンリングなエレベーターを作りました。

今回はレバーを作成しプレイヤーが動かせるようにします。

f:id:namiton:20220404123312p:plain

 

解説

①レバー用のブループリントの作成

コンテンツ右クリックからActorを親としたブループリントを作成。

名前をBP_ElevatorLeverにします。

f:id:namiton:20220404101116p:plain

 

コンポーネントの追加と編集

StaticMeshコンポーネントを3つ追加します。

名前を変更しておきましょう。

f:id:namiton:20220404101415p:plain

 

それぞれスタティックメッシュと位置、マテリアルを変更します。

 

▼SM_Trigger

f:id:namiton:20220404102148p:plain

f:id:namiton:20220404102213p:plain

 

 

▼SM_Body

f:id:namiton:20220404102317p:plain

 

 

▼SM_Lever

f:id:namiton:20220404103544p:plain

f:id:namiton:20220404122749p:plain

 

 

▼最終的にこんな感じになったらOKです。

f:id:namiton:20220404103553p:plain

 

コンポーネントの追加と編集

タイムラインでレバーが動く演出を作ります。

 

新規イベントPlayLeverAnimを作成します。

f:id:namiton:20220404104841p:plain

 

スイッチアニメーションのタイムラインをコピペしてLeverAnimationにリネームしたら画像のように組みます。

f:id:namiton:20220404104901p:plain

 

タイムラインにはフロートトラックをRotation_Xにリネームします。

f:id:namiton:20220404103106p:plain

 

構造体ピンを分解したRotationに画像のように組み込みます。

f:id:namiton:20220404103707p:plain

 

動作確認したいのでエディタからこのイベントを呼び出せるように変更しましょう。

 

イベントの詳細からエディタで呼び出すを有効にします。

f:id:namiton:20220404121253p:plain

 

レベル上に配置すると詳細のデフォルトの欄にこのイベントのボタンが出ます。

シミュレーション状態で押すとイベントの動作を確認できるのでやってみましょう。

f:id:namiton:20220404121638p:plain

タイムラインでレバーの速度などお好みで調整しましょう。

 

④インターフェースの解説と実装

1.インターフェースとは

インターフェースはアクタ間の参照を疎にする非常に強力な機能です。

特にキャラクターから別のアクタをキー入力で操作するときは使いどころです。

 

2.インターフェースの作成

コンテンツ右クリックからインターフェースを作成します。

名前はIF_SwitchEventです。

f:id:namiton:20220404111431p:plain

 

インターフェースの開いて関数Active/Deactiveの2種を作成します。

f:id:namiton:20220404111759p:plain

コンパイルしましょう。

 

3.インターフェースの呼び出し

BP_ThirdPersonCharacterのイベントグラフにキーイベントを作成します。

 

@などでキーノードを出します。

f:id:namiton:20220404112212p:plain

詳細からFに変更します。

f:id:namiton:20220404112234p:plain

 

インプットイベント

特定の入力に対して押したり離したりを検出するノード

コントローラーに制御されているアクタでしか使えない

f:id:namiton:20220404112248p:plain

 

BP_ThirdPersonCharacterのイベントグラフに画像のようにノードを組みます。

機能はコメントを付けているのでそちらをお読みください。

 

▼全体像

f:id:namiton:20220404114131p:plain

▼拡大

f:id:namiton:20220404113904p:plain

f:id:namiton:20220404114158p:plain

f:id:namiton:20220404113618p:plain

 

補足

・IFCallAcorはActor型です。
・CapsuleComponentはCharacterクラスが持っている変数です。



 

4.インターフェース呼び元の実装

BP_ElevatorLeverのクラス設定を開きます。

f:id:namiton:20220404120657p:plain

 

詳細からインターフェースを追加します。

f:id:namiton:20220404120724p:plain

 

するとマイブループリントのインターフェースの項目に作成した関数が表示されます。

f:id:namiton:20220404120820p:plain

 

Activeを右クリックしてイベントを作成します。

f:id:namiton:20220404122611p:plain

 

デバック用に作成したPlayLeverAnimを削除し代わりにこのイベントを接続します。

f:id:namiton:20220404122655p:plain

 

またDoOnceノードで遷移中の入力を除外します。

f:id:namiton:20220404123131p:plain

 

これでインターフェース経由の実装は完了です。

キャラ操作時にレバーに近づきFを入力するたびにレバーが動作すれば成功です!

f:id:namiton:20220404123312p:plain

 

次回はレバーでエレベーターを操作できるようにしましょう。

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。