UE4 オンラインラーニング スタジオライティングを見る (2/2)

UE4

はじめに

まだまだライティングを勉強していきます。

パネルと反射を使用する

Unreal Engine では物理ベースのレンダリングを使用するため、ライティングの主要なコンポーネントには反射サーフェスを使用します。現実の世界と同じように、ライトの作成や様々な反射要素の生成の両方で、一連の便利なソフトボックスを使用することが非常に重要であることがわかります。

今できているのを見直すととても暗い所があちこちにある。これを改善するためにライトを修正する必要があるが、その前に反射するサーフェス(🤔ガソリンタンクやマフラー?)には反射するものがなにもない。ここでは反射するものを追加していく。

反射を発生させるために必要なものを追加していく。

ライトパネルの設置

  • ライトパネルを設置すると直ちにガソリンタンクに反射が反映されている
  • このスタジオにはまだ反射プローブがない。設置するとより良くなるとのこと
    • 🤔反射プローブ?
  • 反射はしたものの下記を見ると分かる通りライトパネルを設置すると部屋全体が暗くなった

    • ライトの順応をオフにする必要がある。これを行うためにポストプロセスボリュームをここに配置する
      • 🤔ポストプロセスは物理ビズショットでも出てきましたね。一括でライトのある設定を変えられるものですね

  • スタジオ全体をかこむようにスケールを変える
    • XYZ = 6.0
    • 🤔レベル全体に適用する Infinite Extent は使わないんですね
  • 順応を停止するため Max Brightness と Min Brightness を 1.0 にする
  • 最初の例の写真を再度見る。例の画像にあるような頭上の四角いライトパネルは設置完了している。

    • しかし設置したパネルは黒と白のしましまの模様となっており、例の写真の真っ白なライトとは異なる。これを同じにする

マテリアルの変更

StudioMatsには様々なマテリアルがあり、それらをドラッグすることで簡単にライトを変更可能。いろいろ試してみてください。

しかし例にあるようなスタジオのライトはここにはない。白いマテリアルはあるが明るすぎる。との事。

StudioMatsにあるものはすべてマテリアルインスタンスであり、マスターマテリアルは同フォルダの master_mats の中にある。

  • lightbox material はマスク用
  • lightbox solid はソリッドカラー用
  • m carpet material はカーペット用
  • m simple noise ノイズ品質を変更できるマテリアル

この4つがあればこのスタジオ内のほぼすべてのものが作成できる。

ここではマスクを使用していく。

  • lightbox materialを右クリックしてマテリアルインスタンスを作成
    • 名前: mi_simplesoftbox
  • 作成したインスタンスを上の階層に移動するため、コンテンツブラウザをもう一つ表示させ、StudioMatsに移動してからドラッグ
    • 🤔しかしmi_simplesoftbox はすでに存在していたのでもともとあったものを消し作成したものを残しました
  • mi_simplesoftboxをダブルクリックして修正、保存して閉じる
    • Light Texture: Box Soft
    • Emissive Power: 5.0
  • 頭上のライトのマテリアルを変更

    • 🤔かなりそれっぽくなりましたね
    • 写真を見ながらサイズや回転を調整

背面の反射を追加

  • 車の斜め後ろの大きな板をここでは追加する
  • こちらのパネルは少しくすんでいるように見える
    • 反射だけではなくバウンスツールとして使っていると思われる
    • なのでここでもライトをバウンスさせる
  • マスターマテリアルの lightbox_solid からマテリアルインスタンスを作成
    • 名前: mi_reflectivewhite
  • 作成したインスタンスをStudioMatsに移動させる
  • レベルにある頭上のライトを alt + ドラッグ して複製。こちらも写真を見ながら位置やスケール、回転を調節
  • 頭上と背後にある大きなパネルはシャドウをキャストしないようにする
    • Cast Shadow のチェックを外す
  • 背後にあるパネルのマテリアルを mi_reflectivewhite に変える
  • mi_reflectivewhite を開きパラメータを調整する
    • 光る力はほぼなくして、あらさも若干追加。

キーライト、フロントライトを調整

  • Spot Lightを選択して、IES Textureを Cylinder Wide に設定
  • 強さなどを変えて気に入る形にする

    • 🤔講師の方は影の落とし方をオボ垂直に落ちるようにしていたため真似をしておきました

最後のライトを追加

  • 既存のスポットライトを Alt + ドラッグでコピー、バウンスカードに当たるように配置

    • 🤔少し粗い板に反射させて乱反射させるんでしょうか?このライトがあると画像ではわかりにくいですが、有効無効を切り替えるとたしかにいろいろなところに光が飛んでいることがわかりますね。
  • もう一台フロントからライトを追加

    • 車の例を参考にして来たが被写体が違うため、最終的にはバイクのためのライティングをする必要があるとの事で調整段階では例から離れてライトを追加したりして調整するよう。

