UE4ゲーム制作入門二日目
一人UE4ゲーム制作入門アドベントカレンダー二日目です。
今日はまず、見た目を多少なりともまともにします。
僕の方では、床にStarterContent/MaterialsフォルダにあるM_Tech_Hex_Tile_Pulseを、壁にM_Teck_Hex_Tile_Pulseを、適用しました。
これで味気ない灰色の見た目よりは、見栄えがよくなりました。
あとは、NavMeshBoundsVolumeを置いたらひとまずステージは完成です。NavMeshはAIとかの移動出来る範囲の判定とか、そういう感じので使います。
ステージ全体を囲えるように置いてやって、Pキーを押すとこうなります。
緑色になった部分が移動できる範囲で、床がだいたい緑色になっていたならば、オッケーです。
プレイヤーの作成
ステージも作り終わったので、自由に移動出来るプレイヤーを作っていきましょう。
自身の名前フォルダの下かコンテンツフォルダの下に、Playerフォルダを作り、その中にブループリントクラスを二つ作成します。
親クラス:Character 名前:BP_Player
親クラス:PlayerController 名前:BP_PlayerController
一つ目がプレイヤー本体で、2つめが名前の通り入力情報を管理するコントローラクラスとなります。
ついでにもう一つ、GameModeBaseを親クラスとしたBP_GameModeというブループリントクラスも名前フォルダかコンテンツフォルダの直下に作っておきましょう。ゲーム全体の管理をするクラスで、ステージで使うプレイヤークラスやコントローラクラスの初期設定をしたりできます。
右下にあるワールドセッティングから設定はできます。
GameModeカテゴリから、GameModeOverrideにBP_GameModeを、DefaultPawnClassにBP_Playerを、PlayerControllerクラスにBP_PlayerControllerをセットします。
ちなみに、それぞれのクラスに何かしら変数などを追加してコンパイルしないと、うまく適用されないようです。理由はよくわかりません。誰か教えてください。
うごかなかったら、一度エディターを再起動すると動くようになります。
BP_Playerをダブルクリックして開きましょう。左のコンポーネントウィンドウには3つほど継承されているものがあります。
ざっくりこれらを説明すると、
CapsuleComponentはコリジョンです。こいつが当たり判定になります。
ArrowComponentは特に意味は無いです。単純にこの矢印の向きが前方向を示しています。
MeshはSkeltalMeshComponentで、SkeltalMeshを設定できます。
それでは僕らの目となるカメラを追加します。コンポーネントウィンドウの上にあるコンポーネントを追加するボタンからSpringArmとCameraを選んで追加した後、CameraをSpringArmの上にドラッグします。こうすることで親子関係にすることができます。親子関係になると子は親の影響を受けます。
つまり、カメラはSpringArmの影響を受けて壁に埋まらないように動いてくれるようになります。SpringArmをTransformで移動・回転させたり、右の詳細ウィンドウにあるCameraカテゴリのTarget Arm Lengthで、カメラの距離を調整できます。
次に見た目をまともにします。始めに三人称テンプレートを使ってプロジェクトを作っている場合飛ばしていけるので、失敗でした。
コンテンツブラウザの左側にある緑色の新規追加ボタンから、機能コンテンツパックの追加を選んで、その中から三人称を選びます。するとコンテンツブラウザ直下に幾つかフォルダが増えます。
BP_Playerを開いて、Meshコンポーネントを選びます。赤丸で囲んだところをクリックするとSkeltalMeshを選べるので、SK_Mannequinをえらぶとこうなります。
アニメーションは後でつけます。まずは先に移動を作りましょう。
移動の実装
まずはBP_PlayerControllerをダブルクリックして、イベントグラフを開きます。中身はこんな感じです。細かい内容は割愛します。移動なんて何番煎じとかそんなレベルを超えるので。
これをコンパイルしてエディタでプレイすると、Tポーズのグレーマンが動きます。シュールですね。
今回はここまでにしときます。明日はアニメーションをつけて、グレーマンに命をふきこみます。