🐱

UE4 デフォルト設定を変更してゲームを作る

2021/01/07に公開

サードパーソンテンプレートを使用してサンプルを変更しているところから一歩進み、ブランクのプロジェクトからゲームを作る際にエンジンのデフォルト設定のどこを変更したらいいのかをメモ

シンプルな横スクロール型ゲームを想定

  • 左スティックで左右移動
  • Aボタンでジャンプ
  • スタート地点とゴール地点を作成
  • スタートとゴールの間を任意のブロックで埋めてレベルを作成する

操作キャラクターのブループリントを作成する

デフォルトでは実行時にDefaultPawnというもの自動的に作成され一人称カメラのような操作が可能になっている。自分で作成したPawnクラスを用意する
今回はThirPersonテンプレートからグレイマンを持ってきて使用する

プロジェクト設定のデフォルトを変更する

  • GameModeBaseを継承したBPを作成する
  • プロジェクト設定→マップ&モードからデフォルトのゲームモードで指定しているクラスを作成したGameModeクラスに変更する。
  • 同じくDefaultPawnClassで指定しているクラスを作成したPawnクラスに変更する
  • マップ&モードでゲームのデフォルトマップをタイトル画面レベルのものに変更する

カメラを配置する

デフォルトでは再生すると一人称カメラになってしまうのを、レベルに配置したカメラからの画面になるようにする

  • レベルにカメラを配置
  • 配置したカメラをアウトライナで選択しオートプレイヤーアクティベーションでPlayer0を指定
  • 実行時に配置したカメラからの画面が映る

プレイヤースタートを作成する

デフォルトで用意されてるPlayerStartアクターはプレイ時にデフォルトPawnをその場に生成してくれる。
ブループリントクラス作成するときにPlayerStartを指定して作成
スタート地点を表すためにStaticMeshを追加してCubeを指定

レベルごとにDefaultPawnクラスを変更する

ゲームモードクラスで指定したDefaultPawnはどこでも作成されてしまう。
ゲームタイトルを出すレベルでは操作キャラクターのPawnを作成したくない、操作キャラが必要なステージレベルではSpawnしてほしいという場合
各レベルごとにGameModeクラスをオーバーライドすることで作成されるDefaultPawnを変更することができる

  • レベルを開く
  • ウィンドウ→ワールドセッティングを選択
  • ワールドセッティングのウィンドウ内のGameModeのゲームモードオーバーライドでゲームタイトルレベルではDefaultPawnをNoneのものに、ステージレベルでは作成したSpawnのものに変更する

作成したもの

タイトルレベルではグレイマンはおらず、DefaultPawnは作成されてないのでデフォルトで用意される操作は何も実行されない
ステージレベルではPlayerStart位置からグレイマンが作成されて操作可能になる

タイトル画面

ステージレベルではグレイマンをDefaultPawnに指定しているのでPlayerStart位置に作成される。
ThirPersonBP内のGamePad操作を左右移動のみを有効に変更

右側のゴール地点に到達してステージクリア。タイトル画面に戻る

Discussion