UDN
Search public documentation:

VehiclesTechnicalGuideKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 게임플레이 프로그래밍 > 비히클 시스템 테크니컬 가이드

비히클 시스템 테크니컬 가이드


문서 변경내역: James Golding 작성. Jeff Wilson 수정. 홍성진 번역.

개요


언리얼의 비히클(vehicle, 탈것)은 플레이어가 월드를 돌아다니는 데 사용하는 물리적 오브젝트입니다. 가장 먼저 떠오르는 것이라면 차나 트럭같은 바퀴 달린 탈것에서부터 비행기나 헬리콥터같은 날탈 정도입니다. 그러나 언리얼 엔진의 비히클 시스템과 리짓 바디 피직스 엔진을 통해 엄청 유연하게 새로운 비히클을 만들어 낼 수도 있습니다. 차량, 트럭, 비행기, 헬리콥터에 더해 탱크처럼 굴레(tread)로 돌아가는 것도, 호버크래프트나 호버보드같은 공중부양체도, 심지어 말과 같은 생체에서 2족 보행 기계화 비히클까지, 이 시스템으로 만들어내지 못하는 것이 없습니다. 즉 탑승 전투를 하는 게임 뿐 아니라, 경마 게임이나 서부를 배경으로 하는 게임에서 올라탈 수 있는 말을 만드는 데도 사용할 수 있다는 뜻입니다. 심지어 시뮬레이션용 서핑 보드나 스노우 보드도 비히클 시스템을 사용하여 만들 수 있습니다. 물론 비히클이 독특해 질 수록 커스텀 함수성을 구현하거나 할 필요야 있겠지만, 이미 체계가 잡혀 있는 프레임워크 덕에 기초 작업부터 새로 만들 필요는 전혀 없이, 어떤 유형에는 어떤게 필요한지만 간단히 추가하여 만들어 낼 수 있는 것입니다.

비히클 클래스


언리얼의 모든 비히클은 Pawn 클래스를 확장(extend)하여 다수의 프로퍼티와 함수성을 상속합니다. 언리얼의 비히클 중 눈에 보이는 부분은 스켈레탈 메시를 사용하며, 여기에는 애니메이션과 사운드 재생은 물론 메시의 스켈레톤에 있는 소켓이나 본 위치에 여러가지 이펙트를 스폰시키는 것도 가능합니다.

Vehicle

모든 비히클에 대한 베이스 클래스입니다. Steering, Throttle, Rise 등의 기본 콘트롤은 물론, 컴퓨터 플레이어가 비히클을 운전할 수 있도록 하는 데 사용되는 AI 코드의 큰 부분을 차지하는 함수 토막(stub)도 포함되어 있습니다. 비히클에 타고 내리는 데 사용되는 코드 역시도 포함됩니다. 고정 터렛같은 것을 만들기 위해 이를 서브클래싱하는 것이 좋을 수도 있습니다.

+
Vehicle 프로퍼티 (클릭하면 펼쳐집니다)

AI 인공지능

  • bTurnInPlace 제자리 회전 - 참이면 AI 더러 이 비히클은 제자리 회전이 가능하다 이릅니다.
  • bSeparateTurretFocus 터렛 포커스 분리 - 참이면 AI 더러 이 비히클은 본체가 향하는 방향과는 별도로 조준되는 터렛형 무기가 장착되어 있다 이릅니다.
  • bFollowLookDir 보는 방향 따르기 - 참이면 AI 더러 비히클의 로테이션이 카메라의 로테이션을 따르라 이릅니다.
  • bHasHandbrake 핸드브레이크 있음 - 참이면 AI 더러 이 비히클에 핸드 브레이크가 있다 이릅니다. 비히클 스티어링에 사용됩니다.
  • bScriptedRise 스크립트된 상승 - 참이면 AI 더러 호버링 가능한 비히클이라 이릅니다. 막혔거나 목적지에 도달했을 때 사용됩니다.
  • bDuckObstacles 장애물 숙이기 - 참이면 AI 더러 검사를 해서 장애물 아래로 숙여 지나가라 이릅니다.
  • bAvoidReversing 후진 피하기 - 참이면 AI 더러 꼭 필요한 경우가 아니면 후진을 하지 말라 이릅니다.
  • bRetryPathfindingWithDriver 운전수로 길찾기 재시도 - 참이면 AI 더러 비히클 길찾기 실패시 걸어서 계속하라 이릅니다.

Damage 대미지

  • DriverDamageMult 운전수 대미지 곱수 - 운전수가 비히클에 있을 때 입는 대미지에 대한 멀티플라이어 입니다.
  • MomentumMult 운동량 곱수 - 비히클 대미지에 의해 적용된 운동량에 대한 멀티플라이어 입니다.
  • CrushedDamageType 뭉개기 대미지형 - 비히클이 무언가를 깔아뭉갰을 때 사용할 DamageType 입니다.
  • MinCrushSpeed 최소 뭉개기 속력 - 비히클이 뭔가를 깔아뭉개기 위한 최소 이동 속력입니다.
  • ForceCrushPenetration 강제 뭉개기 관통 - 속력에 관계 없이 무언가를 뭉개기 전 허용되는 최대 관통 범위입니다.

Display 디스플레이

  • ViewPitchMin 뷰 피치 최소 - Pawn 에서 상속됩니다. 비히클의 카메라에 허용된 최소 피치(상하) 로테이션입니다.
  • ViewPitchMax 뷰 피치 최대 - Pawn 에서 상속됩니다. 비히클의 카메라에 허용된 최대 피치(상하) 로테이션입니다.

Entry/Exit 타기/내리기

  • Driver 운전수 - 이 비히클을 운전하는 Pawn 을 가리킵니다.
  • bDriving 운전중 - 참이면 비히클에는 운전수가 있습니다.
  • ExitPositions 내리기 위치 - 플레이어가 비히클을 내릴 때 플레이어를 놓을 비히클 상대 위치 배열입니다. 지정된 것이 없으면 최적의 자동 배치 시스템이 사용됩니다.
  • ExitRadius 내리기 반경 - 자동 배치 시스템 사용시 플레이어가 내릴 때 비히클에서 최대 이 거리까지 플레이어를 놓을 수 있습니다. 비히클에서 플레이어를 이 거리만큼 전후좌우로 움직여 놓아 봅니다.
  • ExitOffset 내리기 오프셋 - 플레이어가 내릴 때 놓는 위치에 적용할 오프셋입니다.
  • bDriverIsVisible 운전수 보이게 - 참이면 비히클 운전수가 렌더됩니다.
  • bAttachDriver 운전수 어태치 - 참이면 비히클에 탑승시 운전수를 붙입니다.

Mesh and Animation 메시와 애니메이션

  • Mesh 메시 - Pawn 에서 상속됩니다. 비히클의 시각 성분을 나타내는 SkeletalMeshComponent 입니다.

Movement 이동

  • Steering 스티어링 - 플레이어가 비히클의 핸들을 좌우 어느 쪽으로 꺾었는지를 나타내는 것으로, -1 에서 1 까지의 값입니다. 디폴트로 A 와 D 키를 눌렀을 때의 결과입니다.
  • Throttle 쓰로틀 - 플레이어의 전후 입력을 나타내는 것으로, -1 에서 1 까지의 값입니다. 디폴트로 W 와 S 키를 눌렀을 때의 결과입니다.
  • Rise 상승 - 플레이어의 상하 입력을 나타내는 것으로, -1 에서 1 까지의 값입니다. 디폴트로 스페이스바와 C 키를 눌렀을 때의 결과입니다.
  • bIgnoreStallZ StallZ 무시 - 참이면 비히클은 레벨의 월드 프로퍼티에 지정된 StallZ 값 이상의 고도로 올라갈 수 있습니다.

+
Vehicle 함수 (클릭하면 펼쳐집니다)

AI 인공지능

  • GetMaxRiseForce 최대 상승력 구하기 - 비히클의 최대 상승력을 반환합니다.
  • GetTargetLocation [RequestedBy] [bRequestAlternateLoc] 타겟 위치 구하기 - 비히클을 조준할 때 최적의 위치를 반환합니다.
    • RequestedBy 요청한 대상 - 옵션. 비히클을 타겟으로 잡고 있는 액터를 가리킵니다.
    • bRequestAlternateLoc 대체 위치 요청 - 옵션. 참이면 위치가 여럿일 경우 2차 위치를 반환합니다. 이 구현에서는 사용되지 않습니다.
  • ContinueOnFoot 걸어서 계속 - 운전수가 AI 인 경우 운전수를 비히클에서 강제로 내리게 한 다음, 운전수가 비히클을 떠났는지 여부를 반환합니다. 길찾기 코드에서 패쓰를 걸어서만 이어갈 수 있는 경우에 호출됩니다.

Collision 콜리전(충돌)

  • EncroachingOn [Other] 인크로치 대상 - 비히클이 지정된 액터에 침임(encroach) 또는 겹쳤는데, 그 액터를 밀어낼 수 없었을 때 엔진에 의해 호출됩니다.
    • Other 다른 것 - 비히클의 침입 대상이 된 액터를 가리킵니다.
  • PancakeOther [Other] 다른 것 떡실신 - 지정된 폰을 뭉개기 위해 엄청난 양의 대미지를 입히고자 EncroachingOn() 에 의해 호출됩니다.
    • Other 다른 것 - 깔아뭉갤 폰을 가리킵니다.

Damage 대미지

  • TakeRadiusDamage [InstigatedBy] [BaseDamage] [DamageRadius] [DamageType] [Momentum] [HurtOrigin] [bFullDamage] [DamageCauser] [DamageFallowExponent] 범위 대미지 입음 - 지정된 대미지 원점과 비히클의 거리에 따라 크기가 변하는 대미지를 비히클과 운전수에 적용합니다.
    • InstigatedBy 인스티게이터(유발한) 대상 - 대미지 적용을 담당하는 콘트롤러를 가리킵니다.
    • BaseDamage 기본 대미지 - 원점에서 적용할 최대 대미지 양입니다.
    • DamageRadius 대미지 반경 - 대미지를 적용할 원점에서의 최대 거리입니다. 원점에서 여기까지의 거리에 따라 크기가 변합니다.
    • DamageType 대미지 타입 - 입힐 대미지 종류입니다.
    • Momentum 운동량 - 비히클에 전달할 운동량입니다.
    • HurtOrigin 원점 손상 - 적용할 대미지의 원점입니다. 이 위치에는 최대 대미지를 입힙니다.
    • bFullDamage 최대 대미지 - 참이면 원점에서의 거리에 따라 대미지가 달라지지 않습니다. 반경 안에만 있으면 최대 대미지를 입습니다.
    • DamageCauser 대미지 유발자 - 대미지 입히기를 담당하는 액터를 가리킵니다.
    • DamageFalloffExponent 대미지 감쇠 지수 - 반경에 따라 대미지의 양이 줄어드는 정도에 대한 지수입니다. 디폴트는 1.0 으로, 선형 감쇠입니다.
  • DamageRadiusDamage [DamageAmount] [DamageRadius] [EventInstigator] [DamageType] [Momentum] [HitLocation] [DamageCauser] [DamageFalloffExponent] 대미지 반경 감쇠 - 비히클이 대미지를 입으면 운전수 역시도 대미지를 입힐 것인지 결정하고, 그렇다면 Driver 에서 TakeRadiusDamage() 를 호출합니다.
    • DamageAmount 대미지 양 - 원점에 적용할 최대 대미지 양입니다.
    • DamageRadius 대미지 반경 - 원점에서부터 대미지를 적용할 최대 거리입니다. 대미지는 원점에서 이 거리까지에 따라 스케일 조절됩니다.
    • EventInstigator 이벤트 인스티게이터 - 대미지 입히기를 담당하는 콘트롤러를 가리킵니다.
    • DamageType 대미지 타입 - 입힐 대미지 종류입니다.
    • Momentum 운동량 - 운전수에게 전달할 운동량입니다.
    • HitLocation 적중 위치 - 대미지를 적용할 원점입니다. 반경 전체에 최대 대미지를 입힙니다.
    • DamageCauser 대미지 유발자 - 대미지 입히기를 담당하는 액터를 가리킵니다.
    • DamageFalloffExponent 대미지 감쇠 지수 - 반경에 따라 대미지의 양이 줄어드는 정도를 나타내는 지수입니다. 디폴트는 1.0 으로, 선형 감쇠입니다.
  • Destroy 파괴 - 비히클이 파괴될 때 엔진에 의해 호출됩니다.
  • Destroyed_HandleDriver 파괴_운전수 처리 - 비히클이 파괴되었을 때 운전수 정리(cleanup)를 처리하기 위해 호출됩니다.
  • TakeDamage [Damage] [EventInstigator] [HitLocation] [Momentum] [DamageType] [HitInfo] [DamageCauser] 대미지 입음 - 부모에서 상속됩니다. 비히클에 대미지를 적용합니다. 곧 입을 대미지 양의 조절에는 DamageType 비히클 스케일 값을 사용합니다.
    • Damage 대미지 - 입힐 대미지 양입니다.
    • EventInstigator 이벤트 인스티게이터 - 대미지 입히기를 담당하는 콘트롤러를 가리킵니다.
    • HitLocation 적중 위치 - 대미지를 입은 위치입니다. * Momentum 운동량 - 비히클에 전달할 운동량입니다.
    • DamageType 대미지 타입 - 입힐 대미지 종류입니다.
    • HitInfo 적중 정보 - 대미지를 일으킨 원인이 된 피격 정보입니다.
    • DamageCauser 대미지 유발자 - 대미지를 유발한 액터를 가리킵니다.
  • AdjustDriverDamage [Damage] [InstigatedBy] [HitLocation] [Momentum] [DamageType] 운전수 대미지 조절 - 운전수에게 적용할 대미지 양을 조절합니다. 대미지를 입을 때 드라이버의 Pawn 클래스에서 호출됩니다.
    • Damage 대미지 - 입힐 원래 대미지 양입니다.
    • InstigatedBy 인스티게이터(유발한) 대상 - 대미지를 담당하는 콘트롤러를 가리킵니다.
    • HitLocation 적중 위치 - 대미지를 일으킨 피격 위치입니다.
    • Momentum 운동량 - 운전수에 전달할 운동량입니다.
    • DamageType 대미지 타입 - 입힐 대미지 종류입니다.
  • DriverDied [DamageType] 운전수 사망 - 운전수가 비히클 안에서 죽었을 때 Driver 와 Controller 의 정리작업(cleanup)을 처리합니다.
    • DamageType 대미지 타입 - 운전수를 죽음에 이르게 한 대미지 종류입니다.
  • NotifyDriverTakeHit [InstigatedBy] [HitLocation] [Damage] [DamageType] [Momentum] 운전수 피격 알림 -

Display 디스플레이

  • GetDefaultCameraMode [RequestedBy] 디폴트 카메라 모드 구하기 - 플레이어가 비히클 안에 있을 때 사용할 디폴트 카메라 모드를 반환합니다.
    • RequestedBy 요청한 대상 - 카메라 모드를 요청한 콘트롤러, 거의 비히클의 콘트롤러를 가리킵니다.

Entry/Exit 타고/내리기

  • CanEnterVehicle [P] 비히클 탑승 가능 - 주어진 폰이 이 비히클에 탈 수 있는지, 즉 남은 자리는 있는지, 폰에 콘트롤러가 있는지, 이미 폰이 다른 비히클을 운전중이지는 않은지를 반환합니다.
    • P - 비히클 안에다 놓으려는 폰을 가리킵니다.
  • AnyAvailableSeat 남은 자리 있는지 - 비히클에 여분의 좌석이 있는지를 반환합니다.
  • TryToDrive [P] 운전 시도 - 주어진 폰이 비히클의 운전수가 될 수 있는지를 반환합니다.
    • P - 운전수가 될 폰을 가리킵니다.
  • DriverEnter [P] 운전수 탑승 - 주어진 폰이 죽지 않은 이상 비히클의 운전수로 배치하고, 성공했는지를 반환합니다. 여기서 드라이버의 콘트롤러는 비히클의 콘트롤러가 됩니다.
    • P - 비히클에 탈 폰을 가리킵니다.
  • AttachDriver [P] 운전수 붙이기 - 운전수를 비히클에 하드 어태치하고, bDriverIsVisible 이 거짓이면 운전수를 숨깁니다. StartDriving() 안의 운전수가 Pawn 클래스에서 호출합니다. bAttachDriver 가 참일때만 실행합니다. 모든 클라이언트에서 호출됩니다.
    • P - 붙일 운전수를 가리킵니다.
  • DetachDriver [P] 운전수 떼기 - 비히클에서 운전수를 디태치시키는 함수 토막입니다. StopDriving() 안의 운전수가 Pawn 클래스에서 호출합니다. 모든 클라이언트에서 호출됩니다.
  • GetExitRotation [C] 내리는 로테이션 구하기 - 내릴 때 운전수를 놓을 로테이션을 반환합니다.
    • C - 운전수의 콘트롤러를 가리킵니다.
  • DriverLeave [bForceLeave] 운전수 보내기 - 플레이어가 비히클을 내리고자 할 때 PlayerController 에서 호출됩니다. 비히클에서 운전수를 떼고, 운전수를 월드에 놓은 다음, 콘트롤러에 빙의된 운전수를 반환합니다.
    • bForceLeave 강제 보내기 - 참이면 운전수를 놓기에 적합한 위치가 없어도 비히클 밖으로 운전수를 내보냅니다. 운전수는 비히클의 GetTargetLocation() 에 놓습니다.
  • DriverLeft 운전수 보냄 - Driver 를 클리어하고 bDriving 을 거짓으로 설정합니다.
  • PlaceExitingDriver [ExitingDriver] 내리는 운전수 배치 - 비히클을 내릴 때 운전수를 놓기에 적합한 위치를 찾아본 다음, 성공했는지 여부를 반환합니다.
    • ExitingDriver 내리는 운전수 - 옵션. 비히클을 내리는 운전수를 가리킵니다. 지정하지 않으면 현재 Driver 가 사용됩니다.
  • FindAutoExit [ExitingDriver] 자동 출구 찾기 - 비히클의 전후좌우에서 출구 위치를 찾아본 다음, 성공했는지를 반환합니다.
    • ExitingDriver 내리는 운전수 - 비히클을 내리는 운전수를 가리킵니다.
  • TryExitPos [ExitingDriver] [ExitPos] [bMustFindGround] 출구 위치 시험 - FindAutoExit() 로 생성된 출구 위치마다 테스트해 본 다음 운전수를 그 위치에 놓을 수 있는지를 반환합니다.
    • ExitingDriver 내리는 운전수 - 비히클을 내리는 운전수를 가리킵니다.
    • ExitPos 출구 위치 - 테스트해 볼 출구 위치입니다.
    • bMustFindGround 반드시 땅이어야 함 - 참이면 바닥을 찾기 위한 트레이스에 무언가 맞아야 테스트가 성공합니다.
  • GetEntryLocation 입구 위치 구하기 - 비히클 입구 위치를 반환합니다. 디폴트는 비히클 위치입니다.

