🍣

続・ざっくりOmniverse - Layerを使おう

2020/12/21に公開

引き続きOmniverseを触っていこうと思います。
2回目は、CreateのLayer周りの挙動を見ていこうと思います。

レイヤーを作る

まずは、CreateをNewSceneします。

そうすると、RootLayerがAuthoring Layer になった状態でシーンが作成されます。

Authoring Layerは、PhotoShopなどのレイヤーが選択された状態で絵を書くのと同じで
Authoring LayerになっているUSDファイルに対して
Editが行われます。

なので、例えばCubeを作れば、Authoring LayerにCubeが作成されます。

つぎに、Layerを追加してみます。
Create Sublayerをクリックしてみると

レイヤーが追加され、NewSceneから特に保存していない場合
追加したレイヤーに、先程の編集が追加されます。

レイヤーを更に作る

さらにレイヤーを追加してみます。

追加できました。
このレイヤーを、Authoring Layerに変更して、別のレイヤーにあるCubeを
編集してみます。
今回はマテリアルを追加してみます。

addMaterials.usda を AUthoring Layer にして、PreviewSurfaceを追加します。
そして、作ったマテリアルをビューポートのオブジェクトにDrag&Dropでアサインできます。

そして、シェーダーを選択して Diffuse Color をわかりやすい色にします。

アサインできました。

このとき、addMaterials.usd にも、▲つきのCubeが表示されました。

このusdを覗いてみると

    over "Cube"
    {
        rel material:binding = </World/Looks/PreviewSurface> (
            bindMaterialAs = "weakerThanDescendants"
        )
    }

over で、Cubeが定義されていて、Bind情報のみがレイヤーに書かれるようになりました。
この over (▲)は、いわゆる「差分」を表していて
他のレイヤーに定義がある場合にのみ上書きする(ほかが存在しなければ何もしない)
ようになります。

このレイヤーで別レイヤーに同じ処理があった場合どちらが強いかみてみます。

こんなかんじで新しく addMaterialsB.usd というレイヤーを作ります。

シェーダーができました。

合成結果を見ると、シェーダーが2つある状態になります。

このシェーダーを赤くすると

赤くなりました。
つまりは、上のレイヤーのほうが強い(優先される)というのがわかりました。

こんな感じで入れ替えてみると、上のほうが強い事がわかります。
そして目のマークをON/OFFでレイヤーの表示非表示がPhotoShopなどと同じように
編集できることがわかります。

このあたりはとても直感的でわかりやすいですね。

レイヤー結合

このレイヤーは、結合ができます。

まず1つ目が Flatten Sublayers。
これはその名の通りすべてのレイヤーを「フラット」にします。

実行すると、サブレイヤーがなくなり、RootLayer1つに統合されます。

次が、 Merge Down Oneです。

名前の通り、指定のレイヤーの1つ下のレイヤーに
内容を統合します。

このあたりの操作は、PhotoShopと同じ感覚で使えるのが良いです。

レイヤーのネスト

先程までのこのような RootLayer直下にレイヤーが並んでいる状態は

rootLayer.usda の subLayers に、 addMaterials.usd と testLayerA.usd が
書かれている状態になります。
サブレイヤーはこれだけではなく、サブレイヤーの中にもサブレイヤーを追加できます。

こんなかんじ。
ここに、青いマテリアルを追加してCubeにアサインしてみます。

どん。
しかしなにもおきません。
これはどういうことかというと、サブレイヤーの中にサブレイヤーがある場合は
サブレイヤーの中からコンポジションされていくせいです。

強いレイヤー側のOverを消すと(Delete Delta で消せる)
より強い方の主張が消えるので、サブレイヤー内のサブレイヤーの記述が
反映されます。

まとめ

Omniverseのレイヤーは、SOLARISよりもより直感的で、まさに「レイヤー」として
扱えることがわかりました。
そしてこの個別のレイヤーにLiveSyncをすれば、複数人で同時作業とかも
かんたんにできそうで、夢が広がります。

GitHubで編集を提案

Discussion