車両の物理プロパティ

サンプルの車両物理ファイルを表示するには、Stingray で Vehicle テンプレート プロジェクトをロードし、テキスト エディタで 4wheel.physics を開きます。

車両テンプレートに基づいてプロジェクトを作成した後は、次の場所にそのファイルがあります。..¥vehicle_project¥content¥models¥4wheel

車両の物理特性をセットアップする」も参照してください。

一般的な車両のプロパティ

enabled

ユニット内で車両が有効か無効かを true または false で指定します。

name

車両名です。

actor_name

車両が基づくユニット アクターの名前です。ユニットで前に定義されているアクター名に対応する必要があります。

vehicle_physics_model

4 輪以上の車両の物理を対象としています。

4 ~ 20 輪のタンクの物理を対象としています。タンクは、左側にあるすべての車輪が同じ速度になり、右側にあるすべての車輪が同じ速度になるようにする方法で、すべての車輪が差動装置を介して駆動されるという点が車両とは異なります。

tank_drive_model

タンクの物理モデルの場合は、タンクの駆動モデルを指定する必要があります。> > オプション: > * standard - 履帯が前方向にのみ回転できます。> * special - 履帯が前方向と逆方向に回転できます。

例:

vehicles = [
    {
        enabled = true
        name = "m1a1"
        actor_name = "tank_actor"
        vehicle_physics_model = "tank"
        tank_drive_model = "special"

シャーシのプロパティ

mass

キログラム単位で表された車両のリジッド ボディ アクターの質量です。

scene_graph_shape_node

シャーシに対応するアクターで指定されているシェイプ ノードの名前です。このシェイプの原点は車両の重心に使用され、シェイプは衝突用に使用されます。

scene_graph_render_nodes (section)

物理シャーシの移動や回転によってトランスフォームされるメッシュ内のノードの配列です。

各配列のエントリ:

transform_type

オプション:

center_of_mass_offset

車両リジッド ボディの重心オフセットです。

moment_of_inertia

慣性モーメントは次の 3 つのメソッドのいずれかで設定できます。- raw - 慣性モーメントの x、y、z の値を明示的に設定します。- cuboid - 立方体用の式(および追加スケール)を使用してモーメントを自動計算します。- default - PhysX サンプルからの、既定の(後方互換性のある)メソッドです。立方体の式と、z 軸をスケールする反応性設定を使用します。

これらのすべてのメソッドのパラメータを指定できますが、1 つのメソッドのみが使用されます。raw メソッドの優先順位が最も高く、次が cubiod で、最後に他のメソッドが存在しない場合には default メソッドが使用されます。

立方体の式: 幅 W、高さ H、長さ L のバウンディング立方体の場合、質量 M の車両の慣性モーメントは((LL+HH)M、(WW+HH)M/12、(WW+LL)M/12 です

scale

cuboid メソッドを使用する場合に、立方体の式の結果を軸ごとに微調整してスケールします。

mass_factor

質量が各慣性項モーメントに影響する度合いです。raw メソッドを使用する場合は無視されます。

responsiveness

default メソッドを使用する場合に、慣性 Z 項モーメントをスケールし、全体の回転反応性に影響を与えます。低い値ほど反応性が高くなります。

例:

    chassis = {
        mass = 1500.0
        scene_graph_shape_node = "c_body"
        scene_graph_render_nodes = [
            {
                node = "j_body"
                transform_type = "full"
            }
        ]

        center_of_mass_offset = [
            0
            0.5
            -0.5
        ]

        moment_of_inertia = {
            raw = [
                1000
                1000
                1000
            ]
            cuboid = [
                mass_factor = 0.08
                scale = [
                    1.0
                    1.0
                    0.5
                ]
            ]
            mass_factor = 0.055
            responsiveness = 0.9
        }
    }

エンジンのプロパティ

peak_torque

キログラム平方メートル/毎秒毎秒単位の、指定されたエンジンに適用することができる最大トルクです。

max_omega

ラジアン/秒で指定された、エンジンの最大回転速度です。

damping rate

減衰がエンジンに適用される比率です。通常の値は範囲(0.25,3)内です。減衰率を 0 にすると、シミュレーションが不安定になる可能性があります。

full_throttle

フル スロットルが適用されている場合の、エンジンの減衰率です。

zero_throttle_clutch_engaged

フル スロットルが適用されている場合の、エンジンの減衰率です。0 ~ 1 のスロットル値は、zero_throttle_clutch_engaged と full_throttle の間の補間になります。

zero_throttle_clutch_disengaged

(ニュートラル ギアで)クラッチが切れている場合の、ゼロ スロットルでのエンジンの減衰率です。

差動装置のプロパティ

type

オプション:

front_rear_split

前輪と後輪の間のトルク分割の比率です(0.5 より大きい場合は前輪がより大きくなり、0.5 より小さい場合は後輪がより大きくなります)。ls_4wd および open_4wd にのみ適用されます。範囲は 0 ~ 1 です。

front_left_right_split

左前輪と右前輪の間のトルク分割の比率です(0.5 より大きい場合は左前輪がより大きくなり、0.5 より小さい場合は右前輪がより大きくなります)。ls_4wd、open_4wd、ls_frontwd にのみ適用されます。範囲は 0 ~ 1 です。

rear_left_right_split

左後輪と右後輪の間のトルク分割の比率です(0.5 より大きい場合は左後輪がより大きくなり、0.5 より小さい場合は右後輪がより大きくなります)。ls_4wd、open_4wd、ls_rearwd にのみ適用されます。

center_bias

平均前輪回転速度と後輪回転速度の最大許容比です。ls_4wd にのみ適用されます。

front_bias

左前輪と右前輪の回転速度の最大許容比です。ls_4wd および ls_frontwd にのみ適用されます。

rear_bias

左後輪と右後輪の回転速度の最大許容比です。ls_4wd および ls_rearwd にのみ適用されます。

例:

    differential = {
        type = "ls_4wd"
        front_rear_split = 0.45
        front_left_right_split = 0.5
        rear_left_right_split = 0.5
        center_bias = 1.3
        front_bias = 1.3
        rear_bias = 1.3
    }

ギアのプロパティ

auto_gears_enabled

車両が自動変速装置を使用するかどうかを true または false で指定します。

final_ratio

物理シミュレーションでのギア比は、現在のギア比に最終ギア比を掛けた値になります。最終ギア比を調整することで、それぞれのエントリを編集することなくすべてのギア比エントリを変更できます。一般的なギア比は約 4.0 です。

switch_time

切り替え時間は、ギア変更の完了までにかかる時間の長さ(秒単位)を示します。

ratios

リバースから始まり、ニュートラル、ファーストなどと続くギア比の値の配列です。前進ギアの最大数は 30 です。

例:

    gears = {
        use_auto_gears = true
        final_ratio = 4.0
        switch_time = 0.5
        ratios = [
            -4
            0
            4.2
            2.0
            1.1
            1.0
        ]
    }

クラッチのプロパティ

strength

クラッチによって生成されるトルクは、クラッチ強度およびエンジン速度とギア比を考慮した被駆動車輪の速度の速度差に比例します。キログラム平方メートル/秒で指定されます。

例:

    clutch  = {
        strength = 10.0
    }

アッカーマン補正

アッカーマン補正により、単純な三角法で計算されるわずかに異なるステアリング角度で左右の車輪のステアリングを行うことで、優れたコーナリングを行えるようにします。実際には、完全なアッカーマン ステアリング補正を実現するステアリング リンク機構を設計することは不可能です。

accuracy

コントロールされるアッカーマン ステアリング補正の精度です。0 の値を選択すると、アッカーマン ステアリング補正が完全に無効になります。1.0 の値は、完全なアッカーマン補正を実現します。

例:

    ackermann_correction = {
        accuracy = 1.0
    }

かじ取りと前進速度

steer_vs_forward_speed

速度の関数として最大かじ取りを示す、速度とかじ取りのペアの配列が含まれています。ペアの最初の値は速度を示し、ペアの 2 番目の値はその速度での最大かじ取りを示します。

下記の例では、速度がゼロのときは完全なかじ取りの 1.0 になっています。その後に、速度が 5.0 のときは最大かじ取りが 0.75 などと続きます。かじ取りの値は速度間で補間されます。

例:

    steer_vs_forward_speed = [
        0.0 1.0
        5.0 0.75
        30.0 0.22
        120.0 0.19
    ]

入力のスムージング

ゲーム内の車両の動力学に関する困難の 1 つは、満足のいくハンドリングを実現できる方法で、どのようにロー コントローラ データをフィルタするかを把握することです。たとえば、プレイヤーは実際の車両では行われないような方法で加速装置のトリガを非常に速く押し、加速させようとすることがよくあります。結果として生じる車輪のスピンによりタイヤによって生み出すことができる横力と縦力が小さくなるため、このような急速な加速は逆効果となる場合があります。このような問題を克服するために、ロー入力にスムージング データが適用されます。

rise_rates

次の入力の上昇率値です。値はゼロより大きくする必要があります。値が大きいほど、スムージングされた入力がロー入力値に早く達します。

fall rates

次の入力の低下率値です。値はゼロより大きくする必要があります。値が大きいほど、スムージングされた入力がロー入力値に早く達します。

例:

    input_smoothing = {
        rise_rates = {
            acceleration = 6.0
            brake = 6.0
            handbrake = 12.0
            steer_left = 2.5
            steer_right = 2.5
        }
        fall_rates = {
            acceleration = 10.0
            brake = 10.0
            handbrake = 12.0
            steer_left = 4.0
            steer_right = 4.0
        }
    }

車輪のプロパティ

各車両には、次の例のような車輪の配列が含まれています。

    wheels = [
        {
            wheel 1 properties
        }
        {
            wheel 2 properties
        }
        {
            wheel 3 properties
        }
        {
            wheel 4 properties
        }
    ]

車輪のエントリは、左前輪、右前輪、左前輪の後ろの車輪、右前輪の後ろの車輪という順番で、最も後ろの右側の車輪まで並べる必要があります。

各車輪エントリのプロパティは、次の項目で構成されます。

wheel_raycast_filter

この車輪の衝突フィルタの名前です。「global.physics_properties」で定義されたフィルタの名前である必要があります。フィルタを指定しない場合は、車両のシャーシ ジオメトリと車輪のジオメトリを除くすべてのものと衝突するように既定で設定されます。

scene_graph_shape_node

車輪に対応するアクターで指定されているシェイプ ノードの名前です。このシェイプの中心が車輪の重心として使用され、シェイプが衝突用に使用されます。

scene_graph_render_nodes

物理車輪の移動や回転によって変換されるメッシュ内のノードの配列です。レンダー ノードは、車輪自体以外の車両コンポーネントに影響を与えるために役立ちます。たとえば、履帯などです。履帯は、履帯上のさまざまなポイントが、各車輪の移動コンポーネントに対応するように構築できます。各車輪が上下に移動するにつれて、履帯のポイントがそれに従って移動し、地表に適合します。変換タイプが「translation」に設定されている場合には、車輪とともには曲がりません。

mass

キログラムで表された車輪とタイヤの合計質量です。一般的な車輪の質量は 20 ~ 80 kg ですが、車両に応じて重くすることも軽くすることもできます。

moi

車輪の慣性モーメントを明示的に設定します。この値が指定されていない場合には、適切な質量公式(mr^2)の値に既定で設定されます。

position_offset

車輪の位置オフセット ベクトルです。車輪の初期位置は、メッシュ内の車輪の位置によって確立されます。

radius_scale

車輪の半径はシェイプの寸法によって決定されます。radius_scale 乗数を適用することで、車輪の半径をスケールすることができます。たとえば、1.0 の値はスケールを適用せず、1.1 の値は車輪のサイズを 10% 大きくします。車輪のサイズのスケールは、履帯の実装などで役立つ可能性があります。スケールを使用しない場合、車輪がサーフェスと重なり、履帯がその下に配置される場合があります。履帯の厚さを考慮して車輪を十分にスケールすることで、履帯がサーフェスと重なるようにすることができます。

damping_rate

減衰率は、自由回転する車輪が回転速度を失う比率を示します。減衰率を高くすると、車輪が短い時間で停止するようになります。減衰率はゼロより大きくする必要があります。通常の値の範囲は 0.25 ~ 2 です。

max_brake_torque

ブレーキが最大限適用されたときに車輪に適用されるトルクの値です。トルクを大きくするとブレーキをかけたときに車輪が速やかに停止されるようになり、トルクを小さくすると車輪の停止に時間がかかるようになります。トルク値はニュートン メートルで表されます。1500 がブレーキ トルクの妥当な開始点です。

max_handbrake_torque

ブレーキではなくハンドブレーキを適用することを除けば、この関数は最大ブレーキ トルクと同じです。通常、4 輪の車両の場合、ハンドブレーキはブレーキよりも強く、後輪にのみ適用されます。後輪の 4000 の値が適切な開始点です。また、前輪は 0 の値にしてハンドブレーキに反応しないようにする必要があります。

max_steer

ステアリング ホイールを完全に切った場合のラジアン単位のステアリング角度の値です。通常、4 輪の車両は前輪のみがステアリングに反応します。この場合、後輪の値は 0 にする必要があります。速い速度でステアリング角度を大きくすると、実際の車両と同様に車両が静止摩擦を失い、スピンしてコントロールを失う可能性が高いことに注意してください。steer_vs_forward_speed セクションで適切な値を設定することは、この現象を回避するための優れた方法です。

tire

type

global.physics_properties tire_types からのタイヤ タイプです。

lateral_stiffness_x、lateral_stiffness_y

これらの値はタイヤの単位横滑り(ラジアン単位)あたりの横方向剛性を表します。タイヤの横方向剛性は、横方向のタイヤ力の生成に影響を与え、タイヤ負荷の関数であることを除けば、縦方向剛性と同様の役割を持ちます。

通常、横方向剛性を大きくすると車両がよりすばやく旋回できるようになります。使用可能な合計タイヤ力はタイヤへの負荷によって制限されるため、この値を大きくしても効果がない場合や、縦力が減少する場合もあることに注意してください。

2 つの値 mLatStiffX および mLatStiffY の組み合わせは、正規化されたタイヤ負荷の関数として横方向剛性のグラフを示します。車両のタイヤのグラフは通常、ゼロに近いときは線形応答ですが、負荷が大きくなると飽和状態になります。これは、タイヤ負荷が小さいときには横方向剛性は負荷に対して線形応答になることを意味しています。つまり、負荷を大きくすると剛性が大きくなります。タイヤ負荷が大きいときはタイヤは飽和応答になり、負荷を大きくしてもタイヤ剛性が大きくならない状態になります。後者の状態では、タイヤがスリップし始めることが想定されます。

パラメータ mLatStiffX は、この負荷を超えるとタイヤがタイヤ負荷に対して飽和応答となる、正規化されたタイヤ負荷を示しています。正規化されたタイヤ負荷は、単純にタイヤ負荷を車両が完全に停止しているときの負荷で割った値です。mLatStiffX の値が 2 のときは、タイヤの負荷が停止状態の負荷の 2 倍の場合、追加の負荷がどれだけタイヤに適用されてもそれ以上横方向剛性を大きくすることはできないことを意味します。パラメータ mLatStiffY は、停止状態の単位負荷ごとの、横滑り(ラジアン単位)の単位ごとの最大剛性を示しています。最大剛性は、タイヤが飽和負荷状態で、次に mLatStiffX によって影響を受けたときに発揮されます。

longitudal_stiffness

縦方向のタイヤ力は、単位重力ごとの単位縦滑り(ラジアン単位)ごとの縦方向剛性と、重力加速度の縦滑りと大きさの積に近い値です。この値を大きくすると、タイヤのスリップ時にタイヤがより大きな縦力を生成しようとします。通常、縦方向剛性を大きくすることは車両の加速とブレーキに役立ちます。使用可能な合計タイヤ力はタイヤへの負荷によって制限されるため、この値を大きくしても効果がない場合や、横力が減少する場合もあることに注意してください。

friction_versus_slip

縦滑りの関数として摩擦のグラフを表す 6 つの値で構成されます。車両のタイヤは縦滑りに対して複雑な応答をします。このグラフは、このリレーションシップをすばやく説明することを試みます。

通常、滑りが小さいときはタイヤは線形応答になります。これは、タイヤがわずかに滑っているだけのときは、滑りが大きくなるにつれて大きな応答力を生成できることを意味します。滑りの値が大きくなると、この力は実際には最適な滑りでのピーク値から減少し始めます。最適な滑りを超えると、効率性を失い続けて非効率な停滞状態に達し、最終的にはタイヤが停止します。

最初の 2 つの値は、タイヤの滑りがゼロのときの摩擦を示しています(0、滑りがゼロのときの摩擦)。次の 2 つの値は、最適な滑りと最適な滑りのときの摩擦を示しています(最適な滑り、最適な滑りのときの摩擦)。最後の 2 つの値は、非効率な停滞状態が始まる滑りと、非効率な停滞状態で使用できる摩擦の値を示しています(非効率な停滞状態が始まる滑り、非効率な停滞状態で使用できる摩擦)。

ここで示される摩擦値は、地面の摩擦をスケールするために使用されます。そのため、範囲(0,1)内の値にすることが望ましいですが、これは厳格な要件ではありません。通常、地面の摩擦に対しての補正が小さくなるように、グラフからの摩擦は 1.0 に近くなります。このための優れた開始点は、これらの値を使用した摩擦と滑りの平坦なグラフです。

    friction_versus_slip = [
                        0.0 1.0
                        0.5 1.0
                        1.0 1.0
                    ]

force_application_offset

タイヤ力の作用点です。力の作用の原点は、(wheel_x,wheel_y,chassis_z)です。

suspension

sprung_mass

サスペンション スプリングによってサポートされる、kg 単位の質量です。リジッド ボディの重心が 4 つの車輪の中心にある車両は通常、それぞれのサスペンション スプリングによって均等に支えられます。つまり、各サスペンション スプリングが合計車両質量の 1/4 を支えます。重心が前に移動された場合、前輪が後輪よりも多くの質量を支える必要があることが予想されます。

逆に、重心が後輪に近い場合には、後方のサスペンション スプリングが前方よりも多くの質量を支えることになります。値はゼロ以上にする必要があります。すべての車輪のスプリングにかかる質量の合計は、シャーシの質量と等しくなる必要があります。値が 0 の場合は、スプリングにかかる質量の値が、車両の質量を車輪の数で割った値と等しくなります。

max_compression

スプリングがサポートできるメートル単位の最大圧縮です。最大圧縮値は、車輪のビジュアル メッシュが車両のシャーシのビジュアル メッシュと交差する箇所に車輪が配置されないように選択する必要があります。

max_droop

スプリングがサポートできるメートル単位の最大伸長です。

camber_rest

停止状態のときの車輪のキャンバ角です。

camber_max_compression

サスペンションが完全に圧縮されているときの車輪のキャンバ角です。

camber_max_droop

サスペンションが完全に伸長されているときの車輪のキャンバ角です。

spring_strength

メートルごとのニュートン単位の、サスペンション スプリングの強さです。スプリングの強さは、車両が道路の隆起とタイヤにかかる負荷の大きさに反応するためにかかる時間を調整することで、ハンドリングに大きな影響を与えます。

spring_damper_rate

スプリングがスプリングに蓄えられたエネルギーを消散させる際の比率です。

travel_direction

サスペンションの移動ベクトルです。通常は真下(0,0,-1)です。

    travel_direction = [
                        0
                        0
                        -1

force_application_offset

車輪のサスペンション力の作用点です。力の作用の原点は、(wheel_x,wheel_y,chassis_z)です。たとえば、次のようになります。

    force_application_offset = [
                        0
                        0
                        -0.3

関連項目