UDN
Search public documentation:

UT3CustomCharactersKR
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

UT3 커스텀 캐릭터 만들기

문서 요약: 제3세대 Unreal Tournament 게임용으로 커스텀 캐릭터를 만드는 방법을 소개합니다.

문서 변경 내역: 작성 Paul Jones?; 업데이트 Chris MielkeAaron Herzog. 유지 관리 Richard Nalezynski?.

개요

이 문서에서는 UT3 캐릭터의 뼈대, 그리고 메쉬의 콘텐츠를 엔진에 임포트해서 게임에서 실행할 수 있도록 설정하는 방법에 대해 논의합니다.

뼈대

UT3 에서는 다음 4가지의 주요 뼈대가 사용됩니다:

  • human male (남자)
  • human female (여자)
  • krall (크랄)
  • corrupt (코럽트)

각 타입의 뼈대에는 이 타입의 모든 캐릭터들이 사용하는 뼈를 모두 함유하고 있는 “마스터 뼈대” 파일이 있습니다. 하나의 캐릭터 메쉬가 이 뼈들을 모두 사용할 필요는 없습니다; 하지만 마스터 뼈대는 모든 캐릭터들을 위한 모든 뼈를 다 가지고 있어야 합니다. 예를 들어 누군가가 손목에 매달려 펄럭이는 것 같은, 아직 존재하지 않는 천 타입을 가진 캐릭터를 만들고 싶어 합니다. 이 뼈들은 마스터 뼈대에 추가되어야 합니다. 그래야 캐릭터를 만드는 과정에서 각 메쉬가 정확히 작용하게 됩니다.

마스터 뼈대에는 모든 뼈가 다 들어 있으므로 새 메쉬를 스키닝할 때 마스터 뼈대의 .max파일을 사용하면 좋습니다. 사용할 수 있는 모든 뼈를 보기가 쉽기 때문이지요.

아래의 링크에서 마스터 뼈대 .max 파일들을 다운로드 받으십시요:

: 일부 뼈대에는 Biped 리그가 포함되어 있습니다. Biped 리그는 단지 애니메이트 하기가 좀 더 손쉬운 가외의 뼈대입니다. 애니메이션 작업이 끝나면, 이 애니메이션을 원래의 뼈대에 굽고, 바이페드를 삭제한 다음, 애니메이션을 익스포트합니다.

추가로, 다음의 첫번째 인물 뼈대를 참고로 이용할 수 있습니다:

작업을 단순하게 하기 위해, 이 문서에서는 기존의 뼈를 이용하는 캐릭터를 임포트 하려고 합니다. 마스터 뼈대 편집 및 이와 관련된 물리 자산에 대한 더 많은 정보를 원하시면 Creating Custom Skeletons for Characters in Unreal Tournament 3? 를 읽어 보십시요.

메쉬를 뼈대에 가중하기

커스텀 메쉬를 만들때는 뼈대를 염두에 두고 만드는 것이 바람직합니다. 메쉬는 뼈대에서 이미 정의된 위치에 매치되는 모든 관절을 모델로 해야 합니다 . 이 규칙을 따르지 않은 메쉬들에 대해서는, 뼈대의 관절들이 회전하여 메쉬의 관절들과 정렬합니다. 게임의 애니메이션들은 뼈의 방향을 그들이 정확히 플레이하기 위해 있어야 할 곳으로 향합니다. 뼈들을 회전시킬 수는 있지만, 시험삼아 변환하거나 움직여서 메쉬의 관절들이 있는 곳에 배치하면 안됩니다. 이렇게 되면 게임에 예기치 않은 결과가 나타나고 메쉬가 찌그러뜨리거나 늘어집니다. 뼈들이 어디서 변환될지를 규정하는 것은 애니메이션이기 때문입니다. 예를 들어, 메쉬의 다리가 뼈대에서 정의된 것보다 짧아서, 뼈대의 다리가 이를 보충하기 위해 옮겨오면, 게임에서는 그 다리를 다른 캐릭터의 다리 길이와 매치하기 위해 더 길게 잡아 늘입니다. 이는 게임 내 캐릭터를 설정하는 동안 모든 부분들이 정확히 연결되도록 합니다. 메쉬가 뼈대에 맞도록 하는 올바른 방법은 관절을 그 둘이 될수 있는대로 가까와지도록 필요한만큼 회전시키고, 그리고/또는 메쉬를 거기에 맞도록 변경하는 것입니다. 기존의 것들과 비례가 다른 캐릭터를 만들려면 새 마스터 뼈대가 필요합니다. 만일 그 비례가 기존의 캐릭터들의 그것과 크게 다르면 그 캐릭터용으로 별도의 애니메이션을 또한 가져야 할 것입니다. 이는 이 문서의 범위를 넘는 주제입니다.

