バッチレンダリング – シーンステート –

バッチレンダリング – シーンステート –

2022-04-02

シーンステートとは

シーンステートとは、オブジェクトの表示/非表示、位置・回転・スケールや
ライトのオン/オフや環境設定、レンダリングの設定など、
保存時の各種項目を保存して、そのあと変更しても
保存時の状態に戻せる機能です。
ステートの意味は、日本語で”状態”なので、
シーンステートは”シーンの状態”という意味です。
なので、シーンステートは保存した状態にいつでも戻すことができます。

これを活用して、バッチレンダリングを使用していくのですが、
これがものすごく便利で、ものすごく複雑になってくるので、
シーンステートの使用自体はお勧めしますが、
混乱しやすいので、使い方は慎重にするようにしましょう。

バッチレンダリングにおけるシーンステートの活用

シーンステートが最も力を発揮される場所がバッチレンダリングです。
バッチレンダリングでシーンステートができることによって、
バッチレンダリングでできることが大幅に上昇します。
バッチレンダリングの基本的なことについて知りたい方は
Batch Rendering(ワンクリックで連続してレンダリングする)-基本編-
をご覧ください。

上記の記事の内容のバッチレンダリングでは、
ワンクリックで連続して複数のカメラをレンダリングできます。
しかし、シーンの設定毎にレンダリングはできませんでした。
例えば、カメラ1は昼景で撮って、カメラ2は夕景で撮りたい場合、
太陽やHDRIを変更しなければならないので、
シーンが異なる場合にはバッチレンダリングは使えませんでした。
そこで、シーンステートを使用することによって、
カメラ1で昼景、カメラ2で夕景をワンクリックで
連続してレンダリングすることが可能になります。

言葉だけではわかりずらいと思うので、
実際にどのように使用してくか、例を見ていきましょう。

バッチレンダリング - シーンステートの使い方 –

①シーンステートを保存する

バッチレンダリングでシーンステートを使用するには、
シーンステートを設定しなければなりません。
「ツール」→「シーンステート管理を管理…」からシーンステート画面を開きます。(図-1)

図-1

シーンステートの設定画面はすごくシンプルです。
・保存
・復元
・名前変更
・削除

この4つだけです。
ただし、”保存方法”が少し複雑になるので、
これがかなり混乱するところではあります。

順番に説明していきます。
”保存”ボタンを押すと、シーンステートを保存することができます。
”保存”で行うことは2点です。
①名前を設定する
②保存内容を設定する

①はすごく簡単で、シーンの名前を決めます。
例えば昼景用のシーンを設定したならば、それに近い名前で”day001”等と付けます。
夕景なら”eve001″です。(名前はあくまで例です)
②が少し複雑です。
シーンステートは、”保存”を押したときの状態を保存するのですが、
どの内容を保存するかは自分で決めなくてはなりません。
内容というのは例えば、現状のライトの強さであったり
オブジェクトの位置だったり、環境設定だったり、オブジェクトプロパティであったり、
細かいところまで保存するかどうかを決めることができます(図-2)

図-2

図-2の保存する内容は、下記の通りです・

ライトのプロパティ

ライトの修正パネルの内容をすべて保存することができます。
multiplierや影付けやexcludeやincludeなどです。

ライト変換

ライトの位置、大きさ、回転などを保存することができます。

オブジェクト プロパティ

レイヤーの表示/非表示や、オブジェクトプロパティの設定を
保存することができます。

カメラ変換

カメラの位置、大きさ、回転などを保存することができます。

カメラプロパティ

カメラの修正パネルの内容をすべて保存することができます。

レイヤ プロパティ

筆者で調べても良くわからなかったので、割愛します。

レイヤの割り当て

筆者で調べても良くわからなかったので、割愛します。

マテリアル

マテリアルの割り当てに関して保存することができます。
※マテリアルの設定ではないことに注意してください。
あくまでも”割り当て”です。

環境

環境設定について保存することができます。

アニメーション レイヤプロパティ

筆者で調べても良くわからなかったので、割愛します。

これらの保存内容を選択して保存すれば、
シーンステートを保存することができます。
筆者がよく使うのは、オブジェクトプロパティが断トツ多くて、
次にライトプロパティと、マテリアルです。

これらをうまく活用して、昼景、夕景、夜景のシーンを作っていきます。(図-3)

図-3

今回は、シーンを変更するために、太陽とHDRIを使用します。
太陽もHDRIもライトのオン/オフのみの変更しかなく、
オン/オフは修正パネル(筆者の場合、管理はVray lighti listerで行っています。)で行うので、
ライトプロパティの設定のみでOKです。
ただし、ライトのオン/オフをレイヤーの表示/非表示で設定している方は、
ライトプロパティではなく、オブジェクトプロパティの保存が必要です。

②バッチレンダリングの設定をする

シーンステートの設定が図-3のように完了したら、
次にバッチレンダリングの設定をします。
冒頭でも説明しましたが、バッチレンダリングの設定については、
Batch Rendering(ワンクリックで連続してレンダリングする)-基本編-
をご覧ください。
それで設定した方法が図-4になります。

図-4

図-4まで設定できれば、あとは簡単です。
カメラの設定にあったシーンステートを選ぶだけです。
”カメラ”のロールアウトの下に”シーン ステート”のロールアウトがあるので、
そこを適切にカメラにあったシーン ステートを選びます。(図-5)

図-5

これで、あとはバッチレンダリングをするだけで、
シーンにあったレンダリングをすることができます。(図-6)
※参考:カメラ名とシーンステート名を合わせると、分かりやすくなります

③シーンステートを変更する

シーンステートを変更する際は、下記の手順で行わないと
かなり混乱するので、気を付けましょう。
①変更したいシーンを”復元”する
②保存内容を確認し、”復元”を選択
(図-7)

図-7

この状態で、保存した内容に”復元”されたので、
変更したい場合は、この復元をしてから変更をしていきます。
例えば、ライトの設定であったり、オブジェクトの表示/非表示であったり
それらの変更が終わったら、再度シーンステートを保存します。

この手順を間違えると、混乱して訳が分からなくなりますので、
気を付けましょう。

まとめ

今回はシーンステートについて紹介しました。
バッチレンダリングとの組み合わせで
複数枚シーンの異なるレンダリングが可能になるので、
ぜひ活用してください。

シーンステートで注意する点は、保存内容をしっかり理解することと、
設定を複雑にしすぎて混乱しないようにすることです。
ありがちな話ですが、シーンステートの設定が複雑すぎて、
どのカメラのどのシーン設定をやっているかわからなくなる時があります。
あまり複雑化しないように気を付けましょう。

また、保存内容はあまり多く選択しすぎないように心がけましょう。
不要なものまで保存する必要はありません。
例えば、環境はバックグラウンドまで変更してしまうので、
環境の保存内容を入れるだけで、読み込みが遅くなりやすいです。
不要なものはないほうが作業効率は上がります。
オブジェクトプロパティレイヤーの表示非表示、オブジェクトプロパティの内容
ライトプロパティライトの修正パネルの内容
カメラプロパティカメラの修正パネルの内容
マテリアルマテリアルの割り当ての内容 など…
覚えておけば、いちいち調べなくても素早く保存設定ができるので、
これを機に覚えましょう。

このバッチレンダリング × シーンステートで
レンダリング効率はあがるはずです。
積極的に使っていきましょう。