Movement 이동

  • SetInputs [InForward] [InSrafe] [InUp] 인풋 설정 - 비히클의 Rise, Steering, Throttle 값을 수동으로 설정하기 위한 인터페이스를 제공합니다.
    • InForward 앞 인풋 - 비히클의 새로운 Throttle 값입니다.
    • InStrafe 옆 인풋 - 비히클의 새로운 Steering 값입니다.
    • InUp 위 인풋 - 비히클의 새로운 Rise 값입니다.
  • SetDriving [b] 운전상태 설정 - 비히클의 운전 상태 bDriving 을 설정합니다.
    • b - 비히클의 새로운 운전 상태입니다.
  • DrivingStatusChanged 변경된 운전 상태 - 운전 상태가 변경될 때 호출되어 필요한 액션을 취할 수 있도록 합니다. 디폴트는 Rise, Steering, Throttle 을 0 으로 하는 것입니다.
  • ZeroMovementVariables 이동 변수 영점 - Rise, Steering, Throttle 값을 0 으로 합니다.

SVehicle

SVehicle 클래스는 비히클 시스템에 리짓 바디 피직스 기반 운동을 도입합니다. 바퀴달린 비히클을 지원하기 위한 파라미터가 모두 포함되어 있으며, 다양한 종류의 비히클 제작을 위한 wheeled(바퀴), flying(비행), hovering(공중부양), treaded(굴레) 등의 범용 시뮬레이션 오브젝트를 활용합니다.

+
SVehicle 프로퍼티 (클릭하면 펼쳐집니다)

Damage 대미지

  • RadialImpulseScaling 방사형 충격 스케일 - HurtRadius() 함수로 입은 대미지에 의해 비히클에 전해진 충격에 대한 스케일입니다.

Display 디스플레이

  • BaseOffset 베이스 오프셋 - 카메라 위치에 대한 베이스 벡터 오프셋입니다.
  • CamDist 캠 거리 - 카메라의 로컬 X-축 상의 기준 위치에서 카메라를 오프셋시킬 거리입니다.
  • DriverViewPitch 운전수 뷰 피치 - LookToSteer 에 사용할 운전수의 피치 입니다.
  • DriverViewYaw 운전수 뷰 요 - LookToSteer 에 사용할 운전수의 요 입니다.

Movement 이동

  • SimObj 시뮬 오브젝 - 다량의 비히클 시뮬레이션을 처리하는 SVehicleSimBase 오브젝트입니다. 자세한 정보는 SVehicleSimBase 부분을 참고하십시오.
  • Wheels 바퀴 - SVehicleWheel 오브젝트의 배열로, (바퀴달린 비히클인 경우) 각 바퀴에 대한 파라미터를 담습니다.
  • COMOffset 질량중심 오프셋 - 로컬 스페이스에서의 비히클 질량 중심(Center Of Mass) 위치입니다.
  • InertiaTensorMultiplier 관성 텐서 멀티플라이어 - 비히클에 대한 관성 텐서 스케일입니다. 비히클이 각 축에 대해 얼마나 쉽게 회전(spin)하는지에 영향을 끼치며, 질량의 회전에 상응하는 부분입니다.
  • MaxSpeed 최대 속력 - 비히클이 움직일 수 있는 최대 속력입니다.
  • MaxAngularVelocity 최대 각속도 - 비히클이 도달할 수 있는 최대 각속도입니다.
  • bUseSuspensionAxis 서스펜션 축 사용 - 참이면 바닥에 접촉한 바퀴는 항상 그 노멀이 서스펜션 축 상의 뒤쪽을 향하도록 합니다. 거짓이면 접촉한 바퀴는 그에 맞닿은 바닥의 표면 노멀을 사용합니다.
  • HeavySuspensionShiftPercentage 헤비 서스펜션 전환 비율 - 서스펜션에 허용한 최대 이동 거리 중 이 백분율만큼의 거리를 넘어가면 SuspensionHeavyShift() 함수가 호출되도록, 즉 헤비 서스펜션으로 전환되도록 합니다.

SVehicle 은 'upright constraint'(직립 제약)도 지원합니다. 비히클이 움직이면서도 직립 상태를 유지하도록 하는 데 사용되는 용수철같은 컨스트레인트이며, 호버 비히클같은 종류에 쓰기 좋습니다.

  • bStayUpright 직립 유지 - 직립을 유지하는 월드 컨스트레인트를 사용합니다.
  • StayUprightRollResistAngle 직립 유지 롤 저항각 - 비히클이 롤링에 저항할 각도입니다.
  • StayUprightPitchResistAngle 직립 유지 피치 저항각 - 비히클이 피칭에 저항할 각도입니다.
  • StayUprightStiffness 직립 유지 강성 - 제한 각을 넘어선 직립 스프링의 강성입니다.
  • StayUprightDamping 직립 유지 제동 - 제한 각을 넘어슨 직립 스프링의 제동입니다.

비히클이 전복된 경우, SVehicle 에는 다음 세팅을 사용하여 다시 뒤집을 수 있는 기능이 지원됩니다:

  • bCanFlip 뒤집기 가능 - 플레이어가 비히클을 바로세울 수 있으면 참입니다.
  • UprightLiftStrength 직립 드는 힘 세기 - 직립 도중 비히클에 적용된 드는 힘 스케일입니다.
  • UprightTorqueStrength 직립 비트는 힘 세기 - 직립 도중 비히클에 적용된 비트는 힘 스케일입니다.
  • UprightTime 직립 시간 - 직립 드는 힘/비트는 힘 적용에 걸리는 초 단위 기간입니다.

Output 출력

SVehicle 클래스에는, 코드 다른 곳에서 사용할 수 있는 'output', 출력 파라미터가 여럿 있습니다.

  • bVehicleOnGround 땅 위에 비히클 - SVehicleWheel 중 하나라도 현재 땅에 닿아 있으면 참입니다 (섀시 등과의 접촉은 무시).
  • TimeOffGround 땅에서 떨어진 시간 - bVehicleOnGround 가 거짓 상태인 시간입니다.
  • bVehicleOnWater 물 위에 비히클 - SVehicleWheel 중 하나라도 현재 물에 닿아 있으면 참입니다.
  • bIsInverted 뒤집혔는지 - 비히클이 거의 위아래로 뒤집혔으면 참입니다.
  • bChassisTouchingGround 섀시가 땅에 접함 - 비히클의 섀시가 땅에 닿아 있다면 참입니다.
  • bWasChassisTouchingGroundLastTick 지난 틱 섀시가 땅에 닿아 있었는지 - 지난 틱 비히클의 섀시가 땅에 닿아 있었다면 참입니다.

Sounds 소리

  • EngineSound 엔진 소리 - 엔진 회전 배경음으로 사용할 AudioComponent 입니다. RPM 에 따라 피치가 변조됩니다.
  • SquealSound 끼익 소리 - 바퀴 끼익 소리에 사용할 AudioComponent 입니다. 끼익거리는 정도에 따라 볼륨이 변조됩니다.
  • CollisionSound 충돌 소리 - 비히클이 다른 오브젝트와 충돌할 때 재생할 SoundCue 입니다.
  • EnterVehicleSound 비히클 탑승 소리 - 운전수가 비히클에 탈 때 재생할 SoundCue 입니다.
  • ExitVehicleSound 비히클 내리는 소리 - 운전수가 비히클에서 내릴 때 재생할 SoundCue 입니다.
  • CollisionIntervalSeconds 충돌 간격 초 - CollisionSound 를 반복 재생하기 전 최소한으로 기다려야 할 초 단위 기간입니다.
  • SquealThreshold 끼익 임계값 - 미끌림(slip) 속도가 이 값 아래면 끼익 소리가 나지 않습니다.
  • SquealLatThreshold 끼익 측면 임계값 - 측면 미끌림 속도가 이 값 아래면 끼익 소리가 나지 않습니다.
  • LatAngleVolumeMult 측면 각도 볼륨 멀티 - 정면 미끌림 끼익 소리에 비해 측면 미끌림의 볼륨 레벨에 대한 곱수입니다.
  • EngineStartOffsetSecs 엔진 시동 오프셋 초 - 엔진 시동 소리와 엔진 공회전(idle) 소리 사이에 넣을 초 단위 딜레이입니다.
  • EngineStopOffsetSecs 엔진 정지 오프셋 초 - 엔진 시동 끄는 소리를 내고서 엔진 공회전 소리를 중지시키기 전까지 넣을 초 단위 딜레이입니다.

+
SVehicle 함수 (클릭하면 펼쳐집니다)

Display 디스플레이

  • CalcCamera [fDeltaTime] [out_CamLoc] [out_CamRot] [out_FOV] 카메라 계산 - Pawn 에서 상속됩니다. 이 비히클에 있는 플레이어에 대한 카메라 시점을 계산합니다.
    • fDeltaTime 델타 시간 - 지난 업데이트 이후 경과한 시간입니다.
    • out_CamLoc 아웃_캠 위치 - 현재 카메라 위치를 담고서 새 카메라 위치를 출력합니다.
    • out_CamRot 아웃_캠 로테 - 현재 카메라 로테이션을 담고서 새 카메라 로테이션을 출력합니다.
    • out_FOV 아웃_FOV - 현재 시야를 담고서 새 시야를 출력합니다.

Entry/Exit 타고/내리기

  • TurnOff 끄기 - Pawn 에서 상속됩니다. 사운드, 애니메이션, 피직스 등을 닫습니다.

Movement 이동

  • AddForce [Force] 힘 추가 - 지정된 벡터를 사용하여 고정적인 힘을 적용합니다.
    • Force 힘 - 적용할 힘의 방향과 세기 둘 다를 나타내는 벡터입니다.
  • AddImpulse [Impulse] 충격 추가 - 지정된 벡터를 사용하여 충격 한 번의 힘을 적용합니다.
    • Impulse 충격 - 적용할 충격의 방향과 세기 둘 다를 나타내는 벡터입니다.
  • AddTorque [Torque] 토크 추가 - 지정된 벡터를 사용하여 토크(회전하는 힘)를 적용합니다.
    • Torque 토크 - 적용할 토크의 방향과 세기 둘 다를 나타내는 벡터입니다.
  • AddVelocity [NewVelocity] [DamageType] [HitInfo] 속도 추가 - Pawn 에서 상속됩니다. 비히클에 지정된 속도를 추가합니다. 리짓-바디 피직스가 사용중이기에 여기서는 Pawn 버전을 덮어써야 합니다.
  • IsSleeping 자는 중인지 - 비히클의 피직스를 제어하는 피직스 시뮬레이션이 sleep 상태인지를 반환합니다.
  • HasWheelsOnGround 땅에 바퀴가 있는지 - 비히클의 바퀴 중 아무거나 땅에 닿아 있는지를 반환합니다.
  • SuspensionHeavyShift [Delta] 헤비 서스펜션 전환 - 비히클의 서스펜션이 너무 많이 움직였을 때 엔진에 의해 호출됩니다.
    • Delta 델타 - 전환(shift)할 양입니다.
  • PostTeleport [OutTeleporter] 텔레포트 이후 - 비히클이 텔레포트된 이후 위치 등을 업데이트하기 위해 호출됩니다.
    • OutTeleporter 아웃 텔레포터 - 목적지에 있는 텔레포터를 가리킵니다.

Collision 콜리전

  • SetWheelCollision [WheelNum] [bCollision] 바퀴 콜리전 설정 - 비히클의 특정 바퀴 콜리전을 끄거나 켭니다.
    • WheelNum 바퀴 번호 - Wheels 배열에서 콜리전을 수정할 바퀴의 인덱스입니다.
    • bCollision 콜리전 - 참이면 바퀴의 콜리전을 켭니다. 아니면 콜리전을 끕니다.
  • RigidBodyCollision [HitComponent] [OtherComponent] [RigidCollisionData] [ContactIndex] 리짓 바디 콜리전 - 비히클의 리짓 바디가 다른 오브젝트와 충돌할 때 엔진에 의해 호출됩니다. CollisionSound 사운드큐를 재생합니다.
    • HitComponent 적중 컴포넌트 - 충돌한 비히클 컴포넌트를 가리킵니다.
    • OtherComponent 다른 컴포넌트 - 충돌한 다른 오브젝트의 컴포넌트를 가리킵니다.
    • RigidCollisionData 리짓 콜리전 데이터 - 콜리전에 대한 데이터입니다.
    • ContactIndex 접촉 인덱스 - 콜리전 접촉 지점에 대한 인덱스입니다.

Mesh and Animation 메시와 애니메이션

  • PostInitAnimtree [SkelComp] 애님트리 초기화 이후 - 애님트리가 초기화된 이후 엔진에 의해 호출됩니다. 비히클에 바퀴가 있는 경우, 비히클의 AnimTree 안에 있는 SkelControlWheel 콘트롤러로의 참조를 획득하고 설정합니다.
    • SkelComp 스켈 컴포 - AnimTree 가 초기화된 SkeletalMeshComponent 를 가리킵니다.

Physics 피직스

  • InitVehicleRagdoll [RagdollMesh] [RagdollPhysAsset] [ActorMove] [bClearAnimtree] 비히클 래그돌 초기화 - 비히클이 피직스용으로 싱글-바디를 사용하던 것에서 완전히 분절된 래그돌(봉제인형)식 스켈레톤을 사용하도록 전환합니다.
    • RagdollMesh 래그돌 메시 - 사용할 전체 스켈레톤을 담고 있는 새 스켈레탈 메시입니다.
    • RagdollPhysAsset 래그돌 피직 애셋 - 새 스켈레탈 메시에 대한 피직스 애셋입니다.
    • ActorMove 액터 이동 - 전환 도중 비히클을 옮기는(translate) 데 사용되는 벡터입니다. 래그돌 메시가 땅으로 뚫고 들어가는 것을 막기 위해 사용할 수 있습니다.
    • bClearAnimtree 애님트리 비우기 - 참이면 비히클에 대한 현재 AnimTree 로의 참조를 비웁니다.

Sounds 사운드

  • StopVehicleSounds 비히클 사운드 중지 - TurnOff() 에서 호출됩니다. 엔진과 끼익 소리 오디오 컴포넌트 재생을 멈춥니다.
  • StartEngineSound 엔진 소리 시작 - 엔진 소리 오디오 컴포넌트 재생을 시작합니다.
  • StartEngineSoundTimed 엔진 소리 시작 타이머 - EngineStartOffsetSecs 초 이후 엔진 소리 오디오 컴포넌트 재생을 시작하는 타이머를 돌립니다.
  • StopEngineSound 엔진 소리 중지 - 엔진 소리 오디오 컴포넌트 재생을 멈춥니다.
  • StopEngineSoundTimed 엔진 소리 중지 타이머 - EngineStartOffsetSecs 초 이후 엔진 소리 오디오 컴포넌트 재생을 멈추는 타이머를 돌립니다.
  • VehiclePlayEnterSound 비히클 탑승 소리 재생 - EnterVehicleSound 사운드큐를 재생하고 StartEngineSoundTimed() 를 호출합니다.
  • VehiclePlayExitSound 비히클 하차 소리 재생 - ExitVehicleSound 사운드큐를 재생하고 StopEngineSoundTimed() 를 호출합니다.

UDKVehicleBase

UDKVehicleBase 클래스는 SVehicle 에서 확장한 다음, 복수 좌석이나 깃발뺏기 게임에서 깃발같은 게임 오브젝트 수송 기능을 기본적으로 지원하도록 추가합니다.

+
UDKVehicleBase 프로퍼티 (클릭하면 펼쳐집니다)

Entry/Exit 타고/내리기

  • bShouldEject 탈출해야 할지 - 참이면 비히클을 내릴 때 운전수를 탈출시킵니다. 현재 운전수를 탈출시켜야 하면 설정해 줍니다.

+
UDKVehicleBase 함수 (클릭하면 펼쳐집니다)

AI 인공지능

  • NeedToTurn [Targ] 회전 필요 - Pawn 에서 상속됩니다. AI 가 지정된 위치를 향해/발사하도록 하려면 회전(turn)을 해야 하는지를 반환합니다.
    • Targ 타겟 - 바라보고/발사할 위치입니다.

Entry/Exit 타고/내리기

  • SwitchWeapons [NewGroup] 무기 전환 - 플레이어의 현재 좌석 위치를 (디폴트로 키보드의 숫자 키패드를 사용하여) 바꾸기 위해 SwitchWeapon() 실행 함수의 UTPlayerController 에 의해 호출됩니다.
    • NewGroup 새 그룹 - 전환할 그룹/좌석 입니다. Seat 인덱스는 NewGroup - 1 입니다.
  • ServerChangeSeat [RequestedSeat] 서버 좌석 변경 - 서버에서 호출됩니다. 모든 클라이언트에 좌석 변경 내용을 동기화시키기 위한 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
    • RequestedSeat 요청된 좌석 - 전환할 좌석 인덱스입니다.
  • AdjacentSeat [Direction] [C] 인접 좌석 - 클라이언트에서 호출됩니다. 비히클의 인접 좌석으로 변경할 것을 요청합니다.
    • Direction 방향 - 이동 방향입니다. -1 은 이전 좌석, 1 은 다음 좌석입니다.
    • C - 좌석을 변경하는 플레이어의 콘트롤러를 가리킵니다.
  • ServerAdjacentSeat [Direction] [C] 서버 인접 좌석 - 서버의 클래스입니다. 플레이어를 인접 좌석으로 옮기기 위한 함수 토막입니다. 서브 클래스에서 이 함수를 덮어써야 합니다.
    • Direction 방향 - 이동 방향입니다. -1 은 이전 좌석, 1 은 다음 좌석입니다.
    • C - 좌석을 변경하는 플레이어의 콘트롤러를 가리킵니다.
  • EjectDriver 운전수 탈출 - 비히클에서 운전수를 고속으로 탈출시킵니다. DriverLeft() 에 의해 호출됩니다.

GamePlay 게임플레이

  • HoldGameObject [GameObj] 게임 오브젝트 담기 - GameObject 를 비히클에 붙이기(attach) 위해 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
    • GameObj 게임 오브젝 - 비히클에 붙일 GameObject 를 가리킵니다.

UDKVehicle

UDKVehicle 클래스는 비히클 웨폰에 대한 기본적인 지원사항 추가는 물론, 다양한 애니메이션, 파티클 이펙트, 사운드 재생용 유연한 시스템의 시초를 도입하고 있기도 합니다. 모프 타겟을 사용하여 위치 지정 대미지 표시 기능도 있습니다.

추가된 서브 시스템 일부에 대한 상세 정보는, 다음 부분을 참고하십시오:

+
UDKVehicle 프로퍼티 (클릭하면 펼쳐집니다)

AI 인공지능

  • ObjectiveGetOutDist 목표 하차 거리 - AI 가 제어중이고 비히클에 탄 상태로는 목표를 이룰 수 없는 경우, AI 는 이 거리만큼 떨어진 다음 비히클 하차 시도를 합니다.
  • bUseAlternatePaths 대체 경로 사용 - 참이면 AI 는 목표까지 분대의 대체 경로 사용을 고려합니다. 우회하는 것이 (느리거나 해서) 괴롭거나, 충분히 강해서 우회하는 것이 의미없는 비히클에는 이 옵션을 거짓으로 설정해야 할 것입니다.

