>   >  ベテランジェネラリストのBlender基礎レッスン:第4回:Blenderのシーン構成(1)オブジェクトの複製
第4回:Blenderのシーン構成(1)オブジェクトの複製

第4回:Blenderのシーン構成(1)オブジェクトの複製

社内にBlenderチームを結成し、デモ映像の制作を通じて日々検証を行なっているグリオグルーヴ。本連載では、3ds Max歴25年からBlenderを使い始めた同社のCGディレクター横田義生氏が、自身の経験からBlenderを始めたい人に向けたTIPSを紹介していく。

TEXT_横田義生 / Yoshio Yokota(Griot Groove)
EDIT_三村ゆにこ / Uniko Mimura(@UNIKO_LITTLE

Information

『DEEP HUNTER』
グリオグルーヴBlenderチームによる、Blenderで制作を完結させることを目標としたCGアニメーション作品のパイロットムービー。本連載では、この映像の制作を通してBlenderの基礎を解説していく

はじめに

前回の後半に説明した、オブジェクトのデータ構造を利用してシーンを構成していく手順について、3回にわたって説明していきます。Blenderは、オブジェクトの複製、Collection、View Layer、Sceneを駆使することで、非常にシンプルかつ効率的にシーンを管理することができ、またデータ容量も抑えることが可能です。

今回は、シーン構成のベースとなる「オブジェクトの複製」と「マテリアルのデータ構造」について説明します。Blenderを使い始めたばかりの方には少々難しい部分もあるかもしれませんが、「こういうことも言っていたな」といった程度に頭の片隅に留めておいていただき、必要になったときにもう一度読み返してみると理解しやすいかと思います。

制作環境
Blender 2.83.2(Portable版)
OS:Windows 10
CPU:Intel Core i7-9700K
メモリ:32GB
GPU:NVIDIA GeForce RTX 2080 SUPER

<1>オブジェクトの複製

●Duplicate ObjectとDuplicate Linked
オブジェクトを複製するには、[Duplicate Objects]と[Duplicate Linked]の2種類の方法が用意されています【1-A】

▲【1-A】メニューからの複製
オブジェクトの複製は、3D Viewportエディタの[Objectメニュー→Duplicate Objects/Duplicate Linked]でも可能です

Duplicate Objectsは完全に独立した別オブジェクトを複製し、Duplicate Linkedは"Data"を共有しているオブジェクトを複製します。前回説明したオブジェクトのデータ構造を理解していると、この2つの複製のちがいがはっきりとわかると思います。例えばCubeを選択し、わかりやすいようにオブジェクト名を「Cube_0_original」、マテリアル名を「material_test」に変更します。

このオブジェクトに対して、Duplicate Objectsを実行し複製された「Cube.001」を「Cube_1_copy」に、Duplicate Linkedで複製された「Cube.002」を「Cube_2_link」に名前を変更します(Blenderは、1シーン内でオブジェクトと"Data"それぞれで重複する名前で存在することができず、複製した場合は自動的に末尾に「.***」と数値を追加していきます)。

Outlinerエディタ(以下、Outliner)を確認すると、「Cube_0_original」の"Data"名は「Cube」ですが、Duplicate Objectsで複製した「Cube_1_copy」の"Data"名は自動的に末尾に数値が追加され、「Cube.001」となっていることがわかります。一方、Duplicate Linkedで複製された「Cube_2_link」の"Data"名は「Cube_0_original」と同じ「Cube」となっており、このことからも「Cube_0_original」と「Cube_2_link」オブジェクトがCubeという"Data"を共有していることがわかります 【1-B】


  • ◀【1-B】Outlinerでの複製の確認
    Duplicate Objectsで複製した「Cube_1_copy」には、「Cube.001」という新規の独立した"Data"が自動的に作成されます。一方、Duplicate Linkedで複製された「Cube_2_link」の"Data"は「Cube_0_original」と同じ「Cube」となっています。

●複製時のマテリアルのデータ構造

【1-B】 の図でひとつ気になる点は、"Data"に含まれるマテリアルの「material_test」に関してで、3つのオブジェクトのどれもが同じ「material_test」という名前で"Data"を共有しているように見えるところです。

オブジェクトのいずれかを選択し、Propertiesエディタ(以下、Properties)のMaterialプロパティで「material_test」のBaseColorを変更すると、全てのオブジェクトの色が変更されてしまいます。「Cube_1_copy」のマテリアルは「Cube_0_original」と"Data"を共有しているのでは? と思ってしまいますが、この場合は"Data"が共有されているというわけではなく、単純に「Cube_1_copy」に「Cube_0_original」と同じマテリアルの「material_test」が割り当てられているという状態であることをご理解ください(マテリアルは複数の異なるオブジェクトに割り当てることが可能です)。

試しに、「Cube_0_original」を選択してMaterialプロパティで右上の[-]ボタンを押してマテリアルを削除してみましょう 【1-C】 。"Data"を共有している「Cube_2_link」のマテリアルは削除されましたが、「Cube_1_copy」のマテリアルはそのまま残っていることがOutliner上で確認できたと思います。


  • ◀【1-C】Materialプロパティでのマテリアルの削除
    図の赤で囲まれている[-]ボタンを押すことでマテリアルを削除することができます。 同じような機能で、緑で囲まれている[×]がありますが、こちらはマテリアルの削除ではなくマテリアルを空の状態(何もマテリアルが割り当てられていない状態)にします

このことから、Dupulicate Linkedによって複製されたオブジェクトの"Data"はMaterialプロパティ全体の設定を共有している、ということがわかりますね。

●マテリアルの「Data」と「Object」

制作を進めていくと、"Data"は共有したままマテリアルだけを変更したいという場面に直面すると思います。前回のオブジェクトのデータ構造の説明でも軽く触れましたが、マテリアルは「Data」と「Object」の2つに対して設定することが可能で、設定を「Object」に切り替えることでDuplicate Linkedで"Data"を共有している場合でも異なるマテリアルを適用することができます。

Materialプロパティの図の項目【1-D】①の「Data」を「Object」に切り替えると、マテリアルが空の状態になるので、それに対して異なる質感を割り当てることができるようになります。

それでは実際に「Cube_0_original」を選択し、Materialプロパティで「Data」を「Object」に切り替え、[+ New]【1-D】②ボタンを押して新規のマテリアルを作成し、名前を「material_new」と変更してください【1-D】③

▲【1-D】「Data」と「Object」の切り替え①
デフォルトではマテリアルは「Data」に設定されています。「Data」から「Object」に切り替えると、マテリアルは何も割り当てられていない空の状態になり、[+ New]を押すことで新規にマテリアルを割り当てられます

Outliner上では、"Data"の下の階層には「material_test」が割り当てられていて、"Data"と同じ階層に新しく「material_new」が追加されているのが確認できます【1-E】。一方、Duplicate Linkedで複製された「Cube_2_link」をOutliner上で確認すると、"Data"の下の階層の「material_test」は同じままですが、先ほど追加した「material_new」は割当てられていないことが確認できます。


  • ◀【1-E】「Data」と「Object」のOutliner上の階層構造②
    「material_test」は"Data"の下の階層にありますが、「material_new」は"Data"と同列の階層に作成されます。"Data"を共有している「Cube_2_link」に「material_new」は作成されていません

試しに「Cube_2_link」を選択して同様の操作を行なってみましょう。追加するマテリアルの名前を「material_new」と入力しても自動的に「material_new.001」となり、異なる名前のマテリアルが作成されます【1-F】


  • ◀【1-F】「Data」と「Object」のOutliner上の階層構造③
    マテリアルは、同一シーン内では同じマテリアル名を付けることができないため、新規で作成するマテリアル名を同じ名前にすると、自動的に「material_new.001」となります

このことから、この2つのオブジェクトは「Data」には「material_test」というマテリアルが適用され"Data"として共有していますが、「Object」には「material_new」と「material_new.001」のそれぞれ異なるマテリアル適用されており、設定を「Object」に切り替えることでDuplicate Linkedで複製されたオブジェクトに対して異なるマテリアルを割り当てることができます。

●複数のマテリアルが割り当てられている場合の「Data」と「Object」

「Data」と「Object」の切り替えは、1つのオブジェクトに対して複数のマテリアルが割り当てられている場合においても同様に機能します(ポリゴンに対してのマテリアルの割当て方に関しては、「今月のミニTips」にて説明します)。

例えば【1-F】のようなマテリアル構成の場合は、マテリアルリストでそれぞれのマテリアルを選択し、「Data」か「Object」かを切り替えることになります。Materialプロパティのリストから「red」マテリアルを選択し、設定を「Object」に切り替えると空のマテリアルができるので、新規でマテリアルを作成しBase Colorが黄色の「yellow」にします。同様にそれぞれのマテリアルを「Object」に切り替えて異なるマテリアルを割り当てていきます。その結果、【1-G】のようになりました。

▲【1-F】1つのオブジェクトに複数のマテリアルの割り当て①
マテリアルリストのそれぞれのマテリアルで「Data」と「Object」の切り替えが可能です

▲【1-G】1つのオブジェクトに複数のマテリアルの割り当て②
「Object」から「Data」のマテリアルに戻したい場合は、マテリアルの設定を「Object」から「Data」に戻すか、Outliner上で適用したい方のマテリアルを選択(アクティブ)することで切り替えることができます(わかりづらいですが、選択したマテリアルのアイコンの周りにグレーのボックスが表示されます)

●"Data"共有の解除

Duplicate Linkedで複製されたオブジェクトの"Data"共有の解除は、PropertiesのObject Dataプロパティから行います。選択したオブジェクトに共有している"Data"がある場合、一番上のデータ名の右側に数値が表示されますので、その項目をクリックすることで"Data"の共有が解除されます【1-H】

▲【1-H】"Data"共有の解除
カメラやカーブ等選択しているオブジェクトによって表示されている設定やアイコンは異なりますが、解除する方法は全て同じです。ここに表示されている数値は"Data"を共有しているオブジェクトの数になります。複数のオブジェクトで"Data"を共有している場合は、選択して解除を実行したオブジェクトのみの共有が解除されます

自動的にデータ名が変更され同じ"Data"を共有しなくなったことがわかります。複数オブジェクトに同一マテリアルが割り当てられている場合でも、同様の操作で単独の新規マテリアルを割り当てることが可能です。

Materialプロパティのマテリアルリストの下に選択しているマテリアル名が表示されていますが、その横に先程と同様に数値が表示されている項目があります。この数値はそのマテリアルが使用されている数で、この数値部分をクリックすると自動的にマテリアル名が変更され、新規のマテリアルが割り当てられます【1-I】

▲【1-I】マテリアル共有の解除
Blenderは、この他にもテクスチャやactionなど様々なデータを共有して使い回すことが可能となっており、いずれも同じような方法で解除することが可能です

次ページ:
今月の便利アドオン&ミニTips

その他の連載