Aller au contenu
weSkelDOCUMENTATION
Documentation/Référence API/MotionPath

MotionPath

Position et orientation évaluées le long d’une courbe.

ClassAPI 2.0GEOMETRY
objectNodeDGNodeMotionPath
from weSkel.src.core.node.dg.motion_path.lib import MotionPath

À exécuter dans Maya ou dans un processus mayapy initialisé. L’import om n’est nécessaire que si votre script utilise des types OpenMaya.

Élément Valeur
Classe MotionPath
Module weSkel.src.core.node.dg.motion_path.lib
Type Maya motionPath
Parent direct DGNode
Inventaire Membres définis ou redéfinis ici ; les membres hérités sont regroupés par parent dans chaque rubrique.

Signature : MotionPath(node) → MotionPath.

Paramètre Type accepté Défaut
node Union[str, om.MObject, om.MObjectHandle, om.MFnDependencyNode] Obligatoire

Enveloppe un nœud existant ou prépare un wrapper pour un nom absent ; ne crée pas le nœud. Utiliser create() séparément. Un objet ou type incompatible peut lever TypeError. L’identité partagée peut renvoyer un wrapper compatible déjà enregistré.

Propriétés Python définies ou redéfinies ici. L : lecture seule ; L/E : setter disponible, avec les restrictions précisées dans la fiche. Les types om.* appartiennent à maya.api.OpenMaya.

Aucune nouvelle propriété Python ; consulter les membres hérités et les specs ci-dessous.

Propriétés héritées de DGNode15
Propriété Type retourné Accès Description
dep_fn om.MFnDependencyNode L Function set live ; objet non attaché si le nœud est absent.
uuid str | None L UUID live, ou dernière valeur mémorisée si elle reste disponible.
name str | None L/E Nom live, sinon nom mémorisé.
absolute_name str | None L Nom absolu de namespace renvoyé par MFnDependencyNode.absoluteName() ; None sans nœud.
stripped_name str | None L/E Nom sans namespace, ou None si aucun nom.
namespace str | None L/E Namespace normalisé comme a:b ; None à la racine.
plugs Plugs | None L Gestionnaire des plugs du nœud live ; None sinon.
is_valid_dep_fn bool L Compatibilité du function set avec le MObject courant.
is_default_node bool L Indique un nœud par défaut de Maya ; False sans nœud.
is_from_referenced_file bool L Indique un nœud issu d’un fichier référencé ; False sans nœud.
is_locked bool L/E Verrouillage du nœud, distinct des locks de plugs.
is_shared bool L État partagé renvoyé par Maya ; False sans nœud.
plugin_name str | None L Nom du plugin Maya associé, éventuellement chaîne vide ; None sans nœud.
affect_animation bool L Résultat de MFnDependencyNode.affectsAnimation() ; False sans nœud.
type str | None L/E Type natif live ou type mémorisé.
Propriétés héritées de Node10
Propriété Type retourné Accès Description
mobject om.MObject L/E Objet Maya live, ou objet nul.
mobject_handle om.MObjectHandle L/E Handle associé au nœud.
api_type int | None L Identifiant du type API Maya.
api_type_str str L Nom du type API, par exemple "kTime".
exists bool L Le wrapper possède actuellement un nœud live.
is_null bool L L’objet Maya retourné est nul.
is_alive bool L L’objet existe avec un handle valide et vivant.
is_valid_handle bool L Validité du handle mémorisé.
is_dag_node bool L Compatibilité avec om.MFn.kDagNode.
hash_code int L Hash du handle Maya.

Les defaults et flags ci-dessous sont les déclarations des specs, pas une garantie de valeur live. Un descriptor peut renvoyer un proxy : .value lit sa valeur ; .plug donne accès au Plug. Les noms des proxies décrivent le résultat, sans demander d’importer des classes privées. Les types observés proviennent d’un cas de contrôle ; une entrée géométrique non connectée peut notamment valoir None.

Pour une écriture dont il faut vérifier l’échec, utiliser explicitement le Plug et contrôler le résultat live. Les setters de descriptors ne propagent pas tous les échecs natifs.

