12月1日 過去記事の半分を削除しました。リンク切れが多々ありますので、画面右上の🔍検索をお試し下さい。

UE4のライト/メッシュのスタティック/ステイショナリー(Static/Stationary)ってどう違う?

(約 4,900文字の記事です。)

20200121114201.jpg

UE4の学習を始めてすぐに、ライトの項目でStatic、ステーショナリー、ムーバブルの3つがあるよ、というのはすぐに分かった。だが、Staticとステーショナリーの違いはわかりにくかった。ライトマップの話が関係するから。で、これ、メッシュにもStaticとステーショナリーがある。ライト/メッシュにそれぞれStatic/ステーショナリーがある。どういうこと?何が違うの?試した結果の記事です。初心者向けです。私が初心者だから(笑)

ムーバブルのライト/メッシュについては分かりやすいので今回は割愛です。

目次

はじめに

記事の表現上、Staticはアルファベットのままとし、ステーショナリーはカタカナで表記します。両方英語(Static, Stationary)・両方カタカナ(スタティック、ステーショナリー)だとごっちゃになりやすいのです、主に私が。
日本語UIにすると「ステイショナリー」ですが、私の主観ではステーショナリーの方が自然だと思うのでこの記事では「ステーショナリー」と書いています。普段は英語UIにしているのでその辺を気にしなくてもいいのが英語で慣れる利点です。(もうローカライズの微細な言葉の違いに振り回されたくないのよね、英語で理解できれば困ることなど何もないのだから。)

また、これを無理に日本語にすると、余計にわかりにくい。静的、固定、どう違うの?って具合。ライトに関してはどちらも位置を動かせないので混乱する。またステーショナリーメッシュについては実は位置の移動が許容されているので「静的とは言える」が、ライトとの関係で考えるとますます混乱しか生まない。

なので、この記事では、Staticとステーショナリーで英語とカタカナで分けて表現します。漢字は使いません。余計にわかりにくくなるのです。

分かりやすくて分かりにくいのが「ステーショナリー」

なぞなぞみたいだが、詳しく言うと、光の挙動が現実のそれに近いライトは「ステーショナリーライト」だが、ステーショナリーライトを選んだ結果のUE4の挙動は「ステーショナリーライト」が一番複雑なのだ。ライトの光の挙動は分かりやすいが、そのライトの動作は複雑でわかりにくいのだ。その複雑さ故に使用上の制限もある。具体的には、照明環境によっては5つ以上の光の重なりを作れないと言うことだ。

ライトのステーショナリー

位置は動かせません。なのでStaticとどう違うかというと、光の強度をゆらゆらと変化させられます。ゲームの室内のライトのOn/Offにも使える。焚き火の瞬きにも使える。位置を動かせないのと、バウンスさせたライトまでは演算してくれないこと。直接光の制御のみです。
また、実はStaticのライトマップも使ってハイブリッドな表現をしているので、負荷も軽く表現はリッチ、といういいとこ取りの便利ライト。

だが、多光源での利用に制限があり、集中的に配置した場合には最大で4個までしか使えない。5個目以降に×マークが出るのですぐに分かる。(光源を遠ざけるなどすればいくらでも配置は可能)。
詳しくは公式チュートリアルの序盤に出てくるので省略です。

メッシュのステーショナリー

Ver.4.13からメッシュにもステーショナリーが追加されたらしい。詳細は調べても見つけられなかったのだが、こちらの情報によると、たまに動くメッシュについてはステーショナリーを使えば、ムーバブルよりも処理負荷を減らせる、という目的で実装されたらしい。

スミオ(SUMIO) on Twitter: “UE4.13からメッシュにもStationary属性がついて、ライティングというかシャドウイングに混乱が更に生じるの待ったなしですな。#UE4… “

なのでメッシュの場合には、完全固定で微動だにしないのがStaticで、それ以外はステーショナリーかムーバブルということになる。揺れる草木はステーショナリー(またはムーバブル)ってことだな。

理解しやすくて使いにくいのがStatic

Staicは理解しやすい。固定されていて動かないライト・メッシュのことだ。風が吹いても揺れないメッシュに限る。人工物とか柱とか岩など。なので影も動かない。そういうものがStaticで表現できる。

でStaticが使いにくいのは、ライトマップというテクスチャマップの類いで「テクスチャに焼き付けた影をテクスチャで表現するから」なのだ。なので、ライトマップの解像度が低いとボロボロ・ガタガタの影ができる。全然リアルじゃない。

ならば解像度を上げればいい。体感では1024まで上げればかなり近づいてみても満足な品質だが、1つのメッシュのライトビルドに2~3分もかかるのだ。1回のライトビルドでメッシュ1つごとにこれでは待ち時間が長すぎて作業にならない。なので、作業中の解像度と仕上げ直前の解像度を分けて作業する必要がある。これが使いにくい理由だ。
加えてライトマップの知識も仕入れないと全く使えない。以前の私の記事でもこれに躓いた。

3DCG考え中
404: ページが見つかりませんでした | 3DCG考え中 主にZbrushとBlenderを使って3DCGで色々と試行錯誤中。

さて本題。

ライト・メッシュ、Static/ステーショナリーの4つをきちんと理解する

4つもあって面倒臭い!だがこれをきちんと検証して理解できたとき、過去の自分の失敗の原因と解決策が分かった。そしてUE4の使い方もスッと分かった気がするのだ。

StaticライトとStatic/ステーショナリーメッシュの場合

光源はStaticのディレクショナルライトです。

20200121121124.jpg

