샘플 차량 물리적 파일을 보려면 Stingray에서 차량 템플릿 프로젝트를 로드한 다음 텍스트 편집기에서 4wheel.physics를 엽니다.
차량 템플릿을 기반으로 프로젝트를 생성한 후 ..₩vehicle_project₩content₩models₩4wheel에서 이 파일을 찾을 수 있습니다.
차량 물리적 요소 설정을 참조하십시오.
enabled
True 또는 false가 유닛 내에서 차량이 활성화 또는 비활성화되어 있는지 지정합니다.
name
차량 이름입니다.
actor_name
차량의 기반으로 한 유닛 액터의 이름입니다. 이 이름은 유닛에 이전에 정의된 액터 이름에 해당해야 합니다.
vehicle_physics_model
바퀴가 4개 이상인 차량형 물리적 요소를 위한 옵션입니다.
바퀴가 4~20개인 탱크형 물리적 요소를 위한 옵션입니다. 탱크는 모든 왼쪽 바퀴의 속도가 동일하고 모든 오른쪽 바퀴의 속도가 동일하도록 보장하는 방식으로 차동 장치를 통해 전체 바퀴가 구동된다는 점에서 바퀴형 차량과 다릅니다.
tank_drive_model
탱크형 물리적 요소의 경우 탱크 구동 모델을 지정해야 합니다. > > 옵션: > * 표준 - 탱크 트레드는 앞쪽으로만 회전할 수 있습니다. > * 특수 - 탱크 트레드가 앞쪽 및 뒤쪽으로 회전할 수 있습니다.
예:
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
옵션:
full: 섀시 전체 변환에 따라 노드가 변환됩니다.
translation: 섀시 변환 구성요소에 따라 노드가 변환됩니다.
rotation: 섀시 변환 회전 구성요소에 따라 노드가 변환됩니다.
center_of_mass_offset
차량 강체의 질량 중심 간격띄우기
관성 모멘트는 다음과 같은 3가지 중 한 가지 방법으로 설정할 수 있습니다. - raw - 관성 모멘트의 x,y,z 값을 명시적으로 설정합니다. - cuboid - 직육면체에 추가 공식을 사용해 모멘트를 자동으로 계산합니다(추가 배율 사용). - default - PhysX 예에서 사용된 기본 (이전 버전과 호환 가능한) 방법입니다. 이 방법은 z 축의 배율을 조정하는 응답성 설정과 함께 cuboid 공식을 사용합니다.
이러한 모든 방법에 대해 매개변수를 지정할 수 있지만 한 가지 방법만 사용됩니다. raw 방법이 가장 우선하고 그 다음은 cubiod 방법이 사용됩니다. 달리 방법이 없는 경우 마지막으로 default 방법이 사용됩니다.
cuboid 공식: 너비가 W이고, 높이가 H이고, 길이가 L인 경계 직육면체의 경우 차량 질량 M에 대한 관성 모멘트는 ((LL+HH)M, (WW+HH)M/12, (WW+LL)M/12입니다.
scale
cuboid 방법을 사용하면 축 미세 조정에 따라 cubiod 공식으로 산출된 결과가 조정됩니다.
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
엔진의 최대 회전 속도로, 초당 라디안 단위로 지정됩니다.
엔진에 감쇠가 적용되는 비율입니다. 일반적인 값 범위는 (0.25,3)입니다. 감쇠율이 0인 경우 시뮬레이션이 불안정할 수 있습니다.
full_throttle
전체 스로틀이 적용되는 경우 엔진의 감쇠율입니다.
zero_throttle_clutch_engaged
전체 스로틀이 적용되는 경우 엔진의 감쇠율입니다. 스로틀 값이 0~1이면 zero_throttle_clutch_engaged와 full_throttle 간에 보간이 발생합니다.
zero_throttle_clutch_disengaged
중립 기어에서 클러치가 풀린 경우 스로틀 값이 0일 때 엔진의 감쇠율입니다.
type
옵션:
ls_4wd
4륜 구동 차량의 차동 제한 장치입니다.
ls_frontwd
전륜 구동 차량의 차동 제한 장치입니다.
ls_rearwd
후륜 구동 차량의 차동 제한 장치입니다.
open_4wd
4륜 구동 차량의 일반 차동 장치입니다.
open_frontwd
전륜 구동 차량의 일반 차동 장치입니다.
open_rearwd
후륜 구동 차량의 일반 차동 장치입니다.
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
후진 기어에서 시작해서 중립, 1단 기어 등으로 이어지는 기어비 값의 어레이입니다. 전진 기어의 최대 수는 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
속도의 작용에 따른 최대 조향을 나타내는 속도 및 조향 쌍 어레이를 포함하고 있습니다. 이 쌍의 첫 번째 값은 속도를 나타내고 두 번째 값은 해당 속도에서 최대 조향을 나타냅니다.
아래 예에서는 속도가 0일 때 전체 조향이 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 ]
게임 내 차량 역학과 관련된 어려움 중 하나는 만족스러운 핸들링을 구현하는 방식으로 원시 제어기 데이터를 필터링하는 방식을 파악하는 것입니다. 예를 들어 플레이어가 실제 차량에서는 결코 발생할 수 없는 방식으로 가속기 트리거를 매우 빠르게 눌러 자주 가속하려고 합니다. 이처럼 급속하게 가속하면 바퀴 회전이 타이어에서 발생하는 횡력 및 축력을 줄이기 때문에 의도와 반대되는 영향이 발생할 수 있습니다. 이러한 문제를 극복하기 위해 원시 입력값에 스무딩 데이터가 적용됩니다.
다음 입력값에 대한 상승율입니다. 이러한 값은 0 보다 커야 합니다. 이러한 값이 클수록 다듬은 입력값이 원시 입력값에 더 빨리 도달합니다.
다음 입력값에 대한 감소율입니다. 이러한 값은 0 보다 커야 합니다. 이러한 값이 클수록 다듬은 입력값이 원시 입력값에 더 빨리 도달합니다.
예:
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
액터에서 지정된 모양 노드의 이름으로, 바퀴에 해당합니다. 이 모양의 중심은 바퀴 질량 중심에 사용되고 이 모양은 충돌에 사용됩니다.
물리적 바퀴 변환 및/또는 회전으로 인해 변환될 메시 내의 노드 어레이입니다. 렌더 노드는 바퀴 자체보다는 차량 구성요소에 영향을 미치는 데 유용합니다. 탱크 트레드를 예로 들 수 있습니다. 트레드의 다양한 지점이 각 바퀴의 변환 구성요소에 해당하도록 트레드를 구성할 수 있습니다. 각 바퀴가 위/아래로 움직이면 트레드 점이 이러한 움직임과 지형을 따릅니다. 변환 유형이 "변환"으로 설정되어 있으면 트레드가 바퀴와 꼬이지 않습니다.
transform_type:
full: 바퀴 전체 변환에 따라 노드가 변환됩니다.
translation: 바퀴 변환 구성요소에 따라 노드가 변환됩니다.
rotation: 섀시 바퀴 회전 구성요소에 따라 노드가 변환됩니다.
mass
바퀴와 타이어를 합한 질량으로 킬로그램 단위로 표시됩니다. 일반적으로 바퀴 질량은 20Kg~80Kg이지만 차량에 따라 더 가볍거나 무거울 수 있습니다.
moi
이 특성은 바퀴의 관성 모멘트를 명시적으로 설정합니다. 설정하지 않으면 점 질량 공식(mr^2)으로 기본적으로 설정됩니다.
position_offset
바퀴 위치 간격띄우기 벡터입니다. 바퀴 초기 위치는 메시에서 바퀴의 위치에 따라 설정됩니다.
radius_scale
바퀴 반지름은 모양 치수에 따라 결정됩니다. radius_scale multiplier를 적용해 바퀴 반지름을 조정할 수 있습니다. 예를 들어 이 값이 1.0이면 조정되지 않지만 1.1이면 바퀴 크기가 10% 커집니다. 탱크 트레드 구현과 같은 경우 바퀴 크기 조정이 유용할 수 있습니다. 배율을 조정하지 않으면 바퀴의 높이가 표면과 같아져 트레드가 표면 아래에 있게 됩니다. 트레드의 두께를 고려할 정도로 바퀴의 배율을 충분히 조정하면 트레드의 높이가 표면과 같아집니다.
damping_rate
감쇠율은 자유롭게 회전하는 바퀴의 회전 속도가 줄어드는 비율을 나타냅니다. 감쇠율이 높을수록 바퀴가 더 빨리 멈춥니다. 감쇠율은 0보다 커야 합니다. 일반적인 값 범위는 0.25 ~ 2입니다.
max_brake_torque
브레이크가 최대한 적용된 경우 바퀴에 적용되는 토크 값입니다. 토크 값이 클수록 바퀴가 더 빨리 잠기고 토크 값이 낮을수록 바퀴를 잠그는데 오래 걸립니다. 토크 값은 뉴턴 미터 단위로 표시됩니다. 브레이크 토크는 1500부터 시작하는 것이 적절합니다.
max_handbrake_torque
이 특성은 브레이크가 아니라 핸드 브레이크에 적용된다는 점을 제외하고 최대 브레이크 토크와 동일하게 작용합니다. 일반적으로 4륜 자동차의 경우 핸드 브레이크가 브레이크보다 강하게 작용하고 뒷 바퀴에만 적용됩니다. 뒷 바퀴의 경우 이 값을 4000부터 시작하는 것이 적절합니다. 하지만 앞 바퀴의 경우 핸드 브레이크에 반응하지 않도록 이 값을 0으로 설정해야 합니다.
max_steer
자동차 핸들이 완전히 잠긴 경우 바퀴의 조종 각도 값으로, 라디안으로 표시됩니다. 일반적으로 4륜 자동차의 경우 앞 바퀴만 핸들 조종의 영향을 받습니다. 이 때 뒷 바퀴의 경우 이 값이 0이어야 합니다. 빠른 속도에서 조종 각도가 크면 차량이 견인력을 잃고 마치 뒷 바퀴로만 달리는 것처럼 제어할 수 없게 됩니다. 이러한 상황을 피하기 위해서는 steer_vs_forward 속도 섹션에서 적절한 값을 설정해야 합니다.
type
global.physics_properties tire_types의 타이어 유형입니다.
lateral_stiffness_x, lateral_stiffness_y
이 두 값은 함께 타이어의 유닛 횡방향 슬립당 횡방향 강성(라디안)을 나타냅니다. 타이어의 횡방향 강성은 타이어의 횡력 전개를 제어하고 타이어 하중의 작용이라는 점을 제외하면 축방향 강성과 비슷한 작용을 합니다.
일반적으로 횡방향 강성을 늘리면 타이어가 좀 더 빠르게 회전하는 데 도움이 됩니다. 사용 가능한 전체 타이어 힘은 타이어에 대한 하중에 따라 제한되므로 이 값이 늘어나더라도 아무런 영향이 없거나 축력조차 줄어들지 않습니다.
두 값 mLatStiffX 및 mLatStiffY는 횡방향 강성 그래프를 표준화된 타이어 하중의 작용으로 설명합니다. 일반적인 차량 타이어의 경우 제로 하중에 가까운 선형 반응을 보이지만 하중이 커지면 포화됩니다. 즉, 타이어 하중이 낮으면 횡방향 강성이 하중에 대해 선형 반응을 보입니다. 다시 말해 하중이 커지면 강성도 커집니다. 타이어 하중이 높을수록 타이어가 포화 반응을 보이고 더 큰 하중이 적용되더라도 타이어 강성이 커지지 않게 됩니다. 후자의 경우 타이어가 미끄러지기 시작할 수 있습니다.
매개변수 mLatStiffX는 이 값을 초과하게 되면 타이어가 타이어 하중에 대해 포화 반응을 보이는 표준화된 타이어 하중입니다. 표준화된 타이어 하중은 타이어 하중을 차량이 완전히 멈춘 상태의 하중으로 나눈 값입니다. mLatStiffX의 값이 2이면 타이어 하중이 정지 하중의 2배가 되어 타이어에 얼마의 추가 하중이 적용되든지 상관 없이 횡방향 강성이 발생하지 않을 수 있음을 의미합니다. 매개변수 mLatStiffY는 유닛 정지 하중당 측방향 슬립(라디안)의 단위당 최대 강성을 나타냅니다. 타이어가 포화된 하중 영역에 있을 때 최대 강성이 제공되고 이는 mLatStiffX로 제어됩니다.
longitudal_stiffness
타이어의 축력은 대략적으로 유닛 중력당 단위 횡방향 슬립(라디안)의 횡뱡향 강성 X 축방향 슬립 X 중력 가속입니다. 이 값을 늘리면 타이어가 미끌러질 때 타이어에서 더 많은 축력이 발생합니다. 일반적으로 축방향 강성이 커지면 차량 가속 및 제동에 도움이 됩니다. 사용 가능한 전체 타이어 힘은 타이어에 대한 하중에 따라 제한되므로 이 값이 늘어나더라도 아무런 영향이 없거나 횡력조차 줄어들지 않습니다.
friction_versus_slip
마찰 그래프를 축방향 슬립의 작용으로 설명하는 6개 값으로 구성되어 있습니다. 차량 타이어는 축방향 슬립에 대해 복잡하게 반응하고 이 그래프는 이러한 관계를 간단하게 설명하고자 합니다.
일반적으로 타이어는 작은 슬립에서 선형 반응을 보입니다. 즉, 타이어가 살짝만 미끄러진 경우 슬립 증가에 따라 커지는 반응력을 생성할 수 있습니다. 실제로, 슬립 값이 커지면 반응력은 최적의 슬립에서 발생하는 피크 값에서 줄어들기 시작합니다. 최적의 슬립을 초과하게 되면 결국 타이어가 점점 비효율적으로 동작하는 것을 멈추고 비효율적 상태가 됩니다.
처음 두 값은 타이어 슬립이 0일 때 마찰과 슬립이 0일 때 마찰을 나타냅니다. 다음 두 값은 최적의 슬립과 최적의 슬립 시 마찰을 나타냅니다. 마지막 두 값은 비효율적 상태가 시작될 때의 슬립과 비효율적 상태에서 사용할 수 있는 마찰 값을 나타냅니다.
여기서 나타내는 마찰 값은 지표면 마찰을 조정할 때 사용됩니다. 즉, 이러한 마찰 값은 (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)입니다.
sprung_mass
서스펜션 스프링이 지탱하는 질량(kg)입니다. 바퀴 4개의 중심에 강체 질량 중심이 있는 차량은 일반적으로 서스펜션 스프링 4개에 의해 균일하게 지탱됩니다. 즉, 각 서스펜션 스프링이 총 차량 질량의 1/4을 지탱합니다. 질량 중심이 앞으로 이동하면 앞 바퀴가 뒷 바퀴보다 더 많은 질량을 지탱해야 합니다.
반대로 질량 중심이 뒷 바퀴 근처에 있으면 뒤쪽 서스펜션 스프링이 앞쪽 서스펜션 스프링보다 더 많은 질량을 지탱합니다. 이러한 값은 0보다 크거나 0이어야 합니다. 모든 바퀴의 총 스프링 상질량은 섀시 질량과 같아야 합니다. 이 값이 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