ゲームの基本?と言える入力からのキャラクター移動についてできる限り理解してみる。
今回のゴールはこれらを理解すること
・インプット処理
・移動のためのブループリント
0.前準備
・コンテンツ有サードパーソンマップでプロジェクトを作成。
1.メッシュの追加
・コンテンツ内で右クリック>ブループリントクラス>Pawn を追加。
名前はMyPawn
Pawnはコントローラから入力値を受け取れるアクター。何かしら操作するならコレ?
・左上のコンポーネントを追加からStaticMeshを追加。次に右ペインの詳細からStatic Mesh>好きなものを選択、今回は1M_Cube
追加したら左上のStaticMeshをDefaultSceneRootに上書き。ドラッグして重ねるだけ。
さらにコンポーネントを追加からcameraを選択し追加。Meshの後ろに動かす。
・ここまで出来たらとりあえずレベルに配置。
1.5.インプット(蛇足)
・アクションインプットとは
Pressed or Released、つまり押したか押してないかの入力のこと
・アクシズインプットとは
マウスをドラックしたりスティックを倒したときの移動量の数値の入力のこと。
すぐ0に戻る。
・編集>プロジェクト設定>(左ペイン)インプット>Binding
ここで入力からの操作を割り当てる。ゴミ箱ボタンに注意、全部消える。
・とりあえずなんか設定する。
・レベルBP
こんな感じで書いてみる。ちなみに上のバインディングを設定しないとノード検索のときにそもそもキーボードキーが検索結果に出てこない。今回だとW,S。
これでコンパイルしてプレイすると、Wを押すごとに一瞬「前進」の文字が表示される。そしてTを押すと押している間だけ1になり離すと0になる。
今度はマウスのノードを試す。この場合だと右にマウスをドラッグすると数値が1に近づき、左に動かすと-1に近づく。
2.インプット
・上記で説明したプロジェクト設定を開く。
こんな感じで設定。マイナス値を設定することで左を表す。
そしてMyPawnイベントグラフ画面へ
・イベントグラフの作成
こう!(投げやり)
このAddActorLocalOffsetは繋いだコンポーネントにローカルで値を加えるようなやつ。よくわからないね。
・ 最後にThirdPersonCharacterがプレイヤー権を所有しているのでそれを変更する。ThirdPersonCharacterを選んで詳細パネルのPawnからAuto Possess PlayerをDisableに変更。
同様にMyPawnの同じ項目をPlayer 0に変更。これで追加したMyPawnがプレイヤー権を得る。
動いた?僕のは動いた。
これで何かを動かしたいときに色々できるね。
早くゲーム作りたいね。じゃ!