On this page |
概要 ¶
このサンプルは、(例えば、インターネットのニュースフィードのように、内容が更新されていく)リンクのリストを反復するシェルフツールを作成して、 そのリンクのテキストを含んだオブジェクトを作成します。 これは、“pick script”(オブジェクトが選択された時に実行するスクリプト)を設定し、オブジェクトを選択した時に各オブジェクトのリンクURLが開きます。
実装 ¶
新しいシェルフツールを作成するには、シェルフの空白領域で右クリックして、 New Tool を選び、ツールに名前を付けて、以下のコードをScriptタブにペーストします:
# 作成するいくつかのリンク links = [ ("Side Effects Software", "http://sidefx.com/"), ("Houdini Engine", "http://sidefx.com/engine"), ("OdForce", "http://odforce.net/"), ] # /objにある既存のオブジェクトをすべて削除 # (実際のシーンではシェルフツールを使用しないでください!) for child in hou.node("/obj").children(): child.destroy() # RSSのフィード記事内をループして、見つかった記事毎にオブジェクトを # 作成します。 for index, (text, url) in enumerate(links): # 内部にFont SOPを含んだオブジェクトを作成し、テキストを # 記事のテキストに設定します。ジオメトリオブジェクトにFile SOPが含まれないように、 # run_init_scriptsをFalseに設定していることに注目してください。 geo = hou.node("/obj").createNode("geo", run_init_scripts=False) font = geo.createNode("font") font.parm("text").set(text) # Font SOPにColor SOPを追加して、カラーを黒に変更すると、 # ビューアで読みやすくなります。 color = geo.createNode("color") color.setFirstInput(font) color.parmTuple("color").set((0, 0, 0)) color.setDisplayFlag(True) # ブラウザペインでURLを開くスクリプトを作成します。 script = 'python -c "hou.ui.curDesktop().showSideHelp().setUrl(\'%s\')"' % url # そのスクリプトをオブジェクトに対して"pick script"として設定します。 geo.parm("pickscript").set(script) # テキストと被らないように、ジオメトリオブジェクトのyの位置を移動させます。 geo.parm("ty").set(-2 * index) # ネットワークエディタで、新しいノードのレイアウトを修正します。 hou.node("/obj").layoutChildren()