Houdini Pythonメモ : XYZ方向のラインを自動生成
obj直下にgeoノードを作成し、その中に(1, 0, 0), (0, 1, 0), (0, 0, 1)方向のラインを作成するHoudini Python
https://gyazo.com/ab98e21d7731a669ecbc9e9feae1e284
https://gyazo.com/3444536df2668f79a6d4f89e96e5b09c
HoudiniPythonコード
code:CreateLines(python)
NEW_NODE_POSITION = hou.Vector2(4, -4); # ノード位置
CHILD_NODE_INTERVAL_X = 2.0; # 子ノードの配置間隔
CHILD_NODE_INTERVAL_Y = 2.0; # 子ノードの配置間隔
import hou;
# ノード作成
rootNode = hou.node("obj/three_lines") or hou.node("/obj").createNode("geo");
rootNode.setName("three_lines", True); #setName(name, unique_name=False) rootNode.setPosition(NEW_NODE_POSITION); # 位置の変更
# 子ノードをすべて削除
for n in rootNode.children():
n.destroy()
# lineノード作成
line_x = rootNode.createNode("line");
line_x.setName("line_x");
line_x.parmTuple('dir').set((1, 0, 0)); # 配列パラメータdirの設定
line_x.setPosition(hou.Vector2(0, 0)); # ノード位置 変更
# lineノード作成
line_y = rootNode.createNode("line");
line_y.setName("line_y");
line_y.parmTuple('dir').set((0, 1, 0)); # 配列パラメータdirの設定
line_y.setPosition(hou.Vector2(CHILD_NODE_INTERVAL_X, 0)); # ノード位置 変更
# lineノード作成
line_z = rootNode.createNode("line");
line_z.setName("line_z");
line_z.parmTuple('dir').set((0, 0, 1)); # 配列パラメータdirの設定
line_z.setPosition(hou.Vector2(CHILD_NODE_INTERVAL_X * 2, 0)); # ノード位置 変更
# mergeノード作成
merge = rootNode.createNode("merge");
merge.setPosition(hou.Vector2(CHILD_NODE_INTERVAL_X, -CHILD_NODE_INTERVAL_Y)); # ノード位置 変更
for i,node in enumerate((line_x, line_y, line_z)):
node.setRenderFlag(False)
merge.setInput(i,node) # mergeノードへlineノードを接続していく
merge.setDisplayFlag(True);
merge.setRenderFlag(True)
# net_editor = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
# net_editor.setPwd(rootNode);
参考リンク
hou で覚える Houdini
NetworkEditorをPythonで操作する
Houdini:Python memo Part02