勉強会のレポート(メモ)です。
参加したのはこちら、「Unity道場 3月 ~ライティングとVFX Graph~」
会場はユニティ・テクノロジーズ・ジャパンさんです。
meetup.unity3d.jpハッシュタグ : #Unity道場
動画はこちらから
- #1 Unityのライティング機能のおさらい
- #2 Unity の新機能 Visual Effect Graph (VFX Editor) と RealSense を組み合わせると簡単に派手なことができてすごく面白いうえに勉強もはかどるという発見をしたのでその話をします
- 感想
- 懇親会
- タイムライン
- 過去のUnity道場のまとめ
#1 Unityのライティング機能のおさらい
写真めっちゃ暗い、ライティングミスった
使うことはありませんでしたが、こういうのを用意しました。
今回はライティングをどういう風に設定するのかについて話します。
基本的にライトはライトソースから発行しています。
当たり前ですがライトが当たったところは明るくなります。
当たってないところは暗い、光が届かなければ影になる。
これだけなら簡単だがややこしいことに光は反射します。
光は反射するものの色によって反射する光の色が変化します。
実際にはもっと複雑、反射した光によって空間は作られます。
これをリアルタイムでできればいいが高負荷。
202x年とかだとどっかの会社がレイトレシステムを作ってくれると思いますが現状はない。
なので、あらかじめテクスチャを焼きこんで使います。
光の種類
・環境光
・光る物質
・ライト(直接光)
ここでデモ
デモは動画を見てください。
Unityは基本的に空が青いです、なのでモデルをポン置きした時に青くなります。
ライトを設定しなくても空間の色を変えるだけでできます。
これはグラデーションもできます、スカイボックスよりも安い
Unityはライトを消しても真っ暗闇にはならない。
アンビエントライトを上書きして完全に黒にする、またはIntentityを0にする必要があります。
アンビエントライトはシーン全体に影響を与えてしまう。
部屋の中などで適応したくない時はリフレクションプローブを使いましょう。
これは部屋や廊下など閉鎖空間に対して適応しましょう、初期だと解像度が高いので注意。
馴染みやすく良い表現になります。
光る材質
エミッシブがついているとそれ自体が光ってるように見せかけれるし、実際に光らせることができます。
ただしダイナミックなオブジェクトにダイレクトにあたえることはできない、リフレクションプローブが必須。
ライト
実は奥が深い。
Baked、Mixed、Realtimeの三種類に分かれます。
結構重要な設定、いろいろな特徴があります。
Realtime
普通にライトを置くとこれになる。
範囲内のオブジェクトにダイナミック・スタティック関係なく光を与える。
ただしそのまま使うと環境光として使えない、のっぺりした見た目になってしまう。
ライトの範囲が被ると負荷が高くなるので注意しましょう。
リアルタイムGIなら間接光として使える。ただし、追加でCPUコストになる。
リアルタイムな影
ライトごとにシャドウマップが作られる。
ライトごとに見るべきところが変わっていきます。
ディレクショナルライトの場合
影を映す範囲を狭くすれば狭くするほどきれいになります。
では遠距離だときたなくなるのかというとそうではない、カスケードというものがあります。
近いもの高い解像度で描画し、遠くは雑に描画する機能です。
ただし複数回影を塗るのでおもくなることに注意。
スポットライトの場合
距離ではなく角度で決まる、狭ければ狭くなるほどきれいになる。
天井付近に置いて全方位に使うようにすると汚くなります。
ポイントライトの場合
単純に距離。
太陽変わりに使うと低品質な影になってしまいます。
リアルタイムは狭い範囲で使う分にはよい
Baked
事前にベイクした影。
ちゃんとした影になります、回りの色風乾をうけた味わい深いものにしやすいです。
ただしダイナミックな物にはつかない。
ベイクしたライトは事前計算した分、CPU負荷がとても安い。
ベイクの場合、複数のライトを使うのも問題ない。ただしメモリのコストは高い
サンプリングやレゾリューションを上げると焼くのに時間がかかる。
メモリ以外の問題
光の情報が失われる、焼いた時のテクスチャしか見なくなります。
光沢、金属的な表現を使うとしょぼくなります。
ライトプローブでダイナミックなオブジェクトにも影響を与えることができます。
Mixed
ベイクとリアルタイムの中間があります。それがMixed。オプションがけっこうあります。
Subtractive
ステージは全て焼き、ダイナミックな影を作る。
ベイクとリアルタイムを合わせると色が変わってしまう問題があるが、手動でどうにかできる。
完全にテクスチャに焼くので光沢は死ぬ。
それをやる方法がシャドウマスク光沢もできフワっとした影もできます。
絵的にはきれいになるオプションです。ただし、ダイナミックなものはフワっとした影には絶対できません。
ShadowMask
シャドウマスクはマスクは作るが、基本的にダイナミックなものにはつかない
影の影響を与えることはできない、リフレクションプローブで違和感を減らすことはできます。
ShadowOnlyな影専用のオブジェクトを用意するのも手です。
DistanceShadow
近いものはリアルタイム、遠距離のものはシャドウマスクのものを使うといったことができる。
影の範囲を範囲を狭くすることで奥は雑に、手前は綺麗にできる。
ShadowMaskの問題点
1オブジェクトにライトを4つしか割り当てれない。
4つ以降焼くと、テクスチャに焼かれる、どのライトが焼かれるのかは運。
BakedIndirect
間接光のみ焼く設定。
遠距離の影は焼かれないがそれを許容できるならいい設定。
どれを設定すればいいかはプロジェクトによる。
・できるだけ軽くしたいならSubtractive
・できるだけきれいにしたいならShadowMaskはいい
・広いステージではDistanceShadow。
・遠距離を見る必要がないもの(トップビューなゲームなど)はBakedIndirectがよい。
まとめ
いろいろ設定があります。
焼くのにもいくつか設定があります。
どれを使うのかは状況による。
ライトも設定ごとに確認する項目が変わります。
#2 Unity の新機能 Visual Effect Graph (VFX Editor) と RealSense を組み合わせると簡単に派手なことができてすごく面白いうえに勉強もはかどるという発見をしたのでその話をします
まずはいきなりデモ
動画を見てね。
VFX Graphは新しいエフェクトを作る仕組み。
リアルタイムで数値をいじれて視覚的にわかりやすい。
ここでお見せしたものはgithubにあります、お試しください。
GitHub - Unity-Technologies/VisualEffectGraph-Samples: Visual Effect Graph - Samples Project
もう一つの要素RealSense。リアルタイムでとれる深度センサー。
VFXGraphとは
正しくはVFXGraphではない、VisualEffectGraphです。検索する時はこっちで。
VisualEffectとは、ぶっちゃけるとGPUパーティクルです。
パーティクルだけに留まらずいろいろやるためにこういう名前になっています
なんかすごく複雑そうだが基本的に4つのノードだけで作られます。
無限に複雑な処理を発想次第で作ることができます。
これとRealSenseとのつなぎこみ
顔の形にエフェクトを出すサンプルから発想を得ました。
外から入力されたポイントマッシュをアトリビュートマップで変換して、VFXで使っています。
ここの部分をRealSenseに置き換えればよさそう、詳しくgithubを参考にしてみてね。
別にこれRealSenseeを使わなくとも、温度や気象データを使うことで視覚化することができます。
ボリューメトリックビデオをやってみました
Depthkitというボリューメトリック録画ツールがあります。
簡単な操作でunityに取り込むことができます。
まとめ
VFX GraphはGPUパーティクルのこと。
外部の要素をつなぎたかったらアトリビュートマップで変換しましょう。
ボリューメトリックビデオ楽しいよ。
感想
ShadowOnlyの話が出てきましたが、やり方次第では面白い演出にも使えます。
VFX Graph!
シュリケンだと10万や20万もパーティクルを出したらPCが死んじゃいそうですが、こっちなら割かし無理ができそう。
青木ととさんのParticleSystemで背景を作る手法で活躍しそうです。
qiita.com私のTwitterのヘッダー画像も、これで作りましたが、パーティクルをたくさん出すのは結構負荷が大きいんですよね。
去年のUnityShader勉強会でのたぐすキャットさんが使い方を詳しく解説しているので、合わせて確認してみてください。
RealSenseの顔や手に形にエフェクトを出すのはおもしろい。
DmCのボス、ボブバーバスみたいなことができそう。
懇親会
🍣 #Unity道場 pic.twitter.com/kpgGlLZ6i1
— 青木とと(ˊᗜˋ*) (@lycoris102) March 29, 2019
凄いでばいす #unity道場 pic.twitter.com/HwTUPJpCsX
— 椿 (@tsubaki_t1) March 29, 2019
タイムライン
#Unity道場 本日行くと思いまーす
— 40@TOKYO SANDBOX2019 (@dr40san) March 29, 2019
VFXGraphの予習したい方はどーぞ。PointCacheとかVFとかは乗ってないけど、ググればブログ出てくるからそっち見ると良いhttps://t.co/s8DaqpY1FJ
本日のUnity道場は「Unityのライティング機能のおさらい」by山村達彦、「Visual Effect Graph とRealSenseを組み合わせると簡単に派手なことができてすごく面白いうえに・・(略)」by高橋啓治郎 の2本立てでお送りします。約5分後の19:00から生配信予定します https://t.co/475S9eF9L8 #Unity道場
— ユニティ・テクノロジーズ・ジャパン (@unity_japan) March 29, 2019
#Unity道場
— クロノス (@khronos2510) March 29, 2019
リフレクションプローブなしで標準のプロシージャルSkyboxがモデルに反射しているとUnityっぽい
(staticの詳細な設定そんなところに居たの....!!) #Unity道場 pic.twitter.com/Kxt0Kgq6I6
— 青木とと(ˊᗜˋ*) (@lycoris102) March 29, 2019
QualitySettingsにおけるShadowの設定の話https://t.co/Ss7uJoa0Au#Unity道場 pic.twitter.com/QXjNqtZAPJ
— 青木とと(ˊᗜˋ*) (@lycoris102) March 29, 2019
👀シャドウカスケードについてhttps://t.co/MbaYXX1T07#Unity道場
— 青木とと(ˊᗜˋ*) (@lycoris102) March 29, 2019
Shadow Mask特集号だ! #Unity道場 | 【Unity】リアルタイムな影とベイクした影を混ぜる、Shadow Mask 特集号 - テラシュールブログ https://t.co/Amdl6nPmOZ
— 青木とと(ˊᗜˋ*) (@lycoris102) March 29, 2019
用途ごとに設定を考える
— Kazushige Mori(Cz_mirror) (@Cz_mirror) March 29, 2019
とにかく軽くしたい場合はSubtractive
できるだけ綺麗にしたい ShadowMask
広いステージを作りたい Shadow Mask distance shadow
遠距離を見る必要はない Baked Indirect
#Unity道場
本日は #Unity道場 に参加。二本立ての一本目は3Dにおけるライトの設定の概要。概要と言っても、自分は今まで2Dプロジェクトが主だったので、知らない言葉ばかりだ。個人的に、最後にスライドで出たライトマップの設定の一覧は、後日公開される資料などで確認しておくべき。非常にわかりやすかった
— hideaki shiratori (@goodbyegirl0917) March 29, 2019
Mixed Light完全に理解した #Unity道場 pic.twitter.com/NZQubuZ2IG
— amausagi (@amausagiiiii) March 29, 2019
今見ているサンプルはこちらかなhttps://t.co/k3yYoP9k4Q#Unity道場
— 青木とと(ˊᗜˋ*) (@lycoris102) March 29, 2019
4つのノードで構成
— Kazushige Mori(Cz_mirror) (@Cz_mirror) March 29, 2019
Spawnノード(発生)
Initializeノード(初期化)
Updateノード
Quad Outputノード(出力)
#Unity道場
VFX GraphってSOPとVOPを足した様な縦と横から繋げて行くような流れ #Unity道場 pic.twitter.com/zt8NpxhLkc
— UnlimitedEffectWorks (@ijiVFX) March 29, 2019
サーモグラフィーの情報や気象情報と組み合わせてもVisualEffectは面白いのではないか
— Kazushige Mori(Cz_mirror) (@Cz_mirror) March 29, 2019
ビジュアライゼーションに興味のある人は比較的使いやすいので触ったほうがよい
#Unity道場
#unity道場https://t.co/ZkchtEg5Ul
— みき🦊 (@kemmimilk) March 29, 2019
#Unity道場 ライティングとVFXのこと教えていただいた。帰ったらさっそく色々試してみよう
— わたなべ | GA LAB6 (@KeiWatanabe1) March 29, 2019
椿さんのデモに出ている部屋はこれ。無料。 pic.twitter.com/NH01N5Lzab
— JKさやちゃんぐbot (@songofsaya_) March 29, 2019
過去のUnity道場のまとめ
勉強会レポ : Unity道場 1月 ~LWRPとシェーダー~ - Raspberlyのブログ
勉強会レポ : Unity道場 2月 ~シェーダを書けるプログラマになろう~ - Raspberlyのブログ
間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。