Article du jour 19 du calendrier de l'Avent Houdini 2016.
Le contenu est comme le titre ... À ce stade, ceux qui disent «Ah, haut» peuvent être invités à le fermer. Si vous connaissez une autre meilleure façon, je vous serais reconnaissant de bien vouloir me le dire en secret.
Jetons un œil à l'intérieur du module hou. De la liste retournée par dir, si "NodeType" est inclus, cela semble être le cas, donc Je vais enquêter comme ça.
for i in dir(hou):
if 'NodeType' in i:
print( i )
Puis
Il est revenu un peu. Il semble que la première moitié et _swigregister soient différents. Il est intéressant de noter qu'il existe des "Node Type" et "Node Type Category". Je pense que ce dernier est plus comme ça.
inspect.getmembers
Jetons maintenant un coup d'oeil en utilisant le module inspect getmembers.
import inspect
for i in inspect.getmembers(hou):
if 'NodeType' in i[0]:
print i
Le système NodeTypeCategory semble être une ** fonction intégrée ** à tous les niveaux. Ces fonctions renvoient un type "NodeTypeCategory".
type( hou.sopNodeTypeCategory() )
<class 'hou.NodeTypeCategory'>
NodeTypeCategory
Dans le type NodeTypeCategory, j'ai tapé n pour voir le nom pour le moment, puis "nodeTypes" a également été suggéré.
sopCategory.name()
'Sop'
sopCategory.nodeTypes()
Le nom est comme prévu, mais Le nodeTypes que j'ai trouvé en passant ressemble à ceci!
J'avais un peu peur, mais maintenant je peux vérifier les nœuds dans chaque catégorie de nœuds.
import inspect
for i in inspect.getmembers(hou):
if 'NodeType' in i[0]:
if inspect.isbuiltin(i[1]):
try:
nodetypecategory= i[1]()
except:
continue
nts = nodetypecategory.nodeTypes()
print( nodetypecategory.name(),len( nts ) )
L'essai sauf au milieu est fourni par les personnes swigregister pour provoquer une erreur. La deuxième ligne à partir du bas a reçu le dictionnaire qui était le résultat de nodeTypes, et a imprimé la longueur du dictionnaire avec le nom de la catégorie.
résultat…… ~ ~ Je comprends que chaque système Net n'a qu'un seul nœud, Y a-t-il autant de SOP, DOP, VOP, etc.? ?? ?? Est-ce vrai.
Je publierai le résultat pour le moment. C'est H15.5.632.
('ChopNet', 1)
('Chop', 103)
('CopNet', 1)
('Cop2', 145)
('Dop', 435)
('Object', 146)
('Particle', 1)
('Pop', 68)
('Driver', 42)
('Shop', 205)
('Sop', 430)
('VopNet', 18)
('Vop', 816)
J'ai décidé de comparer ** CHOP **, qui semble relativement facile à compter. Le résultat du script est "103" comme ci-dessus.
chopNodes = hou.chopNodeTypeCategory().nodeTypes()
sorted( chopNodes.keys() )
Sur l'interface utilisateur Houdini ...
4 colonnes, 25 lignes. ** Vous pouvez même multiplier **
Je ne trouve pas 3 nœuds " for
"," popnet
" et " vop phop type
"sur l'interface utilisateur.
Cependant, si vous regardez le document en ligne à partir de H12, il y a for
CHOP, donc
http://sidefx.jp/doc/nodes/chop/for.html
On peut en déduire qu'ils sont laissés pour compte pour maintenir la compatibilité avec les données de scène passées.
Est-ce ainsi que la quantité de VOP est si grande?
Alors, comment filtrer uniquement ce nœud avec un script? Il semble que ce sera mes prochains devoirs.
J'ai été aidé par la suggestion. Pratique! !!
Vient ensuite Yone80 @ github "Transformer pour adapter un polygone carré".
Recommended Posts