Physicsをいじる
Ekisen - RICHARD BURNS RALLY
車Physicsの変更方法をいくつか解説します。
準備
まずRBRインストールフォルダにある physics.rbz を展開します。このファイルはただのZIPファイルなので解凍します。解凍により作成されたPhysicsフォルダがRBRインストールフォルダに位置するようにします。physics.rbz ファイルはそのままにしておいてください(リネームする必要はありません)。元に戻すにはPhysicsフォルダを削除するかリネームします。そうすると、rbzの方が読み込まれるようになります。
ファイル構成
Physicsフォルダの中にはそれぞれの車種に対応したサブフォルダがあります。このフォルダ名は固定なので、仮に新しい車を追加したい場合でもいずれかの既存の車種のPhysicsを上書きすることになります。
車種フォルダの中には拡張子LSPのファイルが7つあります。このファイルはテキスト形式なのでメモ帳などで編集します。
| ファイル名 | 内容 |
| common.lsp | 車の基本性能部分の情報やパーツの位置など |
| gravel.lsp | グラベル用設定 |
| r_gravel.lsp | グラベル用設定2 |
| tarmac.lsp | ターマック用設定 |
| r_tarmac.lsp | ターマック用設定2 |
| snow.lsp | スノー用設定 |
| r_snow.lsp | スノー用設定2 |
2としているファイルはr_ファイルと呼ぶことにします。
setupsフォルダにはデフォルトセットアップとなるセットアップlspファイルがあります。
LSPファイル編集の基礎
LSPファイルをテキストエディタで開いてみてください。項目の意味はともかく、シンプルな階層構造になっているのかすぐわかると思います。このページでは階層になっている項目を「common:DefManager>CarBody>Car>CarId」の様に先頭にファイル名、階層を>で表記します。DefManager は他にないので省略することがあります。項目に値が複数ある場合はその内容にかかわらず左からXYZとして表記します(例: common:CarBody>vecCenterOfGravity-Y)。ファイル名が指定されていない場合はgravel.lspなどの各種路面用lspを指します。ファイル名が「r_」の場合はそれぞれのr_ファイルを表すこととします。
編集にはテキストエディタでも問題ありませんが、拙作LSP簡易エディタを使うことを推奨します。目的の項目を探しやすいです。
挙動の変更
挙動は数多くの値による計算の結果にすぎないので単一の値でコントロールすることはできません。しかし、挙動に大きな影響を及ぼす値が2種類あるのでそれを中心に調整するとよいです。
1つは重心です。common:CarBody>CAR_BODY>vecCenterOfGravity を変更します。Xは常に0です。Yは車両前方がマイナス方向で原点は後車軸です。Yの値は挙動に大きな影響を及ぼします。詳しくはデータからみるRBRを参照してください。r_ファイルにも vecCenterOfGravity は存在するので r_:CarOptions>vecCenterOfGravity も同じ値に設定します。
もう1つは慣性の出方です。common:Car>CAR_ROOT>vecLocalInverseInertiaDiagonal を変更します。主にXとZの値を変更します。標準車からかけ離れた値にすると非常にクセのある挙動になります。詳細はデータからみるRBRを参照してください。
ホイールベースの変更
ホイールベースの変更はちょっと手間がかかります。変更する項目を列挙します。
- Wheel>CAR_WHEEL_LF>vecJointMount_VF-Y
- Wheel>CAR_WHEEL_LF>SteeringMount_VF-Y
- Wheel>CAR_WHEEL_RF>vecJointMount_VF-Y
- Wheel>CAR_WHEEL_RF>SteeringMount_VF-Y
- r_:WheelOptionsLF>vecTopMount00〜vecTopMount06-Y
- r_:WheelOptionsRF>vecTopMount00〜vecTopMount06-Y
vecJointMount_VF はロアアームマウント座標、SteeringMount_VF はステアリングアームマウント座標、vecTopMount はストラットマウント座標です。つまり、フロントサスアームをごっそり移動するわけです。 vecTopMount が0〜6まであるのは、セットアップでの Top Mount Position に対応しているためです。
それぞれの項目の値は車両前方になるほどマイナス方向に数値が大きくなります。原点は後車軸です。単位はメートルです。vecJointMount_VF-Y がホイールベースと一致します。もし50ミリほどホイールベースを長くするなら、それぞれの項目を0.05増やします。増やす量を間違えてしまうとモロにジオメトリが狂ってしまうので注意が必要です。
vecJointMount_VF と SteeringMount_VF はr_ファイルにも存在します。r_ファイルの値はセットアップ画面での計算にのみ使われるものです。よってr_ファイルの同名項目も同じ値にする必要があります。
- r_:WheelOptionsLF>vecJointMount_VF-Y
- r_:WheelOptionsLF>vecSteeringMount_VF-Y
- r_:WheelOptionsRF>vecJointMount_VF-Y
- r_:WheelOptionsRF>vecSteeringMount_VF-Y
フロントトラックの変更
トラックの変更は幾つか方法があります。推奨するのはホイールベースと同じ方法で、各アームのマウント座標を内側か外側に移動するというものです。他にはアームの長さを変える方法もあります。ここではホイールベースと同じ方法を解説します。
変更するのはホイールベースの時と同じ項目で、Xの値です。もし20ミリ狭くするならそれぞれの項目を0.02減らします。このとき左右で符号が違う事に注意してください(左がプラス、右がマイナス)。
- Wheel>CAR_WHEEL_LF>vecJointMount_VF-X
- Wheel>CAR_WHEEL_LF>SteeringMount_VF-X
- Wheel>CAR_WHEEL_RF>vecJointMount_VF-X
- Wheel>CAR_WHEEL_RF>SteeringMount_VF-X
- r_:WheelOptionsLF>vecTopMount00〜vecTopMount06-X
- r_:WheelOptionsRF>vecTopMount00〜vecTopMount06-X
ホイールベースの時と同じようにr_ファイルにも同じ項目があるので次の項目も合わせて変更します。
- r_:WheelOptionsLF>vecJointMount_VF-X
- r_:WheelOptionsLF>vecSteeringMount_VF-X
- r_:WheelOptionsRF>vecJointMount_VF-X
- r_:WheelOptionsRF>vecSteeringMount_VF-X
変更する必要のある項目が多数あるので調整を繰り返すのは大変手間が掛かります。そこで、簡単な調整方法を紹介します。
- Wheel>CAR_WHEEL_LF>vecStrutHubPoint_SF
- Wheel>CAR_WHEEL_RF>vecStrutHubPoint_SF
を変更します。値を大きくするとトラックは広がります。単位は前述の方法と同じなので、20ミリ狭くするなら0.02減らします。とても簡単です。しかし、この方法にはスクラブ半径が変わってしまうという重大な欠陥があります。もし20ミリ減らせばスクラブ半径も20ミリ減ります。このことを確認するには1.00ほど広げてみればわかります。
よって、調整を繰り返す時は vecStrutHubPoint_SF を変更し、最終的には前者の方法で変更するのがよいでしょう。
リアトラックの変更
フロントトラックの時と同じです。変更する項目は次の通り。
- Wheel>CAR_WHEEL_LB>vecJointMount_VF-X
- Wheel>CAR_WHEEL_LB>SteeringMount_VF-X
- Wheel>CAR_WHEEL_RB>vecJointMount_VF-X
- Wheel>CAR_WHEEL_RB>SteeringMount_VF-X
- r_:WheelOptionsLB>vecTopMount00-X
- r_:WheelOptionsRB>vecTopMount00-X
- r_:WheelOptionsLB>vecJointMount_VF-X
- r_:WheelOptionsLB>vecSteeringMount_VF-X
- r_:WheelOptionsRB>vecJointMount_VF-X
- r_:WheelOptionsRB>vecSteeringMount_VF-X
マクファーソンストラット図解
もどる