Damage 대미지

  • BurnOutMaterialInstances 머티리얼 인스턴스 불태우기 - 비히클이 사망에 이르러 불타는 쇳덩어리가 되었을 때, 보통의 메시 머티리얼을 대체하는 데 사용할 관련 데이터와 머티리얼 인스턴스 배열입니다.
  • FireDamageThreshold 불 대미지 임계값 - Health / MaxHealth 가 이 비율에 도달하면 비히클이 화염에 휩싸이고 불길로 인해 지속적인 대미지를 입기 시작하도록 만듭니다.
  • FireDamagePerSec 초당 불 대미지 - 불이 붙었을 때 매 초마다 입힐 대미지 양입니다.
  • AccruedFireDamage 축적 불 대미지 - 여지껏 입은 불 대미지입니다.
  • UpsideDownDamagePerSec 초당 전복 대미지 - 탑승자가 없는 비히클이 뒤집어져 있을 때 입힐 초당 대미지 양입니다.
  • OccupiedUpsideDownDamagePerSec 탑승상태 초당 전복 대미지 - 탑승자가 있는 비히클이 뒤집어져 있을 때 입힐 초당 대미지 양입니다.
  • WaterDamage 물 대미지 - 비히클이 물에 잠겼을 때 매 초마다 입힐 대미지 양입니다.
  • bTakeWaterDamageWhileDriving 운전중 물 대미지 입음 - 참이면 비히클은 운전중일때도 물 대미지를 받습니다.
  • AccumulatedWaterDamage 누적된 물 대미지 - 지난 번 TakeWaterDamage() 가 대미지 적용을 위해 호출 된 이후 입은 물 대미지 양입니다.
  • DestroyOnPenetrationThreshold 관통 파괴 임계값 - 이 정도 이상으로 관통되면 비히클을 파괴합니다.
  • DestroyOnPenetrationDuration 관통 파괴 기간 - DestroyOnPenetrationThreshold 이상 관통된 기간이 이 이상 되면 비히클을 파괴합니다.
  • KillerController 킬러 콘트롤러 - 비히클 킬을 담당하는 콘트롤러를 가리킵니다.
  • MinRunOverSpeed 최소 치는 속력 - 비히클의 속력이 최소 이 정도는 되어야 다른 플레이어를 치었을 때 대미지를 입힙니다.

Display 디스플레이

  • TeamBeaconMaxDist 팀 비컨 최대 거리 - 팀 비컨을 표시할 최대 거리입니다.
  • bShowLocked 잠김 표시 - 참이면 이 비히클에 대해 "No Entry"(탑승 금지) 표식을 HUD 위에 그립니다.
  • bTeamLocked 팀 잠금 - 참이면 같은 팀의 플레이어만 비히클에 탈 수 있습니다.
  • ShowLockedMaxDist 잠김 최대 표시 거리 - 카메라에서 이 거리까지의 비히클에 잠김 표식이 표시됩니다.

Effects 이펙트

  • VehicleEffects 비히클 이펙트 - 비히클에 사용할 여러가지 파티클 이펙트에 대한 정보를 담고 있는 VehicleEffect 데이터 구조체 배열입니다.
  • WheelParticleEffects 휠 파티클 이펙트 - bUseMaterialSpecificEffects 가 참으로 설정된 상태로 부착된 모든 UDKVehicleWheels 에 적용된 머티리얼 전용 파티클 이펙트 배열입니다.
  • MaxWheelEffectDistSq 최대 휠 이펙트 제곱 거리 - 이 정도 거리까지는 바퀴가 땅에서 떨어져도 계속해서 사운드와 파티클 이펙트가 재생됩니다.
  • GroundEffectIndices 땅 이펙트 인덱스 - 땅 이펙트, 혹은 비히클이 땅에서 일정한 거리 안에 있을 때 표시할 이펙트에 쓸 이펙트를 지정하는 VehicleEffects 배열로의 인덱스 배열입니다.
  • MaxGroundEffectDist 최대 땅 이펙트 거리 - 이 정도 거리까지는 비히클이 땅에서 떨어져도 땅 이펙트를 나타냅니다.
  • GroundEffectDistParamName 땅 이펙트 거리 파라미터 이름 - 땅 이펙트의 파티클 시스템 중에서 이펙트의 강도를 조절하는 파라미터 이름입니다. 0.0 에서 1.0 까지의 값으로 설정되는데, CurrentGroundDist / MaxGroundEffectDist 결과입니다.
  • WaterGroundEffect 물 땅 이펙트 - 비히클이 물 위에 있을 때 땅 이펙트로 사용할 파티클 시스템입니다.
  • WaterEffectType 물 이펙트 유형 - 물을 표현하는 머티리얼 유형 이름입니다. 현재 땅 머티리얼 유형이 이 이름에 일치할 때 WaterGroundEffect 로 전환하는 데 사용합니다.
  • ContrailEffectIndices 비행구름 이펙트 인덱스 - 비행구름으로 사용할 이펙트를 지정하는 VehicleEffects 배열 속으로의 인덱스 배열입니다.
  • ContrailColorParamName 비행구름 색 파람 이름 - 비행구름 파티클 시스템에서 색을 설정하는 데 사용할 파라미터 이름입니다. 파라미터에 전달된 값은 비히클의 속력에 따라 달라집니다.
  • HoverboardDust 호버보드 먼지 - 호버보드 아래 재생할 이펙트용 ParticleSystemComponent 입니다.

Entry/Exit 타고/내리기

  • bEjectKilledBodies 사체 방출 - 참이면 비히클의 운전수가 죽었을 때 래그돌 상태로 방출합니다. 거짓이면 즉시 소멸됩니다.
  • bEjectPassengersWhenFlipped 전복되면 패신저 방출 - 참이면 비히클이 전복되었을 때 운전수 포함 모든 탑승자를 방출시킵니다.
  • Seats 좌석 - 다양한 좌석과/또는 비히클 안의 플레이어가 쓸 수 있는 무기를 만드는 데 사용되는 정보를 담고 있는 VehicleSeats 배열입니다. 자세한 정보는 비히클 좌석과 무기 부분을 참고하십시오.
  • bAllowedExit 내리기 허용 - 참이면 운전수는 비히클을 내릴 수 있습니다.

Gameplay 게임플레이

  • Team 팀 - 이 비히클이 현재 속한 팀입니다.

Mesh and Animation 메시와 애니메이션

  • VehicleAnims 비히클 애님 - 특정 이벤트 발생시 비히클에 재생할 수 있는 여러가지 애니메이션 관련 정보를 담고 있는 VehicleAnims 배열입니다. 자세한 정보는 비히클 애니메이션 부분을 참고하십시오.
  • DrivingAnim 운전중 애님 - Driver 가 보이고 운전중일 때, 그 위에 재생할 애니메이션 이름입니다.
  • DamageParamScaleLevels 대미지 파람 스케일 레벨 - 대미지 머티리얼 파라미터 이름과 스케일 인수를 매핑시키는 배열입니다. 현재 대미지 모프 타겟의 체력 비율 (CurrentHealth / DefaultHealth) 을 구하여 파라미터 값을 설정합니다. 이를 통해 0.1 에서 1.0 까지의 값이 머티리얼의 파라미터 사용 범위에 맞도록 스케일 조절 가능한 것입니다.
  • DamageSkelControls 대미지 스켈 콘트롤 - 비히클의 애님트리에 있는 대미지 스켈레탈 콘트롤러 배열입니다.
  • DamageMorphTargets 대미지 모프 타겟 - 대미지 시스템 제어에 사용되는 대미지 모프 타겟 데이터 구조체 배열입니다.
  • DamageMaterialInstance 대미지 머티리얼 인스턴스 - 비히클의 머티리얼에서 생성되고 비히클에 적용하여 대미지 파라미터로의 접근을 가능케 하는, 동적으로 생성된 머티리얼 인스턴스를 가리킵니다.

Movement 이동

  • bNoZDampingInAir 공중에서 Z 제동 없음 - 참이면 비히클이 공중에 있을 때 비히클 속도 중 Z 컴포넌트는 제동력 영향을 받지 않습니다.
  • bNoZDamping Z 제동 없음 - 참이면 비히클의 땅에 있을 때도 비히클 속도 중 Z 컴포넌트는 제동력 영향을 받지 않습니다.
  • bIsDisabled 꺼졌는지 - 참이면 비히클은 비활성 상태가 됩니다.
  • bJostleWhileDriving 운전중 떼밀기 - 참이면 비히클에 현실적인 호버링을 시뮬레이트하기 위해 임의의 충격을 가합니다. 공중 비히클에 좋습니다.
  • bFloatWhenDriven 운전시 부양 - 참이면 비히클은 부양 상태를 시뮬레이트하기 위해 중력 Z 값에 -0.1 을 사용합니다. 날틀에 좋습니다.
  • CustomGravityScaling 커스텀 중력 스케일 - 각각의 비히클에 대해 중력 값을 다르게 할 수 있도록 하기 위한 비히클 전용 중력 Z 값 곱수입니다.
  • bDisableRepulsorsAtMaxFallSpeed 최대 낙하 속도시 추진기 끄기 - 참이면 비히클의 속도 음수 Z 값이 Driver 의 MaxFallSpeed 값보다 클 경우 리펄서(추진기)가 꺼집니다.

Sounds 사운드

  • TireAudioComp 타이어 오디오 컴포 - 타이어 소리 재생에 사용되는 오디오 컴포넌트입니다.
  • TireSoundList 타이어 사운드 리스트 - 다른 종류의 머티리얼에 있을 때 타이어에서 재생되는 MaterialSoundEffects 배열입니다.
  • CurrentTireMaterial 현재 타이어 머티리얼 - 현재 타이어 아래 있는 머티리얼 종류입니다.
  • ScrapeSound 긁히는 소리 - 비히클의 바디가 다른 오브젝트에 긁힐 때 긁히는 소리 재생에 사용되는 AudioComponent 입니다.
  • VehicleSounds 비히클 소리 - 여러가지 이벤트용으로 재생할 SoundCue 를 담고있는 VehicleSound 데이터 구조체 배열입니다.
  • LargeChunkImpactSound 큰 덩어리 충돌 소리 - 비히클이 세기가 20000 을 넘는 힘에 부딪혔을 때 재생할 SoundCue 입니다.
  • MediumChunkImpactSound 중간 덩어리 충돌 소리 - 비히클이 세기가 4000 을 넘는 힘에 부딪혔을 때 재생할 SoundCue 입니다.
  • SmallChunkImpactSound 작은 덩어리 충돌 소리 - 비히클이 세기가 1000 을 넘는 힘에 부딪혔을 때 재생할 SoundCue 입니다.

Weapons 웨폰

  • bHomingTarget 타겟 유도 - 참이면 이 비히클은 유도 무기의 록 온 대상이 될 수 있습니다.
  • WeaponRotation 웨폰 로테이션 - 비히클 주무기의 현재 로테이션입니다.

+
UDKVehicle 함수 (클릭하면 펼쳐집니다)

AI 인공지능

  • JumpOutCheck 뛰어내리기 검사 - 비히클이 목적지를 향해 하강할 때 봇이 뛰어내릴 수 있도록 하기 위해 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.

Collision 콜리전

  • OnTouchForcedDirVolume [Vol] 강제된 방향 볼륨 접촉시 - 비히클이 ForcedDirVolume 에 닿았음을 알립니다. 이 함수가 거짓을 반환하면 비히클이 그 볼륨을 무시하게 합니다.
    • Vol 볼륨 - 접촉된 ForcedDirVolume 을 가리킵니다.

Damage 대미지

  • GetRanOverDamageType 차에 치인 대미지 타입 구하기 - 이 비히클로 누군가를 치었을 때 사용할 대미지 타입을 반환합니다.
  • LockOnWarning [IncomingMissile] 록 온 경고 - 유도 미사일이 접근중일 때 비히클 운전수에게 경고합니다.
    • IncomingMissile 접근 미사일 - 비히클에 록 온 된 프로젝타일을 가리킵니다.
  • ReceivedHealthChange 받은 체력 변화 - 클라이언트가 체력에 변화가 생겼을 때 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
  • CheckAutoDestruct [InstigatorTeam] [CheckRadius] 자동 파괴 검사 - 비히클이 적이나 목표물에 너무 가까이 갔다거나 해서 자동 파괴시켜야 할지를 반환합니다.
    • InstigatorTeam 인스티게이터(유발한) 팀 - 자동 파괴를 유발한 플레이어의 TeamInfo 입니다.
    • CheckRadius 검사 반경 - 비히클과 무언가의 거리가 이만큼 가까워야 자동 파괴가 일어납니다.
  • SelfDestruct [ImpactedActor] 자폭 - 비히클이 자폭할 때 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
    • ImpactedActor 피격 액터 - 자폭으로 인해 풀 대미지를 받을 액터를 가리킵니다.
  • RBPenetrationDestroy 리바 관통 파괴 - 비히클이 무언가에 크게 관통되면 파괴합니다.
  • TakeWaterDamage 물 대미지 받기 - 물 대미지를 받고 있을 때 매 틱마다 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
  • TakeFireDamage 불 대미지 받기 - 불 대미지를 받고 있을 때 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.

Display 디스플레이

  • NativePostRenderFor [PC] [Canvas] [CameraPosition] [CameraDir] 네이티브 포스트 렌더 포 - 비히클에 HUD를 덧그릴 수 있도록 합니다. 고정된 아이콘은 네이티브하게 그려버립니다.
    • PC 플콘 - 로컬 플레이어 콘트롤러를 가리킵니다.
    • Canvas 캔버스 - 현재 그리려는 캔버스를 가리킵니다.
    • CameraPosition 카메라 위치 - 플레이어 카메라 현재 위치입니다.
    • CameraDir 카메라 향 - 플레이어 카메라가 현재 향하고 있는 방향입니다.
  • SetHUDLocation [NewHUDLocation] HUD 위치 설정 - 비히클에 대한 아이콘을 HUD 위 어디에 그릴지 그 위치를 설정합니다.
    • NewHUDLocation 새 HUD 위치 - 아이콘을 그릴 위치 (벡터의 X,Y 컴포넌트)입니다.

Effects 이펙트

  • PlayTakeHitEffects 피격 이펙트 재생 - 비히클이 충격당했을 때 피격 이펙트를 재생하기 위해 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
  • UpdateHoverboardDustEffect [DustHeight] 호버보드 먼지 이펙트 업데이트 - 오버보드 먼지 이펙트를 업데이트하기 위해 엔진이 호출하는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
    • DustHeight 먼지 높이 - 호버보드가 땅 위로 떠있는 높이입니다.

Gameplay 게임플레이

  • GetTeamNum 팀 번호 구하기 - 이 비히클의 팀 번호를 반환합니다.
  • InUseableRange [PC] [Dist] 사용가능 범위 내 - 비히클을 사용할 수 있는 범위 안에 있는지 반환합니다.
    • PC 플콘 - 비히클을 사용하려 하는 플레이어 콘트롤러를 가리킵니다.
    • Dist 거리 - 비히클과 플레이어의 거리입니다.

Mesh and Animation 메시와 애니메이션

  • InitDamageSkel 대미지 스켈 초기화 - 비히클의 애님트리에 있는 대미지 스켈레탈 콘트롤러를 가지고 DamageSkelControls 배열을 채웁니다.
  • UpdateDamageMaterial 대미지 머티리얼 업데이트 - 대미지 시스템이 체력 값을 업데이트할 때 비히클에 적용되는 머티리얼은 무엇이든 업데이트합니다.
  • ApplyMorphDamage [HitLocation] [Damage] [Momentum] 모프 대미지 적용 - 모프 타겟을 변경하기 위해 대미지 시스템에 적중 대미지를 적용합니다.
    • HitLocation 적중 위치 - 맞은 지점 위치입니다.
    • Damage 대미지 - 입은 대미지 양입니다.
    • Momentum 운동량 - 대미지로 전해진 운동량입니다.
  • MorphTargetDestroyed [MorphNodeIndex] 모프 타겟 파괴됨 - 대미지 노드가 (ApplyMorphDamage 결과로) 파괴되었을 때 엔진이 호출하는 함수 토막입니다.
    • MorphNodeIndex 모프 노드 인덱스 - 파괴된 노드의 DamageMorphTargets 배열 내 인덱스입니다.

Physics 피직스

  • PostInitRigidBody [PrimComp] - 리짓 바디 시뮬레이션이 초기화된 이후 비히클에 필요한 커스텀 피직스 초기화를 할 수 있도록 하기 위해 엔진이 호출하는 함수 토막입니다.
    • PrimComp 프리미 컴포 - 리바 피직스의 초기화 대상이 된 프리미티브 컴포넌트를 가리킵니다.

Weapons 웨폰

  • SeatWeaponRotation [SeatIndex] [NewRot] [bReadValue] 좌석 무기 로테이션 - 지정된 시트에 대한 무기 로테이션을 설정하거나 구합니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.
    • NewRot 새 로테 - 옵션. 좌석의 무기 로테이션으로 설정할 새 로테이션 값입니다.
    • bReadValue 값 읽기 - 참이면 좌석의 무기 로테이션을 반환합니다. 거짓이면 좌석의 무기 로테이션을 NewRot 로 설정합니다.
  • SeatFlashLocation [SeatIndex] [NewLoc] [bReadValue] 좌석 플래시 위치 - 지정돤 좌석의 플래시 위치를 설정하거나 구합니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.
    • NewLoc 새 위치 - 옵션. 좌석의 플래시 위치로 설정할 새 로테이션 값입니다.
    • bReadValue 값 읽기 - 참이면 좌석의 플래시 위치를 반환합니다. 거짓이면 좌석의 플래시 위치를 NewLoc 로 설정합니다.
  • SeatFlashCount [SeatIndex] [NewCount] [bReadValue] 좌석 플래시 카운트 - 지정된 좌석에 대한 플래시 카운트를 설정하거나 구합니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.
    • NewCount 새 수 - 옵션. 좌석의 플래시 카운트로 설정할 새 플래시 카운트 값입니다.
    • bReadValue 값 읽기 - 참이면 좌석의 플래시 카운트를 반환합니다. 거짓이면 좌석의 플래시 카운트를 NewCount 로 설정합니다.
  • SeatFiringMode [SeatIndex] [NewFireMode] [bReadValue] 좌석 발사 모드 - 지정된 좌석에 대한 발사 모드를 설정하거나 구합니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.
    • NewFireMode 새 발사 모드 - 옵션. 좌석의 발사 모드로 설정할 새 발사 모드입니다.
    • bReadValue 값 읽기 - 참이면 좌석의 발사 모드를 반환합니다. 거짓이면 좌석의 발사 모드를 NewFireMode 로 설정합니다.
  • ForceWeaponRotation [SeatIndex] [NewRotation] 무기 로테이션 강제 - 지정된 좌석의 무기 로테이션을 새 로테이션으로 강제 조정합니다. 비히클 팩토리가 비히클을 스폰할 때 사용합니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.
    • NewRotation 새 로테이션 - 무기 로테이션으로 설정할 새 로테이션 값입니다.
  • GetSeatPivotPoint [SeatIndex] 좌석 피벗 포인트 구하기 - 지정된 좌석에 대한 피벗 포인트를 반환합니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.
  • GetBarrelIndex [SeatIndex] 배럴 인덱스 구하기 - 지정된 좌석에 대해 현재 사용중이거나 발사중인 배럴의 인덱스를 반환합니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.

UTVehicle

UTVehicle 클래스는 비히클에 대한 게임-전용 함수성 대부분은 물론, 애니메이션 / 이펙트 / 사운드 재생용 비히클 이벤트 시스템의 실제 구현사항 대다수를 구현합니다. 비히클 제어를 위한 콘솔-전용 함수성 역시도 상당량 포함되어 있습니다.

+
UTVehicle 프로퍼티 (클릭하면 펼쳐집니다)

