この記事では、Blenderの有料アドオン「Physical Starlight And Atmosphere」を使い、太陽や霧を加えて空気感を演出する方法を説明します。
Physical Starlight And Atmosphereとは
https://blendermarket.com/products/physical-starlight-and-atmosphere
Physical Starlight And Atmosphereは、大気シミュレーションができるアドオンで、Blenderにデフォルトで搭載されているSun Lightよりもリアルな太陽や空を再現することができます。
Blender Marketにて有料で販売されています。Blender Marketでのアドオンの購入方法、インストールの仕方については、以下の記事をご覧ください。
アドオンの使い方
Blenderに標準で用意されているレンダリングエンジンにはCyclesとEeveeの2つがあります。
今回使用するモデルをアドオンを使わずにCyclesで表示すると、以下のような状態です。ライトは消しています。
これを以下のような見た目にしていきます。
アドオンをインストールしたら、[N]キーをクリックしてプロパティシェルフを表示します。
「Physical Atmosphere」タブをクリックし、「Atmosphere」の左のチェックマークをオンにします。
するとこれだけで、シーン全体が日の入り前の雰囲気に変わります。ライトは自動で追加されます。
ではここから、プロパティを詳しく見ていきましょう。
レンダリングエンジンは一部を除き、CyclesもしくはEeveeどちらを利用しても構いません。Unityなど他のソフトやSTYLYへエクスポートしたい場合は、Cyclesを利用してください(エクスポートに関しては後述します)。
Sun
太陽をシミュレーションするパラメーターは以下の通りです。
- Azimuth:方位角
- Elevation:標高
- Angular Diameter:角径
- Temperature:色温度(ケルビン)
- Intensity:強さ
Elevationの値を上げると、だんだん昼のような明るさに変わっていきます。太陽の向きは、画面に表示されているランプの向きの通りです。
続いてAzimuthの値を上げ、影の方向を調整します。
Intensityを下げ、明るさを少し控えめにしました。
今回は利用しませんが、Temperature Kの数値を下げると赤〜黄、上げると青に近づきます。
Atmosphere
※Eeveeの場合、一つ下の項「Fog」から始めても構いません。
Atmosphereのプロパティでは、太陽光がオブジェクトや空にどのように影響を与えるかを調整することができます。
- Density:密度
- Height:高さ
- Intensity:強度
- Color:色
- Inscattering:散乱色
- Absorption:吸収色
Densityの値を上げると、水平線付近の色が滲んだようになります。
続いてIntensityの値を上げると、その下のInscatteringに設定した色味(今回は青)が増します。
- MieScattering:ミー散乱(霧やスモックが白く見える現象)
- Intensity:強度
- Anisotropy:異方性
- Artistic Control
- Distance Scalar:距離スカラー(距離ベクトル)
- Falloff:減衰
- Sun Radiance Gamma:太陽放射ガンマ
Distance Scalarの値を上げると、地面・空がより青くなります。
続いて、Falloffの値を下げました。
Eeveeに切り替えて確認しても、似た見た目になります。
Fog(Eevee)
Eeveeであれば、各マテリアルにStarlightAtmosphereノードを挟み込むと、霧の効果をより増幅することができます。(現時点では手動ですが、アップデートで自動化できるようになるとのことです。)
シェーダーエディターを開き、[Shift]+[A]から「Group」の「StarlightAtmosphere」を選択します。
StarlightAtmosphereノードが現れたら、「Material Output」から伸びている線の上にドラッグ&ドロップします。
すると、オブジェクト全体に霧がかかったようになります。
一つ上の項でも取り上げたAtmosphere Density、Distance Scalar、Falloff のパラメーターを調整すると、雰囲気もガラリと変わりますので試してみてください。
なお、StarlightAtmosphereノードを接続したままCyclesに切り替えると、マテリアルのベースカラーが見えなくなってしまいます。CyclesにするときはStarlightAtmosphereノードを外すとよいです。
ベイクしてSTYLYにアップロード
この色合いを適用したままSTYLYにアップロードしたり、Unityで利用したい場合は、テクスチャを「ベイク」する必要があります。
Blender2.82ではEeveeにベイク機能がないので、Cyclesに切り替えて作業します。
「UVEditing」のタブに移動し、下のバーから新しい画像を生成します。
「Name」を変更します。今回は“tokyotower”に変更しました。
画面左側に、黒の画像が生成されました。
右側の画面で編集モードに移動し、頂点を全選択したあと、[U]キーから「Unwrap」もしくは「Smart UV Project」を選択します。
すると、左側にUVが展開されました。
「Default」タブに戻り、ノードエディター上で[Shift]+[A]キーを押し、「Image Texture」を追加します。
Image Textureノードが追加されたら、赤線枠で囲んだボタンから先ほど追加した画像を選択します。
テクスチャはマテリアル単位で割り当てられるため、オブジェクトに使われているマテリアル全てでこの作業を行います。
右側のシーンプロパティから「Bake」をクリックします。
画面下部にインジケーターが表示されるので、100%になるまで待ちます。
UV Editingタブに戻ると、陰影がついた状態のテクスチャが生成されています。
最後に、先ほどテクスチャを指定したノードを、マテリアルに接続します。
以上でベイク作業は完了です。
同様に他のオブジェクトもベイクし、「File」の「Export」からglTF形式でエクスポートします。
エクスポートしたファイルをSTYLYにアップロードする方法は以下の記事をご参照ください。
STYLYにアップロードしても、Blenderでレンダリングした状態に近い見た目で配置することができました。