En Maya¶
Maya usa la misma ventana que Harmony — mismo layout, mismas cuatro páginas, mismos controles — con el vocabulario de Maya. Las listas dicen Joint y Joints, y el botón de importación dice Apply to Joints.
Lanzamiento¶
Haz clic en el botón OTS de tu shelf. Si todavía no está ahí, ver Instalación — arrastrar install_maya.py al viewport lo deja configurado permanentemente.
Desde el Script Editor:
import launch_transform_sync_maya as ots
ots.main()
Las cuatro páginas¶
La misma grilla de dos por dos que Harmony, con el vocabulario de Maya:
El skeleton que el archivo describe, indentado según su jerarquía. Build Skeleton crea los joints con un orient limpio.
Joints escaneados desde la selección. La columna Rig se siembra desde el ancestro no-joint más cercano de cada joint.
El árbol de coincidencias. La fila ámbar no encontró ningún joint con ese nombre — normal para un peg de cámara en una importación nueva. Ver El Árbol de Coincidencias.
Un nombre de rig escribiéndose directamente en la celda Rig — doble clic para editar. Scene range llena Start y End desde la escena.
Unidades¶
Maya es el caso de los centímetros. Todo en un archivo OTS está en metros, así que las posiciones se multiplican por 0.01 a la salida y se dividen de vuelta a la entrada, automáticamente.
Esto nunca lo configuras tú. No hay opción de unidades en la ventana, porque sacarla del header del archivo es estrictamente mejor que preguntarte.
En cuanto a ejes, una escena Maya Y-up estándar no necesita ningún swizzle — ya calza con la orientación canónica. Una escena Maya Z-up se detecta y se swizzlea como Blender.
Escenas Maya Z-up: los handles se simplifican
En una escena Z-up los valores de keyframe se convierten correctamente, pero los handles bezier por key se emiten solo como interpolación en vez de con tangentes explícitas. Si te importan las formas exactas de las tangentes, trabaja en Y-up.
Exportar¶
Selecciona los joints — y cualquier transform de cámara — y luego presiona + en la página de exportación.
La columna Rig se siembra desde el ancestro no-joint más cercano de cada joint, lo que normalmente significa el grupo con el que ya organizaste tu escena. Doble clic en la celda para renombrar, o elige otro rig del dropdown para fusionarlo ahí.
Maya tiene una columna editable por la misma razón que Harmony: un joint de Maya es solo un transform node, no hay objeto armature, y un "rig" es una convención que elegiste tú. La columna de Blender está bloqueada en cambio, porque ahí un armature es un contenedor real. Ver Rigs y Multi-Rig.
El bloqueo de conectividad sigue aplicando: puedes fusionar roots desconectados, nunca dividir una cadena conectada.
Para cada joint, OTS registra el world matrix por frame keyeado, hecho relativo al ancestro exportado más cercano. Los keyframes se recolectan de los nueve canales de transformación, más los bordes del rango. La interpolación se lee desde el tipo de out-tangent de la curva de rotación:
| Tangente de Maya | Se vuelve |
|---|---|
| Step | CONSTANT |
| Linear | LINEAR |
| Cualquier otra | BEZIER, con handles explícitos |
Importar¶
Browse…, revisa las coincidencias, y luego elige:
- Apply to Joints — escribe sobre los joints con coincidencia y tickeados.
- Create Rig — construye los joints desde la rest pose plegada del archivo y aplica la animación.
- Create Cameras — construye las cámaras.
Cada escritura va envuelta en un solo chunk de undo con nombre, así que un Ctrl+Z revierte la operación completa.
Qué construye Create Rig¶
Joints, creados con un orient limpio: rotate order XYZ, joint orient en cero, rotate axis en cero. Toda la rotación vive en .rotate.
Eso importa. Un joint con joint orient distinto de cero carga rotación en dos lugares, y la animación aplicada termina peleándose con él. Al dejar el orient en cero y poner todo en .rotate, la animación del archivo aterriza exactamente donde el archivo dice que debe.
Cuando el archivo contiene más de un rig, cada rig recibe su propio grupo transform vacío y sus roots se parentean debajo. Un archivo de un solo rig se salta el contenedor — nada de grupos inútiles.
Tangentes¶
Al aplicar:
| El archivo dice | Maya recibe |
|---|---|
LINEAR |
Tangentes lineales de entrada y salida |
CONSTANT |
Out tangent en step |
BEZIER con handles |
Tangentes weighted activadas, fixed in/out, con el ángulo y el peso del archivo |
BEZIER sin handles |
Interpolación smooth por defecto |
Los valores de los handles de posición se escalan de metros a centímetros junto con las keys, así que la forma de la curva sobrevive el cambio de unidad en vez de quedar aplanada por él.
Cámaras¶
Selecciona el transform de la cámara y se exporta junto con todo lo demás.
Maya no tiene un flag único de "cámara por defecto", así que OTS lo aproxima con el estado renderable de la cámara y aquella por la que estás mirando en ese momento. Al importar, la cámara por defecto del archivo se vuelve renderable y se mira a través de ella.
Create Cameras deriva una distancia focal a partir del FOV vertical del archivo contra la apertura de película vertical, y deja el film fit en Vertical. Es deliberado: con fit automático u horizontal el frustum queda demasiado angosto y la escena se ve con zoom.
Si el peg de una cámara existe únicamente para sostener esa cámara — nada arriba, nada abajo — no se crea ningún joint y el movimiento se bakea directamente sobre el transform de la cámara. Ver Cámaras.
Notas y límites¶
Los nombres se hacen coincidir con los sufijos eliminados, así que un peg hip-P de Harmony y un joint hip de Maya son el mismo ítem.
Se usan paths DAG completos para hacer coincidir, así que dos joints con el mismo nombre corto en grupos distintos se mantienen separados.
El lector de Maya es estricto con la versión del archivo. Un archivo de un OTS más antiguo escribe un error claro en vez de importar a medias; reexporta desde la aplicación de origen.
Ver también¶
- Rigs y Multi-Rig — de dónde sale el valor por defecto de la columna Rig en Maya
- Cámaras — film fit, distancia focal y verificación de encuadre
- Sistemas de Coordenadas — la conversión a centímetros, y las escenas Z-up