Propriété Plug Maya Retour
flow_node flowNode None
fraction_mode fractionMode _ValuePlugProxy · .value: bool
orientation_marker_time orientationMarkerTime TypedArrayProxy
position_marker_time positionMarkerTime TypedArrayProxy
u_value uValue _ValuePlugProxy · .value: float
update_om updateOM _ValuePlugProxy · .value: bool
geometry_path geometryPath _ValuePlugProxy · .value: None
orient_matrix orientMatrix _ValuePlugProxy · .value: None
world_up_matrix worldUpMatrix _ValuePlugProxy · .value: MMatrix
all_coordinates allCoordinates _ValuePlugProxy · .value: tuple
x_coordinate allCoordinates.xCoordinate _ValuePlugProxy · .value: float
y_coordinate allCoordinates.yCoordinate _ValuePlugProxy · .value: float
z_coordinate allCoordinates.zCoordinate _ValuePlugProxy · .value: float
bank bank _ValuePlugProxy · .value: bool
bank_limit bankLimit _ValuePlugProxy · .value: float
bank_scale bankScale _ValuePlugProxy · .value: float
follow follow _ValuePlugProxy · .value: bool
front_axis frontAxis _ValuePlugProxy · .value: int
front_twist frontTwist _ValuePlugProxy · .value: float
inverse_front inverseFront _ValuePlugProxy · .value: bool
inverse_up inverseUp _ValuePlugProxy · .value: bool
normal normal _ValuePlugProxy · .value: bool
rotate rotate _ValuePlugProxy · .value: tuple
rotate_order rotateOrder _ValuePlugProxy · .value: int
rotate_x rotate.rotateX _ValuePlugProxy · .value: float
rotate_y rotate.rotateY _ValuePlugProxy · .value: float
rotate_z rotate.rotateZ _ValuePlugProxy · .value: float
side_twist sideTwist _ValuePlugProxy · .value: float
up_axis upAxis _ValuePlugProxy · .value: int
up_twist upTwist _ValuePlugProxy · .value: float
world_up_type worldUpType _ValuePlugProxy · .value: int
world_up_vector worldUpVector _ValuePlugProxy · .value: tuple
world_up_vector_x worldUpVector.worldUpVectorX _ValuePlugProxy · .value: float
world_up_vector_y worldUpVector.worldUpVectorY _ValuePlugProxy · .value: float
world_up_vector_z worldUpVector.worldUpVectorZ _ValuePlugProxy · .value: float

node.flow_nodeSpec native

Accès au plug natif flowNode.

Élément Type / comportement
Chemin Maya flowNode
Retour de la propriété None
Type déclaré message
Défaut déclaré None
Flags input, output, connectable

Le setter du descriptor refuse l’affectation ; utiliser les opérations de connexion du Plug.

node.fraction_modeSpec native

Accès au plug natif fractionMode.

Élément Type / comportement
Chemin Maya fractionMode
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré numeric:bool
Défaut déclaré False
Flags input, output, stored
Lecture node.fraction_mode.value
Affectation du descriptor node.fraction_mode = value

node.orientation_marker_timeSpec native

Accès au plug natif orientationMarkerTime.

Élément Type / comportement
Chemin Maya orientationMarkerTime
Retour de la propriété TypedArrayProxy
Type déclaré array:unit:time
Défaut déclaré ()
Flags array, input, output, connectable, stored
Plug sous-jacent node.orientation_marker_time.plug

node.position_marker_timeSpec native

Accès au plug natif positionMarkerTime.

Élément Type / comportement
Chemin Maya positionMarkerTime
Retour de la propriété TypedArrayProxy
Type déclaré array:unit:time
Défaut déclaré ()
Flags array, input, output, connectable, stored
Plug sous-jacent node.position_marker_time.plug

node.u_valueSpec native

Accès au plug natif uValue.

Élément Type / comportement
Chemin Maya uValue
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:distance
Défaut déclaré 0.0
Flags input, output, connectable, stored, keyable
Lecture node.u_value.value
Affectation du descriptor node.u_value = value

node.update_omSpec native

Accès au plug natif updateOM.

Élément Type / comportement
Chemin Maya updateOM
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré numeric:bool
Défaut déclaré False
Flags input, output, hidden
Lecture node.update_om.value

node.geometry_pathSpec native

Accès au plug natif geometryPath.

Élément Type / comportement
Chemin Maya geometryPath
Retour de la propriété _ValuePlugProxy · .value: None
Type déclaré typed:geometry
Défaut déclaré None
Flags input, output, connectable, stored
Lecture node.geometry_path.value
Affectation du descriptor node.geometry_path = value

node.orient_matrixSpec native

Accès au plug natif orientMatrix.