AI 인공지능

  • bKeyVehicle 중요 비히클 - 참이면 이 비히클은 AI 가 더욱 중요한 것으로 인식합니다. 비히클을 미니맵에 표시하기도 합니다.
  • AIPurpose AI 의도 - AI 가 이 비히클을 어떤 종류의 임무에 사용할 것인지를 지정합니다.
    • AIP_Offense _공격 - 이 비히클은 공격용으로만 사용합니다.
    • AIP_Defense _방어 - 이 비히클은 방어용으로만 사용합니다.
    • AIP_Any 아무 - 비히클은 아무 용도로도 쓸 수 있습니다.
  • bShouldLeaveForCombat 전투를 위해 내릴지 - 참이면 AI 는 적과 교전할 때 이 비히클을 내립니다.
  • MaxDesireability 최대 선호도 - AI 가 이 비히클을 얼마나 선호하는지를 결정합니다.
  • HornAIRadius 경적 AI 반경 - 비히클에서 이 범위 안의 AI 는 경적 소리에 반응하여 비히클의 적합한 좌석에 탑승하려 합니다.
  • Reservation 예약 - 비히클에 탑승 예정인 AI 를 가리킵니다. 여러 AI 개체가 모두 같은 비히클에 타려 하는 것을 막습니다.

Camera 카메라

  • bShouldAutoCenterViewPitch 뷰 피치 자동 중앙 - 참이면 비히클 안에 있을 때 플레이어의 뷰 정가운데에 비히클을 자동으로 맞춥니다.
  • SeatCameraScale 좌석 카메라 스케일 - 좌석별 카메라 오프셋 곱수입니다.
  • bRotateCameraUnderVehicle 비히클 아래 카메라 로테이트 - 참이면 비히클 아래에서도 카메라 회전을 허용하는데, 플레이어의 뷰를 가릴 소지가 있습니다.
  • bNoZSmoothing Z 스무딩 없음 - 참이면 랙걸린 카메라에 Z-포지션 스무딩을 하지 않아, 덜컥거리는 승차감을 냅니다.
  • bLimitCameraZLookingUp 카메라 Z 올려보기 제한 - 참이면 나는 비히클이 올라갈 때 잘리지 않도록, 올려다 볼 때는 카메라가 항상 비히클 위에 있도록 합니다.
  • bNoFollowJumpZ Z 점프 따라하지 않음 - 참이면 비히클이 "점프"할 때 좀 더 확실한 점프같아 보이게 하기 위해 카메라의 Z-포지션은 고정시킵니다.
  • CameraSmoothingFactor 카메라 스무딩 팩터 - 랙걸린 카메라 스무딩에 다양할 스무딩 스케일입니다. 값이 높을 수록 스무딩 기간이 짧아집니다.
  • DefaultFOV 디폴트 FOV - 이 비히클의 탑승자에 사용할 디폴트 시야입니다.
  • CameraLag 카메라 랙 - 카메라를 지연시킬 기간입니다.
  • LookForwardDist 전방 보기 거리 - 비히클 전방 너머로 아래를 바라볼 때 카메라를 앞으로 끌어올 거리입니다.
  • MinCameraDistSq 최소 카메라 제곱 거리 - bCameraNeverHidesVehicle (카메라가 비히클을 숨기지 않음)이 참이 아닌 이상, 카메라에서 비히클까지의 (제곱) 거리가 이 정도 되면 비히클을 숨기기 시작합니다.
  • bCameraNeverHidesVehicle 카메라가 비히클을 숨기지 않음 - 참이면 카메라가 비히클에 얼마나 가까이 붙든지 상관없이 비히클을 숨기지 않습니다.
  • bStopDeathCamera 죽은 카메라 중지 - 참이면 사망시 저장된 카메라 위치를 사용하는 죽은 카메라를 중지시킵니다.

Damage 대미지

  • bValidLinkTarget 유효 링크 타겟 - 참이면 이 비히클은 링크 건으로 치유 가능합니다.
  • LinkHealthMult 링크 체력 곱수 - 링크 건으로 이 비히클을 치유하는 양은, 링크 건 대미지 양에 이 값을 (0 보다 큰 경우) 곱한 양입니다.
  • LinkedToCount 링크된 것 수 - 현재 이 비히클에 링크된 링크 건 수입니다.
  • RanOverDamageType 차로 치는 대미지 타입 - 이 비히클에 치인 플레이어에 대미지를 입힐 때 사용할 DamageType 입니다.
  • VehicleDrowningDamageType 비히클 침수 대미지 타입 - 물에 잠기는 대미지를 입을 때 사용할 DamageType 입니다.
  • ClientHealth 클라이언트 체력 - 대미지 시스템의 모프 타겟에 대한 클라이언트측 체력입니다. 리플리케이트된 체력을 받을 때마다 모든 것을 조절하기 위해 사용됩니다.
  • ExplosionDamageType 폭발 대미지 타입 - 비히클 폭발로 인한 대미지에 사용할 DamageType 입니다.
  • ExplosionDamage 폭발 대미지 - 비히클의 폭발로 인한 대미지 양입니다.
  • ExplosionRadius 폭발 반경 - 대미지를 입힐 비히클 폭발 반경입니다.
  • ExplosionMomentum 폭발 운동량 - 비히클의 폭발로 인해 전해지는 운동량입니다.
  • ExplosionInAirAngVel 공중 폭발 각속도 - 비히클이 공중에서 폭발했을 때 줄 스핀 양입니다.
  • CollisionDamageMult 콜리전 대미지 곱수 - 다른 리짓 바디와의 충돌로 입은 대미지에 대한 멀티플라이어입니다.
  • bReduceFallingCollisionDamage 낙하 충돌 대미지 감소 - 참이면 비히클이 아래 있는 오브젝트와 충돌했을 때의 콜리전 대미지를 줄입니다.

Display 디스플레이

  • bHasWeaponBar 웨폰 바 있는지 - 참이면 이 비히클에 대한 웨폰 바가 HUD 에 그려집니다.
  • bDrawHealthOnHUD HUD 에 체력 그리기 - 참이면 운전수의 체력은 물론 비히클의 체력도 HUD 에 표시됩니다.
  • bDriverCastsShadow 운전수 그림자 드리우기 - 참이면 운전수의 메시는 항상 그림자를 드리웁니다.
  • bDropDetailWhenDriving 운전중 디테일 떨어뜨리기 - 참이면 게임이 수퍼 하이 디테일 모드에 있지 않은 이상, 로컬 플레이어가 이 비히클을 운전중일 때 비히클의 디테일을 떨어뜨립니다.
  • LightEnvironment 라이트 인바이언먼트 - 다이내믹 섀도우 용으로 이 비히클이 사용하는 DynamicLightEnvironment 입니다.
  • TeamBeaconPlayerInfoMaxDist 팀 비컨 플레이어 인포 최대 거리 - 카메라와의 거리가 최대 이 정도일 때까지 플레이어 인포가 표시됩니다.
  • HUDExtent HUD 규모 - 조준선이 비히클 위에 있는지 결정하기 위해 사용되는 스케일 팩터입니다.
  • MapSize 맵 크기 - 미니맵에 이 비히클 아이콘을 그리기 위한 스케일입니다.
  • IconCoords 아이콘 좌표 - 이 비히클 아이콘에 대한 아이콘 텍스처 내 좌표입니다.
  • FlipToolTipIconCoords 플립 툴팁 아이콘 좌표 - 이 비히클의 플립 툴팁 아이콘에 대한 아이콘 텍스처 내 좌표입니다.
  • EnterToolTipIconCoords 엔터 툴팁 아이콘 좌표 - 이 비히클의 엔터 툴팁 아이콘에 대한 아이콘 텍스처 내 좌표입니다.
  • DropFlagIconCoords 깃발 드랍 아이콘 좌표 - 이 비히클의 깃발 드랍 아이콘에 대한 아이콘 텍스처 내 좌표입니다.
  • DropOrbIconCoords 오브 드랍 아이콘 좌표 - 이 비히클의 오브 드랍 아이콘에 대한 아이콘 텍스처 내 좌표입니다.
  • bPostRenderTraceSucceeded 포스트 렌더 트레이스 성공함 - 참이면, 포스트렌더 HUD 아이콘 그리기에 대한 지난 번 트레이스 검사가 성공한 것입니다.
  • TeamBeaconOffset 팀 비컨 오프셋 - 잠김 아이콘과 같은 정보 표시에 사용할 비히클 위치에서의 오프셋입니다.
  • PassengerTeamBeaconOffset 패신저 팀 비컨 오프셋 - 탑승자 아이콘 표시에 사용할 비히클 위치에서의 오프셋입니다.
  • HUDIcons HUD 아이콘 - 이 비히클에 대해서 HUD 위에 그릴 아이콘이 들어있는 텍스처입니다.

Effects 이펙트

  • ExplosionLightClass 폭발 라이트 클래스 - 폭발 이펙트에 사용할 라이트 클래스입니다.
  • MaxExplosionLightDistance 최대 폭발 라이트 거리 - 카메라에서 최대 이 거리까지의 폭발에 폭발 라이트가 생성됩니다.
  • bInitializedVehicleEffects 초기화된 비히클 이펙트 - 참이면 비히클 이펙트는 어태치된 것입니다.
  • DeathExplosion 사망 폭발 - 완전 연소시 비활성화 가능하도록 사망시 스폰된 이미터를 가리킵니다.
  • TimeTilSecondaryVehicleExplosion 비히클 2차 폭발까지 걸리는 시간 - 비히클 초기 폭발 이후 이만큼 기다린 다음 (다른 이유로 인해 이미 폭발되지 않았다 가정하고) 2차 폭발시킵니다.
  • DamageSmokeThreshold (대미지 스모크 임계값) - 체력 비율(Health / HealthMax)이 이 값에 달하면 연기 이펙트 재생을 시작합니다.
  • MaxImpactEffectDistance 최대 충격 이펙트 거리 - 카메라에서 최대 이 거리까지 적중된 충격 부분에서 이펙트를 스폰합니다.
  • MaxFireEffectDistance 최대 불 이펙트 거리 - 카메라에서 최대 이 거리까지 비히클의 불 이펙트가 표시됩니다.
  • ExplosionTemplate 폭발 템플릿 - 비히클 폭발시 재생할 파티클 시스템입니다.
  • BigExplosionTemplate 큰 폭발 템플릿 - 이 비히클 폭발 지점과 로컬 플레이어와의 거리에 따라 달라지는 폭발 이펙트를 재생하기 위해 사용되는 최소 거리와 파티클 시스템 배열입니다.
  • SecondaryExplosion 2차 폭발 - 비히클의 2차 폭발에 재생할 파티클 시스템입니다. 초기 폭발 뒤 일정한 딜레이 이후, 또는 비히클이 초기 폭발한 뒤 땅에 떨어지거나 충격을 받았을 때 재생됩니다.
  • BigExplosionSocket 큰 폭발 소켓 - 큰 폭발을 어태치할 소켓 이름입니다. 'None' 이면 큰 폭발은 전혀 어태치되지 않습니다.
  • BurnOutTime 완전 연소 시간 - 비히클의 완전 연소에 걸리는 기간입니다.
  • BurnTimeParameterName 완전 연소 시간 파라미터 이름 - 완전 연소 이펙트 제어에 사용되는 머티리얼 파라미터 이름입니다.
  • BurnOutMaterial 완전 연소 머티리얼 - 완전 연소 메시에 사용할 팀-전용 머티리얼 배열입니다.
  • DeadVehicleLifeSpan 죽은 비히클 수명 - 비히클이 완전 연소되기까지 지나야 하는 기간입니다.
  • DelayedBurnoutCount 완전연소 지연 횟수 - 완전연소가 지연된 횟수입니다.
  • bHasTurretExplosion 터렛 폭발 있는지 - 참이면 비히클 사망시 터렛 폭발 시퀸스를 재생합니다.
  • TurretScaleControlname 터렛 스케일 콘트롤 이름 - 터렛을 0 으로 스케일하는 데 사용된 터렛 스켈레탈 콘트롤러 이름입니다.
  • TurretSocketname 터렛 소켓 이름 - 날아가는 터렛에 대한 폭발 이펙트 스폰에 쓸 소켓 이름입니다.
  • DistanceTurretExplosionTemplate 거리 터렛 폭발 템플릿 - 폭발 지점에서 로컬 플레이어까지의 거리에 따라 달라지는 터렛 폭발에 사용할 최소 거리와 파티클 시스템 배열입니다.
  • SpawnInTemplate 스폰 인 템플릿 - 비히클이 월드에 스폰될 때 재생할 팀-전용 ParticleSystem 배열입니다.
  • SpawnMaterialLists 스폰 머티리얼 리스트 - 비히클이 월드에 스폰될 때 사용할 팀-전용 머티리얼 배열입니다.
  • SpawnMaterialParameterName 스폰 머티리얼 파라미터 이름 - 스폰 머티리얼에 사용된 머티리얼 파라미터 이름입니다.
  • SpawnMaterialParameterCurve 스폰 머티리얼 파라미터 커브 - 스폰 머티리얼 파라미터 값을 제어하는 데 사용된 커브 정보입니다.
  • SpawnInTime 스폰 인 시간 - 스폰 이펙트 마무리에 걸린 기간입니다.
  • bPlayingSpawnEffect 스폰 이펙트 재생중 - 참이면 스폰 이펙트가 현재 진행중입니다.
  • DisabledTemplate 꺼짐 템플릿 - 비히클이 꺼진 상태가 되었을 때 재생할 파티클 시스템입니다.
  • DisabledEffectComponent 꺼짐 이펙트 컴포넌트 - 꺼짐 이펙트 재생시 사용할 ParticleSystemComponent 입니다.

Entry/Exit 타고/내리기

  • bEnteringUnlocks 탈 때 잠금 풀기 - 참이면 플레이어가 비히클에 탈 때 잠긴 것이 풀립니다.
  • bHasCustomEntryRadius 커스텀 탑승 반경 있음 - 참이면 플레이어가 비히클에 탈 수 있을지 결정하는 데 있어 (InCustomEntryRadius() 함수에 정의된) 특수 탑승 반경 규칙을 사용합니다.
  • bMustBeUpright 직립이어야 함 - 참이면 비히클이 직립 상태여야 탈 수 있습니다.
  • bHasBeenDriven 운행한 적 있음 - 참이면 이 비히클은 스폰된 이후 얼마간 운행된 적이 있습니다.
  • bFindGroundExit 땅 출구 찾기 - 참이면 탑승자가 비히클에서 내리는 위치는 단단한 땅 근처여야 합니다.
  • bRequestedEntryWithFlag 깃발 들고 탑승 요청 - 참이면 플레이어가 깃발을 들고 있는 상태로 깃발을 실을 수 없는 비히클에 탑승하려 한 것입니다.
  • PassengerPRI 패신저 PRI - 패신저 터렛 (예로 1 번 좌석) 플레이어의 PlayerReplicationInfo 를 가리킵니다.

Gameplay 게임플레이

  • bDriverHoldsFlag 운전수 깃발 소유 - 참이면 비히클 운전수는 깃발을 가질 것이며, 운반중이라면 어태치시킵니다.
  • bCanCarryFlag 깃발 운반 가능 - 참이면 플레이어는 깃발을 운반하는 상태로 이 비히클에 탈 수 있습니다.
  • NoPassengerObjective 패신저 없음 목표 - 이 목표가 AI 의 현재 목표가 되면 이 비히클에 타려 하지 않게 만듭니다.
  • bOverrideAVRiLLocks 에이브릴 록 덮어쓰기 - 참이면 이 비히클은 AVRiL 로켓의 타겟 록을 덮어쓸 수 있습니다.
  • RespawnTime 리스폰 시간 - 이 비히클이 파괴된 후 리스폰되는 데 걸리는 기간입니다.
  • InitialSpawnDelay 초기 스폰 딜레이 - 게임이 시작되고 나서 이 비히클을 처음 스폰할 때까지 기다리야 하는 기간입니다.
  • NextVehicle 다음 비히클 - 비히클 링크드 리스트의 다음 비히클을 가리킵니다. 리스트의 첫 비히클은 UTGame 클래스의 VehicleList 프로퍼티에 의해 참조됩니다.
  • ParentFactory 부모 팩토리 - 이 비히클을 스폰한 UTVehicleFactory 를 가리킵니다.
  • VehiclePositionString 비히클 포지션 스트링 - 현지화. "in a [VehicleName]" 메시지 표시에 사용되는 텍스트를 담고 있는 문자열입니다. 로컬리제이션 파일에 설정됩니다.
  • VehicleNameString 비히클 이름 스트링 - 현지화. 사람이 읽을 수 있는 비히클 이름을 담고 있는 문자열입니다. 로컬리제이션 파일에 설정됩니다.
  • TeamMaterials 팀 머티리얼 - 비히클에 사용할 팀-전용 머티리얼 배열입니다.
  • SpawnRadius 스폰 반경 - 비히클에 대한 스폰 포인트 주변 안전 구역 결정 반경입니다. 이 구역에는 폰이 없어야 비히클이 스폰됩니다.
  • FlagOffset 깃발 오프셋 - 깃발을 비히클에 붙일 때, 깃발을 놓는 데 사용할 깃발 본에서의 오프셋입니다.
  • FlagRotation 깃발 로테이션 - 깃발을 비히클에 붙일 때, 깃발의 방향을 잡는 데 사용할 깃발 본에서의 로테이션 오프셋입니다.
  • FlagBone 깃발 본 - 깃발을 붙일 비히클의 스켈레톤 위에 있는 본 이름입니다.

Mesh and Animation 메시와 애니메이션

  • VehiclePieceClass 비히클 조각 클래스 - 날아간 비히클 조각에 쓸 클래스입니다.
  • DeathExplosionShake 사망 폭발 셰이크 - 이 비히클 폭발 근처 플레이어 카메라에 재생할 카메라 애님입니다.
  • InnerExplosionShakeRadius 내부 폭발 셰이크 반경 - 폭발 지점에서 최대 이 거리까지는 폭발 카메라 셰이크 강도가 최대입니다. 여기서부터 OuterExplosionShakeRadius 까지 강도가 약해집니다.
  • OuterExplosionShakeRadius 외부 폭발 셰이크 반경 - 폭발 카메라 셰이크 강도가 0 이 되는 거리입니다.
  • TurretOffset 터렛 오프셋 - 파괴된 터렛을 스폰시키기 위한 터렛 소켓에서의 오프셋입니다.
  • DestroyedTurret 파괴된 터렛 - 사망 이펙트 재생용 파괴된 터렛을 가리킵니다.
  • DestroyedTurretTemplate 파괴된 터렛 템플릿 - 터렛이 파괴될 때 스폰시킬 스태틱 메시입니다.
  • TurretExplosiveForce 터렛 폭발력 - 터렛 폭발시 적용할 힘의 세기입니다.
  • ReferenceMovementMesh 참조 이동 메시 - 비히클의 좌석에 대해 (Cicada 안에서 구름을 지나는 등) 이동 이펙트에 사용할 스태틱 메시입니다.

