Houdini起動時にcustomのscript/HDA用pathを設定するには?

Houdini起動時にcustomのscript/HDA用pathを設定するには、以下のスクリプトを123.pyとして、$HOME/houdiniX.Y/scriptsに保存する。
Houdiniは起動時にこの $HOME/houdiniX.Y/scripts を毎回チェックし、123.pyがあれば自動的に実行する。

まずスクリプト環境変数について:
sys.path.append()で、まずスクリプト用のOS環境変数を設定している。これを実行するこどで、Houdiniでのpython scriptから、importでこの中にあるスクリプトを読み込むことができる。

次にHDA用のhoudini環境変数について:
hou.putenv('HOUDINI_OTLSCAN_PATH',hda_path)の部分で、既存のHDAパスにさらにカスタムのHDAパスを加えている。これにより、特定のフォルダに保存したHDAを自動的に読み込ませることができる。

import sys
import hou


def set_custom_script_path():

    #add custom script path
	#you can put any path in the array as much as you want.
    import_list = [
        r'C:/hoge/hoge/scripts',
    ]

	#add the path ti the system environment path
    for i in import_list:
        sys.path.append(i)
        print('extra path is {}'.format(i))



def add_custom_HDA():
    #add custom HDA path
	#$HH/otls/ is the path Houdini uses to load the default HDA
	#We need to keep that as it is, in addtion, we can add custom path.
    hda_paths = [
        '$HH/otls/',
        r'C/hoge/hoge/hda',
    ]

	#set the HDA path to Houdini environment value
    hda_path = ';'.join(hda_paths)
    hou.putenv('HOUDINI_OTLSCAN_PATH',hda_path)

	#after adding the HDA path, we need to reload the HDA again.
    hou.hda.reloadAllFiles()
    print('extra HDA path is {}'.format(hda_paths[1]))



def set_frame_range():
	#Also, you can execute any python script. Even it's possible to make nodes.
    hou.playbar.setFrameRange(1001, 1100)
    hou.playbar.setPlaybackRange(1001, 1100)
    hou.setFrame(1001)


#execute the functions
set_custom_script_path()
add_custom_HDA()
set_frame_range()

このブログの人気の投稿

Houdini Path 表記法

HDAの作成、更新とバージョン管理について

action buttonを使ってジオメトリをattributeベースで選択するコード