2017-09-28 1 views
0

J'ai déjà compilé un script pour obtenir une fenêtre spécifique, la chaîne de la fenêtre est 'gradientAttributeEditor' et je voudrais accéder à l'éditeur pour y créer quelques points par script. Mais je ne suis pas sûr de comment.Maya Python: Éditer des points dans un éditeur d'attributs de dégradé

import maya.cmds as cmds 

def rampEditor(): 

    windows = cmds.lsUI(windows = True) 
    for x in windows: 
     if not x == "gradientAttributeEditor": 
      windows.remove(x) 
     else: 
      editor = x 

    print(windows) 

rampEditor() 

Ceci place l'attribut dégradAttributeEditor dans x. Mais maintenant obtenir le nom de définir quelques points, est un peu difficile pour moi:/

Si certains ne sait pas comment ouvrir le gradientAttributeEditor: Créer un objet primitif, sélectionnez et sous l'onglet FX, allez dans le menu déroulant nParticle et cliquez sur remplir l'objet. Si vous sélectionnez maintenant particleShape et dois Granulométriques et lcik la petite flèche

This is the gradientAttributeEditor

+0

Je ne suis pas sûr que vous demandez; Voulez-vous créer des points de contrôle dans l'éditeur de dégradés, ou voulez-vous créer des "particules", comme il semble d'après la réponse de @ Achayan? – mapofemergence

+0

Je veux un script qui cherche un gradientEditor ouvert et par un clic de bouton, il fait une courbe exponentielle. Le problème est que je ne sais pas comment accéder à l'éditeur. Le script doit être aussi universel que possible, donc ne pas seulement travailler pour particleSize ou wahtever, plus pour le gradientEditor qui est ouvert en ce moment. J'espère que cela éclaircira certaines choses. –

Répondre

1

Pour créer le point que vous avez vraiment ne pas besoin d'utiliser la fenêtre, je pense .. il suffit d'utiliser la commande elle-même?

par exemple:

MC.setAttr("nParticleShape1.radiusScale[0].radiusScale_Position", 0.122) 
MC.setAttr("nParticleShape1.radiusScale[0].radiusScale_FloatValue", 0.460) 

MC.setAttr("nParticleShape1.radiusScale[1].radiusScale_Position", 0.5) 
MC.setAttr("nParticleShape1.radiusScale[1].radiusScale_FloatValue", 0.1)