Movement 이동

  • bStickDeflectionThrottle 스틱 편차 쓰로틀 - 참이면 콘솔 콘트롤러를 사용할 때 스틱 편차(deflection, 아날로그 스틱이 움직인 양)를 사용하여 쓰로틀 양을 결정합니다.
  • DeflectionThrottleReverseThresh 편차 쓰로틀 후진 임계값 - 쓰로틀에 스틱 편차를 사용할 때, 아날로그 스틱을 Y-축으로 이만큼 이상 땡겨야 비히클이 후진됩니다.
  • bLookSteerOnNormalControls 노멀 콘트롤시 룩 투 스티어 - 참이면 'Normal' 비히클 콘트롤 세팅 사용시 'look to steer'(보는 방향으로 핸들을 꺾는) 콘트롤이 사용됩니다.
  • bLookSteerOnSimpleControls 심플 콘트롤시 룩 투 스티어 - 참이면 'Simple' 비히클 콘트롤 세팅 사용시 'look to steer'(보는 방향으로 핸들을 꺾는) 콘트롤이 사용됩니다.
  • bUsingLookSteer 룩 투 스티어 사용중 - 참이면 비히클은 현재 'look to steer'(보는 방향으로 핸들을 꺾는) 콘트롤을 사용중입니다.
  • LeftStickDeadZone 왼쪽 스틱 데드 존 - 왼쪽 아날로그 스틱을 얼마만큼 움직여야 비히클이 턴하게 만들지 결정하는 것으로, 직진을 훨씬 쉽게 만들어 줍니다.
  • LookSteerSensitivity 룩 투 스티어 감도 - 'look to steer' 사용시 '보는' 방향과 '향하는' 방향과 스티어링 각도 사이의 관계를 결정합니다.
  • LookSteerDamping 룩 투 스티어 제동 - 'look to steer' 사용시 스티어링 효과를 줄이기 위해 비히클의 각속도에 적용해 줄 제동력입니다.
  • LookSteerDeadZone 룩 투 스티어 데드 존 - 'look to steer' 사용시 아날로그 스틱을 이만큼 이상 움직여야 비히클 회전이 시작됩니다.
  • ConsoleSteerScale 콘솔 스티어 스케일 - 콘트롤러 중앙 부분의 스티어링 감도를 늘리는 곱수입니다.

Physics 피직스

  • DrivingPhysicalMaterial 운행중 피지컬 머티리얼 - 운행중인 비히클에 사용할 PhysicalMaterial 입니다.
  • DefaultPhysicalMaterial 디폴트 피지컬 머티리얼 - 운행중이지 않은 비히클에 사용할 PhysicalMaterial 입니다.

Sounds 사운드

  • VehicleLockedSound 비히클 잠김 소리 - 플레이어가 잠긴 비히클에 탑승하려 할 때 재생할 SoundCue 입니다.
  • LinkedToAudio 링크 오디오 - 플레이어가 링크 건으로 이 비히클에 링크했을 때 재생할 AudioComponent 입니다.
  • LinkedToCue 링크 큐 - 플레이어가 링크 건으로 이 비히클에 링크했을 때 재생할 SoundCue 입니다.
  • LinkedToEndSound 링크 종료 소리 - 이 비히클로의 링크가 끊어졌을 때 재생할 SoundCue 입니다.
  • HornSounds 경적 소리 - 이 비히클의 경적으로 사용할 SoundCue 배열입니다.
  • LockedOnSound 록 온 소리 - 유도 미사일같은 것이 이 비히클에 록 온 되었을 때 재생할 SoundCue 입니다.
  • RanOverSound 차로 치는 소리 - 비히클로 누군가를 치었을 때 재생할 SoundCue 입니다.
  • StolenAnnouncementIndex 도난 알림 인덱스 - 이 비히클에 대한 "Hijack"(공중납치) 알림으로 재생할 UTVehicle 클래스의 MessageAnnouncements 배열 내 인덱스입니다.
  • StolenSound 도난 소리 - 누군가가 비히클을 훔쳤을 때 재생할 SoundCue 입니다.
  • ExplosionSound 폭발 소리 - 비히클이 폭발할 때 재생할 SoundCue 입니다.
  • SpawnInSound 스폰 인 소리 - 비히클이 월드에 스폰될 때 재생할 SoundCue 입니다.
  • SpawnOutSound 스폰 아웃 소리 - 비히클이 완전 연소되었을 때 재생할 SoundCue 입니다.
  • BoostPadSound 부스트 패드 소리 - 비히클이 부스트 패드를 지날 때 재생할 SoundCue 입니다.

+
UTVehicle 함수 (클릭하면 펼쳐집니다)

AI 인공지능

  • SetKeyVehicle 주요 비히클 설정 - 이 비히클을 중요한 비히클로 설정합니다.
  • HasOccupiedTurret 터렛 자리 찼는지 - 탑승 좌석이 차 있는지를 반환합니다.
  • TooCloseToAttack [Other] 공격하기 너무 가까움 - AI 가 공격하기에 주어진 액터가 너무 가까이 있는지를 반환합니다.
    • Other 다른 것 - 검사할 액터를 가리킵니다.
  • BotDesireability [S] [TeamIndex] [Objective] 봇 선호도 - AI 가 비히클을 얼마나 선호하는지, 또는 필요해 하는지를 반환합니다.
    • S - 비히클을 선호하는 AI 를 가리킵니다.
    • TeamIndex 팀 인덱스 - AI 가 속한 팀입니다.
    • Objective 목표 - AI 의 목표를 가리킵니다.
  • SetReservation [C] 예약 설정 - 주어진 AI 가 비히클을 예약한 것으로 설정합니다.
    • C - 비히클을 예약중인 AI 를 가리킵니다.
  • ShouldLeaveForCombat [B] 전투 참여를 위해 내릴지 - AI 가 적과 교전할 때 이 비히클을 내릴지를 반환합니다.
    • [B] - AI 콘트롤러를 가리킵니다.

Camera 카메라

  • ProcessViewRotation [DeltaTime] [out_ViewRotation] [out_DeltaRot] 뷰 로테이션 처리 - 카메라에 대한 이 프레임의 뷰 로테이션 변화를 바꿀 수 있는 기회를 비히클에 줍니다.
    • DeltaTime 델타 시간 - 지난 업데이트 이후 경과한 기간입니다.
    • out_ViewRotation 아웃_뷰 로테이션 - 현재 뷰 로테이션을 담고 업데이트된 뷰 로테이션을 출력합니다.
    • out_DeltaRot 아웃_델타 로테 - 현재 로테이션 변화를 담고 업데이트된 로테이션 변화를 출력합니다.
  • GetCameraFocus [SeatIndex] 카메라 포커스 구하기 - 카메라 랙을 계산에 넣지 않은 상태로 주어진 좌석에 대한 카메라 포커스 위치를 반환합니다.
    • SeatIndex 시트 인덱스 - 카메라 포커스를 구할 좌석 인덱스입니다.
  • GetCameraStart [SeatIndex] 카메라 스타트 구하기 - 카메라 랙을 더한 상태로 주어진 좌석에 대한 카메라 포커스 위치를 반환합니다.
    • SeatIndex 시트 인덱스 - 랙 적용 카메라 포커스를 구할 좌석 인덱스입니다.
  • VehicleCalcCamera [DeltaTime] [SeatIndex] [out_CamLoc] [out_CamRot] [CamStart] [bPivotOnly] 비히클 카메라 계산 - 주어진 좌석에 대한 카메라 위치와 로테이션을 계산합니다. CalcCamera() 에서 호출됩니다.
    • DeltaTime 델타 시간 - 지난 업데이트 이후 경과한 기간입니다.
    • SeatIndex 시트 인덱스 - 카메라 계산을 할 좌석 인덱스입니다.
    • out_CamLoc 아웃_캠 위치 - 출력. 카메라 위치를 출력합니다.
    • out_CamRot 아웃_캠 로테 - 출력. 카메라 로테이션을 출력합니다.
    • CamStart 캠 스타트 - 출력. 랙을 더한 카메라 포커스 위치를 출력합니다.
    • bPivotOnly 피벗만 - 옵션.

Collision 콜리전

  • StopsProjectile [P] 프로젝타일 멈춤 - 비히클이 주어진 프로젝타일에 "닿을" 수 있는지를 반환합니다.
    • P - 검사할 프로젝타일을 가리킵니다.
  • DisableCollision 콜리전 끄기 -

Damage 대미지

  • GetRanOverDamage 차에 치는 대미지 구하기 - 비히클로 친 플레이어에게 입힐 대미지에 사용할 DamageType 을 반환합니다.
  • RanInto [Other] 차로 충돌 - 진로 밖으로 이동 가능했던 침입(encroaching) 액터에 대미지를 적용합니다.
    • Other - 침입 액터를 가리킵니다.
  • BlowupVehicle 비히클 날림 - 비히클이 폭발하도록 하기 위해 비히클이 죽을 때 호출됩니다.
  • GetDisplayedHealth 표시 체력 구하기 - HUD 에 그릴 용도로 사용할 비히클 체력을 반환합니다.
  • HealDamage [Amount] [Healer] [DamageType] 대미지 힐 - Pawn 에서 상속됩니다. 비히클을 치유하며, 그 과정에서 대미지 시스템을 업데이트합니다.
    • Amount 양 - 체력을 채울 양입니다.
    • Healer 힐러 - 비히클 치유를 담당하는 콘트롤러를 가리킵니다.
    • DamageType 대미지 타입 - 치유에 쓸 DamageType 입니다.
  • GetHealth [SeatIndex] 체력 구하기 - 비히클의 현재 체력을 반환합니다.
  • GetCollisionDamageModifier [ContactInfos] 콜리전 대미지 모디파이어 구하기 - 주어진 콜리전 대미지에 곱해줄 수를 반환합니다. 낙하 대미지 감소 여부까지 고려합니다.
    • ContactInfos 접촉 정보 - 콜리전 관련 정보입니다. 배열의 첫 항목만 사용됩니다.
  • InitializeMorphs 모프 초기화 - MorphNode 와 대미지 시스템 내 DamageMorphTargets 에 대해 링크된 인덱스로의 리퍼런스를 셋업합니다.
  • ReceivedHealthChange 받은 체력 변화 - 비히클의 체력에 변화가 생겼을 때 클라이언트에서 호출됩니다. 대미지 시스템을 업데이트하고, 모프 타겟에 대미지나 힐링을 적용합니다.
  • ApplyMorphHeal [Amount] 모프 힐 적용 - 대미지 시스템의 모프 타겟에 힐링을 적용합니다. 대미지 모델링은 클라이언트측에서 이루어지고 힐링은 서버측에서 이루어지므로, 딱 어느 노드를 치유해야겠다 알 수가 없습니다. 그래서 치유는 모든 모프 타겟에 고르게 적용됩니다.
    • Amount 양 - 비히클이 받는 치유량입니다.
  • ApplyRandomMorphDamage [Amount] 랜덤 모프 대미지 적용 - 비히클의 체력이 리모트 클라이언트에서 변경되었기에 대미지 위치를 콕 집어낼 수 없을 때 랜덤하게 모프 타겟에 대미지를 적용합니다.
    • Amount 양 - 비히클에 적용할 대미지 양입니다.

Display 디스플레이

  • UpdateShadowSettings [bWantShadow] 섀도우 세팅 업데이트 - 비히클에 대한 그림자 드리우기를 끄거나 켭니다.
    • bWantShadow 그림자 원함 - 참이면 그림자를 켭니다. 거짓이면 끕니다.
  • DisplayWeaponBar [canvas] [HUD] 웨폰 바 표시 - 비히클에 자체 웨폰 바를 그릴 수 있도록 하기 위해 HUD 가 호출하는 함수 토막입니다. 충전이 필요하다든가 해서 화면 위에 웨폰 바를 표시하고 싶은 경우, 서브클래스에서 이를 덮어써야 합니다.
    • canvas 캔버스 - 현재 그릴 캔버스를 가리킵니다.
    • HUD - HUD 를 가리킵니다.
  • DrawKillIcon [Canvas] [ScreenX] [ScreenY] [HUDScaleX] [HUDScaleY] 킬 아이콘 그리기 - 킬이 발생했을 때 HUD 에 비히클 아이콘을 그립니다.
    • Canvas 캔버스 - 현재 그릴 캔버스를 가리킵니다.
    • ScreenX 화면 X - 아이콘을 그릴 가로 위치입니다.
    • ScreenY 화면 Y - 아이콘을 그릴 세로 위치입니다.
    • HUDScaleX HUD 스케일 X - HUD 의 (1024를 기준으로 한) 가로 스케일입니다.
    • HUDScaleY HUD 스케일 Y - HUD 의 (768을 기준으로 한) 세로 스케일입니다.
  • RenderMapIcon [MP] [Canvas] [PlayerOwner] [FinalColor] 맵 아이콘 렌더 - 미니맵에 비히클을 그립니다. UTMapInfo 에서 호출됩니다.
    • MP - 맵을 그리는 맵 인포를 가리킵니다.
    • Canvas 캔버스 - 현재 그릴 캔버스를 가리킵니다.
    • PlayerOwner 플레이어 오너 - 로컬 플레이어 콘트롤러를 가리킵니다.
    • FinalColor 최종 색 - 비히클의 맵 아이콘을 그리는 데 쓸 색입니다.
  • PostRenderFor [PC] [Canvas] [CameraPosition] [CameraDir] 포스트 렌더 포 - Actor 에서 상속됩니다. NativePostRenderFor 의 스크립트 버전으로, 폰이 자신에 대한 HUD 오버레이를 그릴 수 있도록 하는 것입니다.
    • PC 플콘 - 플레이어의 콘트롤러를 가리킵니다.
    • Canvas 캔버스 - 현재 그릴 캔버스를 가리킵니다.
    • CameraPosition 카메라 위치 - 현재 카메라 위치입니다.
    • CameraDir 카메라 향 - 현재 카메라가 향하고 있는 방향입니다.
  • PostRenderPassengerBeacons [PC] [Canvas] [TeamColor] [TextColor] [Weap] [InPassengerPRI] [InPassengerTeamBeaconOffset] 포스트 렌더 패신저 비컨 - 비히클의 탑승자 정보를 HUD 위에 그립니다.
    • PC 플콘 - 플레이어의 콘트롤러를 가리킵니다.
    • Canvas 캔버스 - 현재 그릴 캔버스를 가리킵니다.
    • TeamColor 팀 컬러 - 패신저 인포 아이콘을 그리는 데 사용할 색입니다.
    • TextColor 텍스트 컬러 - 패신저 인포 텍스트를 그리는 데 사용할 색입니다.
    • Weap 윂 - 패신저가 사용중인 무기를 가리킵니다.
    • InPassengerPRI 인 패신저 PRI - 패신저의 PlayerReplicationInfo 를 가리킵니다.
    • InPassengerTeamBeaconOffset 인 패신저 팀 비컨 오프셋 - 패신저 인포를 그릴 때 비히클의 위치에다 적용할 오프셋입니다.
  • TurnOffShadows 그림자 끄기 - 비히클에 대한 모든 그림자를 끄기 위해 UpdateShadowSettings(False) 를 호출합니다.
  • DisplayHUD [HUD] [Canvas] [HudPOS] [SeatIndex] HUD 표시 - 모든 비히클 관련 HUD 디테일을 그립니다. HUD 에서 호출됩니다.
    • HUD - HUD 를 가리킵니다.
    • Canvas 캔버스 - 그릴 캔버스를 가리킵니다.
    • HudPOS HUD 위치 - 사용되지 않습니다.
    • SeatIndex 시트 인덱스 - 옵션. 좌석의 인덱스입니다.

Effects 이펙트

  • PlaySpawnEffect 스폰 이펙트 재생 - 비히클 스폰에 관련된 모든 이펙트를 재생합니다. 비히클 팩토리가 비히클을 스폰할 때 호출합니다.
  • StopSpawnEffect 스폰 이펙트 중지 - 비히클 스폰에 관련된 모든 이펙트를 중지합니다.
  • CreateVehicleEffect [EffectIndex] 비히클 이펙트 생성 - 주어진 이펙트에 대한 파티클 시스템 컴포넌트를 생성하고, 관련된 파티클 시스템을 거기에 할당해 줍니다.
    • EffectIndex 이펙트 인덱스 - 생성할 VehicleEffects 배열로의 인덱스입니다.
  • InitializeEffects 이펙트 초기화 - 'BeginPlay' 비히클 이펙트를 트리거하고 bInitializedVehicleEffects (초기화된 비히클 이펙트)를 참으로 설정합니다.
  • SetVehicleEffectParams [TriggerName] [PSC] 비히클 이펙트 파람 설정 - 주어진 이벤트 이름에 관련된 파티클 파라미터를 설정합니다.
    • TriggerName 트리거 이름 - 이펙트가 관련되어 있는 이벤트 이름입니다.
    • PSC 파시컴 - 이펙트의 파티클 시스템 컴포넌트를 가리킵니다.
  • TriggerVehicleEffect [EventTag] 비히클 이펙트 트리거 - 주어진 이벤트와 관련된 모든 비히클 이펙트를 재생합니다.
    • EventTag 이벤트 태그 - 트리거되고 있는 이벤트의 이름입니다.
  • TeamChanged_VehicleEffects 팀 변경됨_비히클 이펙트 - 비히클의 이펙트가 비히클이 속해 있는 팀에 일치하도록 업데이트합니다.
  • StartLinkedEffect 링크된 이펙트 시작 - 링크 건이 비히클에 링크될 때 재생할 모든 이펙트를 셋업합니다.
  • StopLinkedEffect 링크된 이펙트 중지 - 랑크 건이 비히클에 링크될 때에 관련된 모든 이펙트를 중지합니다.
  • PlayTakeHitEffects 피격 이펙트 재생 - 비히클이 맞았을 때 피격 이펙트를 재생하고 대미지 시스템을 업데이트합니다.
  • CauseMuzzleFlashLight [SeatIndex] 머즐 플래시 라이트 유발 - 주어진 좌석의 무기에 대한 머즐(총구) 플래시 라이트를 켭니다.
    • SeatIndex 시트 인덱스 - 머즐 플래시 라이트를 켜 줄 좌석 인덱스입니다.
  • VehicleWeaponFireEffects [HitLocation] [SeatIndex] 비히클 무기 발사 이펙트 - 무기의 FireTriggerTags 에 일치하는 비히클 이벤트를 트리거시켜 주어진 좌석에 대한 무기 발사 이펙트를 재생합니다.
    • HitLocation 적중 위치 - 발사 이펙트 위치입니다.
    • SeatIndex 시트 인덱스 - 이펙트를 재생할 좌석 인덱스입니다.
  • VehicleWeaponImpactEffects [HitLocation] [SeatIndex] 비히클 무기 충격 이펙트 - 주어진 좌석의 무기 발사로부터 충격 지점에 발생한 이펙트를 재생합니다.
    • HitLocation 적중 위치 - 충격 위치입니다.
    • SeatIndex 시트 인덱스 - 충격을 유발한 무기가 달린 좌석의 인덱스입니다.
  • SpawnImpactEmitter [HitLocation] [HitNormal] [ImpactEffect] [SeatIndex] 스폰 충격 이미터 - 충격된 표면 종류에 따라 적절한 이펙트를 스폰합니다.
    • HitLocation 적중 위치 - 충격 위치입니다.
    • HitNormal 적중 노멀 - 충격 지점의 표면 노멀입니다.
    • ImpactEffect 충격 이펙트 - 해당하는 머티리얼 종류에 따라 스폰시킬 이펙트입니다.
    • SeatIndex 시트 인덱스 - 충격의 원인이 된 발사를 한 좌석의 인덱스입니다.
  • DisableDamageSmoke 대미지 스모크 끄기 - 'NoDamageSmoke' 이벤트를 트리거시켜 거의 완전 연소된 비히클에 연기와/또는 불 이펙트를 끕니다.
  • StartBurnOut 완전 연소 시작 - 죽은 비히클에 완전 연소 이펙트를 시작합니다.
  • SetBurnOut 완전 연소 설정 - 완전 연소 이펙트를 셋업하고, 그 이펙트 시작을 위한 타이머를 돌립니다.
  • ShouldSpawnExplosionLight [HitLocation] [HitNormal] 폭발 라이트 스폰할지 - 로컬 플레이어와의 거리에 따라 폭발 라이트를 스폰시킬지 반환합니다.
    • HitLocation 적중 위치 - 사용되지 않습니다.
    • HitNormal 적중 노멀 - 사용되지 않습니다.
  • TurretExplosion 터렛 폭발 - 터렛 폭발을 셋업하고 실행, 기존 터렛을 감추고 파괴된 터렛을 스폰합니다.
  • CheckDamageSmoke 대미지 스모크 검사 - 비히클의 체력에 따라 'DamageSmoke' 나 'NoDamageSmoke' 이벤트 중 하나를 트리거되도록 합니다.
  • SpawnGibVehicle [SpawnLocation] [SpawnRotation] [TheMesh] [HitLocation] [bSpinGib] [ImpulseDirection] [PS_OnBreak] [PS_Trail] 잔해 비히클 스폰 - 스프링이 끊어지거나 비히클 사망시 부서질 때 특정 비히클 조각을 스폰하기 위해 비히클의 애님트리에 있는 대미지 스켈레탈 콘트롤러가 호출합니다.
    • SpawnLocation 스폰 위치 - 조각을 스폰시킬 위치입니다.
    • SpawnRotation 스폰 로테이션 - 조각을 스폰시킬 로테이션입니다.
    • TheMesh 그 메시 - 스폰시킬 조각의 스태틱 메시입니다.
    • HitLocation 적중 위치 - 충격 위치입니다.
    • bSpinGib 잔해 스핀 - 참이면 스폰된 조각에 임의의 각속도를 줍니다.
    • ImpulseDirection 추진력 방향 - 스폰된 조각에 적용할 추진력입니다.
    • PS_OnBreak 파시_깨질 때 - 조각이 떨어져나갈 때 재생할 파티클 시스템입니다.
    • PS_Trail 파시_흔적 - 떨어져나간 조각의 흔적에 사용할 파티클 시스템입니다.
  • SetMovementEffect [SeatIndex] [bSetActive] [UTP] 이동 이펙트 설정 - 주어진 좌석에 대한 이동 이펙트를 만들거나 없앱니다. 이동 이펙트는 Cicada 가 구름을 통과할 때의 효과같은 이동 이펙트를 스태틱 메시로 만들어 낼 수 있습니다.
    • SeatIndex 시트 인덱스 - 이동 이펙트를 만들어 낼 좌석의 인덱스입니다.
    • bSetActive 활성 설정 - 참이면 이펙트를 만듭니다. 거짓이면 이펙트를 없앱니다.
    • UTP - 좌석에 있는 폰을 가리킵니다. 이펙트가 로컬 플레이어용인지를 알아내는 데 사용합니다. 그렇지 않다면 이펙트를 내지 않습니다.
  • ApplyWeaponEffects [OverlayFlags] [SeatIndex] 무기 이펙트 적용 - 주어진 좌석에 대한 무기 이펙트를 셋업하고 붙입니다.
    • OverlayFlags 오버레이 플랙 - 좌석에 대한 이펙트를 찾는 데 사용되는 플랙입니다.
    • SeatIndex 시트 인덱스 - 좌석의 인덱스입니다.

