【第8回/Appendix】Character のパラメータを調整
概要
次回以降では、プレイするデモレベルの作成に取り掛かる予定ですが、その前にキャラクターの基本的な動き(パラメータ)について少しだけ修正を加えておきます。
以下の修正はとくに処理に関係するものでもないので飛ばしてしまっても構いませんが、レベル(マップ)の作成が進んでからキャラクターのパラメータを大きく変更するのは、予想外の時間を要する可能性があるので注意しておきましょう。
とくに、この連載で作成するようなアクション・アドベンチャー風味のゲームでは注意が必要です。
たとえば、2mのジャンプをするようパラメータ設定をしたとしましょう。レベル制作にはこのジャンプ力も基準の要素になりますので、それにあわせて配置していくことになります。しかし、ある程度制作が進んでから急きょジャンプ力を3mに変更することになったらどうなるでしょうか。
予想外の問題が起きるのは想像に難くありません。きっとパーツやギミックを調整することになってしまうはず。これはなかなかにヘビーです。ひとりでの制作なら問題ないですが、複数人であればダメージも大きくなってしまうでしょう。
……まあ、この例はさすがに極論ですが。
ただ、そういった事態もあると想定して制作しておくことは悪いことではありません。
このゲームの場合、飛行(ホバー)能力があるので移動はかなり自由といっていいですし、できれば能力関連は早いタイミングで実装を終えておきたいところですが、最低限、基本的な移動パラメータだけでも調整したうえで、次回のレベル制作に取りかかりたいと思います。
もちろん、それでゲームがより面白くなるなら当然いくらでも変更することに賛成ですが、なるべく「変更の幅」は小さい方が好ましいのは言わずもがなですよね。
とはいえ本連載のプロジェクトは学習が主題の制作。
基礎パラメータ調整に時間をかけすぎたくありませんので、最低限気になる場所を絞って調整していきます。
能力関連は今後の連載で追加調整していきたいと考えてますのでお楽しみに!
テスト用のレベルを作成する
既存のレベルを使用してもいいのですが、ちょっとしたテストなどには確認用のレベルを作成しておくことをおすすめします。
メニューバーから「新規レベル」を選択して、「Default」を選びます。
レベル名は適当につけておいてください。
作成したキャラクターを使いたいので「ワールドセッティング」からGame Modeを設定します。
プレイを押して、キャラクターが無事生成されて動かせることを確認します。
作成したレベルは、適宜ツールバーの「現在のレベルを保存」を押してセーブしておきましょう。
ジャンプまわりのパラメータを修正
現状のジャンプはすこしふわりとした動きなので、もう少しキビキビした動きにしておきます。確認用レベルにチェック用のジオメトリブラシなどを配置して調整します。
動きの基準を検討しておきます。
ここでは、200cmのボックスにぎりぎり登れるくらい。
助走なしのジャンプで400cm向こうの対岸にジャンプで渡れるくらいにしてみます。
パラメータの調整を行います。
「ThirdPersonCharacter」のブループリントを開いてください。
コンポーネントパネルの「CharacterMovement」を選択します。
詳細パネルで重力を変更します。
- Gravity Scale : 2.5
初期重力をかなり高くしました。
これでキャラクターの落下速度が上がります。
このままではジャンプ力が低すぎるので合わせて調整します。
- Jump Z Velocity : 1050.0
この値前後に設定しました。
速度を変更するキーを押しながらジャンプすると大ジャンプになってしまいますが、加速時にジャンプ力を変更する処理などを加えるといいでしょう。
あわせて移動速度も変更しておくといいかもしれません。
こちらでは若干遅くしておくことにしました。適宜調整してください。
確認しながら調整しましょう。
さらに「Air Control(空中でどれくらい移動操作できるか)」「Falling Lateral Friction(落下時にかかる横方向への空気抵抗)」も確認しておきましょう。
垂直ジャンプで壁が登りづらかったので、少し「Air Control」の値を増やしました。
縁から落下するときのパラメータを調整
動かしているうちに、オブジェクトの縁から落ちづらいことが気になりました。
図のように、キャラクターの当たり判定ギリギリまで飛び出せてしまいます。
もう少しだけ落ちやすくしておきます。
この部分は、のちのち調整していっても構いません。
ブループリントに戻ってください。
コンポーネントパネルからCharacterMovementコンポーネントを選択します。
詳細パネルの「キャラクタームーブメント:歩行」にあるパラメータを調整します。
主に変更するのは「Perch Radius Threshold」の値です。
ここで「Capsule Component(ルートのコリジョン)」のカプセルが、どのくらい端にとどまっていられるかの距離を指定できます。
ルートのコリジョン半径は、「Capsule Component」コンポーネントを選択して、詳細パネルのシェイプ項目「Capsule Radius」から確認できます。
デフォルトでは34となっていますね。
メッシュや難易度にあわせて後々調整していくことになりそうです。
ためしに「20」に設定してみます。
- Perch Radius Threshold:20
プレイしてたしかめてみましょう。カプセル半分より少し縁の外に出たら落下することを確認できました。適宜調整してください。とどまってほしいなら下げておきます。
値を高くすると、逆に縁へ登るときに苦労することもありますので注意しましょう。
登るときや移動しようとした時だけ「Perch Radius Threshold」の値を変えるなど、ブループリント側の処理で対応することも可能ですのでいずれ試してみましょう。
調整したところ、現状では20~25の間くらいが良さそうです。
ちなみに「Perch Addtional Height」は、縁から降りるときに、段差と段差の距離がどれくらいあれば段差としてみなすか(飛び降りるか)を調整する値です。
こちらは「Max Step Height」(主に登るとき、どのくらいの高さを段差としてみなすか)の値と組み合わせて使います。
「Perch Addtional Height」は大きくしすぎると、縁の高さによっては「Perch Radius Threshold」の値が意味をなさなくなりますので注意して設定します。
- Perch Additional Height:20
「Max Step Height」は変更しないでおきます(変えてもらっても構いません)。
このゲームでは、70cmの段差は段差と認識せず、80cmの段差であれば段差と認識するくらいで設定するようにしました。
設定は以上です!
他にもさまざまなパラメータがありますので、このタイミングで弄って試してみたり調整してみましょう。