ベイクする

  • 幾つもライトを追加しているため影がいろいろなところに飛んでしまっている。
    • これを修正するには Stationary ではなくすべて Static にすればよいとの事
    • すべてのライトを選択して Static に変更
  • BP_Studio6を開きこちらもすべて選択して Static に変更。保存して閉じる
  • ライティングをビルドする

    • 結果
    • 確認の為ディレクションライトの強さを 3lux に上げている
    • かなりキレイにはなったが幾つかの問題がある
    • ライトが分散していてあまりきれいになっていない

  - この辺の修正は次の章で行う様子

スフィア反射キャプチャを配置する

  • ライトがたくさんあっても暗い部分がある
  • メタルの部分は特に暗い
  • これは反射がないため。スフィア反射キャプチャを配置し反射させる

    • 結果
  • 配置したスフィア反射キャプチャを反射の大体で反射の中心にしたいところに移動させて、リフレクションキャプチャをビルドする

スタジオを完成させる

上記のテクニックを使用してスタジオを完成させ、仕上げを行います。最後のベイクに向けて全ての準備が整っているかどうかを確認します。

バイク自体はかなり良くなった。基本的なマテリアルを装飾していく。

フロアマテリアルを作成する

  • マスターマテリアルの lightbox_solid からマテリアルインスタンスを作成
    • 名前: mi_glossyfloor
  • 作成したインスタンスをStudioMatsに移動させる
    • 🤔しかし mi_glossyfloor はすでに存在していたのでもともとあったものを消し作成したものを残しました
  • mi_glossyfloor を開きパラメータを調整する
    • Normal : WaxyConcrete_normal
    • Emissive Power: 0 (光らないようにする)
    • Roughness : 若干ザラザラしているようにする
    • Color: コンクリートみたいな灰色にする
  • 保存して閉じる
  • BP_Studio6 を開いてFloorを選択しマテリアルに mi_glossyfloor を適用

    • Floorの目があら過ぎるのでウィンドウを並べて見ながら修正
    • 最終的には29の粗さにして完了

裏壁のマテリアルを適用する

  • すでに mi_wall_noise というマテリアルインスタンスが作成されている
  • BP_Studio6 を開いて2枚の壁両方のマテリアルに mi_wall_noise を適用

真ん中の円にマテリアルを適用する

  • BP_Studio6 を開いて真ん中の円に mi_wall_noise を適用
    • このとき真ん中の円を増やして計5個にしていたため同じように複製しすべてにマテリアルを適用
  • 一番上のみ mi_GlossBlack へ変更
  • バイクの位置を調整し直し完了

一部の解像度を上げる

  • 上記のポイントについて解像度を上げる
  • BP_Studio6 を開いて壁を選択して Overriden Light Map Res を 1024 にする

    • これを上げるとライトマップの解像度が変わり詳細になる代わりにレンダリングにも時間がかかるようになる
    • 🤔壁のような大きなものだといいかもしれませんが、別の講座だとゲームの場合は初期値のままにがおすすめされていたやつですね。
  • 真ん中の円も同じように 1024 にする
    • 🤔サイズが小さいのと違いが知りたかったので私は256にしました

ローテータの使用方法

クライアント向けにデモを行う場合でも、ルックデベロップメントを行う場合でも、オブジェクトの周りをすぐに回転できる機能があると便利です。このセクションでは、クイック ローテータ ブループリントの作成方法と、その使用方法について説明します。

ここでは被写体(バイク)の周りをカメラが360度回転する仕組みを実装する模様。

設置

  • BP_Cameras にある Rotator をバイクの中心あたりに配置する
    • この周りをカメラが回るため精度高めに配置する
  • Cine Camera Actor を配置する
    • 名前: LowCamera
    • このカメラはレンズの制御などができるため非常に使い勝手が良い
    • Rotator と 配置したカメラの距離を半径として回転するようなのであまり遠すぎると壁を突き抜けるため突き抜けない程度の距離に置く。
  • アウトライナで Cine Camera Actor をRotator にドラッグして親子関係にする
    • 親が Rotator
    • Rotator にはプレイすると 子を360度回転させる機能がある
  • Rotator の設定
    • Camerra Rotation Speed: 15 (これはフレーム毎に移動する角度?と思われる)
    • Camera: LowCamera

プレイ

  • カメラの周りを360度回っている事が確認できる
  • しかし焦点はあっていない、またパネルの裏側に回る瞬間もある

修正

  • アウトライナよりカメラを選択
  • Lookat Tracking Setting でカメラの向きを Rotator に固定する
    • Enable Look at Tracking: チェック
    • Actor to Track: Rotator
  • Focus Setting でバイクに焦点を当てる
    • Focus Method: Tracking
    • Actor To Track: Rotator

プレイすると焦点が合い、バイクを中心に回転する様になったが、依然として壁の後ろに回り込む。現在バイクが反射する要素はスフィア反射キャプチャのベイク内容と、スクリーンにあるパネルを動的に反射させている模様。

