社内にBlenderチームを結成し、デモ映像の制作を通じて日々検証を行なっているグリオグルーヴ。本連載では、3ds Max歴25年からBlenderを使い始めた同社のCGディレクター横田義生氏が、自身の経験からBlenderを始めたい人に向けたTIPSを紹介していく。
TEXT_横田義生 / Yoshio Yokota(Griot Groove)
EDIT_三村ゆにこ / Uniko Mimura(@UNIKO_LITTLE)
Infomation
『DEEP HUNTER』
グリオグルーヴBlenderチームによる、Blenderで制作を完結させることを目標としたCGアニメーション作品のパイロットムービー。本連載では、この映像の制作を通してBlenderの基礎を解説していく
はじめに
今回はView LayerとSceneのベースとなる「Collection」の説明をしていきます。グループとしての機能が基本的な使用方法になりますが、View Layerと併用することによって他の3Dツールで使用される様々な機能がCollectionから設定可能となっています。そのため、理解して使いこなすには少々わかりにくい部分もあるとは思いますが、使用していくうちに使い勝手の良さに気が付くのではないでしょうか。View Layerとの連携に関しては次回になりますが、今回はその前準備としてCollectionの特性を理解していただければと思います。
制作環境
Blender 2.83.2(Portable版)
OS:Windows 10
CPU:Intel Core i7-9700K
メモリ:32GB
GPU:NVIDIA GeForce RTX 2080 SUPER
<1>Collectionでできること
CollectionはOutlinerの機能の1つで、他の3Dツールでいう「グループ」の機能に近いかと思いますが、その他にも様々な機能と密接に結びついています。Collectionに格納されたオブジェクトは、Collectionのステータス(Visibility、Selectable、Holdout等)を継承するため、Collectionを管理することで複数のオブジェクトのステータスを一括で制御することが可能になります。また、これまで説明してきた「オブジェクトの複製」、次回以降の「View Layer」、「Scene」の機能と組み合わせることでシーンの構築を容易にします。
●Collectionの作成とオブジェクトの格納
シーンを新規で起ち上げてOutlinerを確認すると、一番上に[Scene Collection]、その下の階層に[Collection]が格納され、さらにその下に[Camera]、[Cube]、[Light]が格納されています【1-A】 。
-
-
◀【1-A】Collectionの構成
新規のシーンでは、緑枠で囲われた[Camera]、[Cube]、[Light]はCollectionに格納されており、Collectionは[Scene Collection]に格納されています。Scene Collectionは必ずシーンに存在するもので、削除することも名前の変更もできません
Outliner上ではCollectionの下の階層にオブジェクトが並んでいるため、一見すると親子関係のような表示になっていますが、実際にはリンク構造ではなく「オブジェクトを格納する箱」という認識が最も近いかと思います。また、CollectionはCollection自体を格納できるため、メッシュ、ライト、カメラをそれぞれわかりやすいように整理することができます。Collectionを新規で作成するには、Outlinerの右上の[Collection]に[+]が付いたアイコンを実行するか、Outliner上で右クリックすることで表示されるメニューからも作成が可能です【1-B】 。新規のCollectionは、通常[Scene Collection]の階層下に作成されますが、他のCollectionを選択した状態で作成した場合は、その階層下に作成されます。
-
-
◀【1-B】Collectionの作成
赤枠のアイコンをクリックするか、右クリックで表示されるメニューの項目の[New Collection](緑枠)を実行することで新規のCollectionを作成することができます。Collectionは、オブジェクトやマテリアルと同様に1シーン内で重複する名前では共存できません。また、オブジェクトはOutliner上では基本的にアルファベット順に並びますが、Collectionに関しては名前に縛られることなくドラッグ&ドロップで自由に配置することが可能です
Collectionにオブジェクトを格納する方法は、以下の通りです。
●OutLiner上でオブジェクトをCollectionにドラッグ&ドラッグ
●オブジェクトを選択し、3D Viewportの[Objectメニュー→Collection→Move to Collection(Shift+M)]を実行して、表示されるメニューから格納するCollectionを選択【1-C】
●格納したいCollectionをOutlinerで選択した状態で、オブジェクトを新規作成
●[Properties→Objectプロパティ→Collections]の項目で設定する(本稿後半の「<3>今月のミニTips『Linkオブジェクトの確認方法』」で説明します)
-
-
◀【1-C】Collectionへの格納
[Move to Collection]を実行して表示されるメニューにシーン上のCollectionが一覧で表示され、その中から格納するCollectionを選択します。[+New Collection]から新規でCollectionを作成し、そこに格納することもできます
●Collectionとオブジェクトのステータス管理
Outliner上で管理することができるステータスは、Collectionが7種類、オブジェクトが4種類用意されていますが、デフォルトではほとんどが非表示にされています。Outlinerの右上の漏斗のようなアイコンを押すとOutlinerの表示設定が表示されるので、一番上の項目の[Restriction Toggles]を全てアクティブにしてください【1-D】 。Outliner上でCollectionとオブジェクトの右にずらりとアイコンが表示されたかと思います【1-E】 。
これらのアイコンをON/OFFすることでそれぞれのステータスを設定することが可能で、Collectionに対する設定は格納されているオブジェクト全てに反映されます(以下はCyclesを使用したときの設定と画像です)。
-
-
◀【1-D】ステータスの表示①
左から順に、「A:CollectionのON/OFF」、「B:選択の可/不可」、「C:一時的なビューポート上の表示/非表示」、「D:ビューポート上の表示/非表示」、「E:レンダリング時の可視/不可視」、「F:HoldoutのON/OFF」、「G:カメラに対する可視/不可視」の設定となります。デフォルトでは「A」と「C」しか表示されていないため、必要に応じて表示するステータスを追加してください
-
-
◀【1-E】ステータスの表示②
Outlinerでは、「A」以外はCollection、オブジェクトの右側にステータスのアイコンが表示されます。Outlinerのウインドウの幅が大きくなり作業領域が狭くなってしまうため、必要のないステータスは非表示にしておきましょう
A:CollectionのON/OFF
Collectionのみの設定で、シーン上でCollectionを有効にするか無効にするかを設定します。
OFFにすると、「B」以下の設定を無視して完全にシーン上から消えた状態になります(B以下の設定は維持したままON/OFFが可能)。
B:選択の可/不可
OFFにするとフリーズ状態となり3D Viewport上で表示はされたままの状態ですが、選択することはできなくなります。
C:一時的なビューポート上の表示/非表示
これはショートカットによる[H(選択を非表示)]/[alt+H(全表示)]と同じ機能となります。Collectionに関してはOutliner上でCollectionを選択した状態、オブジェクトに関しては3D ViewportとOutliner上でオブジェクトを選択した状態でショートカットを実行したときと同じ結果になります。
D:ビューポート上の表示/非表示
このステータスでは、「C」の表示/非表示の設定に追加でCollectionとオブジェクトの表示/非表示を切り替えることが可能で、ここで非表示設定にした場合はショートカット[Alt+H]キーで全表示にしても表示されません。「C」での設定を維持したまま切り替えが可能なため、細かい切り替えは「C」でショートカットを用いて行い、大きな切り替えは「D」でといった使い分けが可能です【1-F】 。
▲【1-F】ビューポート上の表示/非表示
「C」と「D」のステータスはビューポート表示に対しての表示/非表示の切り替えであるため、ビューポート上では非表示でもレンダリング時に描画されてしまう点に注意が必要です
E:レンダリング時の可視/不可視
このステータスをOFFにするとビューポート上では表示されたままですが、レンダリング時には非表示となりまったく反映されなくなります【1-G】 。
▲【1-G】レンダリング時の可視/不可視
ビューポート表示をRenderdに切り替えても3D Viewportには表示されたままで、レンダリング結果とは異なることに注意してください
F:HoldoutのON/OFF
Outliner上ではCollectionにのみ設定可能です。他の3Dツールでいうところの「マットオブジェクト」の設定で、このステータスをONにするとそのCollectionに含まれるオブジェクトの部分が抜けて、アルファがない状態になります。キャラクターを背景のマスクで抜いた状態でレンダリングするときなどに使用されます【1-H】 。
▲【1-H】HoldoutのON/OFF
オブジェクト自体はマット設定となりますが、影や反射、屈折、GIには影響を及ぼします。ビューポート表示ではRenderedとMaterial Previewで機能します
G:カメラに対する可視/不可視(Eeveeでは現状サポートされていません)
Outliner上ではCollectionにのみ設定可能です。レンダリング時のカメラに対する可視性の設定を行います。背景とキャラクターを分けてレンダリングしてコンポジットで合成するときなどに使用されます【1-I】 。
▲【1-I】カメラに対する可視/不可視
オブジェクト自体はレンダリングされませんが、影や反射、屈折、GIには影響を及ぼします。ビューポート表示ではRenderedでのみ機能します
上記のステータスで、Collectionには存在してオブジェクトにはないステータスがあることにお気づきかと思います。オブジェクトにないステータスはOutliner上では設定できませんが、ステータスにある設定も含め、全て[Properties→Objectプロパティ→Visibility]に用意されていますので、そこで設定することが可能です【1-J】 。
-
-
◀【1-J】オブジェクトのステータス
Objectプロパティでのオブジェクトのステータスの設定項目です。オブジェクトに関しては、「C」以外は全てこちらからでも設定可能です(「A」はCollectionの機能のため用意されていません)
●Collectionの複製と削除
Outliner上で[Collection]を選択し右クリックのメニューからCollectionの複製が可能です【1-K】 。 Collectionを複製すると、格納されている全てのオブジェクトが共に複製されます。複製方法は、[Duplicate Collection]と[Duplicate Linked]の2種類がありますが、前回説明したオブジェクトの複製と同様で、Collectionを[Duplicate Linked]すると格納されているオブジェクトが"Data"を共有した状態で複製されます。
-
-
◀【1-K】Collectionの複製と削除
赤枠がCollectionの複製、緑枠が削除となります。[Delete Hierarchy]はCollectionのみの機能となるため、オブジェクトを選択した場合のメニューには表示されません。[Select Objects]を実行するとCollectionに格納されている全てのオブジェクトが選択されます。Collectionに格納されているオブジェクトのみを削除したい場合は、[Select Objects]を実行して削除します
次ページ:
●「Link to Collection」と「Instance to Scene」
●「Link to Collection」と「Instance to Scene」
View Layerと密接に関わってくる機能となりますが、例えばある1つのオブジェクトを普通にレンダリングしたい場合と、オブジェクト自体はレンダリングされずに背景に対してのみ影を落とすように設定したい場合があるとしましょう。
オブジェクトを複製してCollectionにふりわけ、Collectionのステータスを切り替えることで同様のことができますが、共有している"Data"以外の設定に調整を加えた場合には、複製した全てのオブジェクトに対しても同様の調整を適用する必要が生じてしまいます。[Link to Collection]と[Instance to Scene]の機能を使用することにより、オブジェクトを複製することなくデータも最小限に抑えたままOutliner上でオブジェクトをCollectionにふりわけることができます。
ふりわけられたCollectionをView Layerの機能を使用して切り替えることで、コンポジット時に必要とするレンダリングの素材分けやモデリング時の表示の切り替えなど、多くのことに活用することができます。
・Link to Collection
[Link to Collection]を使用すると、オブジェクトを複製することなくOutliner上でオブジェクトをCollectionにふりわけることが可能となります。Link to Collectionによって作成されたオブジェクト(以下、Linkオブジェクト)はOutliner上では複数表示され、一見するとオブジェクトが複製されているように見えますが、Linkオブジェクト同士は完全に同一オブジェクトでOutliner上でCollectionにふりわけられることで、複数あるかのように表示されています。
同一のオブジェクトであるため、いずれかを編集すると当然そのほか全てのLinkオブジェクトにも同様の編集が適用されます。3D Viewport上では、Linkオブジェクトは1つのオブジェクトとして表示され、個別には選択・編集することはできません。
それでは実際に、Link to Collectionの機能を使用してみましょう。[Scene Collection]の直下に、新規でCollectionを2つ作成して名前を「Collection_A」、「Collection_B」に変更し、Collection_Aを選択した状態でCubeを作成してください。Cubeを選択した状態で、3D Viewportの[Objectメニュー→Collection→Link to Collection(Shift+M)]を実行するとポップアップメニューが表示され、格納するCollectionを選択することができるので、「Collection_B」を選択してください【1-L】 。
▲【1-L】Link to Collection①
LinkオブジェクトはCollectionにふりわけて使用することが前提となっているため、1つのCollection内に同じLinkオブジェクトを作成することはできません。ここでLink元のオブジェクトと同じCollectionにLinkオブジェクトを作成しようとするとエラーが表示され、実行できません
図のようになったと思いますが、これらのLinkオブジェクトはオブジェクト名もデータ名もまったく同じであることから、複製ではなく同一のオブジェクトであることがわかります【1-M】 。
▲【1-M】Link to Collection②
3D ViewportやOutlinerで1つのLinkオブジェクトを選択すると、そのほかの全てのLinkオブジェクトがOutliner上でハイライト表示されるようになります。図ではCollection_AのCubeを選択すると、Collection_BのCubeもオレンジ色でハイライトされているのがわかります
これにより、それぞれのLinkオブジェクトを格納しているCollectionのステータスを切り替えることで、同一のオブジェクトのステータスも切り替えることが可能となります。Linkオブジェクト自体は同一オブジェクトであるため、片方のオブジェクトのステータスを切り替えるともう一方のオブジェクトのステータスも自動的に切り替わってしまうことに注意してください。Linkオブジェクトはどれだけ作成してもデータ的には1つのオブジェクトであるためシーンが重くなることもなく、Collectionで制御することで様々なステータスをもたせることができます。
Linkオブジェクトの削除方法ですが、普通に削除してしまうとLinkしている全てのオブジェクト(オリジナルのオブジェクトも含む)が削除されてしまいます。特定のLinkオブジェクトのみを削除したい場合は、OutlinerでそのLinkオブジェクトを選択し右クリックして表示されるメニューからUnlinkを実行します【1-N】 。
・Instance to Scene
Collectionに対して[Instance to Scene]を実行すると、Collectionに格納されている全てのオブジェクトが集約され1つのオブジェクト(以下、Collectionオブジェクト)となり、シーン上に自由に配置することが可能となります。Outliner上でCollectionを選択し右クリックメニューでInstance to Sceneを実行すると、同じ階層に選択したCollectionと同じ名前のCollectionオブジェクトが作成されます【1-O】 。
作成されたCollectionオブジェクトは、元のCollectionの情報を完全に引き継いだオブジェクトとなりますが、Outliner上で展開するとその階層下にはInstance to Sceneを適用した元のCollectionのみが表示され、格納されている個々のオブジェクトの編集やマテリアル調整などを一切受け付けない状態となっています【1-P】 。
-
-
◀【1-P】Instance to Scene②
青くハイライトされたCollection_A(Collectionオブジェクト)の階層下のCollection_Aは、Collection_A(元のCollection)と連動しています。作成されたCollectionオブジェクトの名前は自由に変更可能ですが、階層下のCollectionの名前を変更すると元のCollectionの名前も連動して変更されるので注意が必要です。Linkオブジェクトは双方向でオブジェクトの調整が可能ですが、Collectionオブジェクトに関しては調整を加える場合は元のCollectionに対して行う必要があります
元のCollectionに対する変更はCollectionオブジェクトにも適用されるため、元のCollectionに新規オブジェクトを追加したり調整を行なった場合は、Collectionオブジェクトに対してもその追加・調整が反映されます。
CollectionオブジェクトとLinkオブジェクトは対象が異なるだけで機能的には非常に似ていますが、Linkオブジェクトとは異なりCollectionオブジェクトは単独のオブジェクトとしてシーン上での移動・回転・スケールが可能です。例えばビルや車など、パーツごとに細かく整理された階層構造をもつCollectionからCollectionオブジェクトを作成し、それを複製して配置していくことが可能となります。この手法を用いることにより、レイアウトが完成した段階で元のビルや車に修正が発生した場合でも、オリジナルのCollectionに対して調整を加えてしまえば配置を終えた全てのCollectionオブジェクトに対してもその調整が適用されるようになります。
Collectionオブジェクトの複製は、Linkオブジェクトと同様にデータ的に非常に軽くシーンの構成もシンプルで整理しやすくなるので、様々な状況で積極的に使用することをオススメします(データ的には軽いですが、複製していくとそれに伴いビューポート表示は重くなっていきます)。
[[SplitPage]]
<2>今月の便利アドオン
●Simple Renaming Panel
オブジェクト、マテリアル、Collection、Boneなどの名前を一括で変換することができるアドオンです。リネームはあまり派手な機能ではありませんが、筆者にとってはかなり必須となる機能であるため、ここで取り上げさせていただきました。
作業が進むにつれてオブジェクトやCollectionがシーン内に大量にできてしまい、結果的にOutlinerを使用しての選択に頼ることになるのですが、オブジェクト名が整理されていないとソートも使用できないため、非常に効率が悪くなってしまいます。「Simple Renaming Panel」はフリーのアドオンですが、Webですぐに見つかると思うので興味のある方は自己責任でインストールしてください(日本語での簡単な解説をしているサイトもありますのですぐに使いこなせると思います)。
インストールするとサイドバーに[Rename]というタブが追加されるので、そこからアクセスします。操作は非常にシンプルで、名前を変更したいカテゴリ(オブジェクトやマテリアルなど)を選んで変更する方法を実行します【2-A①】 。
[Only Selected]というチェック項目があるので、変更したいオブジェクトを選択している任意のオブジェクトに限定したい場合はこちらにチェックを入れてください【2-A②】 。
▲【2-A】Simple Renaming Panel
①[Target](赤線)のプルダウンメニューからリネームするカテゴリ(緑枠)を選択します
②[Object]を選択した場合のみオブジェクトごとのアイコン(赤線)が下に表示され、アイコンのON/OFFでさらにメッシュやカメラ、Armature等を絞り込むことができます。予期せぬデータの名前を書き換えないように、基本は[Only Selected](緑枠)にチェックを入れておいたほうが良いでしょう
名前の一括変換(末尾に番号を振ることが可能で桁数も指定可)、名前の置き換え、頭に文字を追加、末尾に文字を追加などひと通りの機能が備わっています。また、オブジェクトに対してもカテゴリ(メッシュ、カメラ、ライトなど)ごとに文字を追加できるので、納品時にオブジェクトの種類ごとに名前の指定があるときなども非常に重宝します。
Undo/Redoも正常に機能し、処理も早いので安心して使用できます。ただ、残念な点としては、末尾の文字を削除(削除する文字数も指定可)する設定はあるのですが、頭の文字を削除する設定がないことです......(普通はあると思うのですが、筆者が見つけられないだけでしょうか......)。
<3>今月のミニTips
●Linkオブジェクトの確認方法
Linkオブジェクトが複数のCollectionにまたいで格納されているシーンでは、Outlinerの通常の表示だけでは確認しづらいときがあります。そのような場合は、下記の2つの方法から確認することができます。
1:Outlinerの検索機能からの確認
Outlinerの上部に虫眼鏡の項目があり、そこに文字を入力することによりOutlinerに表示されるカテゴリー(オブジェクトやCollection、Data、マテリアル等)の全てを名前でソートすることができます【3-A】 。
-
-
◀【3-A】オブジェクトのソート
通常「Cube」と入力すると、Cube.001、Cube.002...とCubeと名前のついたもの全てがソートされ表示されますが、Outlinerの表示設定の[Search]項目の[Exact Match](緑枠)にチェックを入れることにより、完全に名前が一致したオブジェクトをソートすることができます
Linkオブジェクトはオブジェクト名も"Data"名も完全に一致しているため、この機能を使用することでOutliner上でLinkオブジェクトを確認することができます。 前述したアドオンのSimple Renaming Panelを使用して名前を整理しておくことで確認がより容易になります。
2:Objectプロパティからの確認
オブジェクトがどのCollectionに格納されているかは、[Properties]から確認することができます。確認したオブジェクトを選択し、[Properties→Objectプロパティ→Collections]の項目を展開してください。この項目にCollectionが複数表示されている場合は、そのオブジェクトがLinkオブジェクトとしてそこに表示されている複数のCollectionに格納されていることになります【3-B】 。
-
-
◀【3-B】Objectプロパティ
図からこのオブジェクトがCollction_AとCollection_BにLinkされていることがわかります。 オブジェクトがScene Collectionの階層の直下にある場合は、この項目には何も表示されません。Scene Collectionの直下にオブジェクトを配置すると何かと不都合が生じるため、オブジェクトは基本的に追加作成したCollectionに格納するようにしましょう
また、Collectionの名前の横の[☓]をクリックすることでUnlinkと同じ効果になります。この設定項目では、そのほかにInstance to Sceneを実行してCollectionオブジェクトを作成したときの起点の位置や、名前の変更、新規Collectionの作成も可能です。ただ、可能とは書きましたが、ここで新規にCollcectionを作成するとなぜかシーンに存在しないCollection(次回以降に説明します)が作成され、そこにLinkオブジェクトとして格納されてしまうため基本的には使用しないようにしましょう。
Collectionの用途別分類
今回説明したLinkオブジェクト、Collectionオブジェクトを使用することで、Collectionを用途別に分類することができます。Linkオブジェクトは、リンク構造下(親子関係のある階層構造)のオブジェクトも階層構造を無視した状態でLinkオブジェクトとしてCollectionに格納することができるため、階層が深いが頻繁に編集する必要があるオブジェクトをLinkオブジェクトとして任意のCollectionにまとめることができます。
また複雑な構造をもつCollectionも、Collectionオブジェクトとして1つのオブジェクトに集約することでシンプルな構造でCollectionに分類することが可能です。この手法で、作業用、選択用、レンダリング用など用途別にLinkオブジェクトとCollectionオブジェクトをCollectionに分類することで、目的とするオブジェクトへのアクセスが容易になり作業の効率化を図ることができます(次回説明するView Layerの機能と併用することで、さらに簡単に切り替えが可能になります)。
そのほか、パーティクルに使用するオブジェクトやシュミレーション用のコリジョンオブジェクトの指定などは基本Collection単位で行うため、必要なオブジェクトをLinkオブジェクトとしてCollectionにまとめることで、Collectionの階層構造やリンク構造を崩すことなく簡単に指定することが可能となります。
Profile.
-
横田義生/Yoshio Yokota(Griot Groove)
3ds Max歴25年。Web3D、建築、ゲーム、CMを経て現在映像プロダクション・グリオグルーヴにディレクターとして所属。頑なに3ds Maxを使用してきましたが、そろそろ新しいツールを覚えたいと言うタイミングでBlenderに出会い仕事の傍ら猛勉強中です。もともとジェネラリストでしたが、ここしばらくは制作現場からは遠ざかっていたため、これを機に一クリエイターとして制作をしていこうと意気込んでいます