こんにちは、神乃木です。コンテストの締め切りまであと1週間を切りました。
参加者の皆様におかれては最後の追い込みに忙しい時期でしょうか? それとももう提出済でしょうか?
まだ応募を考えていない人は、既存の街(動画公開などをしたもの含む)のスクリーンショットでも、新規のカットなら応募ができるのでぜひ応募してみてくださいね。
さて、今日は私の配信などでも時折話題にしている「霧」についてお話をしたいと思います。
霧エフェクトは偉大
霧エフェクトはとても偉大で、スクリーンショットにうっすらかけるだけで写真ぽさを絶大に増すことができるほか、濃い霧にすれば神秘的な感じを、色の違う霧を使うことでいつもと違う雰囲気を演出できる強い武器です。
例えば、霧を設定していないスクリーンショットはこちら。まぁこれでも十分写真ぽいですが、まだ手を入れる余地があります。
そして霧を設定したものがこちら。少しばかり汚れた大気にすることで、より質感が増します。
霧エフェクトに必要なMODの確認
まず前提として、ここでは、以下のMODが入った環境における霧の設定について解説します。入れていなくても動くと思いますが、よりリアルな映像にするにはどれも必須級のMODなので入れる価値があります。
- Cubemap Replacer →Steam
- Daylight Classic →Steam
- Ultimate Eyecandy → Steam
- Relight → Steam
- PostProcess FX →Steam
はじめに、Daylight Classicの設定を確認しましょう。今回の設定を行う場合には、Daylight Classicのオプションは一つしか入れません。
このスクリーンショットのように、「Classic fog effect」だけを入れましょう。
その他のMODについてはお好みで設定して構いませんが、よく聞かれるので私の設定を記載しておきます。
Ultimate Eyecandy
Global light intensityは5.2、Ambient light internsityは1.3です。推奨値は5.0/1.0ですが、他の動画や写真と比べると少し暗く見えるので明るめにしています。Latitude(緯度)は30度以上にしましょう。45度~50度くらいにすると北の方の淡い光になります。夏っぽくするなら25度くらいまで下げても構いません。
Relight
色々と試行錯誤を重ねた結果、最近では以下のように設定しています。
- Contrast = -1 (建物のギラツキと、暗い部分がやたら黒くなるのを抑える)
- Sun Temperature = -0.4(太陽光を青っぽくする。建物の色に影響)
- Sky Temperature = -0.7 (空の色を青っぽくする。建物の色に影響)
- Twilight Tint = 1(夕焼け・朝焼けの色を赤っぽくする。エモくなる)
まずは手っ取り早く霧効果を実感してみよう
今回の霧エフェクトですが、なぜか細かく調整を行うMODがありません。このためModToolsという設定変更ツールをサブスクライブすることになります。
ModToolsのURLはこちらになりますので、まずサブスクライブしてONにしましょう。
ONにして起動したらF7キーを押します。
すると上のようなウィンドウが立ち上がるので、①の部分に以下のスクリプトをコピペし、その後②の「Run」ボタンを押します。
UnityEngine.Object.FindObjectOfType<RenderProperties>().m_useVolumeFog = true; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_pollutionFogColor =new Color(1.0f, 1.0f, 1.0f, 1.0f); UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogColor =new Color(0.7f, 0.8f, 0.9f, 1.0f); UnityEngine.Object.FindObjectOfType<RenderProperties>().m_pollutionFogIntensity = 10.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogDensity = 100.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogStart = 5.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogDistance = 20000.0f;
恐らく、下記のような霧っぽい風景になったのではないでしょうか?
これだけでも十分楽しめますが、他の値も試してみましょう。
少し霞んだ青空にする
少し白く霞んだ景色にするなら以下のスクリプトになります。遠景の山に注目です。
UnityEngine.Object.FindObjectOfType<RenderProperties>().m_useVolumeFog = true; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_pollutionFogColor =new Color(0.4f, 0.5f, 0.6f, 1.0f); UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogColor =new Color(0.7f, 0.8f, 0.9f, 1.0f); UnityEngine.Object.FindObjectOfType<RenderProperties>().m_pollutionFogIntensity = 0.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogDensity = 0.5f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogStart = 200.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogDistance = 10000.0f;
遠景を少し青っぽくする
UnityEngine.Object.FindObjectOfType<RenderProperties>().m_useVolumeFog = true; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_pollutionFogColor =new Color(0.4f, 0.6f, 0.7f, 1.0f); UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogColor =new Color(0.6f, 0.75f, 0.8f, 1.0f); UnityEngine.Object.FindObjectOfType<RenderProperties>().m_pollutionFogIntensity = 0.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogDensity = 1.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogStart = 5.0f; UnityEngine.Object.FindObjectOfType<RenderProperties>().m_volumeFogDistance = 20000.0f;
私はこっちのほうが好きです。遠景が青くなる理由はレイリー散乱・ミー散乱と呼ばれる光学的な現象に起因しており、遠景との間にある空気の層が光の透過を邪魔された結果、青色だけが強調されます。
イラストを勉強している方であれば「色彩遠近法」といえばピンとくるかもしれません。いずれにせよ、遠くの景色は少し青っぽくなるほうがリアルになると思います。
なお、フォグをかけても電線の色だけ黒く表示されてしまいまうのはゲームの仕様です。これは電線で利用しているシェーダーがWire Shader(電線を風で揺らすために使っているシェーダー)であることに起因しており、ゲームの仕様です。電線も含めフォグを書ける場合にはProp版を使うか、Hide It!で電線を一時的に非表示にしましょう。
さて、上記を流し込むだけでも十分楽しめますが、次からは更にこだわりたいディープな方のために、パラメータを細かく変更する方法を記載します。
ModToolsを使って更に色をカスタマイズする
ModToolsは、ゲームにおける様々な値を変更可能なツールです。逆にいうと致命的な値を変更することもできるので、扱いには注意しましょう。
ここでは、フォグに関するパラメーターをModToolsで編集していきます。
ModToolsでお目当ての設定ウィンドウにたどり着く
まずはCTRL+Eを押して、ModToolsの画面を開きます。黒い画面が出てきて一瞬拒否感があるかもしれませんが大丈夫です。」
ModToolsが開いたら、左のパネルから「Sunny Properties」というものを探し、左の「+」ボタンを押します。
次に展開したところから「Sunny Render」をクリックします。
その後、展開したところから「Render Properties」という項目をクリックします。
開いた状態です。基本はここの画面にある値を弄っていきます。少ししたをスクロールすると、以下のような設定項目が見えてくるはずです。
このうち、変更できる値とその意味を解説します。
- m_pollutionFogColor = 近景のフォグの色。もともとは大気汚染用のものと思われる。暗い青色系にしておくと良い。
- m_pollutionFogIntensity = 近景のフォグの密度。これを100とかにすると真っ白になる。
- m_useVolumeFog = これはオンにすること。切ると近景フォグも遠景フォグも動かない。
- m_volumeFogColor = 遠景のフォグの色。明るい水色系にしておくと良い。
- m_volumeFogDensity = 遠景のフォグの密度だが、1も10も変わらない。0~1のみで遷移?
- m_volumeFogSitance = 遠景のフォグの持続距離。マップ端のほうにいくと値の変化がわかるが、基本20000で変えなくて良い。
- m_volumeFogStart = 遠景フォグの開始距離。例えば1000にすると、1000m先から遠景フォグが始まるため、1000m先付近が白くなる。近い値にしておくと良いが、近景はくっきりさせたい場合等には適宜カスタマイズが必要。
なおこれらの値は先に上げたスクリプトの内容と連動しているので、保存したい場合には値をスクリプトの数字部分に入れましょう。カラー系だけ、ModToolsではRGB=255ですが、スクリプトはRGB=1.0fなので、現状の数字を256で割り算する必要があります。例えばRGBA=128,128,128,255(Aは不透明度なので255固定)ならnew Color(0.5f, 0.5f, 0.5f, 1.0f);になります。
フォグ遊びあれこれ
上記のフォグを組み合わせ、天候・陽の当たり方を色々変えてみると面白い効果が得られます。
色に変化を与える要素は、他にもCubeMap Replacerによるもの、Ultimate Eyecandyによるものなどがたくさんあります。このため、Fogの値は「常にこの値が良い」というのを明言しづらい状況です。
特にFogは、「近景はいい感じでも遠景は微妙」やその逆というのがありえるため、撮りたいシーンによって値を変えていく必要があるでしょう。理想のスクリーンショットを追い求めたい人は、ぜひ色々値を変えて追求してみてください。
太陽光の位置やフォグを設定することで、上記のような絵画的なスクリーンショットも撮ることができます。奥に見える建物はバニラの軌道エレベーターをProcedural Objectsで巨大化したものです。SFチックで良いですよね。
さいごに
以上、今回はFogエフェクトを使いこなす技について解説しました。使い慣れないツールや多くの設定値など難しい部分は多いと思いますが、使いこなすことでびっくりするくらいリアルな絵を作ることができるようになるため、ぜひ遊んでみてください。
このフォグエフェクトを使った色の変更は、スクリーンショットコンテストにおける「画像編集ソフトでの画像編集」には含まれないため、もちろん使って投稿いただいても構いません。
この記事が気に入ったら、ぜひ下のシェアボタンからTwitterやFacebookなどにシェアしてくださいね。
引き続き、皆様からのスクリーンショットの投稿をお待ちしております。
コンテストに応募する↑のボタンから応募要項ページにジャンプできます。