Inheritance |
|
This class specializes the generic hou.NodeType class for Houdini OP node types. This subclass adds information about digital assets, instances, and registration information that is specific to Houdini’s OP node types.
A digital asset can define a node type. In this case the nodes contained inside the asset’s definition implement the node type’s algorithm, and you can customize the parameters in the node type using the Type Properties dialog,
Methods ¶
instances()
→ tuple
of hou.Node
Return a tuple of all the nodes of this type in the current scene.
sectionData(section_name)
→ str
Return the data stored in the specified section of the HDA definition corresponding to this node type. If the HDA definition doesn’t contain the specified section or this node type doesn’t correspond to a digital asset, return an empty string.
binarySectionData(section_name)
→ bytes
Only available in Python 3.
Return a bytes
object containing the data stored in the specified section
of the HDA definition corresponding to this node type. Ideal for sections
containing binary data. If the HDA definition doesn’t contain the
specified section or this node type doesn’t correspond to a digital asset,
return an empty bytes
object.
hasSectionData(section_name)
→ bool
Return True if this node type corresponds to a digital asset whose definition contains the section. Otherwise, return False.
definition()
→ hou.HDADefinition
If this node type corresponds to a digital asset, return the hou.HDADefinition. Otherwise, return None.
allInstalledDefinitions()
→ tuple
of hou.HDADefinition
Search all installed operator type libraries and return a tuple of available hou.HDADefinition objects providing definitions for this node type.
Houdini allows multiple otl files to be loaded at the same time that each contain definitions for the same node type. The definition in use is called the current definition. See also hou.HDADefinition.isCurrent.
hdaModule()
→ hou.HDAModule
Return the HDAModule object for this node type. If the type is not for a digital asset, the module is empty. Otherwise, the module contains the functions, constants, classes, etc. in the user-defined “PythonModule” section of the digital asset.
You can use hou.Node.hdaModule as a shortcut to access the HDAModule from a node instance.
See hou.HDAModule for more information.
hdaViewerStateModule()
→ hou.HDAViewerStateModule
This method creates an instance of hou.HDAViewerStateModule for this node type. Returns an empty object if the type is not for a digital asset.
See also hou.Node.hdaViewerStateModule.
hdaViewerHandleModule()
→ hou.HDAViewerHandleModule
This method creates an instance of hou.HDAViewerHandleModule for this node type. Returns an empty object if the type is not for a digital asset.
See also hou.Node.hdaViewerHandleModule.
source()
→ hou.nodeTypeSource enum value
Return a hou.nodeTypeSource enumerated value to indicate if this node type is implemented in VEX, RSL, or the HDK (in C++), or if it is a built-in node type that ships with Houdini.
>>> obj_cat = hou.objNodeTypeCategory() >>> sop_cat = hou.sopNodeTypeCategory() >>> hou.nodeType(obj_cat, "biped_auto_rig").source() nodeTypeSource.Subnet >>> hou.nodeType(sop_cat, "mountain").source() nodeTypeSource.VexCode
sourcePath()
→ str
Return the path to the source for this node type, or "Internal"
if it
is a built-in node type. If the node was created using the HDK, return
the path to the shared object/dll for the node type.
>>> obj_cat = hou.objNodeTypeCategory() >>> hou.nodeType(obj_cat, "biped_auto_rig").sourcePath() 'oplib:/Object/biped_auto_rig?Object/biped_auto_rig' >>> hou.nodeType(obj_cat, "geo").sourcePath() 'Internal'
sourceNetwork()
→ hou.Node or None
If this node type is a digital asset, return the Node instance whose contents define the digital asset. Otherwise, return None.
uninstallFromPath()
Remove this node and any references to it from a particular filesystem installation path. For example, this method will remove vex files, icons, dialog scripts, help cards, etc. for custom installed old-style non-otl node types.
If you call this method on built-in node types, it will have no effect.
node_type.uninstallFromPath(hou.homeHoudiniDirectory())
See also hou.hda.uninstallFile and hou.HDADefinition.destroy.
aliases()
→ tuple
of str
Return all current aliases for this node type. See hou.NodeType.addAlias for an example.
addAlias(alias)
Add an alias for this node type. You can use this alias when creating new nodes.
>>> geo_type = hou.nodeType(hou.objNodeTypeCategory(), "geo") >>> geo_type.addAlias("transformable") >>> geo_type.aliases() ('transformable',) >>> hou.node("/obj").createNode("transformable") <hou.ObjNode of type geo at /obj/geo1>
removeAlias(alias)
Remove an alias for this node type.
setHidden(hidden)
Set whether or not this node type appears in the tab menu. See also hou.NodeType.hidden.
deprecated()
→ bool
Return whether or not this node type has been marked deprecated. See also hou.NodeType.deprecationInfo.
deprecationInfo()
→ dict
of str
to str
or hou.NodeType
If the node type has been marked deprecated, this call will return the deprecation information as a dictionary.
The currently supported keys are:
'version'
The version of Houdini where this operator got deprecated. The form is either major.minor, or major.minor.build (e.g. 14.0 or 14.5.122). This item is always present.
'new_type'
The new node type this node was replaced with. This can be used to create a system of automatic node replacement.
'reason'
This lists the reason given for the deprecation, in case there is no new node to replace with.
Methods from hou.NodeType ¶
name()
→ str
このノードタイプの名前を返します。例えば、ジオメトリオブジェクトタイプに関しては、その名前は“geo”です。 その名前とそのノードタイプカテゴリを一緒に使用することで、ノードタイプを固有に識別します。
nameComponents()
→ tuple
of str
フルノードタイプ名を構成したノードタイプ名コンポーネントのタプルを返します。 そのタプル内のコンポーネントは、次の順番になっています: スコープネットワークタイプ、ノードタイプネームスペース、ノードタイプコア名、バージョン。
# フル名からコンポーネントに分解します >>> node_type = hou.nodeType(hou.dopNodeTypeCategory(), 'pyrosolver::2.0') >>> node_type.nameComponents() ('', '', 'pyrosolver', '2.0')
nameWithCategory()
→ str
名前の頭にノードタイプカテゴリを付けてノードタイプ名を返します。
例えば、ジオメトリオブジェクトに関しては、この関数は、"Object/geo"
を返します。
カテゴリ名とタイプ名を一緒に使用することで、ノードタイプを固有に識別します。
>>> hou.nodeType(hou.objNodeTypeCategory(), "geo").nameWithCategory() 'Object/geo'
namespaceOrder()
→ tuple
of str
ネームスペース優先順位の下降順で並べ替えられたノートタイプ名リストを返します。 このリスト内のノードタイプは、このノードタイプと同じベースタイプを持ちます。 これらのノードタイプのネームスペースやバージョンは異なります。
Houdiniは、hou.Node.createNode()
内で曖昧なタイプ名を解決する時に、このリストを使用します。
つまり、そのリスト内でその関数内で指定した名前に一致した1番目のエントリーを使用します。
# フル名からコンポーネントに分解します >>> node_type = hou.nodeType(hou.dopNodeTypeCategory(), 'pyrosolver') >>> node_type.namespaceOrder() ('pyrosolver::2.0', 'pyrosolver')
description()
→ str
タブメニューに表示されるこのノードタイプの記述を返します。
例えば、ジオメトリオブジェクトに関しては、その記述は"Geometry"
です。
この記述は、Houdiniではオペレータラベルとも呼ばれています。
category()
→ hou.NodeTypeCategory
このノードタイプのノードタイプカテゴリを返します。 例えば、ジオメトリオブジェクトに関しては、その結果は、hou.objNodeTypeCategory()で返されるオブジェクトになります。
parmTemplateGroup()
→ hou.ParmTemplateGroup
このノードタイプのパラメータインターフェースに相当するparmテンプレートのグループを返します。
parmテンプレートグループの詳細は、hou.ParmTemplateGroupを参照してください。 デジタルアセットで定義したノードタイプのパラメータインターフェースを変更するには、 hou.HDADefinition.setParmTemplateGroupを参照してください。
parmTemplates()
→ tuple
of hou.ParmTemplate
このノードタイプのパラメータのparmテンプレートのタプルを返します。 個々のノードインスタンスのSpareパラメータは、ノードタイプとは関係がないので、このタプルに含まれないことに注意してください。
minNumInputs()
→ int
このタイプのノードが持つことができる入力の最小数を返します。この数の入力が接続されていないと、ノードはエラーを生成します。
maxNumInputs()
→ int
このタイプのノードが持つことができる入力の最大数を返します。 このノードタイプの入力数が無制限(例えば、merge SOP)になっていれば、9999を返します。
maxNumOutputs()
→ int
このタイプのノードが持つことができる出力の最大数を返します。 ほとんどのノードタイプの出力の数は1つだけですが、Split DOPのようないくつかのノードタイプでは、複数の出力を持つことができます。
hasEditableInputData()
→ bool
このノードタイプのノードが、ユーザ側でデータとそのノードの各入力を関連付けることが可能であればTrueを返します。 このデータの目的は、あるノードタイプを他のノードタイプに変更することです。 このデータは、hou.Node.editableInputNameやhou.Node.setEditableInputNameなどのメソッドを使ってアクセスすることができます。
hasPermanentUserDefaults()
→ bool
ユーザがこのノードタイプにパーマネントデフォルトを設定しているかどうか返します。
hou.Parm.hasTemporaryDefaultsも参照してください。
hasUnorderedInputs()
→ bool
このノードタイプが、その接続入力内にギャップを持つことができないかどうか返します。 例えば、Cookie SOPには2つの入力があり、2番目の入力のみが接続可能になっているので、このメソッドFalseを返します。 しかし、Merge SOPは入力にギャップを持つことができないので、このメソッドはTrueを返します。
hou.Node.inputs, hou.Node.inputConnections, hou.Node.inputConnectorsも参照してください。
isGenerator()
→ bool
このノードタイプがジェネレータとしてフラグが立っているかどうか返します。 例えば、Grid SOPは新しくジオメトリを生成するのに対し、Subdivide SOPは新しくジオメトリを生成しない代わりに、受け取ったジオメトリを処理します。 hou.NodeType.minNumInputsも参照してください。
isManager(include_management_types=True)
→ bool
このNoteTypeがマネージャーかどうか返します。
マネージャーノードインスタンスは、/obj
, /out
, /part
, /ch
, /shop
, /img
, /vex
です。
include_management_types
をTrueに設定すると、このメソッドは、このノードタイプがSHOPネットワークやVOPネットワークなどのような管理ノードタイプであればTrueを返します。
icon()
→ str
このノードタイプのアイコンの名前またはパスを返します。 Houdiniに元から入っているノードタイプは、フルパスの代わりに名前を使用していて、 Houdiniは、検索パスを使用して、その名前のアイコンの場所を特定します。
isReadable()
→ bool
このノードタイプが読み込み可能ならTrueを返し、そうでないならFalseを返します。 読み込み可能なノードタイプとは、そこからノードインスタンスを作成することができるノードタイプのことです。
isWritable()
→ bool
このノードタイプが書き込み可能ならTrueを返し、そうでないならFalseを返します。 書き込み可能なノードタイプとは、そこに変更を加えることができるノードタイプのことです。
areContentsViewable()
→ bool
ノードタイプ内に含まれているノードネットワークが閲覧可能ならTrueを返し、そうでないならFalseを返します。
containedNodeTypes()
→ tuple
of str
HDAに含まれているすべてのNodeType名のタプルを返します。
childTypeCategory()
→ hou.NodeTypeCategory or None
このNodeTypeの子のNodeTypeCategoryを返します。このNodeTypeに子を持つことができない場合はNone
を返します。
embeddedHelp()
→ str
このノードタイプに埋め込まれたヘルプテキストを返します。 埋め込みヘルプが存在しなければ空っぽの文字列を返します。
埋め込みヘルプは、以下のように2つの異なる場所で検索されます:
-
HDKノードなら、その
OP_Operator::getHDKHelp()
オーバーライドで指定されたテキスト -
HDAノードなら、それに相当するhou.HDADefinition.embeddedHelp()の結果
helpUrl()
→ str
このノードタイプのドキュメントの保存先であるURL、例えば、ファイル名やHDAセクションパスを返します。 ノードタイプのドキュメントの場所が見つからなかった場合は、空っぽの文字列を返します。
defaultHelpUrl()
→ str
ヘルプシステムがノードタイプドキュメントの保存先である実際の場所を調べようとする時の汎用URLを返します。 この汎用URLの書式は“operator:table/optypename”となっており、ネームスペースやバージョンなどの余分な情報を含んでいることがあります。
defaultColor()
→ hou.Color
ノードのhou.nodeFlag.ColorDefaultフラグが設定されている時に、ネットワークビューでそのタイプのノードの表示に使用されるカラーを返します。
setDefaultColor(color)
ノードのhou.nodeFlag.ColorDefaultフラグが設定されている時に、ネットワークビューでそのタイプのノードの表示に使用するカラーを設定します。
そのタイプ固有のデフォルトを削除するには、color
パラメータにNoneを渡します。
defaultShape()
→ str
ノードのシェイプが明示的に割り当てられていない時に、ネットワークビューでそのタイプのノードの表示に使用されるシェイプの名前を返します。
setDefaultShape(shape)
ノードのシェイプが明示的に割り当てられていない時に、ネットワークビューでそのタイプのノードの表示に使用するシェイプの名前を設定します。
そのタイプ固有のデフォルトを削除するには、shape
パラメータにNoneを渡します。