Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【アセット紹介】Aura2でボリューメトリックなライトをつくる【Unity】

今回はアセットの紹介をしていきます。
紹介するのはAura2です。
ボリュームのあるライトやフォグを実装できるアセットです。

f:id:Raspberly:20191002201731p:plain

 

 

通常50ドル近くする有料アセットですが、
最近まで開催されていたHumble Bundleによるイベントで15ドルで購入できました
詳しくはこちら

www.asset-sale.net

 

※未完成な記事が一度公開されました。申し訳ありません。

 

 

どんなアセット?

ボリューメトリックなライトを作ることができるアセットです。
とても小さい微粒子と光の散乱をシミュレートすることでライトを表現しています。
光芒などや薄明光線で検索していただけるとわかりやすい画像がでてくると思います。

f:id:Raspberly:20191009060045p:plain

何もないだだっ広い空間に使うのではなく、複数のオブジェクトがある空間内での使用に向いています。

注意点

Aura 2は、WindowsおよびDirectX11で開発およびテストされました。
他のプラットフォームとコンソールも準備中ですが、現在は保証されていません。
ただし、Aura 2はMacOs + Metalで正常に機能すると報告されています。

アセットストアの説明文によるとWIndows以外の環境では動作保証されていません
またLWRP、HDRPにもまだ未対応です。

 

 

無料版のAura1

本アセットの前身となるアセットとして「Aura」があります。
Auraは無料のアセットで、これを発展&安定させたのがAura2になります。

こちらのAuraですが、Aura2リリースに伴って廃止されることが決定しています。
2019年3月4日のアップデート版が最終バージョンで、これ以降はアップデートされる予定はありません。

無料版のAuraは削除されました。

 

また、AuraとAura2に互換性はありません。
AuraがインポートされているプロジェクトにAura2をインポートしたい時は、
Auraを削除してからインポートしましょう。

 

 

 

開発環境

Unity2018.4.11f

Aura2 ver2.0.7

 

 

 

インポート時の用語解説

UnityにアセットのインポートをするとSceneビューがこのような画面になります。
ここでは簡単に用語が解説されます。

f:id:Raspberly:20191002225620p:plain

以下適当な翻訳解説(飛ばしてもOK)

Aura2は、ゲームオブジェクトに適用される3種類のAuraコンポーネントを使用して動作します。

Aura Cameraコンポーネントは、すべての寄与データの収集を担当し、
Auraシステムの計算を処理し、体積照明を表示します。

Aura Lightコンポーネントは、ライトのデータ/パラメーターを収集し、Auraシステムに提供します。

Aura Volumeコンポーネントは、注入ボリュームの作成を担当し、
そのデータ/パラメータを収集し、Auraシステムに提供します。

 Auraコンポーネントは、「コンポーネントを追加」ボタンを使用して追加/作成できます。
「カメラとライトの「Auraを追加」ボタン、「GameObject/Aura2」メニュー、またはSceneViewに統合されたエディションツールボックスから。

 

ツールボックス

Aura 2では、ショートカットボタンを含むツールボックスが導入されています。
これらのショートカットを使用すると、ボリュームライティングをシーンに簡単かつ迅速に追加または編集できます。

f:id:Raspberly:20191003133605p:plain

SCENEパネル

シーンのゲームオブジェクトにAuraコンポーネントをすばやく追加するためのボタンが含まれています。
また、複数のAuraアンビエントプリセットの中から選択して適用できる[プリセットの表示]ボタンも含まれています。

CRESTEパネル

シーンにAuraオブジェクトをすばやく作成するためのボタンが含まれています。

 

プリセットによる初期設定

ツールボックスにある[プリセットの表示]ボタンをクリックすると、
事前に用意されたAura Ambianceプリセットが複数表示されます。

f:id:Raspberly:20191003232914g:plain

ワンクリックで、目的のAura Ambienceプリセットをシーン全体に適用できます
Aura2をプロジェクトに導入する際にとても便利です

 

 

Aura2のメニューはUnity Editor のWIndow-Aura2から
Edition Settings と Texture3D Toolを出すことができます

Aura Editionの設定ウィンドウには、エディション環境に関連する設定が含まれています。
Scene View ToolboxのパラメータやSceneView Visualizationの品質設定などの設定はそこにあります。

 

 

 

AuraCameraコンポーネント

AuraCameraは以下の2つのタスクを担当します。

Base Settings

AuraBaseSettingsプリセットファイルを使用して、
ライティングの基盤を作ります。

Quality Settings

AuraQualitySettingsプリセットファイルを使用して、品質を設定します。

 

この2つのパラメータを使用して、AuraCameraはAuraコンポーネントからライティング計算をして処理します。

 

 

AuraLightコンポーネント

Aura Lightオブジェクトは、Lightに関連するデータを収集し、それらをAuraシステムに供給する役割を果たします。
AuraLightコンポーネントは2つのパネルに分かれています。

共通パラメーターパネル

このパネルには、すべてのタイプのライトと同じ設定が含まれています。

方向スポットポイントパラメータパネル

これらのパネルには、選択されたライトのタイプに固有の設定が含まれています。

 

 

AuraVolume コンポーネント

Aura Volumeオブジェクトは、ボリューム内にデータを注入する責任があります。
3つのタイプのデータをボリューム内に注入できます:霧密度、純粋な光、照明散乱係数。

ボリュームマスクパネル