そこでスクリーンにあるパネルを反射させずに100%ベイクされた内容のみを反射するようにして、パネルは非表示にする事で物理的に映り込みを避ける。

  • アウトライナから Post Process Volume を選択し設定
    • Screen Space Reflections の Intensity を0 に設定

ライティングはすでにベイクされているため非表示にしてもバイクのライティングに影響は及ぼさなくなった。

パネルを非表示にしてプレイすると、非表示にしたパネルはプレイ中表示され以前として障害となっている事が確認できる。

Rotatorには無効にする機能を設定する機能があり、そこを設定する事で無効化できる模様。

  • +を2度押して、ライトパネルをそれぞれ選択

  • ローテータはそこまで追加の作業を要さずに簡単にシーンを生き生きとさせる事ができる
  • また従来のロトスコープが表示されるとのこと
    • 従来のロトスコープはルックデベロップメントで特に必要
    • 🤔確かに360度すべての角度から見せてくれるんでアングルを決めやすそうですね

Rotatorの実装紹介

  • BeginPlay時
    • Set View Target with BlendでViewをカメラに変更
    • その後のループはパネルを非表示にしている
    • フレーム毎の処理では現在のZ軸の角度を取得してSpeedで設定した値を加算、その値を角度に設定
      • マイナスにSpeedを設定すれば逆回転となる

背景を削除してキー設定可能にする

  • Rotator を選択して Disabled Units に BP_Studio6 を追加するだけ

  • 🤔これはベイクしているからこそなせる技ですね。ポストプロセスの場合どうするんだろう??次に見るべき講座が決まりました。

カメラの解説

  • ホワイトバランスの解説があった.
    • こちらはビズショットのほうが詳細に解説されていたので省略します
  • Film の Slope、Toe、Shoulderの解説があった

    • Sloep: 高くするとコントラストが高くなる
    • Toe: コントラストを設定する別の方法
    • Shoulder: ハイライトエリアの設定

docs.unrealengine.com

シーケンサを使用して画像を出力する

きれいなシーケンスができあがったら、クライアントが再生できるようにムービーにレンダリングしてみると良いとかもしれません。あと一歩の所まできています。このモジュールでは、シーケンサについて簡単に説明し、出力オプションの一部を確認します。

ここではRotatorから結果をエクスポートする。

  • レベルシーケンスを作成
    • 名前: Studio6Sequence

  • 作成されたシーケンサにカメラとカメラ2をドラッグする
    • カメラ2はカメラをコピーして位置を少し斜め上にしているもの
  • シーケンサーにカメラをドラッグすると作成されるカメラカットを削除する
    • この機能を使えばあるカメラから別のカメラへのブレンドができる
    • 今回は必要ないので削除
  • シーケンサ設定
  • レンダリングボタンを押す

まとめ

シーンの最後の部分を完成させて、最終的な形にまとめるための最後の手順を実行します。そして、最後にいくつかヒントを説明して、このコースを終了します。

ここからはスタジオを例の車のスタジオではなく講師の方が作り直したものを解説する模様。まとめるだけにしておきます。

  • 講師の方が作った最終形は Studio5 レベルを開くと見ることができる
  • 今回の被写体はバイクで、非常にシャープで丸みを帯びた形をしている
    • 前回までに作成していた頭上のライトはこのような形を強調するものではなかった
    • 頭上のライトは縞模様に変更されてガソリンタンクにはこのラインが反射している
  • 最も修正した箇所は反射プローブ(とよんでいるがスフィア反射キャプチャ)を多く配置したこと
    • これにより精細度が非常に良くなる
  • フロントは天井、前方、左右すべてのライトを反射するようになっている
  • 壁は黄色がかっていたが純粋なグレーに変更
  • アウトライナは整理整頓してある
  • カメラが一台追加されている

    • 後輪の方はぼやけている。
      • F値が設定されている
      • フォーカスはRotatorにしており、Focus Offset  で焦点の範囲を調整している模様
  • Camera Apertureの解説があった。
    • 私は前に学習していたため流し見しました。
    • Camera Apertureの最小値最大値は変更可能
    • 一般的なカメラの最小値 1.2、最大値22が設定されている。変更はおすすめしないとの事。
  • 途中に映り込む白い円を消す方法
    • Player Startを配置してロケーションz を-5000などの値にしておく

最後に

少し古い 4.22 を使用する講座だったので少し不安がありましたがやって大正解でした。

スタジオライティングには色々なものがある事が具体的に知ることができました。かなりライティングについての理解が深まってきた感がありますね。

おすすめです。

メモ

レベルエディタ上で配置されたカメラからの視点で見る

  • パースペクディブから配置されたカメラを選択する

用語メモ

バンディング

  • 解像度が低すぎると出てくる色の層が見えるやつですね

ロトスコープ

  • 現在の意味では実写をトレースしてアニメーション映像を作る手法の模様

ルックデベロップメント

3Dモデルの見た目を決める工程らしい.

entry.cgworld.jp

タイトルとURLをコピーしました