On this page | |
Since | 18.0 |
概要 ¶
このノードは、特定のインスタンスのアニメーションのタイミングをオフセット/スケールさせます。 USDでは破壊的な編集が許可されていないので、インスタンスのプロトタイプから新しくリタイムされた参照を作成し、その新しいプロトタイプを参照するようにインスタンスをオーバーライドすることで、この処理を行ないます。
このノードは、インスタンス毎のタイムオフセット/タイムスケールを指定する方法がいくつかあります:
-
float/intのPrimvarsからインスタンス毎のタイムオフセット/タイムスケールを取得することができます。オプションで、インスタンスが参照するフレームを明示的に指定することができます。
-
指定した最小/最大のタイムオフセット/タイムスケール内に収まるように修正されたランダムなタイムオフセット/タイムスケールを設定することができます。
-
このノードの中(または、Houdiniノード階層内のどこか)で、ポイントクラウドを生成するSOPネットワークを作成することができます。 ポイントクラウドの各ポイントがインスタンスに呼応し、そのポイント上の浮動小数点SOPアトリビュートでタイムオフセットとタイムスケールを指定します。 オプションで、インスタンスが参照するフレームを明示的に指定することができます。 以下のポイントクラウドの編集を参照してください。
Tip
Time Shift LOPを使えば、通常のPrimsのアニメーションをオフセット/スケールすることができます。 インスタンサーに対してTime Shift LOPを使用すると、すべてのインスタンスに対して平等に影響するのに対して、このノードは、個々にインスタンスの時間を変更することができます。
ポイントクラウドの編集 ¶
このノードでは、インスタンスを表現したポイントジオメトリを処理することでオフセットとスケールを指定可能なSOPネットワークを構築することができます。
-
“Internal SOP”を選択すると、このノードは、このノードの中のSOPサブネット内で構築されたノードを使用します。
-
このモードでは、自動的にポイントが生成され、ネットワークを介して送られます(
Sub-Network Input #1
の出力を処理ネットワークの1番目のノードに接続)。
-
-
“External SOP”を選択すると、Houdiniノード階層のどこかのSOPネットワークを指定することができます。 ただし、このSOPネットワークは、何かしらの方法で適切なアトリビュートを持ったポイントを生成しなければなりません。
-
ポイントには必ずインスタンサーのシーングラフパスが設定された
path
SOPアトリビュートがなければなりません。 -
デフォルトでは、このノードは、ポイント番号とインスタンスインデックスを呼応させることで、ポイントとインスタンスのマッチングを試みます。 おそらくこの方法だと、単一インスタンサーですべてのインスタンスを処理している場合でのみ動作します。 それ以外の場合、 Match by ID を有効にして、各ポイント上の
id
SOPアトリビュートにそれに呼応したインスタンスのインデックスを設定してください。
-
-
ポイント上に
frameoffset
やtimescale
の浮動小数点SOPアトリビュートを用意して、各ポイントに呼応するインスタンスに適用するタイムオフセットやタイムスケールを指定してください。Explicit Frame
オプションを使用する場合は、さらにframe
浮動小数点SOPアトリビュートを用意してください。
Tipsとメモ ¶
-
このノードは、大量のインスタンスグループまたは特定のプロトタイプを共有したすべてのインスタンス上のアニメーションをオフセット/スケールさせるのに非常に上手く動作します。それぞれ別々のタイミングには別々のプロトタイプが必要になるので、インスタンス別に異なるオフセット/スケールを適用するとなった場合には、(同じ数のインスタンスとプロトタイプを用意することで)実質的にポイントインスタンスの“非インスタンス化”をすることになります。
-
In-Memoryレイヤー上で動的に生成されたプロトタイプをリタイムする場合、このノードの上流にCache LOPを接続する必要があるので、すべてのフレームがクックされて利用可能になります。
インスタンスが外部USDファイルから発生している場合、その外部USDファイルには必要なタイムサンプルがすべて含まれているはずなので、このCache LOPは不要になります。
-
デフォルトでは、プロトタイプのリタイムは、(インスタンスがそのプロトタイプPrims自体で定義されていない限り)インスタンスのトランスフォームやPrimvarsに影響を与えません。
Retime Transforms パラメータと Retime Primvars パラメータを使ってインスタンスレベルで定義されたトランスフォームとPrimvarsをリタイムするように選択することができます。
-
このノードは、フレームオフセットとタイムスケールの固有な組み合わせ毎に新しくリタイムされたプロトタイプのみを生成するように最適化されています。 フレームオフセットを0、タイムスケールを1にすれば、これを無視することができます。 しかし、このノードは、通常では膨大な処理をしなければならないことに変わりはないので、遅くなってしまいます。
パラメータ ¶
Type
ポイントインスタンスまたはインスタンス化可能Primsのどちらをリタイムしたいのかを指定します。
Instances
/path[instance_index]
構文を使って、スペース区切りのインスタンスのリスト(例えば、/geometry/instancer[0] /geometry/instancer[1]
)を指定します。
インスタンサー内のすべてのインスタンスを選択したいのであれば、/path[*]
を使用します。
範囲を選択したいのであれば、/geometry/instancer[4-7]
(指定した番号を含む)を使用します。
入れ子のインスタンサー内のインスタンスを選択したいのであれば、複数のインデックス(例えば、/geometry/instancer[2][7]
)を使用します。
VEXpressionを使用すれば、インスタンス(例えば、/geometry/instancer[{@weights>0.5}]
)を指定することができます。
Instances
Type が“Native Instances”の時に、インスタンス可能なPrimsのパスのリストを指定します。
Retime Using
選択した各インスタンスのトランスフォームの計算方法。
Internal SOP
このノードの中のSOPサブネットを使って、各インスタンスを表現したポイントを処理します。
External SOP
外部SOPネットワークを使用します。 この場合、ゼロからインスタンスを表現したポイントを生成しなければなりません(上記のポイントクラウドの編集を参照してください)。
Primitive Properties
インスタンサー/インスタンスPrims自体のオフセット/スケールPrimvarsを取得します。
Random Values
インスタンスに分布されるランダムなオフセットとスケールを設定した数だけ生成します。
Retime Method
Retime Using がInternal SOP
、External SOP
、Primitive Properties
のどれかに設定されている時、そのリタイムの方法を指定することができます。
Frame Offset and Time Scale
フレームオフセットとタイムスケールを使用してリタイムを行ないます。
参照されるプロトタイプ/Primvar/トランスフォームは、($F + frame offset) / time scale
を使用して照会されます。
これが推奨される方法で、定数で時間依存でない値として表現することができるので、プロトタイプをリタイムする時のパフォーマンスを改善することができます。
Explicit Frame
リタイムされるプロトタイプ/Primvar/トランスフォームが参照されるフレームを指定することで、タイムオフセットを設定します。
Note
たいていの場合、これは時間依存のアトリビュート/Primvarになるので、リタイムされるプロトタイプの作成が時間依存となり、パフォーマンスに影響します。
固定フレームオフセットでプロトタイプをリタイムする場合、通常では、 Retime Method にFrame Offset and Time Scale
を使用することを推奨します。
Match By ID
Modify Using が“External SOP”の時にこれを有効にすると、このノードは、生成されたポイント上のid
SOPアトリビュートを検索します。
id
は、該当するインスタンスのインデックスにしてください(これを無効にすると、このノードは、ポイント番号をインスタンスインデックスを呼応させるので、単一インスタンサーですべてのインスタンスを処理している場合でのみ動作します)。
SOP Path
Modify Using が“External SOP”の時、クックして生成されるポイントを取得するジオメトリノードのノードパスを指定します。 出力内の各ポイントは、選択されたインスタンスのどれかに呼応させてください。
Group
Modify Using が“External SOP”の時、ここが空っぽでない場合は、このポイントグループ内のポイントのみが考慮されます。
Retime Prototypes
指定したインスタンスに対して、リタイムされたプロトタイプを作成します。 インスタンスアニメーションがインスタンスレベルのトランスフォームで駆動されている場合、これを無効にするとパフォーマンスが大幅に改善されます。
Retime Transforms
デフォルトでは、インスタンストランスフォームにアニメーションが付いていても、このノードはトランスフォームアニメーションに影響を与えません。 これを有効にすると、トランスフォームアニメーションもリタイムされます。
Retime Primvars
デフォルトでは、インスタンスレベルのPrimvarsにアニメーションが付いていても、このノードはPrimvarアニメーションに影響を与えません。 これを有効にすると、Primvarアニメーションもリタイムされます。
Evaluation Frame
パフォーマンスを改善し、ある程度のリタイムされるプロトタイプの数を保証するために、インスタンスがリタイムされるフレームを固有な量で選択します。 リタイムされるプロトタイプの作成は、各自の時間依存でないプロセスに分割されます。これは場合によっては再生パフォーマンスに大幅な影響が出ます。
Only Affect Retimed
このオプションを有効にすると、 Frame Offset and Time Scale がフレームオフセット0/タイムスケール1、または、 Explicit Frame が現行フレームの設定でリタイムされるプロトタイプが無視されます。
Use Frame Offset
フレームオフセットがインスタンスのリタイムを駆動できるようにします。これは、インスタンスアニメーションをタイムシフトさせます。
Use Time Scale
タイムスケールがインスタンスのリタイムを駆動できるようにします。これは、インスタンスアニメーションを遅くしたり速くします。
Attribute
Retime Using が“Internal SOP”または“External SOP”の時、各インスタンスのフレームオフセットまたはタイムスケールが指定されたSOP Pointアトリビュートの名前を指定します。 Use Explicit Frame が有効な時、リタイムされるプロトタイプが使用するフレームが指定されたSOP Pointアトリビュートの名前を指定します。
Primvar
Retime Using が“Primitive Properties”の時、各インスタンスのフレームオフセットまたはタイムスケールが指定されたインスタンサー上のPrimvarの名前を指定します。 Use Explicit Frame が有効な時、リタイムされるプロトタイプが使用するフレームが指定されたインスタンサー上のPrimvarの名前を指定します。
Variations
Retime Using が“Random Values”の時、フレームオフセットまたはタイムスケールの固有な値の総数を指定します。
Min/Max
Retime Using が“Random Values”の時、フレームオフセットまたはタイムスケールの最小値と最大値を指定します。
Seed
Retime Using が“Random Values”の時、インスタンス毎に乱数を生成する際に使用されるシードを指定します。
Distribution
Retime Using が“Random Values”の時、ユーザは、指定した Min/Max 間のランダムな値の分布を制御することができます。
Global Frame Offset
インスタンス毎のオフセットに加えて、このオフセットをすべてのインスタンスに平等に適用します。
Global Time Scale
インスタンス単位のスケールに加えて、このタイムスケール係数をすべてのインスタンスに平等に適用します。
See also |