Blender 2.8 View Layer & Collectionの基礎

Blender 2.8で、SceneやCollection、そしてView Layerを知らないということは、例えれば、ファイルシステムを知らないで、オペレーティング・システムを使っているようなものと言えるかもしれません。Scene、Collection、View Layerの仕組みを理解することは、めんどうくさいと感じるかもしれませんが、難しいところはありません。一息ついたときにでも学んでみてはいかがでしょうか。

Objectとは?

3Dモデル、カメラ、ライト、ライトプローブなどを指し、選択するとプロパティパネルにオブジェクトタブが表示されるものです。乱暴な言い方をすれば、トランスフォーム(位置、回転、スケール)を持つものがオブジェクトと考えて良いと思います。

図 1:カメラのオブジェクトタブを開いたところ

Blenderでは、これらオブジェクトはメインデータベースに実データが格納され、各Sceneから参照されるようになっているようです。

Sceneとは?

シーンは静止画、アニメーションに関わらず、ひとつのレンダリング結果を得るための構成物がまとまった単位です。「舞台」と例えても良いのですが、同じ背景、同じアクターを使うからといって、同じシーンでなければいけないということではありません。ユーザーの作業のやりやすさでシーンは分けられます。大抵は1つのblendファイルにつき、1つのシーンになることが多いかもしれません。

Collection、View Layerの説明がまだですが、Scene、Collection、View Layerの関係は図2のようになっています。Sceneは複数のView Layerを持つことができます。

図 2:Scene – View Layer – Collection関係図

Collectionとは?

オブジェクトを参照し、Sceneにオブジェクトを配置するためのフォルダのようなものです。各SceneにはScene CollectionというRootのコレクションが存在し、そのScene Collectionにオブジェクトを登録すると、Sceneにオブジェクトを配置したことになります。しかし、Scene Collection直下にオブジェクトを登録するよりも、まず、子のCollectionを作り、その中にオブジェクトを登録した方が管理しやすいと思います。Blenderを起動した時のデフォルトシーンには、Scene Collection直下にCollectionという名前のコレクションが存在し、その中にキューブ、カメラ、ライトが置かれています。

Collectionは、ファイルシステムのフォルダのように見えます。実際、アウトライナー上での操作も然りで、オブジェクトをドラッグ&ドロップで移動できます。但し、オブジェクトは複数のコレクションから参照されることが可能です。その場合、それぞれのコレクションの中に、別々のオブジェクトがあるように見えますが、しかし実体はひとつとなります。(図3)

図 3:Collection、Collection 2から同じLightを参照している様子

CollectionはBlender 2.7xまでのグループ機能も果たします。Collectionをフォルダのよう見立てて、ドラッグ&ドロップで、ぽいとオブジェクトを放り込めばグループ化したことになります。操作がとても簡単です。Collectionは独自の名前を付けることができますし(Scene Collectionは変更不可)、ネストすることもできます。

Collectionをインスタンス化して、Collectionの中にあるオブジェクト全てを参照複製することができます。これをCollection Instanceと呼びます。これはまさにBlender 2.7xでのグループとそのインスタンス化の機能と同じです。この機能は、Blender 2.81以降に実装される予定のStatic Overridesによって大化けするのではないかと期待しています。何故なら、かつてのグループインスタンスは、ルートのトランスフォームを変更できるぐらいで、使い勝手がいまいちだったからです。Static Overridesの機能が実装されると、グループ内の個々のオブジェクトのトランスフォームも独自に設定できるようになるそうです。UnityのPrefabみたいなものを想像しています。

Blender 2.8 アセット用Collectionを作り、そこからオブジェクトを複製する

2018年12月25日

Blender 2.8Alpha 定点観測 #5 (ベータ版はいつ? スタティックオーバーライドとは?)

2018年10月25日

View Layerとは?

View Layerとは、レンダリングの単位と考えると分かりやすいでしょうか? Sceneは複数のView Layerを持つことができます。図2では、Sceneに3つのView Layerがありますので、レンダリング(F12キー)をすると、通常は各View Layer毎にレンダリングが実行されて、静止画なら3つの画像が出力されます。ちなみにプロパティパネルのView LayerタブのRender Single Layerのチェックを入れると、選択中のView Layerのみレンダリングさせることができます。(図4)

図 4:Render Single Layerオプション

View LayerはCollection単位で可視性をコントロールすることができます。図2を例としますと、View Layer 1はCollection 1と2に入っているオブジェクトをレンダリングし、View Layer 2はCollection 2と3、View Layer 3はCollection 1に入っているオブジェクトをレンダリングします。しかし、各View LayerはRootであるScene Collectionの可視性はコントロールできません

Collectionの可視性は、アウトライナー上でCollectionを右クリック >> View Layer >> Set Excludeを選択するとDisableさせることができます。同じくView Layer >> Clear Excludeを選択すると、Disableを解除できます。(図5。2.80BETAでの確認です。今後、インターフェースが変わる可能性があります)

図 5:View LayerからCollectionを除外する方法

View Layerをどのように使うかはユーザー次第ですが、同じシーンをライティングを変えてレンダリングして比較したり、コンポジットノードで各View Layerを合成して、最終レンダリングに繋げることもできます。

1 個のコメント

  • とても勉強になりました!

    同じオブジェクトのマテリアルをマテリアルA、マテリアルBとビューレイヤーごとに切り替えたいのですが、同じになってしまいます…やり方分かりますでしょうか?

  • やぶさか にコメントする コメントをキャンセル

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください