車両ユニットの .physics ファイルでは、車両の物理特性を指定できます。Unit Editor で一部の設定を行うことができますが、ほとんどの手順は、標準的なテキスト エディタを使用してユニットの .physics JSON ファイルを編集して行う必要があります。
車両の .physics ファイルの例を参照するには、Vehicle テンプレート プロジェクトをロードできます。車両の物理ファイルは次の場所で見つけることができます: ..¥vehicle_project¥content¥models¥4wheel。
global.physics_properties ファイルで指定したグローバル物理プロパティは、すべての車両に適用されることに注意してください。(「グローバル物理プロパティ」も参照してください)。
衝突タイプ、フィルタ、車両ボディのシェイプ、ホイールとホイール レイキャストを設定する必要があります。ホイール レイキャストについては、フィルタの「collides_with」部分のみを指定する必要があります。通常、車両自身や水などの物質以外のすべてと衝突するように設定します。フィルタがホイールに指定されていない場合は、車両のシャーシ ジオメトリとホイールのジオメトリを除くすべてと衝突するように既定で設定されます。
例:
'my_project/content/vehicles/my_vehicle.physics'
wheels = [
{
wheel_raycast_filter = "car_wheel"
...
'global.physics_properties'
collision_filters = {
vehicle = {is = ["vehicle"] collides_with_all_except = ["trigger" "projectile"]}
wheel = {is = ["wheel"] collides_with = ["obstacle"]}
wheel_raycast = {collides_with_all_except = ["vehicle" "wheel"]}
}
ホイールとサーフェス間の摩擦値を設定するために、ホイール タイプを指定します。すべてのタイヤ タイプのマテリアルに、tire_types という名前の配列を使用する必要があります。この配列のエントリは、各ホイールの車両タイヤ タイプを選択するときに、後で使用できます。
例:
tire_types = [
"wets"
"slicks"
"tank_tread"
]
車両が走行可能なサーフェスのマテリアルを drivable_surfaces という名前の配列にリストする必要があります。この配列内の各マテリアルは、global.physics_properties ファイル内のマテリアル領域にも存在する必要があります。
例:
drivable_surfaces = [
"default"
"mud"
"tarmac"
"grass"
"ice"
]
タイヤと運転可能なサーフェスの各タイプには、車両タイヤの摩擦の計算に使用される一意の摩擦値があります。tire_surface_frictions という名前の配列で摩擦値を指定します。タイヤの各タイプには、運転可能なサーフェスの各タイプに対応する独自の配列があります。
例:
tire_surface_frictions = {
wets = [
1.1
0.62
1.1
0.7
0.5
]
slicks = [
1.2
0.58
1.2
0.68
0.45
]
tank_tread= [
2.1
1.9
2.1
2.0
1.7
]
}
上記の例の wets タイヤ タイプには、既定のマテリアル上では 1.1 の摩擦値、泥では 0.62、舗装道路では 1.1、草では 0.7、氷では 0.5 の摩擦値があります。
車両アクター テンプレートも、global.physics_properties で設定します。唯一の要件は、車両を動的なアクターとして設定することです。まず、linear_damping と angular_damping をゼロに設定して、その他のプロパティはすべて既定値のままにして開始することをお勧めします。
車両メッシュに対してユニットを作成します。
メッシュには、ホイールごとに少なくとも 1 つのノード、およびボディに 1 つのノードが含まれている必要があります。追加の衝突メッシュを作成することができます。またはリソースのコンパイル時に凸型メッシュを自動的に計算することができます。
Unit Editor で、車両のシャーシ衝突を表すメッシュ ノードを選択し、物理アクターを作成してから、次の手順を実行します。
車両に一意の名前を指定します。
適切な車両のテンプレートを選択します。
質量値を無視するか、0 (ゼロ)に設定します。
質量は、後で車両の環境設定内でオーバーライドされます。
ユニットを保存し、Unit Editor を閉じます。
ユニットの .physics ファイルで、次の手順を実行します。
シャーシに 1 つのシェイプが含まれているシェイプのセクションを見つけます。
ホイールに対応する各メッシュ ノードにシェイプのセクションを追加し、適切なホイール シェイプのテンプレートを設定します。
すべてのシェイプで、指定されたシェイプが凸面の場合は、type を convex に設定します。それ以外の場合は、コンパイル時に凸面シェイプを計算するためにタイプを convex_computed に設定します。
例:
shapes = [
{
material = "default"
shape = "wheel_frontpass"
template = "wheel"
type = "convex_computed"
}
{
material = "default"
shape = "car_body"
template = "vehicle"
type = "convex_computed"
}
{
material = "default"
shape = "wheel_frontdriver"
template = "wheel"
type = "convex_computed"
}
{
material = "default"
shape = "wheel_reardriver"
template = "wheel"
type = "convex_computed"
}
{
material = "steel"
shape = "wheel_rearpass"
template = "wheel"
type = "convex_computed"
}
]
車両ユニットの .physics ファイルを編集します。
詳細については、「車両の物理プロパティ」を参照してください。