Malcolm 메시를 보십시요. 그는 하나하나의 부분이 모델이 되어 있어서 캐릭터 창조에 적격입니다. 그의 부분들은 게임 내 캐릭터를 만드는 데 필요한 부분들과 매치되도록 만들어져 있습니다. 아래의 메쉬 부분들은 곧바로 뼈대에 가중될 수 있는 것들입니다:

  • Head (머리)
  • Arms (팔)
  • Shoulderpads (어깨)
  • Torso (몸통)
  • Thighs (넓적다리)
  • Boots (부츠)

Marcus-Mesh.jpg

뼈들을 UT3_Male.max 파일의 뼈들과 합치고, 필요 없는 뼈들은 삭제한 다음, 메쉬를 뼈대에 가중시킵니다. 여기서는, 말콤의 천에 쓰이는 뼈가 소용이 없으므로 삭제합니다.

Marcus-Bones.jpg

익스포트 하기

그 다음에는 캐릭터를 익스포트하여 엔진에 넣겠습니다. 메쉬의 각 부분은 ActorX를 사용해서 따로따로 그 자체의 뼈대 메쉬로서 익스포트됩니다.

여기서 ActorX 플러그인을 다운로드 받으십시요: ActorXKR

메쉬의 부분들을 엔진에 익스포트 하는 예로서 말콤의 부츠를 사용합니다. 다른 부분들에 대해서도 같은 과정을 사용하면 됩니다.

말콤의 부츠를 익스포트 하려면, 우선 ActorX를 적재합니다. 그 다음 Skin Export 가 올바르게 설정되었는지 확인합니다.

ActorX.jpg

all skin-type 을 설정하는 것은 그 장면의 가중된 메쉬가 익스포트될 것이라는 것을 보증합니다. all selected 를 설정하면 각 부분을 한꺼번에 쉽게 익스포트할 수 있습니다. 만일 어떤 이유로 all selected 가 여러분의 ActorX 버전에서 작동하지 않거나 사용이 불가능할 때는, 간단히 익스포트 하고 싶지 않은 메쉬들을 삭제하십시요. 그러나 뼈대의 부분은 절대 하나도 삭제하지 마십시요. 메쉬를 삭제하기 전에 장면을 저장하는 것을 잊지 마십시요. 그래야 나중에 완벽한 이전 버전을 다시 사용할 수 있습니다 ; 또한 메쉬를 삭제한 후 파일을 겹쳐쓰기 하면 안된다는 것을 명심하십시요.

ActorX에서 output foldermesh file 이름 필드를 채워넣고 , 부츠 메쉬를 선택한 다음, Save mesh/refpose 버튼을 누르면 뼈대 애니메이션 파일(.psk) 이 생성됩니다. 뼈대에 애니메이션이 있을 경우, ActorX 는 그 일정에서의 첫번째 프레임(대개 프레임 0)을 익스포트할 포즈로 사용합니다.

임포트 하기

에디터를 열어 Generic Browser 윈도우에서, “file” -> “import”를 선택합니다. 익스포트를 통해 생성된 .psk 파일을 찾아 “open”을 클릭합니다.

UnrealEd-GenericImport.jpg

Open 을 선택하고 나면, 그 애니메이션 파일로 무엇을 할 것인지를 묻는 또 하나의 윈도우가 나타납니다. 이 윈도우의 Package 필드에서는 파일을 기존의 패키지 안으로 임포트하거나 새 패키지를 만들수 있습니다. 새 패키지를 만들려면 아직 존재하지 않는 패키지의 이름을 써 넣으십시요. 그러면 새 패키지가 만들어지고, OK 를 클릭하면 메쉬가 이 새 패키지 안으로 임포트됩니다. 기존의 패키지 안으로 임포트하려면, 기존의 패키지 이름을 써넣거나 드롭다운 리스트에서 그 패키지를 선택하면 됩니다. 여러분은 이 윈도우의 Group 필드에서 패키지 내에 그룹을 만들 수 있으며, Name 필드에서 메쉬의 이름을 변경할 수도 있습니다.

UnrealEd-ImportMesh.jpg

메쉬가 임포트되면, 아래의 디렉토리에 그 패키지를 저장하십시요:

\My Documents\My Games\Unreal Tournament 3\UTGame\Unpublished\CookedPC\CustomChars

메쉬에 소켓 추가하기

소켓은 뼈대 메쉬에 사용자가 정의한 포인트입니다. 이 소켓은 어느 뼈대에나 추가될 수 있으며, UT3에서는 입자를 방출하는 지점 또는 무기를 부착할 위치 등을 포함, 여러가지 용도로 사용됩니다. 이것들은 캐릭터가 게임내에서 정확한 기능을 발휘할 수 있도록, 각 메쉬에 추가되어야 합니다. 소켓을 추가하려면, Generic Browser 윈도우에서 그 소켓을 추가하고자 하는 뼈대 메쉬를 더블 클릭합니다. Skeletal mesh/animation set editor 윈도우가 나타날 것입니다. Socket Manager 아이콘을 클릭하거나, Mesh 메뉴에서 Socket Manager 를 선택하면 Socket Manager 윈도우가 열립니다.

