Aller au contenu

Dans Maya

Maya utilise la même fenêtre que Harmony — même disposition, mêmes quatre pages, mêmes contrôles — avec le vocabulaire de Maya. Les listes disent Joint et Joints, et le bouton d'import dit Apply to Joints.

Lancement

Cliquez sur le bouton OTS de votre shelf. S'il n'y est pas encore, voir Installation — glisser install_maya.py dans le viewport le met en place définitivement.

Depuis le Script Editor :

import launch_transform_sync_maya as ots
ots.main()

Les quatre pages

La même grille deux par deux que Harmony, avec le vocabulaire de Maya :

Maya — import .pvt

Le squelette décrit par le fichier, indenté selon sa hiérarchie. Build Skeleton crée les joints avec un orient propre.

Maya — export .pvt

Les joints scannés depuis la sélection. La colonne Rig est initialisée à partir de l'ancêtre non-joint le plus proche de chaque joint.

Maya — import .anm, une ligne sans correspondance en ambre

L'arbre de correspondance. La ligne ambre n'a trouvé aucun joint de ce nom — normal pour un peg de caméra sur un import neuf. Voir L'arbre de correspondance.

Maya — export .anm

Un nom de rig tapé directement dans la cellule Rig — double-cliquez pour éditer. Scene range remplit Start et End à partir de la scène.


Unités

Maya est le cas centimètres. Tout ce qui se trouve dans un fichier OTS est en mètres, donc les positions sont multipliées par 0.01 à la sortie et redivisées à l'entrée, automatiquement.

Vous ne réglez jamais ça. Il n'y a pas d'option d'unité dans la fenêtre, parce que la tirer de l'en-tête du fichier est strictement meilleur que de vous la demander.

Côté axes, une scène Maya standard en Y-up ne nécessite aucun swizzle — elle correspond déjà à l'orientation canonique. Une scène Maya en Z-up est détectée et swizzlée comme Blender.

Scènes Maya en Z-up : les handles sont simplifiés

Dans une scène Z-up, les valeurs des keyframes se convertissent correctement, mais les handles bezier par clé sont émis en interpolation seule plutôt qu'avec des tangentes explicites. Si la forme exacte des tangentes vous importe, travaillez en Y-up.


Exporter

Sélectionnez les joints — et toute transform de caméra — puis appuyez sur + sur la page d'export.

La colonne Rig est initialisée à partir de l'ancêtre non-joint le plus proche de chaque joint, ce qui correspond en général au group avec lequel vous avez déjà organisé votre scène. Double-cliquez sur la cellule pour renommer, ou choisissez un autre rig dans le menu déroulant pour fusionner dedans.

Maya obtient une colonne éditable pour la même raison que Harmony : un joint Maya n'est qu'un nœud transform, il n'y a pas d'objet armature, et un « rig » est une convention que vous avez choisie. La colonne de Blender est verrouillée à la place, parce que là-bas une armature est un vrai conteneur. Voir Rigs et multi-rig.

Le verrou de connectivité s'applique toujours : vous pouvez fusionner des roots déconnectés, jamais scinder une chain connectée.

Pour chaque joint, OTS enregistre la world matrix par frame keyée, rendue relative à l'ancêtre exporté le plus proche. Les keyframes sont rassemblées depuis les neuf canaux de transform, plus les bornes de la plage. L'interpolation est lue depuis le type d'out-tangent de la courbe de rotation :

Tangente Maya Devient
Step CONSTANT
Linear LINEAR
Tout le reste BEZIER, avec handles explicites

Importer

Browse…, vérifiez la correspondance, puis choisissez :

  • Apply to Joints — écrit sur les joints correspondants et cochés.
  • Create Rig — construit les joints à partir de la rest pose intégrée au fichier et applique l'animation.
  • Create Cameras — construit les caméras.

Chaque écriture est enveloppée dans un unique undo chunk nommé, donc un seul Ctrl+Z annule toute l'opération.

Ce que construit Create Rig

Des joints, créés avec un orient propre : rotate order XYZ, joint orient à zéro, rotate axis à zéro. Toute la rotation vit dans .rotate.

C'est important. Un joint avec un joint orient non nul porte de la rotation à deux endroits, et l'animation appliquée finit par lutter contre. En mettant l'orient à zéro et en plaçant tout dans .rotate, l'animation du fichier atterrit exactement là où le fichier dit qu'elle devrait.

Quand le fichier contient plus d'un rig, chaque rig reçoit son propre group transform vide et ses roots se parentent dessous. Un fichier à un seul rig saute l'enveloppe — pas de group inutile.

Tangentes

À l'apply :

Le fichier dit Maya obtient
LINEAR Tangentes linear en entrée et en sortie
CONSTANT Out-tangent step
BEZIER avec handles Tangentes pondérées activées, fixed en entrée/sortie, avec l'angle et le poids du fichier
BEZIER sans handles Interpolation smooth par défaut

Les valeurs des handles de position sont mises à l'échelle des mètres vers les centimètres en même temps que les clés, si bien que la forme de la courbe survit au changement d'unité au lieu d'être aplatie par lui.


Caméras

Sélectionnez la transform de caméra et elle s'exporte avec le reste.

Maya n'a pas de flag unique « caméra par défaut », donc OTS l'approxime avec l'état renderable de la caméra et ce que vous êtes en train de regarder. À l'import, la caméra par défaut du fichier est rendue renderable et regardée à travers.

Create Cameras dérive une focale à partir du FOV vertical du fichier rapporté à l'ouverture verticale du film, et règle le film fit sur Vertical. C'est délibéré : en fit automatique ou horizontal, le frustum sort trop étroit et la scène a l'air zoomée.

Si le peg d'une caméra n'existe que pour porter cette caméra — rien au-dessus, rien en dessous — aucun joint n'est créé et le mouvement est baké directement sur la transform de la caméra. Voir Caméras.


Notes et limites

Les noms sont mis en correspondance suffixes retirés, donc un peg Harmony hip-P et un joint Maya hip sont le même élément.

Les chemins DAG complets servent à la correspondance, donc deux joints avec le même nom court dans des groups différents restent distincts.

Le reader de Maya est strict sur la version du fichier. Un fichier venant d'un OTS plus ancien écrit une erreur claire plutôt que d'importer à moitié ; réexportez depuis l'application source.


Voir aussi