社内にBlenderチームを結成し、デモ映像の制作を通じて日々検証を行なっているグリオグルーヴ。本連載では、3ds Max歴25年からBlenderを使い始めた同社のCGディレクター横田義生氏が、自身の経験からBlenderを始めたい人に向けたTIPSを紹介していく。
TEXT_横田義生 / Yoshio Yokota(Griot Groove)
EDIT_小村仁美 / Hitomi Komura(CGWORLD)
Infomation
『DEEP HUNTER』
グリオグルーヴBlenderチームによる、Blenderで制作を完結させることを目標としたCGアニメーション作品のパイロットムービー。本連載では、この映像の制作を通してBlenderの基礎を解説していく
はじめに
BlenderのView Layerは、Mayaのレンダーレイヤや3ds Maxのステートセットに似た機能です。実際のところそれらと比較するとそれほど多くの設定ができるわけではありませんが、Sceneと組み合わせることで柔軟にシーンを構成することが可能となっています。機能が限定されている分、設定が容易で使い勝手が良く、モデリングの段階でも気軽に使用することができます。
コンポジット用素材の出力設定もView Layerで行うため、最終的な画づくりにおいてもView Layerは非常に重要な機能となります。第4回、第5回とBlenderのシーン構成の基となる機能の説明をしてきましたが、今回はこれまでの機能を使用してView LayerとSceneの活用方法を説明します。
制作環境
Blender 2.83.2(Portable版)
OS:Windows 10
CPU:Intel Core i7-9700K
メモリ:32GB
GPU:NVIDIA GeForce RTX 2080 SUPER
<1>シーンの状態を記録し、切り替えるView Layer
View Layerの機能は簡単に言ってしまうと、Blenderのシーンの状態を記録し、用途に応じてそれらを切り替える機能です。記録できる設定は、大きく分けて以下の2つです。
・Outliner上でのCollectionのステータス切り替え
・PropertiesエディタのView Layerプロパティの設定切り替え
View Layerで記録することができる機能は上記の2つに限定されており、操作自体も非常にシンプルですので、他の3Dツールの同機能よりも手軽に様々な場面で活用することができます。
●View Layerの作成、切り替え、削除
View Layerの基本的な設定はトップバーの一番右側のセクションで行います【1-A】。デフォルトでは"View Layer"という名前のView Layerが1レイヤーのみ作業レイヤーとして設定されており、名前は任意で変更可能です。
▲【1-A】View Layer
ここではView Layerの作成、名前の変更、切り替え、削除を行うことができます
名前の項目の右横のアイコンをクリックするとメニューが表示され、そこからView Layerの作成方法を選択して実行すると、それに応じた新規のView Layerが作成されます【1-B】。作成方法は以下の3パターンが用意されていますので用途に応じて使い分けてください。
・New
Collectionが全てONになった状態でView Layerが新規作成されます。
・Copy Settings
実行した時点でのCollectionの状態を維持したView Layerが新規作成されます。
・Blank
Collectionが全てOFFの状態で新規作成されます。
▲【1-B】View Layerの作成
View Layerはオブジェクト、マテリアルと同じく1シーン内では重複する名前で存在することができないため、新規でView Layerを作成すると自動的に末尾に、".***"と数値が加算されていきます
名前の項目の左横のアイコンをクリックすると設定したView Layerがリスト表示されますので、それを選択することで切り替えが可能です【1-C】。View Layerの削除は、削除したいView Layerを選択している状態で右端の"☓"アイコンをクリックします。
▲【1-C】View Layerの切り替え
View Layerが複数ありリストに表示しきれない場合は、一番下の検索項目に名前を入力することでソートすることができます。View Layerに記録した設定がわかりやすい名前を付けるように心がけましょう
●Collectionのステータスの切り替え
前回のCollectionの説明の際に触れましたが、View Layerを使用することにより、Collectionのステータス切り替えが容易にできるようになります。View LayerはOutliner上で以下の7つのCollectionステータスの設定を記録します。
①CollectionのON/OFF
②選択の可/不可
③一時的なビューポート上の表示/非表示
④ビューポート上の表示/非表示
⑤レンダリング時の可視/不可視
⑥HoldoutのON/OFF
⑦カメラに対する可視/不可視
注意していただきたい点として、View Layerに記録される設定はCollectionに対しての上記の設定の切り替えのみで、オブジェクトに対しては③の設定の切り替えのみが唯一記録されます。それ以外は1つのView Layerでステータスを変更したとしてもその設定は記録されず、その他全てのView Layerに変更が反映されてしまいます。
オブジェクト単位の切り替えを記録したい場面も多々あると思いますが、そのときは前回説明しましたLink to Collectionを使用してLinkオブジェクトを作成し、それを格納しているCollectionのステータスを切り替えることで対応することになります。
それでは実際にCollectionのステータスの設定をView Layerに記録して、View Layerを切り替えてみましょう。レンダリングエンジンにはCyclesを使用しています。
下準備:【1-D】のようにオブジェクトが配置してあるシーンを用意します。このシーンに対してコンポジット用に背景のView Layer、キャラクターのView Layer(マスク付き)、SuzanneのマスクのView Layerを設定していきます。
▲【1-D】Collectionのステータスの切り替え①
シーンを準備します。背景には空のオブジェクトとして面を反転したSphereオブジェクト、地面にはPlaneオブジェクトを配置しています。また、CubeとCylinder、Suzanneは床のPlaneに埋まっている状態です
STEP 01:新規シーンから作成した場合、"View Layer"と言う名前のレイヤーが1つだけ設定されていますので、その名前をわかりやすいように"work"に変更します。次にScene Collectionの直下に"Base"コレクションを作成し、その下にカテゴリごとにオブジェクトをCollectionに分類していきます【1-E:a】。
・"Base"コレクション
・"Camera"コレクション:Camera
・"Light"コレクション:Light
・"CH"コレクション:Cone、Cube、Cylinder、Suzanne、Torus
・"BG"コレクション:Plane、Sphere
STEP 02:次にレンダリング用にオブジェクトをCollectionに分類していきます。Scene Collectionの直下に"Rend"コレクションを作成し、その下にLink to Collection、Instance to Sceneを使用してそれぞれを【1-E:b】のように格納します。
・"Rend"コレクション
・"Rend_Light"コレクション:Light(Linkオブジェクト)
・"Rend_CH_Suzanne"コレクション:Suzanne(Linkオブジェクト)
・"Rend_CH_Others":Cone、Cube、Cylinder、Torus(Linkオブジェクト)
・"Rend_BG":"BG"(Collectionオブジェクト)
▲【1-E】Collectionのステータス切り替え②
【a】ここでは単純にオブジェクトをカテゴリごとにCollection分けしていますので、それぞれがわかりやすいようにオブジェクトを分類しましょう。"work"レイヤーは作業するためのレイヤーとして使用します/【b】"CH"コレクションのオブジェクトは全てLink to Collectionで、"Rend_CH_Suzanne"、"Rend_CH_Others"コレクションに振り分け、"BG"コレクションからInstance to SceneでCollectionオブジェクトを作成し"Rend_BG"に格納しています
STEP 03: 新規にView Layerを作成し、名前を"rend_BG"に変更します。このView Layerでは背景のみがレンダリングされるように設定していきます。"Base"コレクションはここでは必要ないのでOFFにし、"Rend"コレクションのステータスを【1-F】のように変更します。
▲【1-F】Collectionのステータス切り替え③
このView Layerでは背景のみをレンダリングするため、レンダリング時にキャラクターの表示をOFFにする必要があります。Collection自体をOFFにするとキャラクターが落とす影や映り込みも消えてしまうため、ここではカメラに対する可視の設定のステータスをOFFにしています
STEP 04:次にキャラクターのみをレンダリングするためのView Layerを新規作成し、名前を"rend_CH"にします。ステータスの設定は【1-G】のようになります。
▲【1-G】Collectionのステータス切り替え④
キャラクター自体が地面に埋まっているため、背景のCollectionのステータスをHoldoutにしてマットの設定にする必要があります
STEP 05: 最後にSuzanneのマスクをレンダリングするためのView Layerを用意します。名前を"rend_CH_mask"として設定を【1-H】のようにしてください。
▲【1-H】Collectionのステータス切り替え⑤
手前にあるTubeがSuzanneにかぶっているため、"Rend_CH_Others"コレクションのステータスをHoldoutの設定にする必要があります。また、このView Layerはマスク用のレンダリングでライティングは必要ないため、"Rend_Light"コレクションはOFFにしてレンダリング時間を短縮しましょう。レンダリング結果は3D ViewportのViewport ShadingをRenderedに切り替えることでビューポート上でも確認可能です
STEP 06: 上記の設定で、3つのView Layerを切り替えることで、背景のみの画像【1-F】、キャラクターのみの画像【1-G】、Suzanneのマスク画像【1-H】をレンダリングすることができます。レンダリング時にマスク付きで画像を出力するには、PropertiesエディタのRenderプロパティのFilmの項目でTransparentにチェックを入れる必要があります【1-I】。
今回説明したステータス切り替え用のCollectionの分類は筆者がよく使用する方法ですが、あくまで一例であり、全てにおいて有効的な分類方法というわけではありません。今回の方法を参考にして、読者の方々にとって一番効率の良いやり方を模索してみてください。
●View Layerプロパティの設定切り替え
View LayerはCollectionのステータス切り替えの他にPropertiesエディタのView Layerプロパティの設定切り替えも記録します。
View Layerプロパティでは、レンダリング時に出力可能な要素やレンダリングに反映する設定のON/OFFを制御することが可能です。またOverrideを設定することで、シーン上のオブジェクトのマテリアルを上書きしてレンダリングすることも可能となっています。
View Layerを複数設定しレンダリングを実行すると、全てのView Layerが順番にレンダリングされてしまいます。View Layerプロパティの一番上のView Layerの項目に"Use for Rendering"と"Render Single Layer"の設定オプションがありますが、"Use for Rendering"のチェックを外すことでアクティブなView Layerをレンダリングから除外することができます【1-J】。
また、"Render Single Layer"にチェックを入れると"Use for Rendering"のチェックのON/OFFに関わらずアクティブなView Layerのみをレンダリングします。
▲【1-J】View Layerプロパティ
"Render Single Layer"はView Layerに記録されずグローバルな設定として機能します。チェックを付けるとどのView layerに切り替えても常にチェックされている状態となり、アクティブなView Layerのみがレンダリングされるようになります
次ページ:
<2>よりグローバルな設定切り替えが可能なScene
<2>よりグローバルな設定切り替えが可能なScene
Sceneは任意の設定を切り替えると言った点では機能的にView Layerに似ていますが、View Layerでは記録することができなかったグローバルな設定の切り替えが可能となっています。
Sceneを新規で追加して元となるScene(以下「Base Scene」)からデータを流用することで、同一のシーンに対して解像度、フレーム範囲、レンダリングエンジン、カメラ、View Layer等様々な設定の変更が可能です。
また「Base Scene」とはまったく別の新規シーンとして新たに作業を進めていくことも可能なため、これにより複数のシチュエーションの異なるシーンを1つのBlenderファイルで管理することができます。
その他『Deep Hunter』ではレンダリング用とコンポジット用のSceneをそれぞれ別途作成することで、シーン全体をシンプルかつ確認しやすい構成にし、ミスを極力なくし修正に対応しやすいワークフローを組んで制作を行いました。レンダリング/コンポジット用のSceneに関しては、次回以降のレンダリング設定で説明します。
Sceneで切り替えることができる設定のうち、筆者が確認している項目は下記の通りです。
・PropertiesエディタのRenderプロパティ
・同Outputプロパティ
・同View Layerプロパティ
・同Worldプロパティ
Sceneもこれまで説明してきたオブジェクトの複製、CollectionやView Layerなどと同様に少々癖がありますが、使いこなせば複雑なシーンの構成をシンプルに管理することができるようになりますのでぜひ活用してください。
●Sceneの作成・切り替え・削除
Sceneの設定はトップバーのView Layerの左側のセクションで行います【2-A】。デフォルトでは"Scene"と言う名前のベースシーンが作業シーンとして設定されていますが、その他の構成や設定方法はView Layerとほぼ同じですので細かい説明は省きます。
▲【2-A】Sceneの作成①
ここではSceneの作成、名前の変更、切り替え、削除を行うことができます
名前の項目の右横のアイコンをクリックするとメニューが表示され、そこからSceneの作成方法を選択して実行すると新規のSceneが作成されます【2-B】。作成方法は以下の4パターンが用意されていますので用途に応じて使い分けてください。
・New
デフォルトの設定のカラのシーンが作成されます。
・Copy Settings
シーンの設定のみがコピーされたカラのシーンが作成されます。PropertiesエディタのRenderプロパティとOutputプロパティの設定がコピーされます。
・Linked Copy
「Base Scene」のCollection、オブジェクト、マテリアルがLinkした状態でシーンが複製されます。詳細に関しては後述の<Linked Copy>にて説明します。
・Full Copy
「Base Scene」が単純に複製されます。Full Copyを実行すると、「Base Scene」とは全くデータ的に関連性のないSceneが複製され、Collection、オブジェクト等の名前の末尾に数値が追加されます。1つのBlenderファイルに同じシーンが2つ含まれていることになり、データ量も倍近くになります
▲【2-B】Sceneの作成②
View Layerと同じく新規でSceneを作成すると自動的に末尾に、".***"と数値が加算されていきます。Sceneのリストはアルファベット順になりますので、頭に番号を付けることで順番を整理することができます
●Linked CopyによるSceneの複製
Linked CopyでSceneを作成すると、"作成した時点"での「Base Scene」のCollection、オブジェクト、マテリアルが完全にLinkした状態でシーンが複製されます。複製されたシーンのそれぞれの名前を確認すると「Base Scene」の名前と完全に一致していることからも、そのことが確認できると思います。
これは、前回説明したLink to Collectionとまったく同じ状態で、Linked Copyで作成されたSceneでオブジェクトに対して名前の変更やオブジェクトの移動、Editモードでの調整、モディファイアーの適用等を行うと「Base Scene」のオブジェクトに対しても同様の効果が適用されます。
また、CollectionもLinkしており、名前の変更やオブジェクトの追加などが適用されます。なお、SceneがLinkしているため、一方のSceneのCollectionやオブジェクトを削除すると当然もう一方でも削除されてしまいますので注意が必要です。
先ほど"作成した時点"と記述しましたが、Linked Copyで複製されたSceneは、"Linked Copyを実行した時点"でのScene Collection以下の構成がLinkしていることに注意してください。
【2-C:a】のような構成のSceneの状態でLinked Copyを実行した場合、その時点でのScene Collectionに含まれるBaseコレクションとRendコレクションがLinkした状態となり、その階層以下でのCollectionやオブジェクトの追加・削除・調整は複製したScene全てに反映されます。
しかしLinked Copyを実行したあとにScene Collection直下【2-C:b】に新規でCollectionやオブジェクトを追加した場合には複製したSceneにそれらの変更は反映されません。
▲【2-C】Linked Copyによる複製
【a】の状態のScene_Aに対しLinked Copyを実行してScene_B【b】を作成します。その後にScene_BのScene Collectionの直下(紫色の枠の部分)に新規でCollectionやオブジェクトを追加したとしてもその変更はScene_Aには反映されません。結果、緑色の枠の部分のみがLinkした状態となり、紫色の枠の部分はScene_Bのみに存在するオブジェクトということになります
Linked Copyは、「Base Scene」と複製されたSceneのどちらでも編集が可能で、一方に対する調整が他方に対しても適用されるため非常に便利である反面、"Linked Copyを実行した時点"での複製でしかないという制限があるため、CollectionやオブジェクトのScene構成を把握していないとどこまでのデータがLinkしていてどこからが追加されたデータなのかの判別がしづらくなりますので注意してください。
●Copy Settingを使用したSceneの複製
Linked Copyによる複製は、Collectionの階層構造も全て複製したSceneにそのまま反映されてしまうため、「Base Scene」の構成が複雑な場合は複製されたSceneも同様に構成が複雑になってしまいます。
筆者は極力Scene構成をシンプルにするために、「Base Scene」で使い回しするオブジェクトをCollectionにまとめ、そのCollectionをInstance to SceneでCollectionオブジェクトにし、Copy Settingで複製したSceneにそれらをLinkするという手法を採っています。
言葉だけではわかりにくいと思いますので、前述の「<1>View Layer:Collectionのステータスの切り替え」のシーンから、Copy SettingによるSceneの複製を使用して、カメラアングルと解像度の異なるレンダリングを行うためのシーンの設定を説明していきたいと思います。
STEP 01: 「<1>View Layer:Collectionのステータスの切り替え」ではOutlinerは最終的に【1-E:b】のような構成になっています。"Rend"コレクションに含まれるCollectionとオブジェクトをCopy Settingで複製されたSceneにLinkしていきます。まずは、現状のSceneを"Scene_A"と名前を変更し、Copy SettingでSceneを複製し名前を"Scene_B"とします。
STEP 02: Sceneを"Scene_A"に切り替え、"Rend"コレクション以下のCollectionに対して個別にInstance to Sceneを実行しCollectionオブジェクトを作成します。結果、【2-D:a】のように"Rend"コレクション以下にそれぞれに対応したCollectionオブジェクトが作成されました。
-
-
◀【2-D】Copy Settingを使用したSceneの複製①
作成したCollectionオブジェクトをScene_BにLinkするとScene_BのScene Collectionの直下に配置されるため、新規でそれぞれに対応するCollectionを作成して格納しView Layerにステータスを記録し直す必要があります。View Layerの名前は同一Scene内では同じ名前を付けることができませんが、異なるSceneのScene_BではScene_Aと同じ名前を付けることができるようです
STEP 03: 作成されたCollectionオブジェクトを選択し、3D Viewport上でMake Links([Ctrl+L]キー)を実行して、表示されるメニューから[Objects to Scene→Scene_B]を選択し実行します【2-E】。Linkコピー後"Scene_A"に残っているCollectionオブジェクトは削除しても構いませんし、後々確認しやすいようにCollectionにまとめておいても構いません。Link元の"Scene_A"のCollectionオブジェクトを削除しても、Link先の"Scene_B"のCollectionオブジェクトは削除されませんが、Link先でCollectionオブジェクトを削除した場合はLink元のCollectionオブジェクトは削除されてしまうことに注意してください。
STEP 04: Sceneを"Scene_B"に切り替えると、Make LinksしたCollectionオブジェクトがLinkコピーされていることが確認できたと思います。これらをCollectionに整理して"Scene_A"と同様にView Layerを作成していきます【2-D:b】。あとはこのScene内でカメラを新規で作成し、解像度を変更することで"Scene_A"とLinkしたデータで構成された"Scene_B"を作成することができました。
説明に使用した例は、実際のところSceneのLinked Copyで複製を使用した方が簡単に作成できますが、わかりやすいようにあえてCopy Settingを使用して作成しました。Linked Copyは非常に簡単かつデータ量を増やさずに複製することが可能である反面、構成が複雑なシーンに対して使用するとそれがそのまま複製されてしまうことになるため、オブジェクトの追加や削除をする際にどこまでがLinkされているデータであるかの把握が困難になります。
一方Copy Settingを使用する複製は双方向での調整はできなくなってしまいますが、"Base Scene"から必要なデータだけをLinkして共有しているため、使用しているオブジェクトの把握も容易になり、何よりOutliner上での構成が非常にシンプルになります。Sceneを複製して作業を進める際は、これらのメリット・デメリットを考慮し用途に応じて使い分けていくと良いでしょう。
今回の説明ではCollectionオブジェクトを作成してからMake LinksでLinkさせましたが、オブジェクトに対しても直接Make Linksを実行しLinkオブジェクトとして異なるSceneにLinkさせることができます。
Linkオブジェクトを使用することで、パラメータの調整が双方向で可能となります。CollectionオブジェクトのLinkは元のCollection内のオブジェクトに対する変更、調整が全て反映されるためLinkオブジェクトより汎用性があり後々の調整が容易になります。Copy SettingによるSceneの複製は、基本的にはCollectionオブジェクトのLinkで構築していき、双方向のパラメータの調整が必要な場合のみLinkオブジェクトを使用することをおすすめします。
[[SplitPage]]<3>Blenderのシーン構成・まとめ
3回にわたってBlenderのシーン構成について説明してきましたが、同じような用語や機能が文章の中に何度も出てくるためわかりづらい部分も多々あったと思います。特に複製やLink、Instanceに関しては筆者もBlenderを使用しているとこんがらがってしまうことが未だにあります。下記にそれらをざっくりまとめましたのでおさらいの意味も兼ねて目を通してみてください。
・オブジェクト(Collection)の複製
複製方法は"Duplicate Objects(Collection)"と"Duplicate Linked"の2種類があり、前者は単なる複製で後者は"Data"を共有(Link)した複製になります。移動、回転、スケール、モディファイアーなど、"Data"外の調整は複製したオブジェクトには適用されません。
・Linkオブジェクト
CollectionにLinkオブジェクトを作成する機能が"Link to Collection"、SceneにLinkオブジェクトを作成する機能が"Make Links"となります。LinkオブジェクトはOutliner上でのみ存在するオブジェクトで、Outlinerで複数表示されていても実際は1つのオブジェクトで、いずれかのLinkオブジェクトに対して調整を加えるとその他のLinkオブジェクト全てに対して同様に調整が適用されます。
・Collectionオブジェクト
Collectionに対して"Instance to Scene"を実行するとCollectionオブジェクトが作成されます。Collectionオブジェクトの中身を調整したい場合は、元のCollectionに格納されているオブジェクトに対して調整することになります。Collectionオブジェクト自体は1オブジェクトとして移動、回転、スケール等の編集が可能です。
これらの機能を使用せず普通に複製をしてシーンを構築していくことは当然可能ですが、修正や調整、データの使い回しが必要な場合に非常に多くの労力が必要となる上にデータ容量も膨れ上がっていきます。いきなり全ての機能を使用する必要はないとは思いますが、必要に応じて要所要所で使用してみてください。
※今回は本文での解説が長文となってしまったため、「今月の便利なアドオン」「今月のちょっとしたTips」はお休みいたします。
Profile.
-
横田義生/Yoshio Yokota(Griot Groove)
3ds Max歴25年。Web3D、建築、ゲーム、CMを経て現在映像プロダクション・グリオグルーヴにディレクターとして所属。頑なに3ds Maxを使用してきましたが、そろそろ新しいツールを覚えたいと言うタイミングでBlenderに出会い仕事の傍ら猛勉強中です。もともとジェネラリストでしたが、ここしばらくは制作現場からは遠ざかっていたため、これを機に一クリエイターとして制作をしていこうと意気込んでいます