로블록스 R15 아바타 본 구조 — 이름 하나 틀리면 스튜디오가 못 알아본다

R15는 본 17개짜리 리그다
로블록스 아바타 캐릭터의 표준 리그는 R15라고 부른다. 이름은 15지만 실제 본은 17개다. 몸을 이루는 15개에 더해, 웨이트를 주지 않는 관리용 본 두 개가 맨 위에 붙는다.
15개는 각각 대응하는 메시 오브젝트를 하나씩 가진다. 팔은 위팔·아래팔·손 세 마디, 다리는 허벅지·정강이·발 세 마디, 몸통은 상체와 하체 두 마디, 그리고 머리 하나다. 여기까지가 사람 몸에 실제로 살이 붙는 부분이다.
나머지 둘은 Root와 HumanoidRootNode다. Root는 원점에 고정되는 최상위 본이고, 그 아래 HumanoidRootNode가 캐릭터 전체의 이동을 담당한다. 이 둘에는 버텍스 웨이트를 주면 안 된다.
계층은 이 순서에서 벗어날 수 없다
본 이름만 맞으면 되는 게 아니라 부모 자식 관계도 정해져 있다. 눈에 띄는 점은 하체가 상체의 부모라는 것이다. 일반적인 사람형 리그는 골반에서 척추가 올라가지만, R15는 LowerTorso가 UpperTorso와 양쪽 허벅지를 모두 자식으로 가진다.
그리고 Head 본은 머리 한가운데가 아니라 목 밑동에 놓인다. 다른 엔진에서 쓰던 리그를 옮겨올 때 가장 자주 어긋나는 지점이다.
이름 규칙을 틀리면 스튜디오가 못 알아본다
로블록스 스튜디오는 본과 메시를 이름으로 찾는다. 좌표나 순서가 아니라 문자열이 기준이다. 그래서 대소문자 하나만 어긋나도 임포트가 실패하거나, 더 나쁘게는 조용히 엉뚱한 부위로 붙는다.
메시 오브젝트는 본 이름 뒤에 _Geo를 붙인다. UpperTorso_Geo, LeftLowerArm_Geo, Head_Geo 같은 식으로 15개 전부다. 액세서리가 붙는 지점인 어태치먼트는 _Att를 붙여서 Neck_Att, LeftGrip_Att, Hat_Att, Root_Att처럼 쓴다. 레이어드 의상이 감싸는 케이지 메시는 _OuterCage를 붙여 LeftUpperArm_OuterCage가 된다.
여기에 더해 모든 본의 트랜스폼은 프리즈되어 있어야 한다. 스케일은 1, 1, 1이고 회전은 0, 0, 0이며 Root는 원점에 있어야 한다. 팔다리 메시는 몸에서 떼어냈을 때 각각 닫힌 형태가 되도록 단면을 막아야 한다.
손가락과 척추를 원하면 R15+
표준 리그보다 세밀한 움직임이 필요하면 옵션 본을 최대 37개까지 더 넣을 수 있다. 이걸 고피델리티 리그, 흔히 R15+라고 부른다.
구성을 세어 보면 정확히 37개가 나온다. 상체 쪽에 Spine, Chest, HeadBase, 그리고 좌우 Clavicle까지 다섯 개. 손가락은 한 손에 엄지·검지·중지·약지·소지가 각각 세 마디씩 열다섯 개라서 양손 서른 개. 발가락 뿌리인 ToeBase가 좌우 두 개. 합쳐서 서른일곱이다.
이걸 넣으면 계층이 바뀐다. UpperTorso 아래로 Spine이 오고, 그 아래 Chest가 오며, Chest가 Head와 좌우 Clavicle을 자식으로 가진다. 그리고 각 Clavicle이 해당 UpperArm의 부모가 된다. 손가락 이름은 LeftHandThumb1, LeftHandThumb2, LeftHandThumb3 같은 형식이고, 마디 번호는 몸에 가까운 쪽부터 1로 시작한다.
전부 넣을 필요는 없고 원하는 부위만 골라 써도 된다. 다만 이름 규칙은 여전히 절대적이다. 스튜디오가 손 관절을 인식하는 방식이 이름 매칭이기 때문에, 임포트 전에 철자를 맞춰 두지 않으면 손가락이 그냥 안 움직인다.
웨이트와 폴리곤에 걸린 상한
스키닝 쪽 제약은 단순하다. 버텍스 하나가 받을 수 있는 본 영향은 최대 네 개다. Root 본에는 웨이트를 주지 않는다. 그리고 가능한 한 좌우 대칭을 유지하라고 되어 있다.
폴리곤 예산도 정해져 있다. 마켓플레이스에 올릴 때 몸은 여섯 덩어리로 쪼개져 올라가는데, 머리가 4000 트라이, 상하체를 합친 몸통이 1750, 팔다리는 각각 1248이다. 전부 더하면 10742 트라이가 캐릭터 한 벌의 상한이다. 쿼드로 모델링했다면 그 수를 두 배 해서 어림잡으면 된다.
텍스처는 2048 곱하기 2048을 넘을 수 없다. 사용자가 피부색을 직접 고르게 하려면 살이 드러나는 부분을 투명하게 비워 두고, 그늘은 검정을 낮은 불투명도로 얹는 방식으로 처리한다. 색을 텍스처에 구워 버리면 사용자가 바꿀 수 없다.
공식 리그 파일을 받아서 시작하는 게 빠르다
이름을 손으로 다 치는 것보다 로블록스가 배포하는 템플릿에서 시작하는 편이 안전하다. 표준 아마추어 리그와 어태치먼트가 들어 있는 템플릿은 블렌더, 마야, FBX 세 가지 형식으로 함께 제공된다. 몸 케이지와 의상 케이지 템플릿도 따로 있다.
손가락과 다이내믹 헤드까지 들어간 완성 캐릭터 예제도 몇 벌 공개되어 있어서, 웨이트가 실제로 어떻게 칠해져 있는지 뜯어보기 좋다. 다만 원본이 마야에서 나온 파일이라 블렌더로 열면 본 방향이 어색하게 보일 수 있다. 문서에도 명시된 현상이고 동작에는 영향이 없다.
참고로 R6는 여기서 말한 구조와 아예 다르다. R6는 본 리그가 아니라 여섯 덩어리를 Motor6D 조인트로 이어 붙인 옛 방식이라 스키닝 개념 자체가 없다. 이 문서의 규칙은 R15 계열에만 적용된다.
출처
리깅 파이프라인 자동화 도구
반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.
리깅 도구 보기