Maya에서¶
Maya는 Harmony와 같은 창을 씁니다 — 같은 레이아웃, 같은 네 개의 페이지, 같은 컨트롤 — 다만 Maya의 어휘로요. 목록에는 Joint와 Joints가 표시되고, import 버튼은 Apply to Joints라고 되어 있습니다.
실행하기¶
shelf의 OTS 버튼을 클릭하세요. 아직 없다면 설치를 참조하세요 — install_maya.py를 viewport로 끌어다 놓으면 영구적으로 설정됩니다.
Script Editor에서:
import launch_transform_sync_maya as ots
ots.main()
네 개의 페이지¶
Harmony와 똑같은 2×2 그리드를, Maya의 어휘로:
파일이 기술하는 스켈레톤이 계층 구조대로 들여쓰기되어 있습니다. Build Skeleton은 깔끔한 orient로 joint를 만듭니다.
선택에서 스캔된 joint들. Rig 열은 각 joint에서 가장 가까운 non-joint 조상으로부터 채워집니다.
매치 트리입니다. 호박색 행은 그 이름의 joint를 찾지 못했다는 뜻으로 — 갓 import한 상태에서 카메라 peg이라면 정상입니다. 매치 트리를 참조하세요.
Rig 셀에 rig 이름을 직접 입력하는 모습 — 더블클릭하면 편집됩니다. Scene range는 씬으로부터 Start와 End를 채웁니다.
단위¶
Maya는 센티미터 케이스입니다. OTS 파일 안의 모든 것은 미터 단위이므로, 나갈 때 위치에 0.01을 곱하고 들어올 때 다시 나눕니다. 자동으로요.
여러분이 이걸 설정할 일은 없습니다. 창에 단위 옵션이 없는 이유는, 파일 헤더에서 가져오는 편이 여러분에게 묻는 것보다 엄격히 더 낫기 때문입니다.
축 관점에서, 표준 Y-up Maya 씬은 swizzle이 필요 없습니다 — 이미 정규 방향과 일치합니다. Z-up Maya 씬은 감지되어 Blender처럼 swizzle됩니다.
Z-up Maya 씬: handle이 단순화됩니다
Z-up 씬에서 keyframe 값은 올바르게 변환되지만, 키별 bezier handle은 명시적 tangent 대신 보간 정보만으로 내보내집니다. 정확한 tangent 형태가 중요하다면 Y-up에서 작업하세요.
Export하기¶
joint들을 — 그리고 카메라 transform이 있다면 그것도 — 선택한 다음, export 페이지에서 +를 누르세요.
Rig 열은 각 joint에서 가장 가까운 non-joint 조상으로부터 채워지는데, 보통 여러분이 이미 씬을 정리해둔 그 그룹을 뜻합니다. 셀을 더블클릭해 이름을 바꾸거나, 드롭다운에서 다른 rig을 골라 그쪽으로 합치세요.
Maya가 편집 가능한 열을 갖는 이유는 Harmony와 같습니다: Maya의 joint는 그냥 transform node이고, armature 오브젝트 같은 건 없으며, "rig"은 여러분이 고른 관례입니다. 반대로 Blender의 열은 잠겨 있는데, 거기서는 armature가 실제 컨테이너이기 때문입니다. Rigs & Multi-Rig를 참조하세요.
연결성 잠금은 여전히 적용됩니다: 떨어져 있는 root는 합칠 수 있지만, 연결된 chain은 절대 쪼갤 수 없습니다.
각 joint에 대해 OTS는 key가 찍힌 프레임마다 world matrix를 기록하며, 가장 가까운 export 대상 조상 기준으로 상대화합니다. keyframe은 아홉 개의 transform 채널 전체와 범위 경계에서 모읍니다. 보간은 회전 커브의 out-tangent 타입에서 읽습니다:
| Maya tangent | 변환 결과 |
|---|---|
| Step | CONSTANT |
| Linear | LINEAR |
| 그 외 전부 | BEZIER, 명시적 handle 포함 |
Import하기¶
Browse…로 파일을 고르고, 매치를 확인한 다음 선택하세요:
- Apply to Joints — 매치되고 체크된 joint에 기록합니다.
- Create Rig — 파일에 접혀 들어간 rest pose로부터 joint를 만들고 애니메이션을 적용합니다.
- Create Cameras — 카메라를 만듭니다.
모든 기록은 이름 붙은 하나의 undo 청크로 감싸이므로, Ctrl+Z 한 번이면 작업 전체가 되돌아갑니다.
Create Rig이 만드는 것¶
joint들이 깔끔한 orient로 생성됩니다: XYZ rotate order, joint orient 0, rotate axis 0. 모든 회전은 .rotate에 있습니다.
이건 중요합니다. joint orient가 0이 아닌 joint는 회전을 두 군데에 지니게 되고, 적용된 애니메이션이 그것과 싸우게 됩니다. orient를 0으로 만들고 전부 .rotate에 넣음으로써, 파일의 애니메이션이 파일이 말하는 바로 그 자리에 정확히 도착합니다.
파일에 rig이 둘 이상 들어 있으면, 각 rig마다 빈 transform 그룹이 생기고 그 root들이 그 아래에 parent됩니다. rig이 하나뿐인 파일은 이 래퍼를 건너뜁니다 — 쓸데없는 그룹은 만들지 않습니다.
Tangent¶
적용 시:
| 파일이 말하는 것 | Maya가 받는 것 |
|---|---|
LINEAR |
Linear in/out tangent |
CONSTANT |
Step out tangent |
handle이 있는 BEZIER |
Weighted tangent 켜짐, in/out 고정, 파일의 각도와 weight 사용 |
handle이 없는 BEZIER |
기본 smooth 보간 |
위치 handle 값도 key와 함께 미터에서 센티미터로 스케일되므로, 커브 형태가 단위 변환에 짓눌리지 않고 그대로 살아남습니다.
카메라¶
카메라 transform을 선택하면 나머지와 함께 export됩니다.
Maya에는 단일한 "기본 카메라" 플래그가 없어서, OTS는 카메라의 renderable 상태와 여러분이 현재 들여다보고 있는 카메라로 그것을 근사합니다. import 시에는 파일의 기본 카메라가 renderable로 설정되고 그 카메라를 들여다보게 됩니다.
Create Cameras는 파일의 수직 FOV를 수직 film aperture에 대비해 초점 거리를 도출하고, film fit을 Vertical로 설정합니다. 이건 의도적입니다: automatic이나 horizontal fit에서는 frustum이 너무 좁게 나와 씬이 확대된 것처럼 보입니다.
어떤 카메라의 peg이 오직 그 카메라를 담기 위해서만 존재한다면 — 위에도 아무것도 없고 아래에도 아무것도 없다면 — joint는 생성되지 않고 움직임이 카메라 transform에 바로 bake됩니다. Cameras를 참조하세요.
참고 사항과 한계¶
이름은 접미사를 떼고 매치되므로, Harmony의 hip-P peg과 Maya의 hip joint는 같은 항목입니다.
매치에는 전체 DAG 경로가 쓰이므로, 서로 다른 그룹에 있는 같은 짧은 이름의 joint 둘은 별개로 유지됩니다.
Maya의 reader는 파일 버전에 엄격합니다. 구버전 OTS로 만든 파일은 절반쯤 import하는 대신 명확한 에러를 냅니다. 소스 애플리케이션에서 다시 export하세요.
함께 보기¶
- Rigs & Multi-Rig — Maya에서 Rig 열의 기본값이 어디서 오는지
- Cameras — film fit, 초점 거리, 프레이밍 확인
- 좌표계 — 센티미터 변환, 그리고 Z-up 씬