Élément Type / comportement
Chemin Maya orientMatrix
Retour de la propriété _ValuePlugProxy · .value: None
Type déclaré typed:matrix
Défaut déclaré None
Flags output, connectable
Lecture node.orient_matrix.value

node.world_up_matrixSpec native

Accès au plug natif worldUpMatrix.

Élément Type / comportement
Chemin Maya worldUpMatrix
Retour de la propriété _ValuePlugProxy · .value: MMatrix
Type déclaré typed:matrix
Défaut déclaré (1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0)
Flags input, output, connectable, stored
Lecture node.world_up_matrix.value
Affectation du descriptor node.world_up_matrix = value

node.all_coordinatesSpec native

Accès au plug natif allCoordinates.

Élément Type / comportement
Chemin Maya allCoordinates
Retour de la propriété _ValuePlugProxy · .value: tuple
Type déclaré double3
Défaut déclaré (0.0, 0.0, 0.0)
Flags output, connectable
Lecture node.all_coordinates.value

node.x_coordinateSpec native

Accès au plug natif allCoordinates.xCoordinate.

Élément Type / comportement
Chemin Maya allCoordinates.xCoordinate
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:distance
Défaut déclaré 0.0
Flags output, connectable
Lecture node.x_coordinate.value

node.y_coordinateSpec native

Accès au plug natif allCoordinates.yCoordinate.

Élément Type / comportement
Chemin Maya allCoordinates.yCoordinate
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:distance
Défaut déclaré 0.0
Flags output, connectable
Lecture node.y_coordinate.value

node.z_coordinateSpec native

Accès au plug natif allCoordinates.zCoordinate.

Élément Type / comportement
Chemin Maya allCoordinates.zCoordinate
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:distance
Défaut déclaré 0.0
Flags output, connectable
Lecture node.z_coordinate.value

node.bankSpec native

Accès au plug natif bank.

Élément Type / comportement
Chemin Maya bank
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré numeric:bool
Défaut déclaré False
Flags input, output, connectable, stored
Lecture node.bank.value
Affectation du descriptor node.bank = value

node.bank_limitSpec native

Accès au plug natif bankLimit.

Élément Type / comportement
Chemin Maya bankLimit
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:angle
Défaut déclaré 90.0
Flags input, output, connectable, stored
Lecture node.bank_limit.value
Affectation du descriptor node.bank_limit = value

node.bank_scaleSpec native

Accès au plug natif bankScale.

Élément Type / comportement
Chemin Maya bankScale
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré numeric:double
Défaut déclaré 1.0
Flags input, output, connectable, stored
Lecture node.bank_scale.value
Affectation du descriptor node.bank_scale = value

node.followSpec native

Accès au plug natif follow.

Élément Type / comportement
Chemin Maya follow
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré numeric:bool
Défaut déclaré False
Flags input, output, stored
Lecture node.follow.value
Affectation du descriptor node.follow = value

node.front_axisSpec native

Accès au plug natif frontAxis.

Élément Type / comportement
Chemin Maya frontAxis
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré enum
Défaut déclaré 1
Flags input, output, connectable, stored
Valeurs enum natives 0 = X, 1 = Y, 2 = Z
Lecture node.front_axis.value
Affectation du descriptor node.front_axis = value

node.front_twistSpec native

Accès au plug natif frontTwist.

Élément Type / comportement
Chemin Maya frontTwist
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:angle
Défaut déclaré 0.0
Flags input, output, connectable, stored, keyable
Lecture node.front_twist.value
Affectation du descriptor node.front_twist = value

node.inverse_frontSpec native

Accès au plug natif inverseFront.

Élément Type / comportement
Chemin Maya inverseFront
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré numeric:bool
Défaut déclaré False
Flags input, output, connectable, stored
Lecture node.inverse_front.value
Affectation du descriptor node.inverse_front = value

node.inverse_upSpec native

Accès au plug natif inverseUp.

Élément Type / comportement
Chemin Maya inverseUp
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré numeric:bool
Défaut déclaré False
Flags input, output, connectable, stored
Lecture node.inverse_up.value
Affectation du descriptor node.inverse_up = value

node.normalSpec native

Accès au plug natif normal.

Élément Type / comportement
Chemin Maya normal
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré numeric:bool
Défaut déclaré False
Flags input, output, connectable, stored
Lecture node.normal.value
Affectation du descriptor node.normal = value

node.rotateSpec native

Accès au plug natif rotate.

