はじめに
Unreal Engine 5でドアの開閉処理を実装します。このチュートリアルでは、スタティックメッシュの準備から当たり判定の設定、ドアの開閉処理までを詳しく説明します。
※この記事ではUE5.3.2を使用しています。
今回は、このような処理を作成します。
ドアの開閉処理の作成方法
スタティックメッシュの準備
「 StarterContent 」がコンテンツ内のフォルダにあるか確認してください。

ない場合は、「 + 追加 」を押して、「機能またはコンテンツパックを追加…」を選択してください。

「コンテンツ」、「 StarterContent 」、「プロジェクトに追加」を押してください。

「 StarterContent 」を選択、「door」と検索します。
ドア枠と壁のスタティックメッシュをレベルに配置します。
※ドアのスタティックメッシュはブループリントの作成時に使用します。

右上のマークをクリックすると、複数画面で編集ができます。

ワイヤーフレームを使用すると、正確な位置を調整できます。

Blueprintの作成
コンテンツ内で右クリックして「新規フォルダ」を選択します。

フォルダ名は「Door」にしました。

「 Door」内で右クリックして「ブループリントクラス」を選択、「 Actor 」をクリックします。


Acorの名前を「 BP_Door 」にします。
「 BP_Door 」をダブルクリックして、ブループリントの編集画面を表示します。

「ビューポート」を選択、「 + 追加」の「 Static Mesh 」を追加します。

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

「SM_Door」を選択した状態で、詳細欄の「Static Mesh」のプルダウンメニューを開きます。

「Static Mesh」のプルダウンメニューで「door」と検索して「SM_Door」を選択します。

当たり判定の作成
「 + 追加」、検索で「coll」を入力して「 Box Collision 」を追加します。


拡大・縮小:「 1.75 」、「 1.75 」、「 3.25 」にします。

「Box Collision」は衝突の判定を行うので、ドアのアクタの大きさに合わせます。
パースペクティブをクリックすると上下左右などの画面を変更できます。位置の調節に便利です。


スナップサイズを小さくすると、細かい位置を調整できます。

このように「Box Collision」を設定します。

「 Box 」を右クリックして、「 On Component Begin Overlap 」と「 On Component End Overlap 」を追加してください。

「イベントグラフ」に切り替わり、ブループリントのノードが追加されます。
「 On Component Begin Overlap 」は、何かが重なった時、「 On Component End Overlap 」は、離れた時に実行される処理です。

「 On Component Begin Overlap 」の実行ピンから「Add Timeline」ノードを追加します。

「Add Timeline 」の名前を「DoorAngleRate」に変更します。「DoorAngleRate」をダブルクリックしてタイムラインの編集画面を表示します。

「+ トラック」をクリックして、「フロートトラックを追加」を選択します。

追加したトラックの名前は「Rate」にしました。ここでは、2つのキーを追加していきます。
右クリックして「CurveFloatにキーを追加」を選択してください。

時間を「0」値を「0」に設定します。

もう一度右クリックして、「CurveFloatにキーを追加」を選択します。
時間を「1」値を「1」に設定します。時間を「1」にすると、1秒かけて移動します。
※今回のドア開閉の場合、値を「1」:90度移動します。値を0.5:45度移動します。

「イベントグラフ」に戻って「DoorAngleRate」の「Update」ピンから「Set Relative Rotation」を追加します。

「Set Relative Rotation」の「New Rotation」で右クリックして「構造体ピンを分割」を選択します。

何もない所で右クリック、「 Lerp 」を追加します。

以下のようにノードを繋ぎ、「 Lerp 」の B を「90」に設定します。これで 90度向きが変わります。
「New Rotation Z(Yaw)」に繋ぐと、Z方向に回転します。
A:最小値
B:最大値(90の場合、最大90度の位置まで移動)
Alphaは「DoorAngleRate」の「フロートトラック」で設定した値「1」が出力されます。
※今回のドア開閉の場合、値を「1」:90度移動します。値を0.5:45度移動します。

「 On Component End Overlap 」と「Reverse」を繋ぎ、離れた時にドアが閉まるようにします。
「Reverse」は、逆に動作する処理です。

これでブループリントは完成です。

それでは、レベルにアクタを配置してみましょう。

ワイヤーフレームを使用して位置を微調整します。

ドアのスタティックメッシュにコリジョンをつけます。
「 StarterContent 」を選択、「door」と検索します。「SM_Door」をダブルクリックして編集画面を表示します。

「コリジョンプリミティブ数」が「0」の場合、すり抜けてしまいます。
「コリジョン」を選択して「ボックス単純化コリジョンを追加」を選択してコリジョンをつけます。

これで完成です。

ゲームプレイして確認してみましょう。
まとめ
今回はドアの開閉処理を実装する手順を解説しました。
スタティックメッシュの配置、当たり判定の設定、ブループリントの作成など、基本的なステップを理解できたと思います。これを応用すれば、ゲーム内のドアやゲートなどのアクションを制御できるようになります。
書籍で学びたい方はこちら >> UE5 おすすめ本 3選!初心者必見!
コメント