これらのオブジェクトは、ローカルマシン上またはリモートマシン上のHoudiniクローンプロセスへのアクティブまたは潜在的なコンテクションを表現します。 コネクションは、何度も接続/接続解除することができますが、このオブジェクトは引き続き有効です。 hou.Nodeオブジェクトと同様に、このタイプのオブジェクトは、Houdiniクローンフレームワークが所有する大元のコネクションオブジェクトの参照になっています。 つまり、同じ大元のクローンコネクションを参照しているこのクラスのすべてのインスタンスは、お互いに影響を与えます。 大元のオブジェクトは、削除することができますが、その場合、このオブジェクトのほぼすべてのメソッドで例外が引き起こされます(ただし、hou.clone.Connection.isValidメソッドを使用すると、例外を引き起こさずにその大元のオブジェクトがまだ存在するかどうかテストすることができます)。
クローンコネクションは、Houdiniノード名と非常に良く似た挙動をする固有なセッションID文字列で識別されます。 どの時点でも、各クローンコネクションのセッションIDは固有です。 しかし、コネクションが削除されて新しいコネクションが作成された場合には、セッションIDが再利用される可能性があります。 クローンコネクションはhipファイルに保存され、Houdiniがシャットダウンされたり、新しいhipファイルが開かれると、自動的に接続解除されます。 hipファイルを開くと、読み込まれたコネクションオブジェクトは常に接続解除された状態のままになっていて、クローンプロセスを開始するには、明示的に接続しなければなりません。
新しいコネクションは、hou.clone.createClone()またはhou.clone.Connection.duplicateをコールすることでしか作成できません。 既存のコネクションは、hou.clone.clone()またはhou.clone.clones()を使用してアクセスすることができます。
メソッド ¶
isValid()
→ bool
このオブジェクトに関連付けられているコネクションがまだ有効な場合はTrue
を返します。
この有効というのは、単に大元のコネクションが削除されていないことを意味しているにすぎません。
このメソッドとhou.clone.Connection.sessionIdのみが、大元のコネクションが削除された後に実行しても例外を引き起こさないメソッドです。
sessionId()
→ str
このコネクションオブジェクトを識別したり、hou.clone.clone()メソッドを使用してクローンフレームワークからコネクションオブジェクトを取得する際に使用可能な固有の文字列を返します。 この値は、コネクションを構築した時に設定され、変更することはできません。 この値には、ノード名と同様の制限事項があります。
name()
→ str
このクローンのユーザにわかりやすい名前を返します。
setName(name)
このクローンに、ユーザにわかりやすい名前を設定します。 これは、Clone Controlパネルに表示される名前で、その値には何の制約もありません(スペースも句読点も可能です)。
setLopNode(lop)
このクローンでレンダリングされるステージを定義したLOPノードを設定します。 クローンが画像を生成するには、この値を必ず設定しなければなりません。
cameraPath()
→ str
このクローンでレンダリングされるビューを定義したカメラPrimのUSDプリミティブパスを返します。
setCameraPath(camerapath)
このクローンでレンダリングされるビューを定義したカメラPrimのUSDプリミティブパスを設定します。 このパスには、hou.clone.Connection.lopNodeで定義されたステージ上のUSD Camera Primを指定してください。 クローンが画像を生成するには、この値を必ず設定しなければなりません。
renderer()
→ str
このクローンが使用するレンダーデリゲートの名前を返します。
setRenderer(renderer)
このクローンが使用するレンダーデリゲートの名前を設定します。 ここには、このクローンを実行するコンピュータにインストールされているレンダーデリゲートの内部名またはラベルを指定することができます。
renderSettings()
→ str
このクローンのレンダリング設定を制御するRender Settings PrimのUSDプリミティブパスを返します。
setRenderSettings(rendersettings)
このクローンのレンダリング設定を制御するRender Settings PrimのUSDプリミティブパスを設定します。 ここには、hou.clone.Connection.lopNodeで定義されたステージ上のUSD Render Settings Primを指定してください。
availableAovs()
→ tuple
of str
クローンレンダーで生成されるすべてのAOVの名前を返します。 クローンがまだ画像を返していない場合は、ここには空っぽのタプルが返されます。
displayAov()
→ str
このクローンがホストに返すAOVの名前を返します。
setDisplayAov(aov)
このクローンがホストに返すAOVの名前を設定します。
このクローンがデフォルトのカラーAOVを返すように指示したい場合は、aov
パラメータに空っぽの文字列またはNone
を渡します。
resolution()
→ (int
, int
)
クローンが返す画像に設定されているオーバーライド解像度を返します。
オーバーライド解像度が設定されていない場合、このメソッドは(0, 0)
を返します。
この場合では、クローンは、Render Settings Primで決められた解像度で画像を生成します。
setResolution(width, height)
このクローンで生成される画像の解像度を設定します。
クローンがRender Settings Primで決められた解像度で画像を生成するように指示したい場合は、width
とheight
に0
を渡します。
frameExpression()
→ str
クック時にこのクローンに設定されるフレームの生成に実行されるエクスプレッションが指定された文字列を返します。 返された文字列が空っぽの場合、このクローンで使用されるフレーム番号は、ホストの現行フレーム番号に一致します。
setFrameExpression(expression)
クック時にこのクローンに設定されるフレームの生成に実行されるエクスプレッションを設定します。
expression
は必ず文字列でなければなりませんが、数値を返すHScriptエクスプレッションを指定することができます。
例えば、$F + 10
は、クローンにホストの現行フレームより10フレーム先をクックするように指示します。
このエクスプレッションはホストプロセス内で実行され、その結果の値がクローンに送信されます。
contextOptionExpression(opt)
→ str
クック時にこのクローンが使用するopt
コンテキストオプションの値の生成に実行されるエクスプレッションが指定された文字列を返します。
返された文字列が空っぽの場合、このクローンで使用されるコンテキストオプション値は、ホストのこのオプションの値に一致します。
setContextOptionExpression(opt, expression)
クック時にこのクローンが使用するopt
コンテキストオプションの値の生成に実行されるエクスプレッションを設定します。
expression
は必ず文字列でなければなりませんが、数値または文字列を返すHScriptエクスプレッションを指定することができます。
例えば、$SHOT + 1
は、クローンにホストのこのオプションの値より1大きいSHOT
値でクックするように指示します。
このエクスプレッションはホストプロセス内で実行され、その結果の値がクローンに送信されます。
contextOptionsWithExpressions()
→ str
このクローンにエクスプレッションが設定されているコンテキストオプション名のタプルを返します。 これらのコンテキストオプションのクローンの値は、ホストプロセスの値と異なります。
setProcessUpdates(process_updates)
クローンプロセスがホストプロセスからの更新を無視し、現在レンダリング中のステージのレンダリングを続けるように構成します。
processUpdates()
→ bool
ホストからの更新に反応して、クローンがレンダリングを再開するかどうかを示したブール値を返します。
setLauncherConfig(config)
このクローンプロセスを起動する時に使用されるランチャー構成オプションの辞書を格納します。 この辞書の内容と解釈は、ランチャープラグインに委ねられています。 通常ではクローンプロセスの起動はクローンに接続されていることが事前条件であるため、便宜上、クローンコネクションオブジェクトと一緒に格納されます。
launcherConfig()
→ dict
このクローンプロセスを起動する時にランチャープラグインを制御する構成オプションの辞書を返します。
connect(host, port)
→ bool
指定したTCP/IPのport
番号を介してアクセス可能な指定されたhost
マシン上で実行中のクローンプロセスにこのホストを接続します。
この接続の試みは、1秒間続きます。
接続が確立されると、このメソッドはTrue
を返します。
何かしらの原因で接続を確立できなかった場合はFalse
を返します。
host
とport
の値は、通常ではランチャープラグイン側で用意され、
そのランチャープラグインがクローンプロセスを起動して、そのクローンプロセスからの(hou.clone.runAsClone()メソッドによって出力される)出力を読み込んでポート番号を判断します。
isConnected()
→ bool
クローンコネクションオブジェクトがクローンプロセスへのアクティブコネクションを表現している場合はTrueを返します。
host()
→ str
接続済みのクローンプロセスが実行されているホストマシンの名前を返します。 クローンプロセスがどこにも接続されていない場合は空っぽの文字列を返します。
port()
→ int
このオブジェクトのクローンプロセスへの接続に使用されているポート番号を返します。
接続済みのクローンプロセスがない場合は0
を返します。
setWaitingToConnect(waiting_to_connect)
このコネクションがクローンプロセスへの接続を待機中であることを示したフラグをこのコネクションに設定します。
このフラグは、視覚的ヒントとして使用されるだけであり、クローンフレームワークのオペレーションには何も影響を与えません。
このフラグには、クローンが接続されているか接続解除されているかどうかを設定することができます。
ランチャープラグイン側でのみこのフラグを設定するべきで、クローンプロセスが初期化するのを待機したり、コネクションがクローンプロセスに確立されるのを待機する場合にのみ設定するべきです。
また、disconnect
をコールすると、このフラグがFalse
に設定されます。
isWaitingToConnect()
→ bool
setWaitingToConnect(True)
がこのコネクションに対してコールされた場合はTrueを返します。
disconnect()
接続済みのクローンプロセスから接続解除します。 クローンが現在接続されていない場合は何もしません。
imagePath()
→ str
このクローンが直近で返した画像にアクセスするのに使用可能な文字列を返します。
この文字列は、通常ではクローンから新しい画像が送信されても変わりませんが、これは保証されません。
この文字列の書式はmembuf:XXXXX
となります。
この従来とは異なる“パス”値は、画像がディスクに書き込まれていなくて、代わりに、メモリブロックとしてのみ存在していることを示しています。
しかし、ディスクから画像を読み込むことができるHoudiniノードとHOMメソッドでも、このmembuf
パスを使用してレンダリング画像を読み込むことができます。
imageSize()
→ tuple
of int
このクローンが直近で返した画像の幅と高さを示した2つの整数のタプル
を返します。
Note
画像サイズは、解像度パラメータまたはRender Settings Primが変更された場合に新しい画像がホストに送信される度に変わります。
これは直近で送信された画像の実際のサイズなので、この値は、setResolution
メソッドを介してこのクローンから要求された解像度とは異なる場合があります。
imageVersion()
→ int
このクローンによって新しい画像がホストに送信される度に増加する数。 更新された画像を考慮するために、画像を再読み込み、再描画、または、再処理する必要があるタイミングを検出するのにこの数を利用すると良いでしょう。
percentComplete()
→ float
レンダリング統計からレポートされたレンダリングの進捗を示します。
renderGalleryDataSource()
→ hou.AssetGalleryDataSource
このクローンが現在接続されていてレンダリング中の場合、その結果の画像は、ターゲットLOPネットワークのスナップショットギャラリーに配置されます。
このメソッドは、画像メタデータが格納されているスナップショットギャラリーデータベースにアクセスすることができるhou.AssetGalleryDataSourceを返します。
このクローンが接続されていない、または、画像データをまだ生成していない場合、このメソッドはNone
を返します。
renderGalleryItemId()
→ str
このクローンが現在接続されていてレンダリング中の場合、その結果の画像は、ターゲットLOPネットワークのスナップショットギャラリーに配置されます。
このメソッドは、そのスナップショットギャラリーデータベース内のこの画像のエントリーの固有の識別子を返します。
この識別子をrenderGalleryDataSource
メソッドが返すhou.AssetGalleryDataSourceオブジェクトに渡すことで、この画像に関する追加情報を照会することができます。
このクローンが接続されていない、または、画像データをまだ生成していない場合、このメソッドは空っぽの文字列を返します。
duplicate()
→ hou.clone.Connection
このクローンオブジェクトのコピーを作成します。 すべての設定と構成情報が複製されます。 このクローンの接続が現在アクティブであっても、新しいクローンは、新しいクローンプロセスを起動も接続もしません。 これは、複製を作成した後に明示的に行なう必要があります。