AnimSetEditor-SocketEditor.jpg

New Socket을 선택하고 그 소켓을 부착할 뼈를 고르고, 소켓에 이름을 붙여주면 새 소켓이 생성됩니다.

다음은 필요한 소켓의 목록입니다:

Mesh Name Socket Name Bone Name
Arm Mesh WeaponPoint b_RightWeapon
  DualWeaponPoint b_LeftWeapon
Boot Mesh L_JB b_LeftAnkle
  R_JB b_RightAnkle
Torso Mesh HeadShotGoreSocket b_Neck

부츠 메쉬에는 부츠가 점프할 때 입자를 방사할 위치를 부여하기 위한 두 개의 소켓이 필요합니다. 이 두 소켓의 이름은 왼쪽 부츠용은 L_JB , 그리고 오른쪽 부츠용은 R_JB 입니다. 예를 들어, L_JB 소켓을 추가하려면 New Socket 을 선택하고, 뼈 b_LeftAnkle 를 선정한 다음, 소켓의 이름으로 L_JB를 타이프하면 됩니다.

소켓은 옮기거나 회전시킬 수 있으므로, 메쉬와 관련된 정확한 장소에 놓여질 수 있습니다. 소켓이 생성되면 이 소켓이 발목 뼈의 시작점에 나타납니다. 그렇지만 입자는 발바닥으로부터 방사되어야 합니다. Socket Manager 윈도우의 처음 두 개의 아이콘은 translate socketrotate socket_입니다. _translate socket 을 택하고, 소켓을 발바닥으로 이동합니다. 어떤 소켓들은 입자가 정확한 방향으로 방사되도록 하기 위해서, 또는 그 객체가 정확한 방위에 부착되게 하기 위해 회전시킬 필요가 있습니다. 게임에 포함되어 있는 다른 뼈대 메쉬들의 Socket Manager 윈도우를 열어 이 소켓들이 어떻게 그리고 어디에 놓여지는지 살펴 보십시요.

게임 내 사용을 위한 메쉬 환경설정

이제 남은 일은 게임이 뼈대 메쉬들이 어디 있는지, 그리고 그것들을 어떻게 사용할 지 알 수 있도록 커스텀 캐릭터의 환경을 설정하는 것입니다. 이는 설정 파일 (.ini) 을 편집하면 됩니다:

\My Documents\My Games\Unreal Tournament 3\UTGame\Unpublished\UTCustomChar\CustomChars

말콤의 부츠를 UT3의 Character Creation 메뉴에 추가하려면, 설정 파일에게 사용될 부츠가 또 한 켤레 있다는 것을 알리는 내용 한 줄을 첨가해야 합니다. 말콤은 Iron Guard 캐릭터처럼 보이므로 이 작품은 거기에 매우 잘 어울립니다. 설정 파일을 죽 훑어보면 모든 Boots들이 있는 곳이 있습니다. 범위를 더 좁혀보면 그것들이 어느 패밀리에 속해 있는지도 알게 됩니다 – 이 경우에는 아이언 가드 패밀리입니다 (IRNM로 표시되어 있는).

Parts=(Part=PART_Boots,ObjectName="CH_IronGuard_Male.Mesh.SK_CH_IronG_Male_Boots01",PartID="A",FamilyID="IRNM")
Parts=(Part=PART_Boots,ObjectName="CH_IronGuard_Male.Mesh.SK_CH_IronG_Male_Boots02",PartID="A",FamilyID="IRNM")
Parts=(Part=PART_Boots,ObjectName="CH_IronGuard_Male.Mesh.SK_CH_IronG_Male_Boots03",PartID="A",FamilyID="IRNM")

Objectname 의 명명 기준은: Package.Group.Subgroup.Mesh (각 섹션 사이의 점에 유의하십시요) 입니다. 예를 들어, 새 메쉬의 이름이 “Malcolm_Boots”이고, “Malcolm”이라는 이름의 패키지 안에 있다면, 그룹은 없이, Objectname 은 “Malcolm.Malcolm_Boots”이 됩니다.

Objectname 의 명명 기준은: Package.Group.Subgroup.Mesh (각 섹션 사이의 점에 유의하십시요) 입니다. 예를 들어, 새 메쉬의 이름이 “Malcolm_Boots”이고, “Malcolm”이라는 이름의 패키지 안에 있다면, 그룹은 없이, Objectname 은 “Malcolm.Malcolm_Boots”이 됩니다.

Parts=(Part=PART_Boots,ObjectName="Malcolm.Malcolm_Boots",PartID="D",FamilyID="IRNM")

설정 파일을 저장하고 게임을 실행하십시요. 이제 여러분의 새 작품이 UT3의 Character Creation 메뉴에 나타날 것입니다