<3>今月の便利アドオン
●Camera Lister
3Dビューポートで表示しているパースビューと同じ見え方になるよう、カメラを設定できるアドオンです。
3Dビューポート上でビューを動かしているときに、「現在のこのアングルでレンダリングして、確認したい」と思うことはないでしょうか? 筆者はレイアウトを調整しているときはかなりの割合でそのような状況になりますが、Blenderはカメラからのビューしかレンダリングできないため、実際にレンダリングをするとなると新たにカメラを作成し、そのアングルに近くなるようカメラを調整するという作業が必要となります。
このアドオンを使用することで、現在表示しているビューポートと同じ見え方・アングルでカメラを新規作成することができ、また、既存のカメラに対しても同様の設定をすることも可能です。Camera Listerはフリーのアドオンですが、Webですぐに見つかると思いますので、興味のある方は自己責任でインストールしてみてください。インストール後は、3D Viewport上で[Alt+C]を実行すると、【3-A】 のようなインターフェイスが表示されます。
赤で囲われているボタンを実行すると、現在の3D Viewport上のビューに合わせて新規カメラを作成することができます。既にシーン上にあるカメラを選択した状態で、青で囲われているボタンを実行すると、そのカメラがビューに合うよう設定されます。
緑で囲われている部分には、シーン上に存在するカメラがリストアップされており、一番左側の矢印のボタンをクリックすることでカメラが選択されます。上記のシーン上のカメラをビューに合わせる機能を使用する場合には、このボタンと併用することで、Outlinerや3D Viewportでカメラを選択する手間を省くことができます。
また、その横の「カメラ名」の部分のボタンを実行すると、そのカメラから見たビューに切り替わります。シーン上にカメラが複数ある場合など、アクティブカメラの切り替えに非常に役立ちます。その他、レンダリングを行なったり、EeveeとCyclesの切り替えやカメラの設定の調整をしたりできるようです。
<5>今月のミニTips
●Object IndexとMaterial Indexの出力方法
今回はレンダリング要素のObject IndexとMaterial Indexの出力方法に関して説明してまいります。
Object Index、Materal Index
Object IndexとMaterial Indexを使用することで、オブジェクトやマテリアルごとにコンポジット時に使用するマスクを出力することができます。Object Indexではオブジェクト単位のマスクしか出力できませんが、Material Indexはマテリアルごとに設定が可能です。そのため、ポリゴン単位でマテリアルが割り当てられている場合にも、それをマスクとして出力することができます。
マスクとして出力したいオブジェクトや、マテリアルごとにPass Indexの数値を任意に設定し、Compositorエディタでその数値をマスク画像に変換して出力します。オブジェクトに関しては、Propertiesエディタの[Objectプロパティ→Relations]の項目【4-A:a】 、マテリアルに関しては[Materialプロパティ→Settings]の項目【4-A:b】 で[Pass Index]の数値を設定します。
【4-B】 のシーンでは、SuzanneのオブジェクトのPass Indexを[1]、その他のオブジェクトを[2]、背景を[3]に設定し、Suzanneの右目のマテリアルのPass Indexを[1]、左目を[2]、それ以外の顔の部分を[3]に設定しています。
▲【4-B】Object/Material Index②
Suzanneは、右目と左目、それ以外の顔の部分に対して、それぞれ異なるマテリアルが割り当てられています
それでは、View Layerプロパティで[Object Index]と[Materal Index]にチェックを入れて、レンダリングを実行してみましょう。Compositorエディタを見てみると、Render Layersノードのレンダリング要素に[IndexOB]と[IndexMA]という項目が追加されているのが確認できたと思います。
この2つの画像を直接Viewerノードに繋げてバックドロップ表示をしてみても、画像は真っ黒で何も表示されません。ここではID Maskノードを使用して、それぞれのPass Indexの数値をマスク画像に変換する必要があります。Addメニューの[Converter→ID Mask]からID Maskノードを作成し、Render LayerノードのIndexOBをID MaskノードのID Valueに接続し、さらにそこからViewerノードに接続して、結果をBackdrop表示で確認しましょう。
ID MaskノードのIndexの数値を[1]、[2]、[3]に切り替えると、【4-C】 のようにSuzanne、その他のオブジェクト、背景とマスクが切り替わります。
ID MaskノードをIndexMAに接続し、同様にIndexの数値を切り替えると、マテリアルのPass Indexで設定した数値に対応したマテリアルのマスクに切り替わります【4-D】 。
▲左:【4-C】/右:【4-D】Object/Material Index③
このように、そのまま出力した状態では画像として確認できないレンダリング要素があります。この他にも、Z(Depth)の要素などはNormalizeノードを接続することで正常に表示されるようになります
この手法により、Pass Indexで設定したマスクを個々に作成することができますが、【4-E】 のようなノードの構成を構築することで、3つのマスクを「Red」、「Green」、「Blue」それぞれに割り当てた1つの画像にまとめることができます。
▲【4-E】Object/Material Index④
マスクをRGBで出力すると、マスク同士が隣接している場合でも、After Effectsなどのコンポジットツールで比較的きれいにマスクを取り出すことができます
Object IndexとMaterial Indexを使用したマスクの出力は、他の3Dツールでもよく使用される手法ですが、Blenderでは出力されたマスクのエッジにジャギーがかかってしまい、正直、筆者は実用的ではないと感じています。
高解像のレンダリングや大きなオブジェクトの場合はそれほど気にならないのですが、カメラから見て小さく映るオブジェクトなどでは、かなりエッジのジャギーが目立ってしまいます。エッジがスムーズなマスクが必要な場合は、次回以降で説明する「Ctyptmatte」を使用して出力することをオススメします。
Profile.
-
横田義生/Yoshio Yokota(Griot Groove)
3ds Max歴25年。Web3D、建築、ゲーム、CMを経て現在映像プロダクション・グリオグルーヴにディレクターとして所属。頑なに3ds Maxを使用してきましたが、そろそろ新しいツールを覚えたいと言うタイミングでBlenderに出会い仕事の傍ら猛勉強中です。もともとジェネラリストでしたが、ここしばらくは制作現場からは遠ざかっていたため、これを機に一クリエイターとして制作をしていこうと意気込んでいます