Houdini Adventskalender 2016 Tag 19 Artikel.
Der Inhalt ist wie der Titel, also ... An diesem Punkt können diejenigen, die "Ah, hoch" sagen, gebeten werden, es zu schließen. Wenn Sie einen anderen besseren Weg kennen, wäre ich Ihnen dankbar, wenn Sie es mir heimlich sagen könnten.
Werfen wir einen Blick in das Hou-Modul. Von der von dir zurückgegebenen Liste scheint es so zu sein, wenn "NodeType" enthalten ist Ich werde es so untersuchen.
for i in dir(hou):
if 'NodeType' in i:
print( i )
Dann
Es ist ziemlich viel zurückgekehrt. Es scheint, dass die erste Hälfte und _swigregister unterschiedlich sind. Es ist interessant, dass es "Knotentyp" und "Knotentypkategorie" gibt. Ich denke, dass Letzteres eher so ist.
inspect.getmembers
Schauen wir uns nun die getmembers des Inspektionsmoduls an.
import inspect
for i in inspect.getmembers(hou):
if 'NodeType' in i[0]:
print i
Das NodeTypeCategory-System scheint eine ** integrierte Funktion ** auf der ganzen Linie zu sein. Diese Funktionen geben den Typ "NodeTypeCategory" zurück.
type( hou.sopNodeTypeCategory() )
<class 'hou.NodeTypeCategory'>
NodeTypeCategory
Im Typ NodeTypeCategory habe ich n eingegeben, um den Namen vorerst anzuzeigen, und dann wurde auch "nodeTypes" vorgeschlagen.
sopCategory.name()
'Sop'
sopCategory.nodeTypes()
Der Name ist wie erwartet, aber Die NodeTypes, die ich übrigens gefunden habe, sehen so aus!
Ich hatte ein wenig Angst, aber jetzt kann ich die Knoten in jeder Knotenkategorie überprüfen.
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 ) )
Der Versuch - außer in der Mitte - wird von den Personen des Swigregisters bereitgestellt, um einen Fehler zu verursachen. Die zweite Zeile von unten empfing das Wörterbuch, das das Ergebnis von nodeTypes war, und druckte die Länge des Wörterbuchs zusammen mit dem Kategorienamen.
Ergebnis…… ~ ~ Ich verstehe, dass jedes Net-System nur einen Knoten hat, Gibt es so viel SOP, DOP, VOP usw.? ?? ?? Ist das so.
Ich werde das Ergebnis vorerst veröffentlichen. Es ist 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)
Ich habe mich entschlossen, ** CHOP ** zu vergleichen, was relativ einfach zu zählen scheint. Das Ergebnis des Skripts ist "103" wie oben.
chopNodes = hou.chopNodeTypeCategory().nodeTypes()
sorted( chopNodes.keys() )
Auf der Houdini-Benutzeroberfläche ...
4 Spalten, 25 Zeilen. ** Sie können sogar multiplizieren **
Ich kann 3 Knoten " for
"," popnet
" und " vop phop type
"auf der Benutzeroberfläche nicht finden.
Wenn Sie sich jedoch die Online-Dokumentation ab H12 ansehen, gibt es "for" CHOP http://sidefx.jp/doc/nodes/chop/for.html Es kann gefolgert werden, dass diese zurückgelassen werden, um die Kompatibilität mit früheren Szenendaten aufrechtzuerhalten. Ist es so, dass die Menge an VOP so groß ist?
Wie filtert man also nur diesen Knoten mit einem Skript? Es scheint, dass es meine nächsten Hausaufgaben sein werden.
Der Vorschlag hat mir geholfen. Praktisch! !!
Als nächstes folgt Yone80 @ githubs "Transformieren, um ein quadratisches Polygon anzupassen".