Value Clips を使おう(レイヤー合成編)
前回 に引き続き Value Clips 周りについて。 今回は、USD のコンポジションが絡んだ場合、複数の Clip が絡んだ場合など レイヤーを合成する処理関連をまとめていきます。
Value Clips の強さ
USD のコンポジションは、 LIVRPS の原則にあるとおり 決められたルールに従って解決されます。 では、Value Clips を使用した場合はどうなるかというと、L(Local)の次が Value Clips になります。
前提として、Value Clips はメタデータとして扱われています。
複数のレイヤーにわたって Value Clips の定義がある場合、 そのレイヤーのうち「最も強いレイヤー」が、ValueClips のメタデータ扱いになります。 そのレイヤーのことを「アンカーポイント」と呼びます。
例えば上のように、3つのレイヤーがサブレイヤーで合成されていた場合 Stage として開いてい るのが rootLayer.usda だった場合 rootLayer.usda がもっとも強いレイヤーになるので、ここがアンカーポイントになります。 結果、Clips は clipA.#.usda のレイヤーが読み込まれる...ということになります。 この Clips の部分の解決に関しては、通常のコンポジションアークと変わらないということになります。
あとは、この Value Clips によって解決された値は その Clips が指定されているレイヤーのローカルにオピニオン(定義)がなければ Clips の値が使用されます。
これだけだとわかりにくいのでシンプルな例で見てみます。
まずはこんな Clip レイヤーと Manifest を用意します。
#usda 1.0
def "ModelA"
{
double a.timeSamples = {
1: 1
}
}