横スクロールゲームのための、キャラクターとカメラ設定。
環境とソフト
- Unreal Engine 5.5.1
サードパーソンテンプレート
カメラアクタの作成と編集
名前: BP_Camera
・新規作成。
横スクロールゲームにおいては、カメラアクタとプレイヤーブループリントは分けた方が都合が良いです。
コンポーネントに、
スプリングアームコンポーネントを追加。名前をCameraBoomにします。
その下にカメラコンポーネントを追加。
詳細設定
コンポーネントのCameraBoomを選択し、その詳細の
トランスフォーム > 回転 のZを90.0にする
カメラがプレイヤーキャラを横から撮ります。
※Zを-90.0にすると、プレイヤーキャラクターが反転する時、お尻を画面に向けて反転します。一般的には顔を画面に向けますので、Zは90.0にしています。
トランスフォーム > 回転 をクリックして「ワールド」を選択。
カメラ > Target Arm Length を600にする
カメラが遠くなります。
カメラを寄らせる場合は値を小さくします。
カメラコリジョン > Do Collision Test のチェックを外す
カメラが他のオブジェクトと衝突しなくなります。
カメラセッティング > Use Pawn Control Rotation のチェックを外す
変数の追加
【変数】
FollowTarget – キャラクター(オブジェクト参照)
└「インスタンス編集可能」と「スポーン時に公開」にチェックを入れる。
関数の追加 UpdateCameraPos
関数を追加します。
名前: UpdateCameraPos
プレイヤーキャラクターに対してカメラを追従させるものです。
>>BP_Camera: UpdateCameraPos posted by Hummerkey | blueprintUE

・Transformを分割する時は、ピンで右クリックして「構造体ピンを分割」。
・乗算(*)のピンをFloatに変更する時は、ピンで右クリックして「浮動小数点数(単精度)へ」を選択する。
【変数】LockHeight – Boolean
└選択するのIndexをBooleanにして、ワイヤーを伸ばして変数へ昇格。
・VInterp ToのInterp Speedは、カメラ追従の遅れ具合を設定するもの。値が大きいほど素早く追従するのですが、0は遅れがなくなります。8ぐらいが丁度いい遅れ具合。
イベントグラフの編集
プレイヤーBPの編集
サードパーソンテンプレートの場合、
ThirdPerson > Blueprints > にある、BP_ThirdPersonCharacterを開く。
コンポーネントの編集
■キャラクターのY軸ズレを防止する
プレイヤーキャラクターがアニメーションを再生したり、オブジェクトと接触すると、Y軸(奥/手前)の位置がズレてしまいます。
横スクロールですからY軸は固定したいので、その設定をします。
コンポーネントのCharacter Movementを選択し、その詳細の
プレナームーブメント > Constrain to Plane にチェックを入れる
プレナームーブメント > プレーンコンストレイント軸設定 をYにする
これらの設定によってY軸が固定されます。
※Plane Constraint NormalのYはプレーンコンストレイント軸設定をYにすると自動的に1.0になります。
■キャラクターの反転速度を速くする
右を向いているキャラクターを左に向かせる時、デフォルト設定ですと反転するのに時間がかかります。
コンポーネントのCharacter Movementを選択し、その詳細の
キャラクタ移動(回転設定) > Rotation Rate のZを720にする
これで反転が速くなります。さらに速くしたければ1000~2000でも構いません。
- ジャンプのふんわり感を軽減したい場合、
キャラクタームーブメント(一般設定) > Gravity Scale
デフォルト値は1.75。3にすれば速く落ちる。 - キャラクターの加速を遅くしたい場合、
キャラクタームーブメント(一般設定) > Max Acceleration
デフォルト値は2048。1024にすれば加速が遅くなる。 - ジャンプ力を上げたい場合、
キャラクタームーブメント: 跳躍 /落下 > Jump Z Velocity
デフォルト値は700。1200にすれば高く飛ぶ。 - ジャンプ中に左スティックでコントロールするには、
キャラクタームーブメント: 跳躍 /落下 > Air Control
デフォルト値は0.35。1~5で制御しやすくなるが、Gravity ScaleとJump Z Velocityの設定次第で操作感が大きく変わります。
イベントグラフ編集
■カメラ操作を削除
サードパーソンテンプレートに最初からあるCamera Inputの欄を削除します。
■カメラアクタと連携する
UE5.5ではイベント BeginPlayが最初は未使用になっているので、配置して繋げてください。

・クラスからアクタをスポーンしますを配置してBP_Cameraを呼び出し、カメラ設定を変更しています。
■入力と移動を合わせる
カメラの向きを変えたため、ゲームパッドの上下左右の入力と、キャラクターの移動方向が一致しない状態です。上を入力すると右に進み、右を入力すると下に進みます。
サードパーソンテンプレートに最初からあるMovement Inputの欄を編集します。

・Movement InputのLeft/Rightは削除します。
・IA_MoveのAction Value Yのワイヤーは削除します。
・Action Value XのワイヤーをForward/BackwardのAdd Movement Inputに繋げます。
テストプレイ
テストプレイすると、右を入力するとキャラクターは左に移動してしまいます。
■PlayerStartの向きを変える
PlayerStartの回転のZを180にします。
ゲームは基本的に右に進みますから、PlayerStartも右に向けるという具合。これによって入力操作の反転も直ります。
ゲームは右に進み、ワールド座標的には-X方向に進みます。
奥が+Y、手前が-Yです。
Levelを作成する時、座標の把握とPlayerStartの向きを理解しておく必要があります。
コメント