このパネルには、注入マスクのセットアップに使用されるパラメーターが含まれています。 このマスクは、注入されたデータをマスクするために使用されます。

InjectDataパネル

このパネルには、注入できるデータとそのパラメーターが含まれています。 これらのデータは、ボリュームマスクによってマスクされます。

 

 

他詳しいドキュメントはこちら

 

 

 

サンプルシーンの確認

Exampleが用意されています。
DirectionalLightやSpotLight、PointLightの例を見ることができます。

f:id:Raspberly:20191017022650g:plain

 

 

 

クイックスタート

付属のドキュメントに従ってとりあえず動かしてみます。

3Dモデルの配置

今回はこの無料アセットを使っていきます。

このアセットをダウンロード&インポートしたら、「SurvivalOldHouse01_Demo」シーンを開きます。
このシーンを使っていきます。

f:id:Raspberly:20191003231600p:plain

 

 

Auraプリセットの設定

ツールボックスからAura AmbienceのDawnを選択します。

f:id:Raspberly:20191003234001p:plain

 

すると、CameraLightVolumeの設定が全て自動で行われます。
Volumeは新しく作られるAura Preset Volumeオブジェクトにアタッチされています。

f:id:Raspberly:20191003235433p:plain

 

これだけでボリューメトリックな光が実現できます。
窓から差し込む光がとてもきれいに映ります。

f:id:Raspberly:20191003234011g:plain

 

 

Aura Lightパラメータ

Lighit(Directional or Point or Spot)の設定をするコンポーネント

f:id:Raspberly:20191009053224p:plain

Strength

Auraの強さ

f:id:Raspberly:20191009052408g:plain

Scattering Bias

錯乱する時の偏り
よくわからないが、ギラギラが気になるのなら1にするとよい

f:id:Raspberly:20191009052450g:plain

 

 

 

AuraVolumeパラメータ

Volumeパラメータの解説をします。
オーラの密度、色、錯乱を調整することができるコンポーネントです。
作成することで設定範囲内に微粒子でできたフォグがでます。

 

 Noise Mask

ボリュームにはノイズをかけることができます。
ノイズはボリュームをちらつかせる効果があります。

f:id:Raspberly:20191009055136g:plain



 

Density

ボリューム内を満たす細かい粒子の密度です。

f:id:Raspberly:20191009055207g:plain

 

 

 

 

 

 

 

 

 

 

プリセットを使わずにやる場合

AuraCameraの作成

AuraCameraを作成します。
ツールボックスのSCENEパネルから「Convert Cameras to Aura」を選択します。(カメラのボタン)

f:id:Raspberly:20191003180319p:plain

するとシーン内にすでにあるMainCameraにAura Cameraコンポーネントが自動的にアタッチされます。

f:id:Raspberly:20191003180709p:plain

 

 

AuraCameraを用意する方法はもう一つあります。
ツールボックスのCREATEパネルにあるCreate Cameraボタンを押すと、Main Cameraとは別にCameraを作ってくれます。

f:id:Raspberly:20191003180632p:plain

f:id:Raspberly:20191003221252p:plain

 

AuraLightの作成

 ツールボックスのCREATEからLightを作成できます。

f:id:Raspberly:20191017014713p:plain

作成できるのは、ディレクショナル・スポット・ポイントの3種類です。
今回はスポットを使ってみます。

f:id:Raspberly:20191017020302g:plain

ツールボックスから、スポットのボタンを押し、場所と大きさを設定するだけです。
これだけでうっすらとライトが表現されます。

f:id:Raspberly:20191017020415g:plain

 

 

 

AuraVolumeの作成

ツールボックスのCREATEからVolumeを作成することができます。

 

Volumeには、シーン全体に影響を与えるグローバル、グローバル+フェードをかけられるレイヤー
プリミティブなボックススフィアシリンダーコーン型などがあります。

f:id:Raspberly:20191017020635p:plain

今回はレイヤーを使ってみます。Heightと呼ばれる概念があります。
このHeightは地面からのフォグの厚さです。

f:id:Raspberly:20191017020636g:plain

Heightパラメータはインスペクターに内容に見えますが、Transform.Scale.yがHeightになります。

f:id:Raspberly:20191017021452g:plain

 

これで微粒子で光が拡散する表現をつけることができます。
濃度に関してはインスペクターのDensityなどで調整しましょう。

f:id:Raspberly:20191017021047g:plain

 

他にもVolumeは複数あります。
ボックス型のボリュームを使うとシーン内の一部分のみに効果を適応できます。
特定のエリアや、室内だけに使いたいときにどうぞ。

f:id:Raspberly:20191017021834g:plain



 

 

 

注意点

シーンビューでAuraが機能しないことがあります。
その場合は、シーンビューの上のほうにある、DisableボタンやEnableボタンをポチポチ押すと改善することがあります。

f:id:Raspberly:20191017022807g:plain

 

 

 

 

 

 

おまけ

最初のほうに書いた通り、光源を遮るオブジェクトがたくさんあるシーンで真価を発揮します。

これは建物だけでなく、木がたくさんある森でも同様です。

f:id:Raspberly:20191018004348g:plain

 

 

 

 

 

 

まとめ

・Aura2を使うと、ボリューメトリックなライトやフォグを作ることができる。

・3つのコンポーネントを使うだけ。

 

 

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

 

他間違っている箇所、わかりにくい所がありましたらコメントにお願いします。