Élément Type / comportement
Chemin Maya rotate
Retour de la propriété _ValuePlugProxy · .value: tuple
Type déclaré double3
Défaut déclaré (0.0, 0.0, 0.0)
Flags output, connectable
Lecture node.rotate.value

node.rotate_orderSpec native

Accès au plug natif rotateOrder.

Élément Type / comportement
Chemin Maya rotateOrder
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré enum
Défaut déclaré 0
Flags input, output, connectable, stored
Valeurs enum natives 0 = xyz, 1 = yzx, 2 = zxy, 3 = xzy, 4 = yxz, 5 = zyx
Lecture node.rotate_order.value
Affectation du descriptor node.rotate_order = value

node.rotate_xSpec native

Accès au plug natif rotate.rotateX.

Élément Type / comportement
Chemin Maya rotate.rotateX
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:angle
Défaut déclaré 0.0
Flags output, connectable
Lecture node.rotate_x.value

node.rotate_ySpec native

Accès au plug natif rotate.rotateY.

Élément Type / comportement
Chemin Maya rotate.rotateY
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:angle
Défaut déclaré 0.0
Flags output, connectable
Lecture node.rotate_y.value

node.rotate_zSpec native

Accès au plug natif rotate.rotateZ.

Élément Type / comportement
Chemin Maya rotate.rotateZ
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:angle
Défaut déclaré 0.0
Flags output, connectable
Lecture node.rotate_z.value

node.side_twistSpec native

Accès au plug natif sideTwist.

Élément Type / comportement
Chemin Maya sideTwist
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:angle
Défaut déclaré 0.0
Flags input, output, connectable, stored, keyable
Lecture node.side_twist.value
Affectation du descriptor node.side_twist = value

node.up_axisSpec native

Accès au plug natif upAxis.

Élément Type / comportement
Chemin Maya upAxis
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré enum
Défaut déclaré 2
Flags input, output, connectable, stored
Valeurs enum natives 0 = X, 1 = Y, 2 = Z
Lecture node.up_axis.value
Affectation du descriptor node.up_axis = value

node.up_twistSpec native

Accès au plug natif upTwist.

Élément Type / comportement
Chemin Maya upTwist
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré unit:angle
Défaut déclaré 0.0
Flags input, output, connectable, stored, keyable
Lecture node.up_twist.value
Affectation du descriptor node.up_twist = value

node.world_up_typeSpec native

Accès au plug natif worldUpType.

Élément Type / comportement
Chemin Maya worldUpType
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré enum
Défaut déclaré 3
Flags input, output, connectable, stored
Valeurs enum natives 0 = Scene Up, 1 = Object Up, 2 = Object Rotation Up, 3 = Vector, 4 = Normal
Lecture node.world_up_type.value
Affectation du descriptor node.world_up_type = value

node.world_up_vectorSpec native

Accès au plug natif worldUpVector.

Élément Type / comportement
Chemin Maya worldUpVector
Retour de la propriété _ValuePlugProxy · .value: tuple
Type déclaré double3
Défaut déclaré (0.0, 1.0, 0.0)
Flags input, output, connectable, stored
Lecture node.world_up_vector.value
Affectation du descriptor node.world_up_vector = value

node.world_up_vector_xSpec native

Accès au plug natif worldUpVector.worldUpVectorX.

Élément Type / comportement
Chemin Maya worldUpVector.worldUpVectorX
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré numeric:double
Défaut déclaré 0.0
Flags input, output, connectable, stored
Lecture node.world_up_vector_x.value
Affectation du descriptor node.world_up_vector_x = value

node.world_up_vector_ySpec native

Accès au plug natif worldUpVector.worldUpVectorY.

Élément Type / comportement
Chemin Maya worldUpVector.worldUpVectorY
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré numeric:double
Défaut déclaré 1.0
Flags input, output, connectable, stored
Lecture node.world_up_vector_y.value
Affectation du descriptor node.world_up_vector_y = value

node.world_up_vector_zSpec native

Accès au plug natif worldUpVector.worldUpVectorZ.

