見出し画像

【Unreal Engine5】C++を使うプロジェクトの準備

※注意※
・この記事はUnreal Engine 5でC++を用いてプロジェクトを作っていくためのものです(今回はありませんが、今後C++が普通に出てきます)
・これが必ずしも正しい!一番効率的!というものではないので、間違っている部分や考え方がおかしい部分もあることをご承知おきください(本業が企画職なので知識が浅いです)

上記内容でも気になるという方は続きをお読みください。

◆前準備◆
作ったソースコードをビルドする環境をUEで構築します。

使うもの
・VisualStudio Code

構築方法の参考になったところ
公式
https://docs.unrealengine.com/5.3/ja/setting-up-visual-studio-code-for-unreal-engine/

手順が結構細かく書いてあったところ
https://zenn.dev/posita33/books/ue5_starter_cpp_and_bp_001/viewer/chap_01_vscode_setup

前準備の環境構築と、ソースコードのビルドができるようになったら始まりです。
※記事の投稿者はライブコーディングは使っておりません。ホットリロードを用いたコンパイルをしています。

◆プロジェクトを作る◆
一番使いやすいサードパーソンのプロジェクトを使います。
設定する部分でブループリントとC++を選択する部分を「C++」にします。
※スターターコンテンツはどちらでもいいです。投稿者は入れていません。

サードパーソンのC++を選択

任意のところにプロジェクトを作ったら、エディタとあらかじめ設定していたVSCodeが立ち上がります。
プロジェクトが信頼できるかの確認をされるので、信頼すると回答しましょう。

初めてプロジェクトを作った時に聞かれるもの

UEのエディタ内でこのプロジェクトのRoot(最上位フォルダ)を作り自身のコンテンツ用のファイルを、サードパーソンプロジェクトにあるブループリントやEnhanced Inputのファイルなどをコピーします(使えるものは使う方が楽!)

・フォルダ構成
コンテンツ
┗Root
 ┗Blueprint
 ┗Player
  ┗Blueprint
  ┗Input
   ┗Action

・コピーするもの
ThirdPerson→Inputにある「IMC_Default」をRoot→Player→Inputにコピー
ThirdPerson→Input→Actionsにある「IA_Move」「IA_Jump」をRoot→Player→Input→Actionにコピー
hirdPerson→BlueprintsにあるBP_ThirdPersonCharacterをRoot→Player→Blueprintへコピー

IMC_Defalutは「IMC_PlayerDefault」
IA_Moveは「IA_PlayerMove」
IA_Jumpは「IA_PlayerJump」
BP_ThirdPersonCharacterは「BP_Player」

へ、それぞれ名前を変更しておく。
※後でファイル選択時に同じファイルだと見わけがつきづらいため

それぞれのファイルを編集
・IMC_PlayerDefault
IA_Jumpを「IA_PlayerJump」へ、IA_Moveを「IA_PlayerJump」に変更する
IA_Lookについては今回は不要なので消しておく

IMC_PlayerDefaultの中を変更した結果

・BP_Player
特にいじることはないが、コピーしたスケルタルメッシュが同じだと区別がつきづらいので、いわゆるグレイマンに変更しておく
メッシュ→Skeletal Mesh Assetを「SK_Mannequin」に変更
Animation→Anim Classを「ABP_Manny_C」に変更

区別のため変更しているので変えなくてもOKです。

また、Inputに読み込むファイルを変える必要があるので、BP_Playerの詳細の下部の方にある
入力→Defalut Mapping ContextをIMC_PlayerDefaultに変更して置く

※初期動作の確認のために
Moveのところに「IA_PlayerMove」
Jumpのところに「IA_PlayerJump」
を入れておく(後に使わなくなります)

BP_Playerのクラスの設定の下部に項目がある

・GameModeを変更する
Root→BlueprintにGameModeBaseを継承したGameModeブループリントを作成「BP_GameMode」と名前を付けておく
このファイルを開き、上部の「クラス設定」をクリックすることで右の画面がクラス設定のものに切り替わるのでクラスオプション→親クラスにあるクラスを
GameModeBaseから「[プロジェクト名] GameMode」に変更する(後に継承元のC++をいじれるようにしておくだけ)

クラスのデフォルトをクリックし、詳細を切り替えてクラス→Default Pawn Classを先程コピーした「BP_Player」に変更する
その後、左上のコンパイル(黄色になっているはず)をクリック、さらに左のフロッピーアイコンをクリックして保存をしておく。

このゲームモードで使うクラスの設定をする

その後上部メニューの編集→プロジェクトセッティングからマップ&モード→DefaultModesの中にあるデフォルトのゲームモードを作成した「BP_GameMode」に変更する
すると選択したゲームモード内のDefault Pawn Classが設定したBP_Playerになっていることを確認

プロジェクトの設定でデフォルトで使う全体のゲームモードの変更をする

これで動かすと・・・見た目を変えたのに変わってない。



はい、もう一つ設定をする必要があります。

このデフォルトのサードパーソンプロジェクトにあるこのマップ(以下レベルと言います)
実は設定で特定のGameModeを使うように設定されています(罠になる部分)この設定を変更する必要があります。

レベルのタブを選択し、右上に方にある設定([歯車アイコン]設定)からワールドセッティングを開きます。
その中にGameMode→ゲームモードオーバーライドとなっている部分が初期に作ったGameModeが設定されているので、「なし」を選択します。

テンプレートで作ると設定されている罠

設定後にもう一度実行すると
うまく切り替わりました。移動とジャンプができるだけのキャラクターになっています。

カスタムする準備だけでも時間がかかる・・・

ここまでがこれから改造していくキャラクターの前準備になります。

次回はこのキャラクターにInput Tagという動作をしたときにタグを発行して動くように改造をしていきます。(これだけだと大きな変更はないです)

(横スクロールのゲーム制作はこの辺りの知識をある程度身につけてから再開をする予定です)

次回→https://note.com/mok0/n/nb4c9f0138193

この記事が気に入ったらサポートをしてみませんか?