from weSkel.src.core.node.dg.remap_value.lib import RemapValueÀ 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.
Remappage d’une valeur par rampes scalaires et couleurs.
from weSkel.src.core.node.dg.remap_value.lib import RemapValueÀ 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 | RemapValue |
| Module | weSkel.src.core.node.dg.remap_value.lib |
| Type Maya | remapValue |
| 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 : RemapValue(node) → RemapValue.
| 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 |
|---|---|---|
color |
color |
ArrayCompoundProxy |
color_position |
color[].color_Position |
IndexedPathProxy |
color_color |
color[].color_Color |
IndexedPathProxy |
color_color_r |
color[].color_Color.color_ColorR |
IndexedPathProxy |
color_color_g |
color[].color_Color.color_ColorG |
IndexedPathProxy |
color_color_b |
color[].color_Color.color_ColorB |
IndexedPathProxy |
color_interp |
color[].color_Interp |
IndexedPathProxy |
input_max |
inputMax |
_ValuePlugProxy · .value: float |
input_min |
inputMin |
_ValuePlugProxy · .value: float |
input_value |
inputValue |
_ValuePlugProxy · .value: float |
out_color |
outColor |
_ValuePlugProxy · .value: tuple |
out_color_r |
outColor.outColorR |
_ValuePlugProxy · .value: float |
out_color_g |
outColor.outColorG |
_ValuePlugProxy · .value: float |
out_color_b |
outColor.outColorB |
_ValuePlugProxy · .value: float |
out_value |
outValue |
_ValuePlugProxy · .value: float |
output_max |
outputMax |
_ValuePlugProxy · .value: float |
output_min |
outputMin |
_ValuePlugProxy · .value: float |
value |
value |
ArrayCompoundProxy |
value_position |
value[].value_Position |
IndexedPathProxy |
value_float_value |
value[].value_FloatValue |
IndexedPathProxy |
value_interp |
value[].value_Interp |
IndexedPathProxy |
Accès au plug natif color.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | color |
| Retour de la propriété | ArrayCompoundProxy |
| Type déclaré | array:compound |
| Défaut déclaré | () |
| Flags | array, input, output, connectable, stored, keyable |
| Plug sous-jacent | node.color.plug |
Accès au plug natif color[].color_Position.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | color[].color_Position |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Chemin explicite vérifié · Plug | node.plugs["color"][i1]["color_Position"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'color_Position' not found under 'api_RemapValue.color[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif color[].color_Color.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | color[].color_Color |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | float3 |
| Défaut déclaré | () |
| Flags | input, output, connectable, stored, keyable |
| Chemin explicite vérifié · Plug | node.plugs["color"][i1]["color_Color"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'color_Color' not found under 'api_RemapValue.color[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif color[].color_Color.color_ColorR.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | color[].color_Color.color_ColorR |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Chemin explicite vérifié · Plug | node.plugs["color"][i1]["color_Color"]["color_ColorR"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'color_Color' not found under 'api_RemapValue.color[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif color[].color_Color.color_ColorG.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | color[].color_Color.color_ColorG |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Chemin explicite vérifié · Plug | node.plugs["color"][i1]["color_Color"]["color_ColorG"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'color_Color' not found under 'api_RemapValue.color[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif color[].color_Color.color_ColorB.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | color[].color_Color.color_ColorB |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Chemin explicite vérifié · Plug | node.plugs["color"][i1]["color_Color"]["color_ColorB"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'color_Color' not found under 'api_RemapValue.color[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif color[].color_Interp.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | color[].color_Interp |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | enum |
| Défaut déclaré | 0 |
| Flags | input, output, connectable, stored, keyable |
| Valeurs enum natives | 0 = None, 1 = Linear, 2 = Smooth, 3 = Spline |
| Chemin explicite vérifié · Plug | node.plugs["color"][i1]["color_Interp"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'color_Interp' not found under 'api_RemapValue.color[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif inputMax.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | inputMax |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 1.0 |
| Flags | input, output, connectable, stored, keyable |
| Lecture | node.input_max.value |
| Affectation du descriptor | node.input_max = value |
Accès au plug natif inputMin.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | inputMin |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Lecture | node.input_min.value |
| Affectation du descriptor | node.input_min = value |
Accès au plug natif inputValue.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | inputValue |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Lecture | node.input_value.value |
| Affectation du descriptor | node.input_value = value |
Accès au plug natif outColor.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | outColor |
| Retour de la propriété | _ValuePlugProxy · .value: tuple |
| Type déclaré | float3 |
| Défaut déclaré | () |
| Flags | output, connectable |
| Lecture | node.out_color.value |
Accès au plug natif outColor.outColorR.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | outColor.outColorR |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | output, connectable |
| Lecture | node.out_color_r.value |
Accès au plug natif outColor.outColorG.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | outColor.outColorG |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | output, connectable |
| Lecture | node.out_color_g.value |
Accès au plug natif outColor.outColorB.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | outColor.outColorB |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | output, connectable |
| Lecture | node.out_color_b.value |
Accès au plug natif outValue.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | outValue |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | output, connectable |
| Lecture | node.out_value.value |
Accès au plug natif outputMax.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | outputMax |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 1.0 |
| Flags | input, output, connectable, stored, keyable |
| Lecture | node.output_max.value |
| Affectation du descriptor | node.output_max = value |
Accès au plug natif outputMin.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | outputMin |
| Retour de la propriété | _ValuePlugProxy · .value: float |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Lecture | node.output_min.value |
| Affectation du descriptor | node.output_min = value |
Accès au plug natif value.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | value |
| Retour de la propriété | ArrayCompoundProxy |
| Type déclaré | array:compound |
| Défaut déclaré | () |
| Flags | array, input, output, connectable, stored, keyable |
| Plug sous-jacent | node.value.plug |
Accès au plug natif value[].value_Position.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | value[].value_Position |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Chemin explicite vérifié · Plug | node.plugs["value"][i1]["value_Position"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'value_Position' not found under 'api_RemapValue.value[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif value[].value_FloatValue.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | value[].value_FloatValue |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | numeric:float |
| Défaut déclaré | 0.0 |
| Flags | input, output, connectable, stored, keyable |
| Chemin explicite vérifié · Plug | node.plugs["value"][i1]["value_FloatValue"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'value_FloatValue' not found under 'api_RemapValue.value[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
Accès au plug natif value[].value_Interp.
| Élément | Type / comportement |
|---|---|
| Chemin Maya | value[].value_Interp |
| Retour de la propriété | IndexedPathProxy |
| Type déclaré | enum |
| Défaut déclaré | 0 |
| Flags | input, output, connectable, stored, keyable |
| Valeurs enum natives | 0 = None, 1 = Linear, 2 = Smooth, 3 = Spline |
| Chemin explicite vérifié · Plug | node.plugs["value"][i1]["value_Interp"] |
Limite constatée sur le cas vérifié : AttributeError: Child 'value_Interp' not found under 'api_RemapValue.value[0]'. Les indices sont des indices logiques Maya ; adapter leur valeur aux éléments existants ou souhaités.
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 |
'remapValue' |
SPEC_LAYERS |
get_dg_specs_all, get_remap_value_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. |
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 uuid4from weSkel.src.core.node.dg.remap_value.lib import RemapValue
node = RemapValue("api_remap_value_" + uuid4().hex[:8])try: node.create() node.input_min = 0.0 node.input_max = 1.0 node.output_min = 0.0 node.output_max = 10.0 for index, position in enumerate((0.0, 1.0)): node.plugs["value"][index]["value_Position"].value = position node.plugs["value"][index]["value_FloatValue"].value = position node.plugs["value"][index]["value_Interp"].value = 1 node.input_value = 0.5 assert abs(node.out_value.value - 5.0) < 1e-6 print("RemapValue: native evaluation OK")finally: node.delete(snapshot=False)Résultat attendu : RemapValue: 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.