UDN
Search public documentation:
SettingUpVehiclesKR
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
日本語訳
中国翻译
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 업데이트. 홍성진 번역.
비히클 모델링 - 셋업과 리깅
- 루트 본은 메인 리짓 섀시에 웨이팅되어 있어야 합니다.
- 비히클의 아래쪽은 +X축을, 위는 +Z 축을 향해야 합니다. 그리고 루트 '섀시' 본도 아래쪽은 +X축을, 위는 +Z 축을 향해야 합니다. 본을 추가하기 전에 비히클 방향을 바르게 하는 것이 좋습니다.
- 다른 바퀴 및 서스펜션 본은 섀시 본의 직계 자손이어야 합니다. 바퀴 본을 서스펜션 본의 자식으로 만들지 말고 섀시의 자식으로 놔두십시오.
- 바퀴를 회전(rotate=roll+steer) 시키고자 하는 곳에 각 타이어 본을 배치하십시요. 본의 한 축은 roll 축을, 다른 한 축은 steering 축을 향하게 해야 합니다 (메시를 임포트한 다음 애님트리 셋업시 엔진에 어떤 축을 사용할지 알려야 합니다).
- 비히클을 익스포트할 때는, 서스펜션이 최대로 뻗친 곳까지 바퀴 본이 내려가는지 확인하십시요.
- 어떤 무기도 (같은 본이든 별도의 본이든) Pitch와 Yaw 로 회전 가능한 본을 필요로 합니다. 좌석 수가 여럿인 비히클에 대해서는, 각 좌석에 본이 있어야 (표시되는 경우) 탑승자를 부착시키는 기준이 될 수 있습니다. 또한 비히클이 사용하는 카메라와 (총구 섬광, 발사체 스폰, 분출 효과, 피해 효과 등의) 효과에도 부착시킬 소켓이 필요합니다. 많은 경우 소켓이 위치할 딱 그 위치에 본이 필요하지는 않지만, 그렇게만 되어 있다면야 소켓 셋업이 훨씬 빨라집니다.


비히클 익스포트
비히클 임포트와 셋업






피직스 애셋 만들기
일단 엔진에 비히클 메시를 임포트하고나면, 그에 대한 콜리전 모양을 정의하기 위한 피직스 애셋을 만들어야 합니다. 그 작업은 PhAT(Physics Asset editing Tool)를 사용해야 합니다. 비히클과 관련해서 피직스 애셋에 중요한 딱 하나의 바디는 루트 '섀시' 본입니다. 다른 본에 대해서는 피직스 바디를 만들 필요가 없습니다. 즉 바퀴에 대해서는 조인트를 만들 필요가 없는 것입니다. 바퀴 시뮬레이션은 전부 비히클 피직스 코드에 의해 처리됩니다. 섀시 바디만 피직스 오브젝트로 만들어지며, Vehicle 콜리전으로 사용되는 것입니다. 피직스 애셋은 선 검사와 Vehicle에 대한 플레이어 콜리전 용으로 사용되기에, 다른 본에 대한 콜리전 모양이 좀 더 정확한 콜리전을 갖도록 만드는 것이 좋을 것입니다. 그 본이 (문, 뚜껑, 터렛 등) 움직이는 것이라면 더욱 그러합니다. 게임에서 Vehicle의 질량과 관성은 섀시 콜리전 지오메트리의 볼륨, 섀시 BodySetup 에 적용된 PhysicalMaterial 의 Density 프로퍼티에 따라 달라집니다. 게임 내에서 Vehicle의 질량을 변경하려면 PhysicalMaterial 을 변경하거나, 섀시 BodySetup 의 MassScale 프로퍼티를 조절하면 됩니다.애님 트리 만들기
Vehicle에 애니메이션을 재생할 계획이 없더라도, 정상 작동하게 만들려면 애님트리를 만들어 줘야 합니다. 왜냐하면 애님트리는 게임에서 순차적으로 개별 본을 움직이는 데 필요한 SkelControl 도 포함되어 있기 때문입니다. UE3 Vehicle 시스템은 내재된 시뮬레이션에 일치시키고자 바퀴 본을 움직이는 특수형태의 본 콘트롤러를 사용합니다. SkelControl 에 대한 세부 정보는 스켈레탈 콘트롤러 사용하기 페이지를 참고하시기 바랍니다. 기본 AnimTree 셋업 및 에디터 사용법에 대한 세부 정보는 애님트리 에디터 유저 가이드 페이지를 참고해 주시기 바랍니다.바퀴 셋업하기