Entry/Exit 타고/내리기

  • EjectSeat [SeatIdx] 좌석 탈출 - 지정된 좌석에 있는 플레이어/AI 를 비히클에서 탈출시킵니다.
    • SeatIndex 시트 인덱스 - 패신저를 탈출시킬 좌석의 인덱스입니다.
  • ExitRotation 출구 로테이션 - 유효한 출구 위치를 결정하는 데 사용할 로테이션을 반환합니다. 디폴트는 비히클의 로테이션입니다.
  • DisableVehicle 비히클 끄기 - 비히클을 끄고 모든 탑승자를 추방하며 비히클을 끄는 데 관련된 이펙트가 있으면 재생합니다. 비히클에 누군가 있었으면 참을 반환합니다.
  • EnableVehicle 비히클 켜기 - 비히클을 켜고 비히클을 끄는 데 관련된 이펙트가 있었다면 그 이펙트를 끕니다.
  • GetSeatIndexFromPrefix [Prefix] 접두사에서 시트 인덱스 구하기 - 주어진 변수 접두사와 관련된 시트 인덱스를 반환합니다.
    • Prefix 접두사 - 시트 인덱스를 찾아볼 접두사입니다.
  • SeatAvailable [SeatIndex] 사용가능 좌석 - 지정된 좌석이 사용가능한지 차있는지를 반환합니다.
    • SeatIndex 시트 인덱스 - 검사할 좌석의 인덱스입니다.
  • AnySeatAvailable 사용가능 좌석 있는지 - 비히클에 사용가능한 좌석이 있는지를 반환합니다.
  • GetSeatIndexForController [ControllerToMove] 콘트롤러에 대한 시트 인덱스 구하기 - 주어진 콘트롤러가 좌석을 차지하고 있다면 그 좌석의 인덱스를, 어느 좌석도 차지하고 있지 않다면 -1 을 반환합니다.
    • ControllerToMove 움직일 콘트롤러 - 검사할 콘트롤러를 가리킵니다.
  • GetControllerForSeatIndex [SeatIndex] 시트 인덱스에 대한 콘트롤러 구하기 - 주어진 좌석을 차지하고 있는 콘트롤러를, 좌석이 비어 있다면 None 을 반환합니다.
    • SeatIndex 시트 인덱스 - 콘트롤러를 구할 좌석의 인덱스입니다.
  • HasPriority [First] [Second] 우선권 있는지 - 첫 콘트롤러가 둘째 콘트롤러보다 우선권이 높은지를 반환합니다. 좌석을 변경하고, 원하는 좌석이 차 있을때 한 플레이어가 다른 플레이어를 밀어낼 수 있을지 결정하는 데 사용됩니다. 디폴트로 우선권은 사람이 제어하는 플레이어에게 있습니다.
    • First 첫째 - 우선권 검사를 할 콘트롤러를 가리킵니다.
    • Second 둘째 - 우선권 검사 비교 대상 콘트롤러를 가리킵니다.
  • ChangeSeat [ControllerToMove] [RequestedSeat] 좌석 변경 - 주어진 플레이어를 새로운 좌석으로 옮겨 봅니다. 새로운 좌석이 비어 있거나 옮길 플레이어가 좌석을 차지하고 있는 플레이어보다 우선권이 높은 경우 이동에 성공합니다.
    • ControllerToMove 이동할 콘트롤러 - 이동할 플레이어의 콘트롤러를 가리킵니다.
    • RequestedSeat 요청된 좌석 - 플레이어를 옮길 좌석의 인덱스입니다.
  • InCustomEntryRadius [P] 커스텀 탑승 반경 안 - bHasCustomEntryRadius (커스텀 탑승 반경 있음)이 참일 때 호출되어, 주어진 폰이 커스텀 반경 안에 있는지를 반환합니다. 디폴트는 항상 거짓 반환입니다. 커스텀 반경을 사용하는 비히클은 이 함수를 덮어써야 합니다.
    • P - 검사할 폰을 가리킵니다.
  • KickOutBot 봇 추방 - 비히클의 좌석에 대해 반복 처리하여 처음 발견한 AI 탑승자를 비히클 밖으로 추방, 사람 플레이어가 탈 자리를 만듭니다.
  • VehicleLocked [P] 비히클 잠김 - 폰이 잠겨있는 비히클에 타려 했을 때 호출됩니다. 잠긴 비히클 소리를 재생하고 플레이어에게 메시지를 표시합니다.
    • P - 비히클에 타려 했던 폰을 가리킵니다.
  • ShouldShowUseable [PC] [Dist] 사용가능 표시 - 주어진 플레이어가 비히클에 탈 수 있는지를 반환합니다. * PC 플콘 - 검사할 플레이어의 콘트롤러를 가리킵니다. * Dist 거리 - 검사할 비히클과 플레이어 사이의 거리입니다.
  • NumPassengers 패신저 수 - 운전수를 포함하여 현재 비히클 안에 있는 탑승자 수를 반환합니다.
  • GetFirstAvailableSeat 사용가능한 첫 좌석 구하기 - 사용가능한 첫 탑승자 좌석을 반환합니다. 예로 좌석 0 은 아니며, 사용가능한 좌석이 없으면 -1 입니다.
  • PassengerEnter [P] [SeatIndex] 패신저 탑승 - 운전수가 아닌 탑승자가 비히클에 탔을 때, 탑승자가 깃발을 운반하고 있으면 그 처리를 해 주고 탑승자를 지정석에 앉히기 위해 호출됩니다.
    • P - 비히클에 타는 폰을 가리킵니다.
    • SeatIndex 시트 인덱스 - 탑승자를 앉힐 좌석의 인덱스입니다.
  • PassengerLeave [SeatIndex] 패신저 하차 - 탑승자가 비히클을 내릴 때 호출됩니다.
    • SeatIndex 시트 인덱스 - 탑승자를 제거할 좌석의 인덱스입니다.
  • Occupied 차지함 - 비히클의 좌석에 누군가 앉아 있는지를 반환합니다.
  • OpenPositionFor [P] 가능한 위치인지 - 이 좌석이 주어진 폰이 사용가능한 것인지를 반환합니다.
    • P - 검사할 폰을 가리킵니다.
  • InitializeSeats 좌석 초기화 - 비히클 내 각각의 좌석에 대한 무기를 셋업합니다.
  • SitDriver [UTP] [SeatIndex] 운전수 앉힘 - 주어진 폰을 지정석에 놓고서 관련된 본에 붙입니다.
    • UTP - 좌석에 놓을 폰을 가리킵니다.
    • SeatIndex 시트 인덱스 - 폰을 앉힐 좌석의 인덱스입니다.
  • OnExitVehicle [Action] 비히클 내릴 때 - Exit Vehicle 키즈멧 액션을 받고 모든 탑승자를 비히클 밖으로 몰아냅니다.
    • Action 액션 - 활성화된 UTSeqAct_ExitVehicle 액션을 가리킵니다.
  • SetSeatStoragePawn [SeatIndex] [PawnToSit] 폰 지정 좌석 설정 - 주어진 폰을 주어진 좌석에 앉히거나 세울 때 SeatMask 를 업데이트합니다.
    • SeatIndex 시트 인덱스 - 폰을 앉히거나 세울 좌석의 인덱스입니다.
    • PawnToSit 앉힐 폰 - 좌석에 앉힐 폰을 가리키며, 주어진 좌석의 탑승자를 세우려면 None 입니다.

Events 이벤트

  • VehicleEvent [EventTag] 비히클 이벤트 - 어떠한 상황에 반응하여 비히클의 이벤트를 트리거시키는 인터페이스를 제공합니다. 자세한 정보는 비히클 이벤트 부분을 참고하십시오.
    • EventTag 이벤트 태그 - 트리거시킬 이벤트 이름입니다.

Gameplay 게임플레이

  • SetTeamNum [T] 팀 번호 설정 - 비히클이 속하는 팀을 설정합니다.
    • T - 비히클에 바꿔줄 팀 번호입니다.
  • TeamChanged 팀 변경됨 - 비히클의 팀이 바뀌었을 때 그 머티리얼과 이펙트를 새 팀에 맞추기 위해 호출됩니다.
  • IncomingMissle [P] 미사일 접근 - AI 에게 이 비히클을 노리고 접근하는 프로젝타일이 있음을 알립니다.
    • P - 비히클을 목표로 삼은 프로젝타일을 가리킵니다.
  • ShootMissile [P] 미사일 격추 - 비히클이 주어진 프로젝타일에 발사하도록 합니다.
    • P - 발사할 프로젝타일을 가리킵니다.
  • SendLockOnMessage [Switch] 락 온 메시지 전송 - 비히클 전 좌석에 경고를 전달하고자 LockOnWarning() (락 온 경고) 함수에 의해 호출됩니다.
    • Switch 스위치 - 표시할 메시지의 인덱스입니다.
  • HandleEnteringFlag [EnteringPRI] 깃발 탑승 처리 - 깃발을 수송할 수 있는 비히클인지에 따라 타려는 플레이어가 운반중인 깃발을 붙이거나, 강제로 떨어뜨리도록 합니다.
    • EnteringPRI 탑승 PRI - 비히클에 타려는 플레이어의 PRI(플레이어 리플리케이션 인포)를 가리킵니다.
  • AttachFlag [FlagActor] [NewDriver] 깃발 붙이기 - 주어진 깃발을 비히클 아니면 (지정된 것이 있다면) FlagBone 에 붙입니다.
    • FlagActor 플랙 액터 - 붙일 깃발을 가리킵니다.
    • NewDriver 새 운전수 - 깃발을 운반하고 있던 폰을 카리킵니다.
  • GetHumanReadableName 사람이 읽을 수 있는 이름 구하기 - 사람이 읽을 수 있는 비히클 이름을 반환합니다. VehicleNameString 또는 클래스 이름 중 하나입니다.

Mesh and Animation 메시와 애니메이션

  • ReattachMesh 메시 재부착 - 메시 컴포넌트를 떼었다 붙입니다. 세팅이 바뀌었을 때 사용됩니다.
  • PlayVehicleAnimation [EventTag] 비히클 애니메이션 재생 - 주어진 이벤트에 관련된 애니메이션을 재생합니다.
    • EventTag 이벤트 태그 - 트리거되고 있는 이벤트의 이름입니다.
  • OnAnimEnd [SeqNode] [PlayedTime] [ExcessTime] 애님 종료시 - Actor 에서 상속됩니다. 애니메이션이 끝날 때 엔진에 의해 호출됩니다. 비히클을 빈 상태로 되돌려놓기 위해 비히클에서 'Idle' 이벤트를 호출합니다.
    • SeqNode 시퀸 노드 - 애니메이션을 재생중인 AnimNodeSequence 플레이어입니다.
    • PlayedTime 재생된 시간 - 애니메이션이 재생된 기간입니다.
    • ExcessTime 잉여 시간 - 애니메이션 종료 이후 삐져나온 기간입니다.

Movement 이동

  • UpdateLookSteerStatus 룩 투 스티어 상태 업데이트 - 현재 콘트롤 방식에 따라 bUsingLookSteer (룩 투 스티어 사용중) 값을 업데이트합니다.

Physics 피직스

  • OnDriverPhysicsAssetChanged [UTP] 드라이버 피직스 애셋 변경시 - 운전수의 피직스 애셋이 바뀌었을 때 비히클이 운전수의 커스텀 피직스 셋업이 가능하도록 하기 위한 함수 토막입니다.
    • UTP - 운전수 폰을 가리킵니다.

Sounds 사운드

  • PlayVehicleSound [SoundTag] 비히클 사운드 재생 - 주어진 이벤트와 관련된 소리를 재생하고/거나 중지합니다.
    • SoundTag 사운드 태그 - 트리거되고 있는 이벤트의 이름입니다.
  • EntryAnnouncement [C] 탑승 알림 - 누군가 비히클에 탔을 때 필요한 알림이나 소리를 재생합니다.
    • C - 비히클에 타는 플레이어/AI 의 콘트롤러를 가리킵니다.
  • PlayHorn 경적 재생 - 근처 AI 더러 비히클에 타 보라 이르는 신호인 경적 소리를 재생합니다.
  • StopVehicleSounds 비히클 사운드 중지 - 모든 비히클 소리를 재생 중지합니다.

