はじめに
このシリーズはゼロからキャラクターを作成して
入力したら動かせるようにしていきたいと思います。
やりかた
⓪前提知識
ゲームを作るには以下の3つが必要です。
GameMode......操作するキャラクターや操作系を割り当てる。マップごとに設定できる。
Character or Pawn........キャラクター本体Characterを使用するとジャンプやしゃがみといった動作を設定できる機能が用意されている。
PlayerController.....キャラクター本体を制御する場所。ハードからの入力を受け付けキャラクターを動かす。
Tips 大規模開発ではキャラクターとコントローラーで操作系を分離したほうが管理しやすくなるが、個人製作などの小規模開発ではキャラクターに入力を直接書くことが多いです。
この三つが揃えば新しいマップをすぐに見て回れます。
①新しいマップを作ろう
アンリアルエンジンではマップやステージのことをレベルと呼びますが、
分かりづらいのでマップに統一して説明します。
レベルと言われたらマップのことなんだなぁくらいで理解してもらえればOKです。
左上のファイルから新規レベルを選び、Defaultを押します。
左上の現在のレベルを保存を押すと名前と保存先を選べるので
CharacterMapという名前で任意の場所に保存します。
②GameModeを作ろう
先に説明したとおりGameModeはいわばお約束みたいなものです。
逆にGameModeを切り替えるだけで操作するキャラクターや挙動を変えることもできるのでTPS用のゲームモード・FPS用のゲームモードのように作っておいてフレームワーク化しておくだけで、マップアセットなどを見て回ることができます。
コンテンツブラウザで右クリックしてブループリントクラスを押します。
GameModeBaseを選びましょう。名前をGM_CubeCharacterにします。
開いてみると詳細にクラス設定ができることが分かります。
ここにそのマップで使用するクラスを設定します。
表示されない場合はツールバーのクラスのデフォルトを押して下さい。
CharacterMapに作成したGameModeを割り当てます。
真ん中のブループリントから画像のように作成したModeを割り当てましょう。
③コントローラーを作る
ブループリントからPlayerControllerを選び名前をBP_CubeControllerにします。
作成したらGameModeのPlayerControllerClassに割り当てます。
ブループリントに変更を加えたら必ずコンパイルを押しましょう。
ヨシッ!
④キャラクターを用意する
今回は移動するキャラクターなので
必要なコンポーネントが揃っているCharacterクラスを親にして作成します。
名前をBP_CubeCharacterにしましょう。
こちらもGameModeでDefaultPawnClassに設定しておきます。
ヨシッ!!
⑤見た目を調整しよう
BP_CubeCharacterを開きましょう。
コンポーネントのMeshを押しましょう。
キャラクタークラスのメッシュは
SkeletalMeshコンポーネントという
骨の付いた(ボーンアニメーションができる)
キャラクターのみ受け付けます。
エンジンに用意されているキューブはStaticMesh(骨がない見た目)ので
こちらでボーンを入れたキューブを作成しました。
ダウンロードはこちらから
ファイルを解凍後、SK_Cube.fbxを
コンテンツフォルダーにインポートしてください。
デフォルト設定でインポートを押します。
最後の4つがインポートされていたら成功です。
Meshの詳細からインポートしたSK_Cubeを割り当てましょう。
⑥コリジョンを調整しよう
CapsuleComponentを選択してください。
オレンジ色にハイライトされているのが現在のあたり判定です。
見た目と大きく異なっているので
詳細のシェイプから大体一致するように修正します。
またこの状態だと浮いてしまうのでMeshコンポーネントのZを下げます。
⑦カメラを作る
StaticMeshの子にSpringArmを追加します。
またSpringArmの子にCameraを追加します。
最終的にこうなればOKです。
SpringArmはいわば自撮り棒です。
TargetArmLengthから長さを変更できるので800にしてみましょう。
また、回転Yに-20と入力してみてください。
ヨシッ!!!
実行してみましょう。
このように表示されれば成功です。
次回はキー入力と移動をやっていきたいと思います。
さいごに
UE4やUE5向けの記事を書いています。
皆様の応援が投稿のモチベーションになりますので
コメントやTwitterのフォローなどしていただけるとありがたいです。
それではよきゲーム開発を。