Note
Houdiniは、Houdiniを実行した環境の“現行ディレクトリ”(場合によっては、“現行作業ディレクトリ”と呼びます)を継承します。
一部の関数は、その現行ディレクトリを基準にしたパスを返したり受け取ります。
os.getcwd()をコールすることで、Houdiniの現行ディレクトリを確認することができ、os.chdirをコールすること、そのディレクトリを変更することができます。
関数 ¶
basename()
→ str
現行シーンのパスのファイル名の部分を返します(.hip拡張子を含みます)。
name()
→ str
現行hipファイルの名前を返します。
この関数は、絶対パスを返す場合と返さない場合があります。
hipファイルが相対パスで読み込まれている場合、os.getcwd()を基準とした相対パスが返されます。
hipファイルが絶対パスで読み込まれている場合、絶対パスが返されます。
hou.hipFile.setNameをコールすることで、この関数が返す名前を設定することができます。
現行シーンファイルの絶対パスが必要であれば、代わりにhou.hipFile.pathを使用してください。
path()
→ str
現行シーンファイルの絶対ファイルパスを返します。 現行シーンがまだ保存されていない場合は、 このパスにはファイルが存在していない ことを忘れないでください。
hasUnsavedChanges()
→ bool
現行Houdiniセッションが最終保存時刻以降で変更されている(現行ファイルが“Dirty”である)かどうかを返します。
この関数は、グラフィカルセッションでのみ動作します。
非グラフィカルセッション(hython)では、これは常にTrueを返します。
isNewFile()
→ bool
現行Houdiniファイルが新規ファイルなのか以前に読み込まれたファイルなのかを返します。
この関数は、グラフィカルセッションでのみ正しく動作します。
非グラフィカルセッション(hython)では、ファイル名がデフォルトのファイル名と同じである場合には、これは常にTrueを返します。
load(file_name, suppress_save_prompt=False, ignore_load_warnings=False)
新しくシーン(.hip)ファイルを読み込みます。
Houdiniがそのファイルを読み込めなかった場合は、hou.OperationFailedを引き起こします。
新しくファイルを読み込んだ際に(アセットが見つからないといった)警告が発動されたら、hou.LoadWarningを引き起こします。
ignore_load_warnings=Trueを渡すことで、そのような例外を回避することができます。
file_name
読み込むシーンファイルのパス。
suppress_save_prompt
通常ではグラフィカルセッションで使用し、この関数は、ユーザが File ▸ Open を選択した時と同じ挙動をし、ファイルの変更がまだ保存されていなければ、現行ファイルを保存するように促します。
suppress_save_prompt=Trueを渡すことで、そのプロンプトを出さずにHoudiniに新しくファイルを読み込ませることができます。
非グラフィカルセッション(hython)では、この関数は、常にsuppress_save_promptが有効な状態で動作します。
ignore_load_warnings
新しくファイルを読み込んだ際に(アセットが見つからないといった)警告が発動されても、Houdiniがhou.LoadWarning例外を引き起こさないようにします。
Houdiniがノードをクック中、シャットダウン中に(hou.hipFile.isShuttingDownを参照)、または、Houdiniがシーンファイルを保存中に、この関数がコールされてもhou.OperationFailedが発生します。 (456.pyから)hipファイルを読み込み中にこのメソッドがコールされると、その処理は成功しますが、hipファイルをマージした後にその456.pyスクリプトは再び実行されることはありません。
save(file_name=None, save_to_recent_files=True)
現行シーンを.hipファイルに保存します。
file_name
これが文字列の場合、 File ▸ Save As のように、このパスで現行シーンをファイルに保存します。パスには、絶対パスまたは現行ディレクトリの相対パスを指定することができます。
これがNoneの場合、 File ▸ Save のように、現行パス(hou.hipFile.path)でシーンが保存されます。
パス内の中間ディレクトリが存在しなかった場合、 Houdiniはその中間ディレクトリを生成します 。
save_to_recent_files
グラフィカルセッションでは、 File ▸ Open Recent Files メニューの最近のファイルのリストにこのファイルを追加するかどうか。デフォルトはTrueです。
非グラフィカルセッション(hython)では、save_to_recent_filesが無効なものとして動作します。
Houdiniが中間ディレクトリを生成できなかった場合、または、(例えば、ファイルシステムのパーミッションが原因で)指定したファイルに書き出せなかった場合はhou.OperationFailedを引き起こします。
Houdiniがシャットダウン中(hou.hipFile.isShuttingDownを参照)に、または、既にシーンファイルの読み込み/保存中(hou.hipFile.isLoadingHipFileを参照)に、この関数がコールされても、hou.OperationFailedが発生します。
setName(file_name)
現行シーンファイルのIn-Memoryパスを設定します。これは、ユーザが File ▸ Save を選択、または、ファイルパスなしでhou.hipFile.saveをコールした場合にHoudiniが保存するパスのことです。
file_name
使用するパス。ここには、絶対パスまたは現行ディレクトリの相対パスを指定することができます。
この関数は、シーンを保存するわけではなく、Houdiniがシーンを保存すべきパスを変更するだけです。 実際にシーンを新しいパスに保存するには、hou.hipFile.saveを使用してください。
saveAndIncrementFileName()
現行パスにシーンを保存( File ▸ Save と同じ)しますが、ファイル名の最後の番号を上げます。
Houdiniが中間ディレクトリを生成できなかった場合、または、(例えば、ファイルシステムのパーミッションが原因で)指定したファイルに書き出せなかった場合はhou.OperationFailedを引き起こします。
Houdiniがシャットダウン中(hou.hipFile.isShuttingDownを参照)に、または、既にシーンファイルの読み込み/保存中(hou.hipFile.isLoadingHipFileを参照)に、この関数がコールされても、hou.OperationFailedが発生します。
saveAndBackup()
→ str
現行シーンを保存しますが、まず最初に$HOUDINI_BACKUP_DIR内に.hip拡張子の前に_bakと増分番号を付けて以前に保存した状態のシーンのバックアップを作成します。
$HOUDINI_BACKUP_DIRを設定しなかった場合、これは、シーンファイルと同じディレクトリ内のbackupディレクトリにバックアップファイルを作成します。
バックアップファイルの絶対パスを返します。
Houdiniが中間ディレクトリを生成できなかった場合、または、(例えば、ファイルシステムのパーミッションが原因で)指定したファイルに書き出せなかった場合はhou.OperationFailedを引き起こします。
Houdiniがシャットダウン中(hou.hipFile.isShuttingDownを参照)に、または、既にシーンファイルの読み込み/保存中(hou.hipFile.isLoadingHipFileを参照)に、この関数がコールされても、hou.OperationFailedが発生します。
saveAsBackup()
→ str
現行シーンを$HOUDINI_BACKUP_DIR内に.hip拡張子の前に_bakと増分番号を付けた新しいファイルに保存します。
$HOUDINI_BACKUP_DIRを設定しなかった場合、これは、シーンファイルと同じディレクトリ内のbackupディレクトリにファイルを保存します。
バックアップファイルの絶対パスを返します。
Houdiniが中間ディレクトリを生成できなかった場合、または、(例えば、ファイルシステムのパーミッションが原因で)指定したファイルに書き出せなかった場合はhou.OperationFailedを引き起こします。
Houdiniがシャットダウン中(hou.hipFile.isShuttingDownを参照)に、または、既にシーンファイルの読み込み/保存中(hou.hipFile.isLoadingHipFileを参照)に、この関数がコールされても、hou.OperationFailedが発生します。
clear(suppress_save_prompt=False)
→ bool
現行シーンファイルの内容をクリアして、未保存の新しいファイルを開始します。
Returns True if the contents were cleared and False otherwise.
The contents will not be cleared, if, in a graphic session, the user chooses to cancel when prompted to save the current file.
suppress_save_prompt
通常グラフィカルセッションでは、この関数は、ユーザが File ▸ New を選択するのと同じ挙動で、変更が保存されていなかった場合に現行シーンを保存するように促します。
suppress_save_prompt=Trueを渡すことで、Houdiniがプロンプトを出さずにクリアさせることができます。
非グラフィカルセッション(hython)では、suppress_save_promptが有効なものとして動作します。
merge(file_name, node_pattern="*", overwrite_on_conflict=False, ignore_load_warnings=False)
file_nameパスにあるファイルの内容を現行シーンに取り込みます(これは、現行シーンファイルを保存しません)。
新しくファイルを読み込んだ際に(アセットが見つからないといった)警告が発動されたら、hou.LoadWarningを引き起こします。
ignore_load_warnings=Trueを渡すことで、このような例外を引き起こさないようにすることができます。
node_pattern
このパターンに合致したノードのみをマージします。
overwrite_on_conflict
マージするノードが既存ノードと同じパス/名前だった場合の挙動を指定します。
これをTrueにすると、マージするノードが既存ノードを置換します。
これをFalse(デフォルト)にすると、マージするノードが既存ノードと干渉した場合にはその名前が変更されます。
マージする 前 に干渉がないかどうかをチェックしたいのであれば、hou.hipFile.collisionNodesIfMergedを参照してください。
ignore_load_warnings
新しくファイルを読み込んだ際に(アセットが見つからないといった)警告が発動されてもHoudiniがhou.LoadWarning例外を引き起こさないようにします。
マージするファイルが存在しなかった場合、または、Houdiniがそのファイルを読み込むことができなかった場合は、hou.OperationFailedを引き起こします。
Houdiniがノードをクック中、シャットダウン中に(hou.hipFile.isShuttingDownを参照)、または、Houdiniがシーンファイルを保存中に、この関数がコールされてもhou.OperationFailedが発生します。 (456.pyから)hipファイルを読み込み中にこのメソッドがコールされると、その処理は成功しますが、hipファイルをマージした後にその456.pyスクリプトは再び実行されることはありません。
collisionNodesIfMerged(file_name, node_pattern="*")
→ tuple of hou.OpNode
hou.hipFile.mergeを使って指定したファイルのマージを試みた際に 干渉 したノードを表現したhou.OpNodeオブジェクトのシーケンスを返します。
node_pattern
このパターンに合致したノードのみをチェックします。
マージするファイルが存在しなかった場合、または、Houdiniがそのファイルを読み込むことができなかった場合は、hou.OperationFailedを引き起こします。
Houdiniがシャットダウン中(hou.hipFile.isShuttingDownを参照)に、または、既にシーンファイルの読み込み/保存中(hou.hipFile.isLoadingHipFileを参照)に、この関数がコールされても、hou.OperationFailedが発生します。
isLoadingHipFile()
→ bool
Houdiniが現在シーンファイルを読み込み中であればTrueを返します。
isShuttingDown()
→ bool
Houdiniが現在シャットダウン中であればTrueを返します。
groupColorTable()
→ dict
of str
to hou.Color
ビューポートグループリスト用のカラーオーバーライドの辞書を返します。 ビューポートグループリストは、グループ名のハッシュに基づいて自動的にカラーをグループに割り当てます。 グループカラーテーブルは、デフォルトのカラー割り当てのオーバーライドの辞書です。 これによって、特定の重要なグループに目立ったカラーを割り当てることができます。 グループカラーテーブルは、HIPファイルに保存されます。 このカラーテーブルは、hou.hipFile.setGroupColorTableを使って修正することができます。
setGroupColorTable(color_table)
ビューポートグループリストのカラーオーバーライドの辞書を設定します。 ビューポートグループリストは、グループ名のハッシュに基づいて自動的にカラーをグループに割り当てます。 グループカラーテーブルは、デフォルトのカラー割り当てのオーバーライドの辞書です。 これによって、特定の重要なグループに目立ったカラーを割り当てることができます。 グループカラーテーブルは、HIPファイルに保存されます。 現行のカラーテーブルは、hou.hipFile.groupColorTableを使って照会することができます。
指定するcolor_tableは、strとhou.Colorをマッピングしたdictでなければなりません。
以下の例は、グループ名’special_group'を赤のオーバーレイで表示させます:
color_table = { 'special_group' : hou.Color([1,0,0]) } hou.hipFile.setGroupColorTable(color_table)
saveMode()
→ hou.saveMode
現行シーンの保存モードhou.saveMode.Binaryまたはhou.saveMode.Textのどちらかを返します。
setSaveMode(save_mode)
現行シーンの保存モードをhou.saveMode.Binaryまたはhou.saveMode.Textのどちらかに設定します。
importFBX(file_name, suppress_save_prompt=False, merge_into_scene=True, import_cameras=True, import_joints_and_skin=True, import_geometry=True, import_lights=True, import_animation=True, import_materials=True, resample_animation=False, resample_interval=1.0, override_framerate=False,framerate=-1, hide_joints_attached_to_skin=True, convert_joints_to_zyx_rotation_order=False, material_mode=hou.fbxMaterialMode.FBXShaderNodes, compatibility_mode=hou.fbxCompatibilityMode.Maya, single_precision_vertex_caches=False, triangulate_nurbs=False, triangulate_patches=False, import_global_ambient_light=False, import_blend_deformers_as_blend_sops=False, segment_scale_already_baked_in=True, convert_file_paths_to_relative=True, unlock_geometry=False, unlock_deformations=False, import_nulls_as_subnets=False, import_into_object_subnet=True, convert_into_y_up_coordinate_system=False, create_sibling_bones=True, override_scene_frame_range=False, convert_units=False)
→ (hou.ObjNode, str
)
ユーザが File ▸ Import ▸ FBX を選択するのと同様に、FBXファイルの内容をシーンに取り込みます。
FBXノードを含んだ親Subnetwork Objectノード(import_into_object_subnetオプションを参照)と生成された読み込みメッセージを含んだ文字列のタプルを返します。
重要: FBX Importダイアログに関する色々なオプションの情報はヘルプを参照してください。
import_into_object_subnet
これがTrue(デフォルト)の場合、Houdiniは、オブジェクトレベルで新しくSubnetworkノードを作成し、そのSubnetworkノード内にFBXノードを取り込みます。
import_into_object_subnet=Falseの場合、Houdiniは、オブジェクトレベル直下にFBXノードを作成します(戻り値のタプルの1番目の項目には/objネットワークノードが入ります)。
マージするファイルが存在しなかった場合、または、Houdiniがそのファイルを読み込むことができなかった場合は、hou.OperationFailedを引き起こします。
Houdiniがシャットダウン中(hou.hipFile.isShuttingDownを参照)に、または、既にシーンファイルの読み込み/保存中(hou.hipFile.isLoadingHipFileを参照)に、この関数がコールされても、hou.OperationFailedが発生します。
addEventCallback(callback)
.hipファイルイベント(例えば、ファイルの読み込みやファイルの保存)が発生した時にコールされるPythonコールバックを登録します。
callback
1つの引数を必要とするコール可能なPythonオブジェクト。 この引数は、hou.hipFileEventType列挙値です。
詳細は、シーンイベントコールバックを記述する方法を参照してください。
def scene_event_callback(event_type, **kwargs): hou.ui.displayMessage("An event of type {} occured".format(event_type)) hou.hipFile.addEventCallback(scene_event_callback)
The kwargs argument of the callback is optional but may provide additional
information that pertains to the event.
The AfterClear, AfterLoad. AfterMerge and AfterSave events will
return a dictionary including the following keys: old_hip_file,
new_hip_file. These values can be used to determine the filename before
and after the event has occured.
The BeforeSave and AfterSave events will return a dictionary including
the following key: autosave. This value can be used to determine if the
file was saved by the user, or by the autosave system.
For all other events, the kwargs will be empty.
removeEventCallback(callback)
hou.hipFile.addEventCallbackを使って以前に登録したPythonコールバックを削除します。 詳細は、hou.hipFile.addEventCallbackを参照してください。
以前にコールバックが登録されていなかった場合は、hou.OperationFailedを引き起こします。
clearEventCallbacks()
このメソッドは廃止されました。代わりにhou.hipFile.removeEventCallbackを使用してください。
hou.hipFile.addEventCallbackを使って登録されたすべてのPythonコールバックを削除します。
eventCallbacks()
→ tuple
of callback
hou.hipFile.addEventCallbackを使って登録されたすべてのコールバック関数のタプルを返します。