左がStaticメッシュ、右がステーショナリーメッシュ。
両者とも光沢感がゼロ(笑)というのも、光沢は視点が変われば光沢の位置も変わる、つまり動的に変化すべき表現なのでテクスチャに焼き付けることができない。なので光沢表現が全滅します。
右側に影がないのはひとまず置いといて、左に注目。
まず影がいきなりガタガタ。これは床のライトマップの解像度が64と低いせいだ。
またこのメッシュのライトマップの解像度が128と低いせいで赤いリングに影の段差ができる。

(こんな感じで段差が見える。)

20200121120622.jpg

Staticを使いこなすためには、ライトマップの理解とその解像度設定がカギになる。だが解像度を上げると途端にライトビルド時間が延びる。だから運用方法を考えないと使いにくい。

ライトマップと解像度の話はまた別の機会にて。

次、右のステーショナリーメッシュの場合。

20200121121124.jpg

影がない!影が出ないんです。最初はパニック。だが、ステーショナリーメッシュは時々動くことが前提なので、影をマップに焼き付けることは不自然だ、と思ったら納得。

メッシュそのものの影はリアルタイムで動的に生成されるようで、変なガタツキがない。光沢がないだけだ。

ステーショナリーライトとStatc/ステーショナリーメッシュの場合

次にディレクショナルライトをステーショナリーに変更して再び実験。
いきなりだがライトビルドの時間がStaticよりもかなり短い。リアルタイム演算する分だけ事前計算する量が減るためだろう。

20200121120351.jpg

左がStaticメッシュ、右がステーショナリーメッシュ。

メッシュがStaticだと、Staticライト+Staticメッシュの時の特徴が基本的に引き継がれる。影は床のライトマップ解像度に依存するし、メッシュの影もライトマップ解像度に依存する。ただしライトがステーショナリーなので光沢がその上にプラスされる。代わりに床の影がやや簡易的な表現になった。演算負荷を抑えるためだろう。「固定物の影なんだからざっくりでよくね?」的な思想がうかがえる。

とにもかくにも、Staticを選ぶと必ずライトマップの解像度とライトビルドの重さが付いて回る。

次、右はステーショナリーライト&ステーショナリーメッシュなので一番見た目がよい。床の影も、メッシュの影も、光沢も全て動的に作られているのでリッチな表現だ。もちろんその分リアルタイムで演算量が発生している。

20200121122140.jpg

影の表現力の差が大きい。メッシュ側のStatic/ステーショナリーを間違えるだけでこうなる。

で、床のライトマップの解像度を512にオーバーライドしてみた結果。

20200121122322.jpg

影の解像度が上がって見栄えが良くなる。だが、常に512のままだと毎回ライトビルドするごとに1分程度ロスすることになる。作業効率を考えると、仕上げ直前に高解像度をオーバーライドするか、逆に低解像度のオーバーライドで常用して仕上げ直前にオーバーライドをOFFにするか、だろう。

結論 絵作りでは基本的にはスタティックなライト&メッシュでライトビルドが早くて高品質

だが万能ではない。スタティックライトは4つまでしか重ねられないので、多光源の場合には優先度の低い光源からStatic化し、ライトマップの解像度とのバランスを取る必要が出てくる。

影の表現の影響がほとんど出ない場合にはムーバブルライトで光源の数を増やすのもありかもね。(影に意味があるのでは無く、光源の数の多さが重要な場合とか。天井の沢山あるライトの表現とか。ま、リアリティを追求するなら素直にStaticライト+高解像度ライトマップ一択だが。)

そうならない限りはスタティックライト+スタティックメッシュが一番便利。

私にとっては、ゲームとしての快適な操作性ではなく、作業の快適さを追求するためにUE4の特性を探ることになったわけです。

高品質な見た目をリアルタイムで操作し、色んな角度から絵作りの可能性を探る。なのでなるべく高品質かつリアルタイムがいい。そこにUE4の特性を生かせば、ゲームのリアルタイム性を追求するのではなくて、UE4での編集そのもののリアルタイム性を追求すること、それがすなわち快適な作業環境の実現というわけで。
ゲームクリエーターの場合はコンパイル後のゲームの動作の快適さを追求するのだろうが、私は逆にコンパイル以前のUE4エディタの動作の快適さを追求している。下書きで決まり切った絵を作るのではなく、シーンを作りながらいい絵はどこか探りながらの絵作りなので、インタラクティブ性が私にとってはとても重要だからだ。

どちらにせよ、リアルタイムでインタラクティブ性があるというUE4の特性を生かすという点ではどちらも一緒だろう。

これで影のガタツキ狂想曲から解放された

私の場合はムーバブルは使う予定がないので、Staticとステーショナリーをきちんと使いこなせればそれで満足なのだ。今回の検証によって、意外なことに地面影もStaticか否かで影響が出ることが分かって理解が深まった。私の場合は可能な限り、ステーショナリーライト&ステーショナリーメッシュの組み合わせで作業することになると思う。

これで以前のようなガタツキの問題から解放された。この一歩はでかい。なぜならば光と影の操りこそが3DCGでの画像化表現にとても重要だから、その制御をきちんと身に付けられたことは確実な一歩だと思うのです。

今回の創作活動は約4時間30分(累積 約1,365時間)
(490回目のブログ更新)

筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)

以下のリンクを経由してAmazonでお買物をするとその購入額の1~3%ほどのお小遣いが私に寄付されます(笑)以下のリンクを経由して頂ければ紹介商品以外のご購入でもOKですよ~。

お役立ち情報を伝えよう!
  • URLをコピーしました!
目次