【Unreal Engine 5】一人称で歩行可能なキャラクターを一から作成するシンプルな方法 Unreal Engine 5.3
注意
私はUnreal Engine 5の超初心者です。あくまでこの記事は自分用ですがもし私と同じような悩みを持っている人のためになれば幸いです。故に、所々私の理解が足りていない部分があります。
疑問に思った部分は自分で一度調べることをお勧めします。
(またnoteで何かを書くのも慣れていないためつたない点が多いと思います)
下準備
初めに新しい学習用レベルを作ります。まずコンテンツブラウザでAll→コンテンツの下に「maps」フォルダーを作成します。次に左上のファイル→新規レベル…→Basicを選び新しいレベルを作成します。下のようなレベルが作成されるはずです。
一度このレベルを保存します。ctrl+sでウィンドウが出てきたら保存場所を先ほどの「maps」に指定し、名前をtest_walkにして保存します。
次にコンテンツブラウザに今回作成するデータを入れるためのファイルを作ります。All→コンテンツの下に「player」フォルダーを作成します。
Input Actionの作成
コンテンツブラウザで、左上の「追加」をクリックし、入力→入力アクションを5個追加します。
それぞれ名前を「IA_Jump」「IA_Look」「IA_MoveRight」「IA_MoveForword」「IA_Turn」に変更します。
次に「IA_Look」「IA_MoveRight」「IA_MoveForword」「IA_Turn」の中身を変更していきます。それぞれダブルクリックし、Value TypeをAxis1Dに変更します。「IA_Jump」は変更しなくて大丈夫です。
マッピング
次に再度コンテンツブラウザでplayerフォルダーを選択した状態で左上の「追加」をクリックし、入力→入力マッピングコンテキストを選択します。(図4参照)作成した入力マッピングコンテキストの名前をPlayerActionに変更します。
ダブルクリックでウィンドウを開き以下のような設定に変更します。順番に解説していきます。
Mappingsの隣の+を押し、新たなマッピング項目を作成したら、「なし」をクリックし「IA_Jump」を選択します。その右にある+をクリックし、割り当てる入力を設定します。ここではジャンプを設定したいので、スペースバーにします。
Mappingsの隣の+を押し次はIA_MoveForwordを割り当てます。今度は割り当てる項目を2つ設定します。前方と後方に進むキーなのでそれぞれWキーとSキーにします。Sキーの下のModifiersにNegateを追加します。Negateとはざっくり説明すると入力を反転させる設定です。
同じ要領でIA_MoveRightも設定します。
次にIA_Lookを設定します。これは縦の視点移動なのでマウスのY軸を設定します。このままでは皆さんが普段慣れているマウス操作と反転してしまうのでここでもModifiersにNegateを設定します。
最後にIA_Turnを設定します。これは横の視点移動なのでマウスのX軸を設定します。Negateは設定しなくて大丈夫です。
最後にctrl+sで保存しておきます。
マッピングの有効化
playerフォルダー内で右クリックしブループリントクラスをクリックします。現われたウィンドウでPlayer Controllerを選択します。
作成したそれの名前をBP_PlayerControllerに変更します。アイコンをダブルクリックしブループリントを組んでいきます。
タブがイベントグラフになっていることを確認したら、イベントグラフ上で右クリックし検索欄にenhanced input localと入力しPlayer Controllerではない方のノードをクリックし取得します。
次に先ほど取得したノードのピンをドラッグして伸ばし検索にadd mapと入力してAdd Mapping Contextを取得します。
初期から配置されているEvent BeginPlayから実行ピンを伸ばしAdd Mapping Contextに接続します。次にAdd Mapping ContextのMappin Contextの下の項目にPlayerActionを適用します。
最後にコンパイルをクリックします。
Playerの作成
次に自分が操作するプレイヤーを作成します。playerフォルダー内で右クリックしブループリントクラスをクリックします。現われたウィンドウでCharacterを選択します。
作成したそれの名前をBP_Playerに変更します。アイコンをダブルクリックしブループリントを組んでいきます。
ビューポートタブに切り替えます。コンポーネントで追加をクリックし検索にcameraと打ち込みCameraを取得します。
コンポーネント上でCameraを選択しカメラの位置を下図のように調整します。
Cameraを選択した状態で詳細のカメラオプション内のUse Pawn Control Rotationにチェックを入れておきます。
次にイベントグラフタブに切り替えます。実際にキャラクターを動かすブループリントを組んでいきます。
初めに前後に進むブループリントを作成します。イベントグラフ上で右クリックし、検索にIA_と打ち込みEnhanced Action Eventsの中のIA_MoveForwordを選択します。
取得したEnhancedInputAction IA_MoveForwordの付近で右クリックし下図のようにAdd Movement Inputを選択します。
同じようにGet Actor Forward Vectorを取得します。
以下のように接続します。
以上を参考に下図のような左右の移動も作成してください。左の二つのノードが微妙に違う点に注意してください。
続いて視点を動かすブループリントを作成します。初めに縦方向の視点を作成します。先ほどのように右クリックから検索にIA_と打ち込みIA_Lookを選択します。取得したEnhancedInputAction IA_Lookの付近で右クリックし、Add Controller Pitch Input を取得し下図のように接続します。
同じように横方向の視点を作成します。EnhancedInputAction IA_Turnになっている点とAdd Controller Yaw Inputが違いますね。
最後にジャンプを実装します。今までと同じように右クリックでIA_と検索してEnhancedInputAction IA_Jumpを取得し、付近で右クリックしJumpというノードを検索し取得してください。実行ピンをつなげば完成です。
最後にコンパイルと保存をしておきましょう。
GameModeの作成
次にゲームモードを作成します。playerフォルダー内で右クリックしブループリントクラスをクリックします。現われたウィンドウでGame Mode Baseを選択します。
作成したそれの名前をBP_GameModeに変更します。アイコンをダブルクリックし設定を変更していきます。
クラスの項目のPlayer Controller ClassにBP_Player Controllerを割り当てます。次に、Default Pawn ClassにBP_Playerを割り当てます。
終わったらコンパイルと保存をしておきましょう。
ゲームモードオーバーライドの設定
レベルエディタに戻り、右上の設定からワールドセッティングを呼び出し、GameMode内のゲームモードオーバーライドにBP_GameModeを割り当てます。
完成
お疲れ様です。以上で完成です。レベルエディタで実行してみましょう。成功していればプレイヤーを操作できるはずです。動かない場合は一度ビューポートをクリックしてみましょう。
不明な点があればコメントにお願いします。
この記事が気に入ったらサポートをしてみませんか?