Weapons 웨폰

  • WeaponRotationChanged [SeatIndex] 무기 로테이션 변경됨 - 특정 좌석의 무기 로테이션 값이 바뀌었을 때 클라이언트측 터렛의 로테이션을 업데이트하기 위해 리모트 클라이언트에서 호출됩니다.
    • SeatIndex 시트 인덱스 - 로테이션이 바뀐 좌석의 인덱스입니다.
  • CheckTurretPitchLimit [NeededPitch] [SeatIndex] 터렛 피치 제한 검사 - 터렛이 그 방향으로 발사할 수 없다든가 해서 주어진 피치가 터렛 콘트롤러에 의해 제한되는지를 검사, 무리한 로테이션인지를 반환합니다.
    • NeededPitch 필요한 피치 - 원하는 방향으로 발사하는 데 필요한 피치입니다.
    • SeatIndex 시트 인덱스 - 발사를 하는 좌석의 인덱스입니다.
  • GetHomingTarget [Seeker] [InstigatedBy] 유도 타겟 구하기 - 이 비히클이 타게팅하여 락 온 하려는 액터 프로젝타일을 반환합니다.
    • Seeker 시커 - 비히클을 타게팅하는 프로젝타일을 가리킵니다.
    • InstigatedBy 유발한 대상 - 프로젝타일 발사를 담당하는 콘트롤러를 가리킵니다.
  • IntializeTurrets 터렛 초기화 - 비히클의 모든 좌석에 대한 터렛 스켈레탈 콘트롤러를 초기화합니다.
  • SetFiringMode [Weap] [FiringModeNum] 발사 모드 설정 - Pawn 에서 상속됩니다. 운전수 무기의 발사 모드를 주어진 발사 모드로 설정합니다.
    • Weap 윂 - 운전수의 무기를 가리킵니다.
    • FiringModeNum 발사 모드 번호 - 무기에 설정할 발사 모드입니다.
  • ClearFlashCount [Who] 플래시 카운트 비우기 - Pawn 에서 상속됩니다. VehicleAdjustFlashCount() (비히클 플래시 카운트 조절 함수)를 통해 운전수 무기 모든 발사 모드의 플래시 카운트를 비웁니다.
    • Who 누구 - 운전수의 무기를 가리킵니다.
  • IncrementFlashCount [Who] [FireModeNum] 플래시 카운트 증가 - Pawn 에서 상속됩니다. VehicleAdjustFlashCount() (비히클 플래시 카운트 조절 함수)를 통해 운전수 무기 주어진 발사 모드의 플래시 카운트를 늘립니다.
    • Who 누구 - 운전수의 무기를 가리킵니다.
    • FireModeNum 발사 모드 번호 - 플래시 카운트를 늘릴 발사 모드를 가리킵니다.
  • SetFlashLocation [Who] [FireModeNum] [NewLoc] 플래시 위치 설정 - Pawn 에서 상속됩니다. 운전수 무기 적중이 발사 이펙트 재생용으로 모든 클라이언트에 리플리케이트되도록 하기 위해, VehicleAdjustFlashLocation() 를 통해 위치를 설정합니다.
    • Who 누구 - 운전수의 무기를 가리킵니다.
    • FireModeNum 발사 모드 번호 - 적중되었던 발사 모드입니다.
    • NewLoc 새 위치 - 충격 위치입니다.
  • ClearFlashLocation [Who] 플래시 위치 비우기 - VehicleAdjustFlashLocation() (비히클 플래시 위치 조절 함수)를 통해 운전수 무기에 대한 플래시 위치를 비우고, 무가 발사 이펙트를 중지합니다.
    • Who 누구 - 운전수의 무기를 가리킵니다.
  • GetBarrelLocationAndRotation [Seatindex] [SocketLocation] [SocketRotation] 배럴 위치와 로테이션 구하기 - 주어진 좌석 무기에서 현재 발사되고 있는 배럴에 대한 소켓의 위치와/또는 로테이션을 출력합니다.
    • SeatIndex 시트 인덱스 - 위치와 로테이션을 구할 좌석의 인덱스입니다.
    • SocketLocation 소켓 위치 - 배럴의 위치를 출력합니다.
    • SocketRotation 로테이션 위치 - 옵션. 배럴의 로테이션을 출력합니다.
  • GetEffectLocation [SeatIndex] 이펙트 위치 구하기 - 주어진 좌석의 무기에 대한 배럴 위치를 구합니다.
    • SeatIndex 시트 인덱스 - 배럴 위치를 구할 좌석의 인덱스입니다.
  • GetPhysicalFireStartLoc [ForWeapon] 물리적인 발사 시작 위치 구하기 - GetEffectLocation() (이펙트 위치 구하기 함수)를 통해 운전수 무기에 대한 배럴의 위치를 구합니다.
    • ForWeapon 무기에 대한 - 운전수의 무기를 가리킵니다.
  • GetWeaponAim [VWeapon] 무기 조준 구하기 - 주어진 무기가 조준하고 있는 방향을 나타내는 로테이션을 반환합니다.
    • VWeapon V 웨폰 - 조준을 구할 무기를 가리킵니다.
  • WeaponFired [InWeapon] [bViaReplcation] [HitLocation] 무기 발사됨 - 비히클 운전수에 대한 Weapon Fired 호출을 VehicleWeaponFired() 로 전달합니다.
    • InWeapon 인 웨폰 - 운전수의 무기를 가리킵니다.
    • bViaReplication 리플리케이션을 통해 - 참이면 이것은 클라이언트에서 리플리케이트되고 있는 것입니다.
    • HitLocation 적중 위치 - 발사 이펙트를 재생할 위치입니다.
  • VehicleWeaponFired [bViaReplication] [HitLocation] [SeatIndex] 비히클 무기 발사됨 - 주어진 좌석 무기에 대한 무기 발사 이펙트를 아무거나 트리거합니다.
    • bViaReplication 리플리케이션을 통해 - 참이면 리모트 콘트롤에서 리플리케이트되고 있는 것입니다.
    • HitLocation 적중 위치 - 발사 이펙트용 위치입니다.
    • SeatIndex 시트 인덱스 - 무기가 발사된 좌석의 인덱스입니다.
  • WeaponStoppedFiring [InWeapon] [bViaReplication] 무기 발사 중지됨 - 비히클 운전수에 대한 Weapon Stopped Firing 호출을 VehicleWeaponStoppedFiring() 으로 전달합니다.
    • InWeapon 인 웨폰 - 운전수의 무기를 가리킵니다.
    • bViaReplication 리플리케이션을 통해 - 참이면 이것은 리모트 클라이언트에서 리플리케이트되고 있는 것입니다.
  • VehicleWeaponStoppedFiring [bViaReplication] [SeatIndex] 비히클 무기 발사 중지됨 - 주어진 좌석의 무기에 대한 무기 발사 이펙트를 중지합니다.
    • bViaReplication 리플리케이션을 통해서 - 참이면 이것은 리모트 클라이언트에서 리플리케이트되고 있는 것입니다.
    • SeatIndex 시트 인덱스 - 무기 발사가 중지된 좌석의 인덱스입니다.
  • FindWeaponHitNormal [HitLocation] [HitNormal] [End] [Start] [HitInfo] 무기 적중 노멀 찾기 - 주어진 시작/끝 지점을 사용한 트레이스에서 적중에 대한 위치, 노멀, 정보를 출력합니다.
    • HitLocation 적중 위치 - 트레이스에서 적중 위치를 출력합니다.
    • HitNormal 적중 노멀 - 트레이스에서 적중 지점의 표면 노멀을 출력합니다.
    • End 끝 - 트레이스 끝 지점입니다.
    • Start 시작 - 트레이스 시작 지점입니다.
    • HitInfo 적중 정보 - 트레이스에 대한 적중 정보를 출력합니다.
  • VehicleAdjustFlashCount [SeatIndex] [FireModeNum] [bClear] 비히클 클래시 수 조절 - 주어진 좌석의 무기에 대한 플래시 카운트를 변경하거나 비웁니다.
    • SeatIndex 시트 인덱스 - 플래시 카운트를 조절하려는 좌석의 인덱스입니다.
    • FireModeNum 발사 모드 번호 - 플래시 카운트를 조절하려는 발사 모드입니다.
    • bClear 비우기 - 옵션. 참이면 플래시 카운트를 비웁니다. 거짓이면 플래시 카운트를 늘립니다.
  • VehicleAdjustFlashLocation [SeatIndex] [FireModeNum] [NewLocation] [bClear] 비히클 플래시 위치 조절 - 주어진 좌석의 무기에 대한 플래시 위치를 설정하거나 비웁니다.
    • SeatIndex 시트 인덱스 - 플래시 위치를 설정하려는 좌석의 인덱스입니다.
    • FireModeNum 발사 모드 번호 - 플래시 위치를 설정하려는 발사 모드입니다.
    • NewLocation 새 위치 - 플래시 위치로 새로 정할 위치입니다.
    • bClear 비우기 - 옵션. 참이면 플래시 위치를 비웁니다. 거짓이면 플래시 위치를 새 위치로 설정합니다.
  • SetShieldActive [SeatIndex] [bActive] 실드 활성 설정 - 실드 발사 모드일 때 비히클 실드를 활성/비활성화 시키는 함수 토막입니다. 실드가 있는 서브클래스에서 이 함수를 덮어써야 합니다.
    • SeatIndex 시트 인덱스 - 실드를 활성화시키는 좌석의 인덱스입니다.
    • bActive 활성 - 참이면 실드를 활성화시킵니다. 거짓이면 실드를 비활성화시킵니다.

SVehicleSimBase

비히클에 대한 시뮬레이션 작업 다수는 SVehicleSimBase 오브젝트 안에서 처리됩니다. 이 오브젝트는 모든 비히클에 대해 게임 전용 SVehicle-파생 베이스 클래스를 만들 수 있도록 하기 위해 별도의 오브젝트로 쪼개져 있습니다만, 각기 다른 비히클 타입에 코드를 재사용하는 것은 여전합니다.

  • WheelSuspensionStiffness 휠 서스펜션 강성 - 바퀴에 대한 서스펜션 스프링의 강성을 제어합니다. 이 값에 딱히 정해진 범위는 없지만, 20.0 에서 500.0 사이 값을 사용하고 있습니다.
  • WheelSuspensionDamping 휠 서스펜션 제동 - 바퀴에 대한 서스펜션의 제동을 제어합니다. 이 수치가 커 질수록 서스펜션의 진동은 줄어듭니다. 이 수치에도 딱히 정해진 범위는 없지만, 1.0 에서 75.0 사이 값을 사용하고 있습니다.
  • WheelSuspensionBias 휠 서스펜션 바이어스 - 휠 서스펜션의 평형 상태 위치에 적용할 오프셋입니다.
  • WheelInertia 바퀴 관성 - 바퀴의 질량입니다. 바퀴 회전력(wheel torque)으로 낼 수 있는 바퀴 속도를 결정하기 위해 PhysX 가 사용합니다. 바퀴를 돌리기가 얼마나 '무겁고' 힘든지 나타냅니다.
  • bWheelSpeedOverride 바퀴 속력 덮어쓰기 - 참이면 회전력을 적용하여 물리 법칙이 그에 맞는 바퀴 속력을 내도록 하는 대신, 이 바퀴의 속력을 직접 지정할 수 있습니다. SVehicleSimTank 오브젝트가 사용하는데, 바퀴에서 SetAxleSpeed 를 호출하는 것입니다.
  • bClampedFrictionModel 제한된 마찰 모델 - 참이면 바퀴에 의해 적용된 마찰력을 제한하는 마찰 모델을 사용합니다. 조금 더 현실적일 것입니다.

휠 모델

언리얼 엔진 3 비히클 시스템은 Pacejka-같은 휠 모델을 활용합니다. (Google 에서 이런 종류의 모델에 대해 자세히 알아보실 수 있습니다.) 휠 모델은 가로(lateral, 측면) 방향과 세로(longitudinal, 굴러가는 정면) 방향으로 나뉩니다. 각 방향에 대해 휠과 땅 사이에 슬립(미끄러지는) 양과 생성되는 힘의 양 사이의 관계를 나타내는 곡선이 있습니다.

pacejka_curve.jpg

측면 방향에 대해서는 Slip Angle 이, 정면 방향에 대해서는 Slip Ratio 가 입력으로 사용됩니다. 이 곡선을 지정하는 방법은, 도표에 보이는 두 점의 좌표를 주는 방식인데, 각각 'Extremum'(극한)과 'Asymptote'(점근)이라 합니다. 극한은 힘이 최대인 지점인 반면, 점근 지점은 무한히 슬립되는 출력 값을 냅니다. 각 지점에서의 접선은 평평한 것으로 받아들이고, 그 사이에 3차원 스플라인 곡선을 맞춰 곡선의 최종적인 모양을 냅니다. 각각의 곡선에 사용하는 프로퍼티는 다음과 같이 정의됩니다:

  • Wheel..ExtremumSlip 휠..극한 슬립 - 극한 지점에서의 입력 슬립 값입니다.
  • Wheel..ExtremumValue 휠..극한 값 - 극한 지점에서의 출력 값입니다.
  • Wheel..AsymptoteSlip 휠..점근 슬립 - 점근 지점에서의 입력 슬립 값입니다.
  • Wheel..AsymptoteValue 휠..점근 값 - 점근 지점에서의 출력 값입니다.

휠 시뮬레이션 초기 버전에서는 휠과 땅 사이에 큰 상대 속도가 있을 때 휠의 힘이 크게 상승했었습니다. 점프 착지후 안정적으로 슬라이딩하는 것이 꽤나 힘들었다는 뜻입니다. 나중에 'clamped friction mode'(제한 마찰 모드)가 도입된 이후 이러한 문제를 고치는 데 도움이 되었습니다. 이 모델을 사용하려면 SVehicleSimBase 안의 'bClampedFrictionModel' 옵션을 참으로 설정합니다. 기존 비히클에서 이렇게 하려면 위에 설명한 휠 파라미터를 다시 튜닝해 줘야 한다는 점 참고하시기 바랍니다. SVehicleSimBase 클래스는 평균적인 휠이 달린 비히클용으로 시작해 보기 좋은 디폴트 휠 함수 값을 사용합니다.

SVehicleWheel 프로퍼티

SVehicleWheel 에는 매 틱마다 시뮬레이션 코드가 설정하는 값이 여럿 있으며, 이들이 피직스로 전해 내려갑니다.

  • Steer 스티어 - 휠의 스티어링 각입니다. 0 은 직진, 양수 각은 오른쪽 입니다. 각도 단위입니다.
  • MotorTorque 모터 회전력 - 이 휠에 적용할 모터 회전력입니다. 음수가 되면 휠에 역회전 동력을 줄 수도 있습니다.
  • BrakeTorque 브레이크 회전력 - 휠의 회전을 멈추게 하기 위해 적용할 브레이크 회전력입니다. 항상 양수여야 합니다.
  • ChassisTorque 섀시 회전력 - 가속등을 할 때 처들릴 수 있도록 하기 위해, 이 휠에서 섀시로 되적용해 줄 회전력입니다.

휠의 다른 여러 파라미터는 시뮬레이션 코드가 위의 값이 어때야 하는지 결정하는 데 사용합니다. 이들은 보통 시간에 따라 변하지 않습니다.

  • bPoweredWheel 파워 휠 - 이 휠에 파워를 적용할지 입니다.
  • bHandbrakeWheel 핸드브레이크 휠 - 핸드브레이크 적용시 이 휠에 대한 그립을 감소시킬지 입니다.
  • SteerFactor 스티어 팩터 - 이 휠이 스티어링에 얼마만큼 반응하게 할지 입니다. 0 이면 스티어링에 휠이 반응하지 않으며, 1.0 이면 스티어링에 따라 오른쪽으로 꺾입니다. -1.0 으로 설정하면 휠이 반대 방향으로 스티어링되도록 하는데, 이를테면 4-휠 스티어링 설정같은 곳에 좋을 수 있습니다.
  • LongSlipFactor 정 슬립 팩터 - SVehicleSimBase 에 정의된, 휠 정면(Longitudinal) 방향 힘의 휠별 스케일링 함수입니다.
  • LatSlipFactor 측 슬립 팩터 - SVehicleSimBase 에 정의된, 휠 측면(Latitudinal) 방향 힘의 휠별 스케일링 함수입니다.
  • SkelControlName 스켈 콘트롤 이름 - 이 휠에 따라 업데이트해 줘야 할 SkelControlWheel 이름입니다. 자세한 정보는 Setting Up Vehicles KR 페이지를 참고하십시오.
  • BoneName 본 이름 - 휠 위치를 잡는 데 사용되는 스켈레탈 메시 내 본의 이름입니다.
  • BoneOffset 본 오프셋 - 휠을 배치하는 데 있어 BoneName 으로 지정한 본에서의 오프셋입니다.
  • WheelRadius 휠 반경 - 휠의 반경입니다.
  • SuspensionTravel 서스펜션 왕복운동 - '강하게' 멈추기 전까지 휠에 허용할 세로 왕복운동량입니다.
  • SuspensionSpeed 서스펜션 속력 - (계단을 오른다든가 해서) 휠이 너무 빠르게 움직이는 모습을 피하려면, 여기에 휠이 초당 움직일 수 있는 최대 언리얼 유닛 수치를 지정하면 됩니다.
  • WheelParticleSystem 휠 파티클 시스템 - 이 휠에 대한 스모크 이펙트를 만드는 데 사용되는 선택적인 파티클 시스템입니다. 'WheelSlip' 이라는 플로트 파라미터가 이 파티클 시스템에 매 틱마다 설정되는데, 이것을 사용하여 스폰율 등을 변경할 수 있습니다.
  • Side 사이드 - 탱크 비히클에 사용하여, 이 휠이 비히클의 왼쪽이나 오른쪽 '굴레'(tread) 부분을 구성함을 나타냅니다.

SVehicleWheel 역시도 매 프레임마다 업데이트되는 '출력'(output) 파라미터를 다수 제공합니다.

  • bWheelOnGround 휠 땅에 - 바로 이 휠이 현재 땅에 닿아 있는지 입니다.
  • SpinVel 스핀 속도 - 이 휠의 현재 각속도로, 초당 라디언 단위입니다.
  • LongSlipRatio 정 슬립 비율 - 이 휠에 대한 현재 정방향 슬립 비율입니다.
  • LatSlipAngle 측 슬립 각 - 이 휠에 대한 현재 측면 슬립 각입니다.
  • ContactNormal 접점 노멀 - 바퀴와 땅 사이의 접점 노멀 방향입니다.
  • LongDirection 정 방향 - 월드 스페이스에서의 정면 휠 방향 벡터입니다.
  • LatDirection 측 방향 - 월드 스페이스에서의 측면 휠 방향 벡터입니다.
  • ContactForce 접점 힘 - 지난 프레임 이 휠에 의해 적용된 힘의 세기입니다.
  • LongImpulse 정 충격 - 지난 프레임 정면 방향으로 적용된 충격 크기입니다.
  • LatImpulse 측 충격 - 지난 프레임 측면 방향으로 적용된 충격 크기입니다.
  • SuspensionPosition 서스펜션 위치 - 서스펜션을 기준으로 휠의 현재 세로 변위(displacement, 노멀 방향 이동)입니다.
  • CurrentRotation 현재 로테이션 - 휠의 현재 로테이션으로, 도 단위입니다.

피직스에 의한 라인 체크 이후는 서스펜션 왕복운동에 휠 반경을 더한 것입니다.

비히클 좌석과 무기

(UDKVehicle 클래스로 시작하는) 비히클 시스템에는 좌석과 무기가 여럿인 비히클이 가능합니다. 비히클에는 그 이동은 물론 주무기까지도 제어하는 운전수 하나, 자체 무기 세트를 각각 제어하는 탑승자는 몇이든 있을 수 있다는 뜻입니다. 비히클 전투 뿐만 아니라 드랍십이나 병력 수송 장갑차같은 수송기 생성도 가능해 지는 것입니다.

각 비히클은 최소 하나의 좌석을 정의해야 하며, 운전수 용으로 사용됩니다. 각 비히클 좌석은 비히클에 대한 defaultproperties 에 있는 Seats 배열에 VehicleSeat 를 추가하여 정의합니다. VehicleSeat 구조체에는 좌석을 정의하는 데 필요한 모든 프로퍼티가 담겨 있으며, 좌석에 있는 플레이어의 카메라 위치는 어떻게 잡을 것인가부터 해서 좌석에 있는 플레이어의 무기로 사용할 웨폰 클래스는 무엇으로 할 것인가 등도 물론입니다.

플레이어가 비히클에 탑승할 때, 디폴트로 가장 처음 비어있는 좌석에 앉게 됩니다. 비히클이 비어 있다면 확실히 운전수가 되겠지요. 운전수를 포함해서 비히클 탑승자는 누구든, 보통은 무기를 바꾸는 데 사용되는 숫자키를 사용하여 언제고 비히클에 비어있는 좌석으로 옮길 수 있습니다.

VehicleSeat 프로퍼티

Damage 대미지

  • DriverDamageMult 운전수 대미지 곱수 - 이 좌석 탑승자에게 적용되고 있는 대미지에 대한 멀티플라이어입니다.

Display 디스플레이

  • CameraTag 카메라 태그 - 카메라의 베이스로 사용할 본이나 소켓의 이름입니다.
  • CameraBaseOffset 카메라 베이스 오프셋 - 베이스 카메라 위치를 결정하는 데 사용할 베이스 (CameraTag 의 본/소켓) 위치에서의 오프셋입니다.
  • CameraSafeOffset 카메라 안전 오프셋 - 안전한 트레이스 시작점을 결정하는 데 사용할 비히클 위치에서의 오프셋입니다.
  • CameraOffset 카메라 오프셋 - 좌석 뒤로 카메라를 끌어당길 거리입니다.
  • CameraEyeHeight 카메라 눈높이 - WeaponPawn 에 대한 눈높이입니다.
  • ViewPitchMin 뷰 피치 최소 - 좌석의 카메라/무기에 허용된 피치 로테이션 최소치입니다. 0.0f 로 설정하면 비히클의 ViewPitchMin 이 대신 사용됩니다.
  • ViewPitchMax 뷰 피치 최대 - 좌석의 카메라/무기에 허용된 피치 로테이션 최대치입니다. 0.0f 로 설정하면 비히클의 ViewPitchMax 가 대신 사용됩니다.
  • SeatIconPos 좌석 아이콘 위치 - HUD 에 좌석의 아이콘을 그리는 데 사용할 위치입니다.

Effects 이펙트

  • WeaponEffects 웨폰 이펙트 - 웨폰 보너스 이펙트(UDamage 등)와 그 이펙트가 활성 상태일 경우 그 컴포넌트 리퍼런스에 대한 위치 배열입니다.
  • MuzzleFlashLightClass 머즐 플래시 라이트 클래스 - 머즐 플래시에 사용할 라이트의 클래스입니다.
  • MuzzleFlashLight 머즐 플래시 라이트 - 머즐 플래시에 사용할 라이트를 가리킵니다.
  • ImpactFlashLightClass 임팩트 플래시 라이트 클래스 - 이 좌석의 무기로 맞춘 임팩트에 사용할 라이트의 클래스입니다.
  • SeatMovementEffect 좌석 이동 이펙트 - 비히클이 이동중일 때 재생되는 이펙트 (VehicleMovementEffect) 입니다.

