from weSkel.src.core.node.dg.mult_matrix.lib import MultMatrixÀ 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.
Produit ordonné de plusieurs matrices.
from weSkel.src.core.node.dg.mult_matrix.lib import MultMatrixÀ 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 | MultMatrix |
| Module | weSkel.src.core.node.dg.mult_matrix.lib |
| Type Maya | multMatrix |
| 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 : MultMatrix(node) → MultMatrix.
| 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.
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é. |
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 |
|---|---|---|
matrix_in |
matrixIn |
TypedArrayProxy |
matrix_sum |
matrixSum |
_ValuePlugProxy · .value: MMatrix |
Accès au plug natif matrixIn.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | matrixIn |
| Retour de la propriété | TypedArrayProxy |
| Type déclaré | array:typed:matrix |
| Défaut déclaré | () |
| Flags | array, input, output, connectable, stored, keyable |
| Plug sous-jacent | node.matrix_in.plug |
Accès au plug natif matrixSum.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | matrixSum |
| 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 | output, connectable |
| Lecture | node.matrix_sum.value |
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.
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. |
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 |
'multMatrix' |
SPEC_LAYERS |
get_dg_specs_all, get_mult_matrix_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 | L’ordre des indices influence le produit. Les indices utilisés dans l’exemple sont des indices logiques Maya. |
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 uuid4import maya.api.OpenMaya as omfrom weSkel.src.core.node.dg.mult_matrix.lib import MultMatrix
node = MultMatrix("api_mult_matrix_" + uuid4().hex[:8])try: node.create() matrix = om.MTransformationMatrix() matrix.setTranslation(om.MVector(1.0, 2.0, 3.0), om.MSpace.kTransform) node.plugs["matrixIn"][0].value = matrix.asMatrix() node.plugs["matrixIn"][1].value = matrix.asMatrix().inverse() assert node.matrix_sum.value.isEquivalent(om.MMatrix(), 1e-6) print("MultMatrix: native evaluation OK")finally: node.delete(snapshot=False)Résultat attendu : MultMatrix: native 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.