Élément Type / comportement
Chemin Maya worldUpVector.worldUpVectorZ
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré numeric:double
Défaut déclaré 0.0
Flags input, output, connectable, stored
Lecture node.world_up_vector_z.value
Affectation du descriptor node.world_up_vector_z = value
Specs héritées de DGNode6
Propriété Plug Maya Retour Description
message message None Plug de message du nœud ; sert aux connexions, sans valeur numérique.
frozen frozen _ValuePlugProxy · .value: bool État natif de gel de l’évaluation.
is_historically_interesting isHistoricallyInteresting _ValuePlugProxy · .value: int Niveau d’intérêt du nœud dans l’historique Maya.
bin_membership binMembership _ValuePlugProxy · .value: str Appartenance aux bins Maya.
caching_enabled caching _ValuePlugProxy · .value: bool Activation du cache natif du nœud.
caching_node_state nodeState _ValuePlugProxy · .value: int État d’évaluation natif nodeState.

Aucune méthode publique supplémentaire ; les méthodes héritées restent disponibles.

Méthodes héritées de DGNode7
Méthode Retour Description
create None Crée le nœud s’il est absent ; ne fait rien s’il existe déjà.
delete None Déconnecte les connexions live, détache le wrapper puis supprime le nœud.
snapshot DGSnapshot Capture et mémorise un dictionnaire d’identité et d’état SVD selon les specs.
snapshot_svd SVDSnapshot Capture Source / Value / Destinations pour la liste demandée.
svd SVDView Renvoie une vue live en lecture seule de la source, de la valeur et des destinations ; ce n’est pas une capture figée.
finalize None Applique toutes les sources, puis les valeurs libres, puis les destinations ; le dispatch FSET activé suit ces phases.
clear_attr_cache None Vide le cache d’attributs de cette instance ; ne supprime aucun nœud et ne vide pas le registre global de wrappers.
Méthodes héritées de Node2
Méthode Retour Description
has_fn(fn_type) bool Tester la compatibilité avec un function set Maya.
clear_node_registry() None Détacher les wrappers enregistrés et vider leur registre partagé.
Attribut Valeur / composition
NODE_TYPE 'motionPath'
SPEC_LAYERS get_dg_specs_all, get_motion_path_specs_all

NODE_REGISTRY et les autres attributs de classe non redéfinis restent hérités. Les types Snapshot exportés décrivent des dictionnaires ; utiliser node.snapshot() pour effectuer une capture.

Point Comportement
Identité Un nœud recréé sous le même nom est un nouvel objet Maya.
Création et géométrie Le constructeur ne crée rien ; appeler create() avant les opérations live.
Capture Les snapshots peuvent contenir des objets Maya ; ne pas supposer un JSON prêt à exporter ni une reconstruction complète de géométrie.
Utilisation Le wrapper expose le node ; il ne crée pas automatiquement d’animation ni de contrainte sur un transform. L’exemple lit la position à mi-longueur avec fraction_mode=True, sans modifier d’objet externe.

Exemple autonome pour le Script Editor Python de Maya. Dans mayapy, initialiser maya.standalone avant ce bloc. La démonstration crée ses propres nœuds et les supprime dans le finally.

from uuid import uuid4
import maya.api.OpenMaya as om
from weSkel.src.core.node.dg.motion_path.lib import MotionPath
from weSkel.src.core.node.dag.transform.lib import Transform
from weSkel.src.core.node.dag.curve.lib import Curve
suffix = uuid4().hex[:8]
parent = Transform("api_geometry_" + suffix)
node = MotionPath("api_motion_path_" + suffix)
try:
parent.create()
node.create()
curve_object = om.MFnNurbsCurve().create(
[om.MPoint(0, 0, 0), om.MPoint(1, 0, 0), om.MPoint(2, 0, 0), om.MPoint(3, 0, 0)],
[0, 0, 0, 1, 1, 1], 3, om.MFnNurbsCurve.kOpen, False, False, parent.mobject)
geometry = Curve(curve_object)
geometry.plugs["local"].connect_to(node.geometry_path.plug)
node.fraction_mode = True
node.plugs["uValue"].value = 0.5
node.follow = False
assert om.MVector(node.all_coordinates.value).isEquivalent(om.MVector(1.5, 0.0, 0.0), 1e-5)
print("MotionPath: connected geometry evaluation OK")
finally:
node.delete(snapshot=False)
parent.delete(snapshot=False)

Résultat attendu : MotionPath: connected geometry evaluation OK.

Checkpoint SDK 87c3486. Inventaire confronté aux classes chargées sous Maya 2025.3 et 2026.3 ; lectures et compatibilité précisées dans les fiches. Exemple exécuté dans les deux versions, y compris les parcours d’échec attendu explicitement signalés. Les méthodes ne sont pas toutes couvertes par cet exemple. Les limites indiquées restent présentes dans les sources ; le package compilé n’est pas validé par ces contrôles.