General 일반

  • StoragePawn 스토리지 폰 - 이 좌석에 앉아있는 폰을 가리킵니다.
  • SeatPawn 시트 폰 - 좌석에 무기가 할당된 경우, 이 좌석에 대한 WeaponPawn 을 가리킵니다.
  • bSeatVisible 좌석 보이는지 - 참이면 이 좌석에 앉아있는 폰은 렌더됩니다.
  • SeatBone 좌석 본 - 이 좌석에 앉아있는 폰에 대한 앵커 포인트로 사용된 본 이름입니다.
  • SeatOffset 좌석 오프셋 - 이 좌석을 차지하는 폰을 놓기 위한 SeatBone 에서의 오프셋입니다.
  • SeatRotation 좌석 로테이션 - 이 좌석을 차지하는 폰의 방향을 맞추기 위한 SeatBone 로테이션에서의 로테이션 오프셋입니다.
  • SeatSocket 좌석 소켓 - 사용되지 않는 것 같습니다.

Sounds 사운드

  • SeatMotionAudio 좌석 모션 오디오 - 좌석/무기가 회전하는 등 좌석이 움직이는 중일 때 재생할 소리에 사용되는 AudioComponent 입니다.

Weapon 웨폰

  • GunClass 건 클래스 - 이 좌석에 사용할 무기의 클래스입니다. 무기가 없는 좌석이면 None 이어도 됩니다.
  • Gun 건 - 이 좌석에 대한 무기를 가리킵니다.
  • GunSocket 건 소켓 - 프로젝타일 스폰과 이펙트 로케이터(위치잡이)로 사용되는 소켓 이름 배열입니다.
  • GunPivotPoints 건 피벗 포인트 - 무기 회전/조준용 피벗 포인트로 사용할 본 이름 배열입니다.
  • BarrelIndex 배럴 인덱스 - 무기에 대한 현재 활성 배럴입니다.
  • TurretVariablePrefix 터렛 변수 접두사 - 이 좌석에 대한 WeaponRotation, FlashLocation, FlashCount, FiringMode 프로퍼티용 접두사로 사용할 이름입니다. Seat[0] 을 제외한 모든 좌석에 설정해야 합니다. 자세한 정보는 비히클 웨폰 리플리케이션 부분을 참고하시기 바랍니다.
  • TurretControls 터렛 콘트롤 - 이 좌석의 무기와 관련된 비히클의 애님트리에 있는 UTSkelControl_TurretConstrined (무리한 터렛) 스켈레탈 콘트롤러의 이름 배열입니다. 그 스켈레탈 콘트롤러로의 리퍼런스를 구하는 데 사용됩니다.
  • TurretControllers 터렛 콘트롤러 - 이 좌석의 무기와 관련된 비히클의 애님트리에 있는 UTSkelControl_TurretConstrined (무리한 터렛) 스켈레탈 콘트롤러의 배열입니다.
  • AimPoint 조준점 - ApplyWeaponRotation (무기 로테이션 적용)에 캐시된 것으로, 플레이어가 현재 조준하고 있는 곳에 대한 월드 내 벡터입니다.
  • AimTarget 조준 타겟 - ApplyWeaponRotation (무기 로테이션 적용)에 캐시된 것으로, 좌석이 현재 조준하고 있는 액터입니다. 아무것도 조준하고 있지 않으면 None 이 될 수 있습니다.
  • PivotFireOffsetZ 피벗 발사 오프셋 Z - 무기 피벗에서 실제 발사 위치까지의 Z 거리입니다. 조준 로테이션 보정에 사용됩니다.
  • bDisableOffsetZAdjust Z 오프셋 조절 끄기 - 참이면 PivotFireOffsetZ 에 따른 터렛 피치 조절을 끕니다.

비히클 웨폰 리플리케이션

비히클은 무기 발사에 필요한 모든 변수의 리플리케이션을 처리해 줘야 합니다. 각 비히클에는 공통의 접두사로 시작하는 변수 세트가 있어야 하며, 이것이 그 무기의 리플리케이션에 필요한 데이터를 확보하는 데 사용됩니다. 비히클의 첫 무기(, 즉 운전수와 관련된 0 번 좌석)에는 접두사가 없습니다.

[prefix]WeaponRotation - 월드에서 무기에 원하는 물리적 로테이션을 정의합니다. [prefix]FlashLocation - 즉시-적중 무기가 발사되었을 때 적중 위치를 정의합니다. [prefix]FlashCount - 쏠 때마다 이 값이 증가됩니다. [prefix]FiringMode - 무기의 현재 발사 모드로 할당됩니다.

추가적으로 각 좌석에는 거기에 연결된 SkelControl_TurretConstrained (무리한 터렛) 콘트롤이 몇 개든 있을 수 있습니다. [prefix]WeaponRotation 값이 설정되거나 리플리케이트되면, 그러한 콘트롤은 자동으로 업데이트됩니다.

(0 번 좌석에 관련된) FlashLocation, FlashCount, FiringMode 는 Pawn 클래스에서 상속됩니다. WeaponRotation 은 UDKVehicle 에 정의됩니다. 모든 "turret" 변수는 "repnotify" 정의되어야 합니다. FlashLocation, FlashCount, FiringMode 변수는 non-owning 클라이언트에만 리플리케이트해야 합니다.

비히클 이벤트

(UDKVehicle 에서 확장한 비히클의) 비히클 이벤트 시스템은 비히클이 어떤 상황에 처해 있건 비히클에 애니메이션, 이펙트, 사운드를 몇 개든 재생할 수 있는 메서드(방법)를 제공합니다. 이 시스템은 극도로 유연하여 여러가지 방식으로 사용할 수 있습니다.

각 비히클은 자체 이벤트 세트를 가지며, 그 각각의 이벤트에 대한 애니메이션, 이펙트, 사운드를 비히클의 defaultproperties 내 상응하는 VehicleAnims, VehicleEffects, VehicleSounds 배열 속에 만들어 넣습니다. 그런 다음 비히클에 대한 코드에서, VehicleEvent() 함수에다 그런 특정 상황에 대해 트리거할 이벤트 이름을 전달하여 호출해 줍니다.

VehicleEvent() 함수는 차례로 다음 함수에 트리거된 이벤트 이름을 전달하여 호출합니다:

  • PlayVehicleAnimation() (비히클 애니메이션 재생 함수)
  • TriggerVehicleEffect() (비히클 이펙트 트리거 함수)
  • PlayVehicleSound() (비히클 사운드 재생 함수)

이들 함수 각각은 그에 상응하는 배열을 반복처리하여, 트리거된 이벤트에 일치하는 애니메이션, 이펙트, 사운드 일부 또는 전부를 재생( 또는 상황에 따라 중지)합니다. 비교적 간단한 시스템으로, 사용하기 매우 쉬우면서 어느 비히클에나 시청각적인 커스텀 디테일을 빠르게 추가할 수 있는 기능을 제공해 줍니다.

VehicleAnim 프로퍼티

  • AnimTag 애님 태그 - 이 애니메이션 재생을 담당하는 비히클 이벤트 이름입니다.
  • AnimSeqs 애님 시퀸 - 이 애니메이션에 재생할 애니메이션 시퀸스 이름 배열입니다.
  • AnimRate 애님 레이트 - 애니메이션 재생 속도입니다.
  • bAnimLoopLastSeq 애님 지난 시퀸 되풀이 - 참이면 지난 번 이 애니메이션 용으로 재생된 시퀸스가 되풀이됩니다.
  • AnimPlayerName 애님 플레이어 이름 - 애니메이션 재생에 사용할 애님트리 안의 UTAnimNodeSequence 플레이어 이름입니다.

VehicleEffect 프로퍼티

  • EffectStartTag 이펙트 시작 태그 - 이 이펙트 재생을 담당하는 비히클 이벤트 이름입니다.
  • EffectEndTag 이펙트 끝 태그 - 이 이펙트 중지를 담당하는 비히클 이벤트 이름입니다.
  • bRestartRunning 실행 재시작 - 참이면 이펙트가 이미 실행중일 때 이벤트가 트리거된 경우, 이펙트가 재시작됩니다.
  • bHighDetailOnly 하이 디테일 전용 - 참이면 이 이펙트는 게임이 하이 디테일 모드로 실행될 때만 재생됩니다.
  • EffectTemplate 이펙트 템플릿 - 이 이펙트용으로 재생할 파티클 시스템입니다.
  • EffectTemplate_Blue 이펙트 템플릿_파랑 - 비히클이 파랑 팀에 속할 경우 이 이벤트 용으로 재생할 파티클 시스템입니다.
  • EffectSocket 이펙트 소켓 - 이펙트를 붙일 비히클 위의 소켓 이름입니다.
  • EffectRef 이펙트 레퍼 - 이 이펙트 재생에 사용할 파티클 시스템 컴포넌트 입니다.

VehicleSound 프로퍼티

  • SoundStartTag 사운드 시작 태그 - 이 소리 재생을 담당하는 비히클 이벤트 이름입니다.
  • SoundEndTag 사운드 끝 태그 - 이 소리 재생 중지를 담당하는 비히클 이벤트 이름입니다.
  • SoundTemplate 사운드 템플릿 - 이 소리에 재생할 사운드큐 입니다.
  • SoundRef 사운드 레퍼 - 이 소리 재생에 사용할 오디오 컴포넌트 입니다.

비히클 대미지 시스템

(UDKVehicle 에서 확장한 비히클 안의) 비히클 대미지 시스템은, 모프 타겟을 사용하여 그 대미지 이펙트를 나타내는 위치 기반 대미지 기능을 제공합니다. 비히클이 대미지를 받을 때면 언제든, 대미지 시스템은 적중 위치에 가장 가까운 본을 찾습니다. 그런 다음 그 본을 사용하여 DamageMorphTargets 배열에서 그에 맞는 항목을 찾습니다. 비히클에 가해진 대미지는 먼저 그 대미지 모프 타겟의 체력에 적용된 다음, 대미지가 다할 때까지 잇따라 연결된 대미지 모프 타겟에 적용됩니다. 어느 한 대미지 모프 타겟의 체력이 고갈되면 죽은 것으로 간주하고 위의 과정에서 생략시켜 연결된 대미지 모프 타겟만 대미지를 입습니다.

고된 일은 시스템이 다 알아서 합니다. 우리가 할 것은 콘텐츠 측면의 모프 타겟과 머티리얼을 구성하고 비히클의 defaultproperties 에 있는 DamageMorphTargets 배열에 항목을 추가해 주기만 하면 됩니다.

FDamageMorphTargets 프로퍼티

  • MorphNodeName 모프 노드 이름 - 이 대미지 모프 타겟에 상응하는 비히클의 애님트리에 있는 모프 노드 이름입니다.
  • MorphNode 모프 노드 - 이 대미지 모프 타겟에 상응하는 실제 모프 노드를 가리킵니다. 비히클이 초기화될 때 설정됩니다.
  • LinkedMorphNodeName 링크된 모프 노드 이름 - 체인의 다음 모프 노드 이름입니다. 이것이 체인의 이전 대미지 모프 타겟인 경우 'None' 이 될 수 있습니다.
  • LinkedMorphNodeIndex 링크된 모프 노드 인덱스 - 체인의 다음 대미지 모프 타겟의 DamageMorphTargets 배열 내 인덱스입니다. 비히클이 초기화될 때 설정됩니다.
  • InfluenceBone 영향 본 - 이 대미지 모프 타겟이 관련되어 있는 본 이름입니다.
  • Health 체력 - 이 대미지 모프 타겟의 현재 체력입니다.
  • DamagePropsName 대미지 프로퍼티 이름 - 대미지 모프 타겟이 언제 대미지를 받는지 조절하기 위한 비히클의 머티리얼 내 스칼라 프로퍼티 이름입니다. 대미지 모프 타겟의 체력은 그 초기값에서 0 까지 가기에, 파라미터 값은 0 에서 1 까지 갑니다.

다양한 종류의 비히클


SVehicle 클래스가 제공하는 여러가지 바퀴달린 비히클 툴로 각기 다른 비히클 타입을 엄청 많이 만들 수 있습니다. 그러한 작동 방식 일부를 확인하기 위해서라도 언리얼 토너먼트 3 를 들여다 볼 가치는 충분히 있습니다. 전형적이지 않은 비히클 타입을 약간 소개해 보겠습니다:

바퀴달린 비히클

언리얼 엔진 3 의 바퀴달린 비히클은 하나의 리짓 바디로 시뮬레이트됩니다. 차량 섀시 지점에서 아래쪽으로 레이-캐스트를 하여 어디서 땅에 맞는지 확인하며, 몇 가지 파라미터를 기반으로 접점에서 그 힘을 계산합니다. 물리적인 '휠' 오브젝트는 없으며, 엔진은 그저 각 휠이 얼마나 빨리 움직이는지 저장한 다음 생성되는 힘 계산에 사용합니다.

호버 비히클

서스펜션 왕복운동(travel)은 길고 엄하지 않게, 마찰은 전혀 없게 하여 휠이 모든 방향으로 움직일 수 있게끔 만듭니다. 그런 다음 그냥 힘, 회전력, 제동을 사용하여 비히클 이동을 제어합니다.

비행 비히클

헬리콥터처럼 직립을 유지하는 비히클의 경우 StayUprightConstraint (직립 유지 컨스트레인트)를 사용하여 비히클의 직립을 부드럽게 유지합니다. 그런 다음 GetGravityZ() (Z 중력 구하기) 함수를 덮어써서 비히클을 '호버'(부양) 상태로 만들고, 힘으로 쉽게 조종할 수 있습니다.

탱크

UE3 는 이런 용도에 쓸 SVehicleSimTank 오브젝트가 포함되어 있습니다.

풀 쓰로틀을 적용하면 탱크 엔진은 MaxEngineToque (최대 엔진 회전력)을 양쪽 트랙으로 나눕니다. 스티어링되기 전까지는 똑같이 나뉘다가, 스티어링되면 현재 속력에 맞는 InsideTrackTorqueCurve (내륜 회전력 커브)를 따라 회전력이 나뉩니다.

예를 들어... 앞으로 전진할 경우 각 트랙은 총 회전력의 50% 를 받습니다. 그러나 탱크가 왼쪽으로 완전히 꺾어서 InsideTrackTorqueCurve (내륜 회전력 커브)가 0.2 인 경우, 왼쪽 트랙에는 엔진 회전력의 20%가, 나머지 80% 는 오른쪽 트랙에 적용됩니다. InsideTrackTorqueCurve (내륜 회전력 커브)가 -0.2 라도 그대로 20/80 으로 나뉘기는 하지만, 내부 회전력은 반대 방향으로 적용됩니다. EngineDamping (엔진 제동)은 각 트랙 속력에 반비례하는 제동력입니다.

명심할 것은 양쪽 트랙에 걸친 총 회전력은 보존되므로, 내륜에 100% 의 힘을 돌리면 외륜에 보낼 회전력이 남지 않게 됩니다. 추가로 SteerFactor (스티어 팩터)가 양수인 트랙 바퀴는 트랙 속력이 다를 경우 그 측면 강성(lateral stiffness)을 TurnMaxGripReduction/TurnGripScaleRate (턴 최대 그립 감소를 턴 그립 스케일 비율로 나눈) 값으로 조절합니다.

bTurnInPlaceOnSteer (스티어링시 제자리 회전)이 참인 경우, TurnInPlaceThrottle (제자리 회전 쓰로틀)을 통해 제자리 회전에는 쓰로틀 양을 감소시킬 수 있습니다.

콘텐츠: 피직스 애셋


비히클에 대한 콜리전은 래그돌과 마찬가지 방식으로 PhAT 를 사용하여 셋업합니다. 그러나 비히클은 그 스켈레탈 메시 컴포넌트에 있는 bUseSingleBodyPhysics (싱글 바디 피직스 사용) 플랙을 사용하는데, 피직스 애셋의 각 부분마다 바디를 하나씩 만들지 않고 컴포넌트에 대해 (루트 바디에서) 하나의 피직스 바디만 만드는 옵션입니다. 휠 등에 대해 조인트를 만들 필요는 없습니다. 피직스 애셋에 있는 다른 바디는 언리얼 콜리전 라인 체크에 쓰이기는 하니, 플레이어 운동을 보다 정확히 멈추기 위해 바디를 추가할 때, 특히나 애니메이트되는 부분에 유용하게 쓰일 수는 있습니다.

외부 3D 프로그램에서 비히클을 만든 다음 엔진으로 임포트하는 법에 대한 정보는 Setting Up Vehicles KR 페이지를 참고하시기 바랍니다.

퍼포먼스: 비히클 튜닝


비히클 튜닝은 과학이라기 보단 예술에 가깝습니다.

유용한 콘솔 명령

매우 유용한 툴이라면 'editactor' 콘솔 명령입니다. 사용법은 게임을 -wxwindows 스위치(나 PIE)로 실행합니다. 그런 다음 튜닝하려는 비히클에 들어간 다음 'editactor class=[비히클 클래스 이름]' 이라 치면 비히클을 운전하면서 모든 비히클 프로퍼티를 수정할 수 있는 프로퍼티 창이 뜰 것입니다. 구성 시간에만 사용할 수 있는 (BoneOffset 같은) 프로퍼티는 바로 변경할 수 없다는 점 참고하시기 바랍니다.

비히클 리플리케이션


언리얼 토너먼트 에서 쓰이는 비히클 리플리케이션 전략을 약간 소개해 보겠습니다:

피직스는 클라이언트와 서버 양쪽에서 최대로 시뮬레이트됩니다. 클라이언트에서 전진 키를 누르면 서버에 'raw'(날) 입력으로 갑니다. 그런 다음 서버상의 비히클 전용 Throttle_, =Steering 등의 세팅으로 변환한 다음 비히클의 현재 스테이트(선/각 위치/속도)와 함께 모든 클라이언트에 리플리케이트시킵니다. 그런 식으로 인풋과 비히클 스테이트의 동기화 상태를 유지합니다. 클라이언트측 비히클의 피직스 스테이트는 세 가지 방법으로 보정됩니다:

  1. 아주 작으면 무시됩니다.
  2. 조금 작고 비히클이 움직이는 중이라면, 오차의 일부는 직접 보정해 주고, 클라이언트 버전을 서버 버전 쪽으로 움직여 주기 위해 속도를 수정합니다.
  3. 크다면 그냥 새 위치로 텔레포트시킵니다.

이 코드는 AActor::ApplyNewRBState 에 있습니다. 이 데이트는 구조체를 사용하여 리플리케이트되는데, 모든 필드를 동기화시키기 위해서입니다. SVehicle.uc 안의 VehicleState 구조체입니다.

이 문제를 디버깅하고 시각화시켜 보기 좋은 방법은, 서버의 피직스 보정은 무시하고서 그냥 그려 보는 것입니다. 이 코드는 실제로 ApplyNewRBState 함수에 들어 있는데, 맨 윗부분의 Handy debugging mode 코멘트 부분을 찾아 보십시오. 이런 식으로 비히클의 클라이언트/서버 버전이 얼마나 빨리 엇나가는지 확인할 수 있습니다.

대부분의 이펙트는 클라이언트의 (속도, 접촉 등) 피직스 스테이트를 문의하는 식으로, 클라이언트 측에서 전적으로 처리합니다.

다른 게임에 대한 전략

레이싱 게임처럼 매우 고속의 비히클로 이러한 상황을 처리하는 게임의 경우 고려해 볼 전략이 따로 있습니다. 속도가 클 수록 보다 적극적으로 '텔레포트' 보정을 해야 할 수가 있습니다. 비히클 수가 적당하다면 피직스 시뮬레이션을 항상 서버에 맡기는 것(authoritative)이 좋을 것이고, 수백 개씩 되는 MMO 게임을 만드는 경우라면 시뮬레이션을 분산시키는 것이 좋을 것입니다.