[PYTHON] Vérifiez les informations de connexion d'attribut depuis le nœud Maya (avant de détruire)

Puisqu'il s'agit de mon premier article, j'aimerais aborder un peu de contenu. En fait, il existe peut-être un meilleur moyen, auquel cas je vous serais reconnaissant de bien vouloir fournir des informations.

introduction

Cette fois, je veux détecter les attributs qui sont contraints ou connectés. La raison de ce contenu dans cette rubrique est que vous utilisez listAttr pour importer des informations d'attribut. Cependant, même si vous appliquez isConnection à ceci et le vérifiez, la contrainte et l'expression peuvent être détectées. S'il est connecté par connexion, il passera.

Supposons alors que vous ayez contraint l'attrbute connectée normalement. Bien sûr, lorsque vous gravez l'animation, la connexion sera déconnectée.

C'est un problème.

J'ai vraiment des ennuis.

La qualité de la plate-forme peut changer. (Parfois, un étranger peut détruire la plate-forme avec.)

C'est pourquoi il est détecté correctement lors d'une contrainte ou lors d'un traitement collectif avec un script, etc. S'il semble connecté, veuillez l'exclure de la cible! J'ai fait ce contenu avec l'intention. Il est normal d'en faire une spécification de vérificateur et de donner un avertissement.

Je vais donc entrer dans la partie principale.

Essayez en fait

connection = pm.listConnections(node, connections=True)※1
if connection:
    for _c in connection:
        if (not isinstance(_c[0], pm.general.Attribute)※2
                or isinstance(_c[1], pm.nodetypes.AnimCurveTA)
                or not _c[0].isDestination()):
            continue
    #Les attributs qui contournent les conditions ci-dessus sont des attributs dépendants

Oui, j'ai soudainement collé le script, mais pour le moment, les deux lignes ci-dessus (* 1) n'ont pas d'importance. Je cherche juste à obtenir toutes les connexions dans le nœud et à voir si je les ai.

Il ne collecte que les attributs d'attribut de listAttr, mais listConnections est très puissant. Si c'est vraiment connecté, j'obtiendrai n'importe quoi, alors lavons-le d'ici pour le moment.

Tout d'abord, les informations obtenues par listConnection ont naturellement certaines règles.

([nt.Attribute(name), nt.contraint(name)], [hoge, hage]...etc)

Cela ressemble à ceci, j'ai écrit le contenu de manière appropriée, alors ne vous inquiétez pas des détails. Vous pouvez obtenir la partie de liste à l'intérieur en la tournant avec l'instruction for.

Cette partie: [nt.Attribute(name)※A, nt.contraint(name)※B]

Dans cette liste

Ce sera.

Maintenant que vous avez extrait les informations jusqu'à présent, il ne vous reste plus qu'à vérifier le statut. La condition cette fois est l'expression conditionnelle (* 2) décrite dans if in for.

if (not isinstance(_c[0], pm.general.Attribute)
        or isinstance(_c[1], pm.nodetypes.AnimCurveTA)
        or not _c[0].isDestination()):

Expliquez ce que vous faites

Utilisez + isinstance pour vérifier si les informations du côté nœud sont un attribut.

C'est un peu de force brute, mais c'est tout.

finalement

Le contenu lui-même est très simple, donc je suis sûr que vous faites quelque chose de similaire d'une certaine manière.

Cependant, si vous souhaitez effectuer un traitement destructeur sur les données d'autres entreprises, Je vous serais très reconnaissant de bien vouloir refaire un processus similaire.

Il existe de nombreuses autres façons de vérifier cela. Cette fois, j'ai pris celui utilisé pour les contraintes, les connexions et les rigs comme exemple, Je pense qu'il y a quelque chose de similaire autour de la texture.

Si vous avez une certaine expérience, je pense que vous l'avez étudiée correctement et en avez fait une forme qui ne pose aucun problème. Si vous commencez tout juste à étudier les scripts! Si tel est le cas, j'aimerais que vous la traitiez aussi soigneusement que possible.

S'il vous plaît laissez-moi savoir si vous en avez.

Recommended Posts

Vérifiez les informations de connexion d'attribut depuis le nœud Maya (avant de détruire)
Scraping avec Python - Obtenez des informations sur les attributs des fiducies d'investissement à partir du site Web de l'Investment Trusts Association