서스펜션 본 셋업하기
Vehicle을 운전하면서 바퀴를 움직이기 위한 콘트롤은 물론, 서스펜션 암을 제어하는 본에도 콘트롤을 추가시키면 좋을 것입니다. `look at' 콘트롤러라 불리는 SkelControl 타입이 있는데, 이는 본이 항상 한 축을 가리키면서 공간상의 다른 오브젝트, 본, 지점을 향하도록 하는 것입니다. 이 노드는 서스펜션 본을 제어하는 데 사용됩니다.
Damage 노드 셋업하기
UTVehicle 클래스를 확장하는 Vehicle 은 현지화된 대미지 시스템을 활용할 수 있습니다. 이를 통해 차량 피해가 생긴 곳에 점진적인 대미지 표시가 가능합니다. 이 시스템은 모프 타겟은 물론 특수 스켈레탈 콘트롤러 UTSkelControl_Damage, UTSkelControl_DamageHinge, UTSkelControl_DamageSpring 노드를 활용합니다.Morph 노드
피해를 입어가며 멀쩡한 메시와 피해입은 메시를 혼합하는 식으로, 모프 타겟을 Vehicle 외형을 변경하는 데 사용할 수 있습니다. 보통 대미지를 개별적으로 입히려는 각각의 부분의 각 부분마다 하나의 모프 타겟을 둡니다. 예를 들어 차량형 Vehicle 의 경우 후드, 양쪽 휀더, 후면, 각 문짝 등에 대해 모프 타겟을 두는 것이 좋습니다. 이런 식으로 다른 차량이 전면 좌측 휀더에서 달려든 경우, 대미지 시스템은 그 모프 타겟으로 블렌드 인 시켜, 그 휀더만 피해입은 것처럼 보이게 만들 수 있습니다.



Damage 노드
스켈레탈 콘트롤러는 Vehicle 일부가 피해를 입어 파손될 때는 물론, 파괴될 때 폭발하게 하는 데도 사용 가능합니다. 기본 대미지 콘트롤러는 UTSkelControl_Damage 입니다. 이 뉴ㅗ드는 주로 Vehicle 이 죽을 때 파손된 비히클 부속 스폰을 담당하나, vehicle 에 피해가 누적되어감에 따라 파손 부품을 스폰하는 데도 쓸 수 있습니다. UTSkelControl_DamageHinge 및 UTSkelControl_DamageSpring 노드는 주로 Vehicle에 피해가 쌓이면서 일부가 떨어져 나가도록 하는 데 사용됩니다. 관련된 차량 부속이 떨어져 나가기 전에 (사용되는 노드형이 힌지냐 스프링이냐에 따라) 덜그럭거리거나 느슨해 보이도록 하는 기능도 가능합니다. 노드가 특정 본에 연결되고, 그 본 위치에 (또는 다른 본보다 여기에 가깝게) 대미지가 발생하면 관련된 대미지 콘트롤러에 적용될 것입니다.
- On Damage Active 대미지시 활성화 - 참이면 damage and breaking 함수성이 이 콘트롤에 켜집니다.
- Control Str Follows Health 제어력이 체력을 따름 - 참이면 활성화된 제어력은 콘트롤러의 현재 체력에 의해 결정됩니다. 거짓이면 활성화시 제어력은 항상 최대 크기입니다.
- Damage Bone Scale 대미지 본 스케일 - 콘트롤러가 분리될 때 연결된 본에도 설정할 스케일입니다. 보통 (0,0,0)이면 부속을 완전히 숨깁니다.
- Damage Max 최대 대미지 - 사망 전까지 버틸 수 있는 대미지 양이며, 본질적으로 콘트롤러의 최대 체력입니다.
- Activation Threshold 활성 한계치 - 콘트롤러가 활성 상태로 있을 수 있는 체력 비율 (현재 체력 / 최대 체력) 입니다.
- Break Mesh 파손 메시 - 이 콘트롤러가 파손될 때 스폰시킬 스태틱 메시입니다.
- Break Threshold 파손 한계점 - 이 이상의 제어력이어야 콘트롤러가 파손되어 보이기 시작합니다.
- Break Time 파손 시간 - 파손 시작서부터 완전히 파손될 때까지 걸리는 총 기간입니다.
- Default Break Dir 디폴트 파손 방향 - 파손된 부분의 속도를 결정하는 데 사용되는 방향입니다.
- Damage Scale 대미지 스케일 - 스폰된 비히클 부속에 사용할 스케일입니다. 비히클 반대편의 여러 부속에 사용되는 동일 스태틱 메시를 미러링하는 데 좋습니다.
- PS_Damage On Break PS_파손시 대미지 - 콘트롤러 파손시 스폰시킬, 작은 폭발효과같은 피티클 시스템입니다.
- PS_Damage Trail PS_대미지 흔적 - 떨어져 나간 부속에 흔적으로 부착시킬, 연기 흔적 효과같은 파티클 시스템입니다.
- On Death Active 사망시 활성화 - 참이면 이 콘트롤러에 death breaking 함수성이 켜집니다.
- On Death Use For Secondary Explosion 사망시 두 번째 폭발에 사용 - 참이면 이 대미지 콘트롤은 비히클의 첫 번째 사망이 아닌 두 번째 사망 폭발시 사용됩니다.
- Death Percent To Actually Spawn 실제 사망 스폰율 - 비히클이 죽을 때 이 콘트롤이 파손된 부위를 실제로 스폰시킬 확률(0 에서 1)입니다.
- Death Bone Scale 사망 본 스케일 - 콘트롤러가 분리될 때 연결된 본에도 설정해 줄 스케일입니다. 보통 (0,0,0)이면 부속을 완전히 숨깁니다.
- Death Static Mesh 사망 스태틱 메시 - 이 콘트롤러가 죽을 때 스폰시킬 스태틱 메시입니다.
- Death Impulse Dir 사망 충격 방향 - 파손된 조각의 속도를 결정하는 데 사용되는 방향입니다.
- Death Scale 사망 스케일 - 스폰된 비히클 부속에 사용할 스케일입니다. 비히클 반대편의 여러 부속에 사용되고 있는 동일 스태틱 메시를 미러링하는 데 좋습니다.
- PS_Death On Break PS_파손시 사망 - 사망시 콘트롤러가 분리될 때 스폰시킬, 작은 폭발 효과같은 파티클 시스템입니다.
- PS_Death Trail PS_사망 흔적 - 떨어져나간 부분에 흔적으로 부착시킬, 연기 흔적 효과같은 파티클 시스템입니다.
소켓 셋업하기
소켓이란 이미 앞서 말한바와 같이, 플레이어 카메라나 총구 섬광은 물론 비히클에 필요할 수도 있는 다양한 부가 효과를 추가하기 위한 부착점으로 사용됩니다. 소켓이란 본질적으로 특정 본에 부모가 되는 로케이터로, 이름을 짓고 오프셋시켜 개별적으로 회전을 줄 수도 있습니다. 이를 통해 특정 위치에 아이템을 쉽게 부착하거나 스폰시킬 수 있습니다. 소켓은 언리얼 에디터 내 애님세트 에디터에서 스켈레탈 메시에 추가합니다. 툴바의




발사체 만들기
발사체(프로젝타일)란 무기 발사를 물리적으로 표현한 것입니다. 언리얼에서 발사체의 시각적 성분은 단지 파티클 시스템입니다. 발사체용 파티클 시스템 만들기란 여타 파티클 시스템 만들기와 다를 바 없는 단순한 작업입니다. 본질상 발사체의 비행중 모습을 나타내도록 파티클 시스템을 셋업하고 싶을 것입니다. 원하는 효과를 내는데 필요한 만큼의 이미터로 파티클 시스템을 구성할 수 있습니다. 발사체 파티클 시스템의 예제는 아래와 같습니다:


총구 섬광 셋업하기
총구 섬광(Muzzle flash)은 무기의 총신에서 뿜어져 나가는 발사체를 흉내내는 데 사용됩니다. 현실에서도 총을 발사할 때 보게 되는 섬광처럼 말입니다. 언리얼의 웨폰 시스템은 총구 섬광의 시각 성분으로 파티클 시스템을 사용합니다. 발사체와 마찬가지로, 총구 섬광용 파티클 시스템도 필요한 만큼의 이미터로 구성할 수 있습니다. 총구 플래시 파티클 시스템의 예제는 아래와 같습니다:


프로그래머용
- SkeletalMesh 이름.
- PhysicsAsset 이름.
- AnimTree 이름.
- 각 바퀴 본 이름.
- 각 SkelControlWheel 이름.
- 각 바퀴 반경.
스크립트 파일 작성
다음은 Vehicle에 필요한 모든 정보를 어떻게 UnrealScript 클래스 파일(.uc)에 기록하는지 보여주는 예입니다.// MyVehicle.uc 로 저장 class MyVehicle extends SVehicle; defaultproperties { Begin Object Name=SVehicleMesh SkeletalMesh=SkeletalMesh'VehiclePackage.VehicleMesh' AnimTreeTemplate=AnimTree'VehiclePackage.VehicleAnimTree' PhysicsAsset=PhysicsAsset'VehiclePackage.VehiclePhysAsset' End Object Begin Object Class=SVehicleWheel Name=RRWheel BoneName="R_R_Tire" SkelControlName="R_R_Tire_Cont" WheelRadius=25 End Object Wheels(0)=RRWheel }
퍼포먼스: 비히클 튜닝
비히클을 다루는 콘트롤은 많이 있습니다. 일부는 각 SVehicleWheel 오브젝트에 있는 바퀴별 파라미터인 반면, 전체 비히클에 영향을 끼치는 것들은 SVehicle 및 SVehicleSim 오브젝트에 있습니다. 각 파라미터에 대한 설명은 Vehicles Technical Guide KR 페이지를 참고하시기 바랍니다.유용한 콘솔 명령
비히클 튜닝에 매우 유용한 언리얼 엔진 기능 중 하나는editactor
콘솔 명령입니다. 비히클을 운전하면서 콘솔에 editactor class=svehicle
이라 치면 프로퍼티창이 뜹니다. 운전하면서 거의 대부분의 파라미터를 조정할 수 있으니 반복처리가 매우 빨라집니다.