No Maya¶
O Maya usa a mesma janela do Harmony — mesmo layout, mesmas quatro páginas, mesmos controles — com o vocabulário do Maya. As listas dizem Joint e Joints, e o botão de import diz Apply to Joints.
Lançando¶
Clique no botão OTS do seu shelf. Se ele ainda não estiver lá, veja Instalação — arrastar install_maya.py para o viewport configura isso permanentemente.
Pelo Script Editor:
import launch_transform_sync_maya as ots
ots.main()
As quatro páginas¶
O mesmo grid dois por dois do Harmony, com o vocabulário do Maya:
O esqueleto que o arquivo descreve, indentado na sua hierarquia. Build Skeleton cria os joints com um orient limpo.
Joints escaneados da seleção. A coluna Rig é semeada a partir do ancestral não-joint mais próximo de cada joint.
A match tree. A linha âmbar não achou joint com aquele nome — normal para um peg de câmera num import novo. Veja A Match Tree.
Um nome de rig sendo digitado direto na célula Rig — duplo clique para editar. Scene range preenche Start e End a partir da cena.
Unidades¶
O Maya é o caso centímetros. Tudo num arquivo OTS está em metros, então posições são multiplicadas por 0.01 na saída e divididas de volta na entrada, automaticamente.
Você nunca define isso. Não há opção de unidade na janela, porque pegar do cabeçalho do arquivo é estritamente melhor do que te perguntar.
Quanto a eixos, uma cena Maya Y-up padrão não precisa de swizzle nenhum — ela já casa com a orientação canônica. Uma cena Maya Z-up é detectada e swizzlada como o Blender.
Cenas Maya Z-up: os handles são simplificados
Numa cena Z-up os valores dos keyframes convertem corretamente, mas os handles bezier por key são emitidos só como interpolação, sem tangentes explícitas. Se você se importa com formas exatas de tangente, trabalhe em Y-up.
Exportando¶
Selecione os joints — e qualquer transform de câmera — e então aperte + na página de export.
A coluna Rig é semeada a partir do ancestral não-joint mais próximo de cada joint, o que normalmente significa o group com que você já organizou sua cena. Dê duplo clique na célula para renomear, ou escolha outro rig no dropdown para fundir nele.
O Maya ganha uma coluna editável pela mesma razão que o Harmony ganha: um joint do Maya é só um transform node, não existe objeto armature, e um "rig" é uma convenção que você escolheu. A coluna do Blender é travada, porque lá um armature é um contêiner de verdade. Veja Rigs & Multi-Rig.
A trava de conectividade continua valendo: você pode fundir roots desconectados, nunca dividir uma chain conectada.
Para cada joint, o OTS registra a world matrix por frame keyado, tornada relativa ao ancestral exportado mais próximo. Keyframes são reunidos de todos os nove canais de transformação, mais as fronteiras do range. A interpolação é lida do tipo de out-tangent da curva de rotação:
| Tangente do Maya | Vira |
|---|---|
| Step | CONSTANT |
| Linear | LINEAR |
| Qualquer outra coisa | BEZIER, com handles explícitos |
Importando¶
Browse…, confira o match, e então escolha:
- Apply to Joints — escreve nos joints matched e marcados.
- Create Rig — constrói os joints a partir da rest pose embutida no arquivo e aplica a animação.
- Create Cameras — constrói as câmeras.
Toda escrita é envolvida num único undo chunk nomeado, então um Ctrl+Z reverte a operação inteira.
O que o Create Rig constrói¶
Joints, criados com um orient limpo: rotate order XYZ, joint orient zerado, rotate axis zerado. Toda rotação vive no .rotate.
Isso importa. Um joint com joint orient não-zero carrega rotação em dois lugares, e a animação aplicada acaba brigando com ele. Zerando o orient e pondo tudo no .rotate, a animação do arquivo cai exatamente onde o arquivo diz que ela deveria cair.
Quando o arquivo contém mais de um rig, cada rig ganha seu próprio transform group vazio e seus roots ficam parenteados sob ele. Um arquivo de rig único pula o envelope — nada de group inútil.
Tangentes¶
No apply:
| O arquivo diz | O Maya recebe |
|---|---|
LINEAR |
Tangentes linear in e out |
CONSTANT |
Out tangent step |
BEZIER com handles |
Weighted tangents ligadas, in/out fixas, com o ângulo e o peso do arquivo |
BEZIER sem handles |
Interpolação smooth padrão |
Os valores de handle de posição são escalados de metros para centímetros junto com as keys, então a forma da curva sobrevive à mudança de unidade em vez de ser achatada por ela.
Câmeras¶
Selecione o transform da câmera e ela exporta junto com todo o resto.
O Maya não tem uma flag única de "câmera padrão", então o OTS aproxima isso com o estado renderable da câmera e por qual você está olhando no momento. No import, a câmera padrão do arquivo é tornada renderable e passa a ser a que você olha.
O Create Cameras deriva um focal length a partir do FOV vertical do arquivo contra o film aperture vertical, e define film fit para Vertical. Isso é deliberado: em fit automático ou horizontal o frustum sai estreito demais e a cena parece com zoom.
Se o peg de uma câmera existe só para segurar aquela câmera — nada acima, nada abaixo — nenhum joint é criado e o movimento é bakeado direto no transform da câmera. Veja Câmeras.
Notas e limites¶
Nomes são casados com sufixos removidos, então um peg hip-P do Harmony e um joint hip do Maya são o mesmo item.
Paths DAG completos são usados no match, então dois joints com o mesmo nome curto em groups diferentes continuam distintos.
O leitor do Maya é estrito quanto à versão do arquivo. Um arquivo de um OTS mais antigo escreve um erro claro em vez de importar pela metade; reexporte da aplicação de origem.
Veja também¶
- Rigs & Multi-Rig — de onde vem o padrão da coluna Rig no Maya
- Câmeras — film fit, focal length e checagens de enquadramento
- Sistemas de Coordenadas — a conversão de centímetros, e cenas Z-up