これらのオブジェクトは、ローカルマシン上またはリモートマシン上の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を指定してください。
renderPass()
→ str
Return the USD primitive path of the render pass prim, which controls the pass overrides applied to this clone.
setRenderPass(renderpass)
Set the USD primitive path of the render pass prim, which controls the pass overrides applied to this render. This path should point to a USD Render Pass primitive on the stage defined by the hou.clone.Connection.lopNode.
availableAovs()
→ tuple
of str
クローンレンダーで生成されるすべてのAOVの名前を返します。 クローンがまだ画像を返していない場合は、ここには空っぽのタプルが返されます。
displayAov()
→ str
このクローンがホストに返すAOVの名前を返します。 この文字列にワイルドカードを含めることで、そのパターンにマッチした複数のAOVを返すことができます。
setDisplayAov(aov)
このクローンがホストに返すAOVの名前を設定します。
文字列マッチングパターンを指定することで、複数のAOVを返すことができます。
このクローンがすべてのAOVを返すように指示したい場合は、aovパラメータに空っぽの文字列またはNoneを渡します。
resolutionScale()
→ float
オーバーライド解像度スケール係数を返します。
このスケーリングは、このクローンのレンダー設定で設定された解像度に適用されます。
0の値は、レンダー設定の解像度が使用されることを意味します。
0以外の解像度スケール値は、setResolutionを使用して明示的に設定されたオーバーライド解像度よりも優先されます。
setResolutionScale(resolution_scale)
このクローンによって生成される画像の解像度スケールを設定します。
このスケール値は、Render Settings Primで設定された解像度に常に適用されます。
1より小さい値ほど、低解像度の画像を、1より大きい値ほど、高解像度の画像がレンダリングされます。
0の値は、解像度スケーリングを無効にします。
resolution()
→ (int
, int
)
クローンが返す画像に設定されているオーバーライド解像度を返します。
オーバーライド解像度が設定されていない場合、このメソッドは(0, 0)を返します。
この場合では、クローンは、Render Settings Primで決められた解像度で画像を生成します。
0以外の解像度スケール値は、setResolutionを使用して明示的に設定されたオーバーライド解像度よりも優先されますが、
解像度スケールの設定は、このメソッドが返す値には影響しません。
setResolution(width, height)
このクローンで生成される画像の解像度を設定します。
クローンがRender Settings Primで決められた解像度で画像を生成するように指示したい場合は、widthとheightに0を渡します。
setResolutionScaleを使用して設定された0以外の解像度スケール値は、このメソッドを使用して明示的に設定されたオーバーライド解像度よりも優先されます。
renderRegion()
→ hou.Vector4
Return the render region set for the clone’s returned image.
If no override region has been set, this method returns (0.0, 0.0, 0.0, 0.0).
In this case, the clone will generate an image using the data window specified on the render settings prim or, if no such value has been authored, a full frame (i.e., (0.0, 0.0, 1.0, 1.0)).
setRenderRegion(render_region)
Set the render region of the image generated by this clone, where render_region is of the form (x0, y0, x1, y1).
Specifying a region of (0.0, 0.0, 0.0, 0.0) instructs the clone to generate an image using the data window specified on the render settings prim or, if no such value has been authored, a full frame (i.e., (0.0, 0.0, 1.0, 1.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オブジェクトに渡すことで、この画像に関する追加情報を照会することができます。
このクローンが接続されていない、または、画像データをまだ生成していない場合、このメソッドは空っぽの文字列を返します。
createSnapshot()
→ str
このクローンが現在接続されていてレンダリング中の場合、このメソッドは、スナップショットボタンを押して現在のビューポートの内容を保存する時と同様に、 LOPネットワークのスナップショットギャラリーデータベース内に、そのLOPネットワークのノードの現在の状態を含んだスナップショットを作成します。 そのスナップショットには、現在クローンプロセスから送信されているすべてのAOVが格納されます。 これは、新しく作成されたスナップショットのスナップショットギャラリーアイテム識別子を返します。 スナップショットが作成できなかった場合、または、クローンが接続されていない場合、もしくは、画像データが利用できない場合は、空っぽの文字列を返します。
duplicate()
→ hou.clone.Connection
このクローンオブジェクトのコピーを作成します。 すべての設定と構成情報が複製されます。 このクローンの接続が現在アクティブであっても、新しいクローンは、新しいクローンプロセスを起動も接続もしません。 これは、複製を作成した後に明示的に行なう必要があります。