UDN
Search public documentation:
UDKCustomCharactersKR
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
UDK용 커스텀 캐릭터 만들기
문서 변경사항: Jeff Wilson 작성. 홍성진 번역.
개요
스켈레톤
- UT3_Male.max (3D Studio Max 9)
- UT3_Female.max (3D Studio Max 9)
- UT3_Krall.max (3D Studio Max 9)
- UT3_Corrupt.max (3D Studio Max 2009)
메시를 스켈레톤에 웨이팅하기
커스텀 메시를 만들 때는 스켈레톤을 염두에 두고 만드는 것이 최선입니다. 메시에는 스켈레톤에 이미 정의된 위치에 맞는 조인트가 모델링되어야 합니다. 이 규칙을 따르지 않는 메시는, 스켈레톤 조인트를 회전시켜 메시의 조인트에 맞출 수 있습니다. 게임의 애니메이션은 올바른 재생을 위해 본을 원위치에 맞춥니다. 메시의 조인트와 맞추기 위해 본을 회전(rotate)시킬 수는 있지만, 옮기(translate)거나 움직(move, 역주:move=translate+rotate)여서는 안됩니다. 애니메이션이 본을 어디로 옮길지 정하기 때문에, 메시가 찌그러지거나 늘어나는 등 게임상에 예상치 못한 결과가 나타나게 됩니다. 예로, 메시의 다리가 스켈레톤에 정의된 것보다 짧아서 보정하기 위해 스켈레톤의 다리 본이 이동된 경우, 게임상의 다른 캐릭터 다리 길이에 맞추기 위해 다리가 길게 늘어집니다. 이를 통해 게임내 캐릭터 설정동안 모든 조각이 똑바로 연결되도록 유지합니다. 비율이 다른 캐릭터를 만들려면 새로운 마스터 스켈레톤이 필요하고, 기존 캐릭터와 너무 다른 비율의 캐릭터를 만들려면 아예 자체 애니메이션을 따로 만들어야 하나, 그 방법은 이 문서에서는 다루지 않습니다. 아래 메시를 예로 들겠습니다. 남성의 뼈대를 염두에 두고 모델링되었습니다. 주요 조인트와 신체 부분은 스켈레톤과 잘 맞아 떨어지므로 큰 수정은 필요치 않습니다. 메시를 스켈레톤에 웨이트할 때가 오면 훨씬 더 간단해 집니다. UT3_Male.max 파일의 본을 병합하고, 불필요한 본은 제거한 뒤, 메시를 스켈레톤에 웨이트합니다. 이 경우, 메시에는 여분이나 본이 더 필요한 '헐렁한 비트'가 없으므로, 스켈레톤에는 웨이팅에 필요한 액기스만 남겨지게 됩니다.익스포트하기
임포트하기
[YourUDKInstallationDirectory]\UDKGame\Content\Characters
메시에 소켓 추가하기
소켓 이름 | 본 이름 |
WeaponPoint | b_RightWeapon |
DualWeaponPoint | b_LeftWeapon |
L_JB | b_LeftAnkle |
R_JB | b_RightAnkle |
HeadShotGoreSocket | b_Neck |
기존 UDK 캐릭터에서 소켓 빠르게 복사해 오기
스켈레탈 메시에 사용되는 스켈레탈 릭이 패키지에 저장된 기존 스켈레탈 메시와 같은 것을 사용하는 경우, 소켓을 직접 만들지 않고도 빠르게 복사해 올 수 있습니다. 예를 들어 CH_LIAM_Cathode.Mesh.SK_CH_LIAM_Cathode 로 저장된 스켈레탈 메시를 엽니다. 소켓 매니저를 열고 소켓 복사 버튼을 누릅니다. 그리고 스켈레탈 메시를 엽니다. 소켓 매니저를 열고 소켓 붙여넣기 버튼을 누르면 땡입니다!게임에서 사용할 캐릭터 설정하기
UTFamilyInfo 하위클래스
UTFamilyInfo
클래스는 기본적으로 개별 캐릭터나 캐릭터 그룹에 어떤 메시, 물리 애셋, 애니셋, 머티리얼, 깁 등을 사용할 지를 결정해 주는 프로퍼티 저장고입니다. 이 클래스에는 다른 기능도 있지만, 이 문서의 목적에 맞게 캐릭터를 UDK에 넣기 위한 프로퍼티 저장고로만 간주하겠습니다.
이 예제에서는 서브클래스를 하나 만들어서 캐릭터 하나에만 사용할 것입니다. 이론상으로는 UTFamilyInfo 의 하위클래스가 되도록 이 클래스의 계층 구조를 만들어서, 캐릭터 그룹에 공통으로 적용되는 일반 프로퍼티를 정의할 수도 있습니다. 예로, 어떤 캐릭터 그룹에 공유되는 외형상의 특징이 있다 칩시다. 이 캐릭터들은 같은 팩션의 일부로 간주될 수 있습니다. 그리고 이 클래스의 하위클래스를 여럿 만듭니다. 이들 각각은 그 팩션 내 특정 캐릭터가 될 수도 있고, 캐릭터 범주를 더 크게 잡자면 팩션에 속하는 패밀리가 될 수도 있습니다.
더 설명하기 전에, 먼저 캐릭터용 하위 클래스를 새로 만들어 봅시다.
Class UTFamilyInfo_SpaceMarine extends UTFamilyInfo abstract; defaultproperties { }
CharacterMesh=SkeletalMesh'UDNCharacters.SpaceMarine'
- Faction – 이 캐릭터나 캐릭터 그룹이 속하는 전체 그룹 이름입니다.
- FamilyID – 이 캐릭터가 속하는 패밀리 이름입니다.
- CharacterTeamBodyMaterials – 팀 게임용 캐릭터 몸체 머티리얼에 사용할 머티리얼 배열입니다. 인덱스 0은 빨강, 인덱스 1은 파랑입니다.
- CharacterTeamHeadMaterials - 팀 게임용 캐릭터 머리 머티리얼에 사용할 머티리얼 배열입니다. 인덱스 0은 빨강, 인덱스 1은 파랑입니다.
- PhysicsAsset – 생성된 캐릭터용 스켈레탈 메시의 물리 애셋에 대한 참조입니다.
- AnimSets – 캐릭터에 사용되는 AnimSet 배열입니다.
- ArmMeshPackageName – 이 캐릭터용 1인칭 팔 메시를 포함하는 패키지 이름입니다.
- ArmMesh – 이 캐릭터용 1인칭 팔 메시에 대한 참조입니다.
- ArmSkinPackageName – 1인칭 팔 메시용 머티리얼을 포함하는 패키지 이름입니다.
- RedArmMaterial – 1인칭 암 메시용 빨강 팀 머티리얼에 대한 참조입니다.
- BlueArmMaterial - 1인칭 암 메시용 파랑 팀 머티리얼에 대한 참조입니다.
[YourUDKInstallationDirectory]/Development/Src/UTGame/Classes
UTPlayerReplicationInfo 클래스
이 경우, 현재 기본 클래스 대신 이 클래스를 사용하겠다고 UDK에 알려줘야 합니다. UTPlayerReplicationInfo.uc 파일 안의 기본 프로퍼티 블록을 통해 가능하며, 마지막 줄이 다음과 같을 것입니다:CharClassInfo=class'UTGame.UTFamilyInfo_Liandri_Male'
UTFamilyInfo
클래스 이름에 맞게 바꿔주기만 하면 됩니다. 즉 다음과 같습니다:
CharClassInfo=class'UTGame.UTFamilyInfo_SpaceMarine'