【Unity道場 2016】Unity 5.4&5.5 エフェクトアップデート

>100 Views

July 15, 17

スライド概要

2016/5/30に開催されたUnity道場のスライドです。
講師:池和田 有輔(ユニティ・テクノロジーズ・ジャパン合同会社)

profile-image

リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

2016.9.30 unity 道場 Unity5.4 & 5.5 エフェクトアップデート ユニティ・テクノロジーズ・ジャパン 池和田 有輔

2.

Unity5.4、5.5でのエフェクト関連の変更点まとめ Line Renderer ・まともに使えるものになった Trail Renderer ・仕様一新 ・互換性は極めて怪しいのでアップデートの際にはご注意を Particle System ・トリガーモジュール追加 ・ライトが使えるようになった ・ノイズが使えるようになった ・トレイル実装 ・シェーダーにカスタムデータを送れるようになった ・LPPV対応 ・その他地味なもの COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

3.

unity 道場 Unity 5.4

4.

COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

5.

XYZ Ratio unity 道場 XYZが別々に扱えるように ・今回はSize Over Lifetimeに適用して光を演出 Cinematic Image EffectのBloomで光を派手に ・HDRのためにシェーダーに輝度をブーストさせる記述を追記 fixed4 frag (v2f i) : SV_Target { fixed4 col = i.color * _Brightness * tex2D(_MainTex, i.texcoord); UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); return col; } ・デフォルトのシェーダにもColor Tintがあり短いレンジで良ければ同様の ことができる COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

6.

COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

7.

Triggerモジュール unity 道場 概要 ・当たり判定 ・いわゆるOnTriggerEnterやOnTriggerExitのパーティクル版 インスペクタ詳細 ・Inside 当たっているとき ・Outside 当たっていないとき ・Enter 当たった瞬間 ・Exit 出た瞬間 ・Radius Scale あたり範囲の増減率 ・Visualize Bounds コライダの可視化。デバッグ用 ・プルダウンから選べるのはCallBack、Kill、Ignoreのみ COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

8.

COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

9.

Light Probe Proxy Volume unity 道場 ライトプローブプロキシボリュームとは ・動的オブジェクトのさまざまな側面を異なるライトプローブで個々にライティングし、表面の詳細な情報を表現 する技術 ・通常のライトプローブと違いオブジェクト単位ではないので、特に大きく(画面を埋めるような)、より深い陰 影のあるオブジェクトに特に有効 ・ただしモバイルでは現在未対応! Light Probe LPPV COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

10.

Light Probe Proxy Volume unity 道場 使い方 ・まずは普通にLight Probe Groupを配置 ・対象となるオブジェクトにLPPVコンポーネントを追加 ・RendererのLight Probes設定をUse Proxy Volumeに設定 ・Particle Systemでもほぼ同様 つまりLight Probeのサンプリングデータをもとにしていることに注意 Particle Systemで使う ・1つのオブジェクトとして扱われるのでLight Probeの恩恵が受けにくく、相対的にLPPVを使う価値がある。 ・ただし対応しているシェーダーは少ないため、カスタムシェーダを書く必要があるかも。 COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

11.
[beta]
Light Probe Proxy Volume
unity 道場
対応させるには
・ドキュメントを参考に (https://docs.unity3d.com/Manual/class-LightProbeProxyVolume.html)
v2f vert (appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.worldNormal = UnityObjectToWorldNormal(v.normal);
o.worldPos = mul(unity_ObjectToWorld, v.vertex.xyz);
o.color = v.color;
o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
half3 currentAmbient = half3(0, 0, 0);
half3 ambient = ShadeSHPerPixel(i.worldNormal, currentAmbient, i.worldPos );
fixed4 col = _TintColor * i.color * tex2D(_MainTex, i.texcoord);
col.rgb += ambient;
UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); // fog towards black due to our blend mode
return col;
}
ワールドでの法線と座標を保持しておく
5.4から定義済みの値 _Object2Worldは
unity_ObjectToWorldに変更になったので注意
あとは関数ShadeSHPerPixelによって法線の方向と座標をもとにに
カラーを調整するだけ
効果がわかりにくかったらambientをブーストさせてもいいかも
COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN
12.

unity 道場 Unity 5.5

13.

COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

14.

Lightsモジュール unity 道場 概要 ・ポイントライト、スポットライトが使えるようになった! 解説 ・ポイントライトとスポットライトをサポート ・実際のライトはソースとして使うだけなので、アクティブを切って も平気(むしろそうすべき?) ・スポットライトは進行方向に光を照射 ・リアルタイムシャドウとかCookieもサポート ・基本的にディファード環境で使おう ・フォワードではパーティクル数を増やすと制限に引っかかって頂 点ライティングになったりする(右)。バグっぽいけど仕様 COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

15.

Lightsモジュール unity 道場 インスペクタ詳細 ・ratio 光の強さ、あるいは出現率 ・random distribution ここにチェックが入ると上記ratioが強さで なく光るものの出現率になる ・Use Particle Color パーティクルの色を使うか、或いはライトの色を 使うかを切り替える ・Size Affects Range サイズが光の範囲に影響を与えるかどうか ・Alpha Affects Intensity アルファが影響を与えるかどうか ・Range Multiplier 範囲の乗算値 ・Intensity Multiplier 強さの乗算値 ・Maximum Lights いくつまで出せるか(Max Particlesみたいなもん) COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

16.

COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

17.

Trailモジュール unity 道場 概要 ・パーティクルを追跡するようなエフェクトを実現 解説 ・マテリアルはRendererモジュールにつけるので注意してね ・テクスチャは左が先端となっている ・自分の進んだ奇跡にメッシュを生成 ・先端以外のメッシュは動かないことに注意 ・短くて尻尾まで塗られているものを作る時はメッシュを細くする ・メッシュ自体は動かず、生成することで動いているように見せているので ・ライフタイムによる色の変化などは実現できないので、サブエミッターを使おう COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

18.

Trailモジュール unity 道場 インスペクタ詳細 ・Ratio 出現率 ・Lifetime 寿命(パーティクル自体の寿命に対する割合) ・Maximum Vertex Distance トレイルを分割する割合。少ないほど細くなる がメッシュが増大する。最大は2 ・Texture Mode テクスチャをタイル状にリピートさせるか、引き伸ばすか ・World Space ワールド・ローカル空間の切り替え ・全体を動かすときと変化する ・Die with Particles チェックするとトレイルが消えたときにDeath扱いになる ・Size Affects Width サイズが太さに影響するかどうか ・Size Affects Lifetime サイズが寿命に影響するかどうか ・Inherit Particle Color 本体のカラーを継承かどうか ・Color Over Lifetime 死ぬまでの時間経過による色の変化 ・Witch Over Trail 太さを乗算 ・Color Over Trail トレイル自体のカラーに乗算(グラデなどはここで) COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

19.

COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

20.

Noiseモジュール unity 道場 概要 ・自然な動き、有機的な動きを実現 解説 ・おおむねPerlin Noise。 ・3次元までサポートしてる。 ・ビルトイン関数のMathf.Perlinは2次元までなので、それより使い出がある ・変数名はマップベースなので、実際に何が変わるのかは体感して覚える方が早い COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

21.

Noiseモジュール unity 道場 インスペクタ詳細 ・Separate Axes 座標をXYZに分割するかどうか ・Strength 強さ。 ・Frequency 頻度、あるいは隣り合うものと足並みを揃えるかどうか と考えた方がいいかも。 ・Scroll Speed 方向が変わるタイミングの早さと考えよう ・Damping ダンピングさせたい場合は外す ・Octave 試行回数。回数分だけ負荷が上がるので注意。 ・Quality 動きの複雑さ。1次にするとシンプルなSin波みたいな感じ になる ・Remap 動きの差し替え。なぜかグラフのみ対応。 COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

22.

COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

23.

Vertex Stream unity 道場 概要 ・Rendererからシェーダに様々なデータが送れるようになった! 解説 ・Position、Normal、Tangent、Color、UV、UV2 Blend And Frame、Center And Vertex ID、 Size、Rotation、Velocity、Lifetime、そして2つまでなら何でも送れるカスタムデータ 通常 Particle System -> Shader カスタム データ Particle System -> Script -> Shader ・セマンティクスが無いものは全部UV情報(TEXCOORD)として送られる ・接線座標系が使えるので法線マップも可能! ・フェードアニメーションも可能! ・実装例は新しく追加されたビルトインシェーダ(Particle Anim Alpha Blend)を見るのが手っ取り早い COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

24.

Vertex Stream - わかりにくいもの解説 unity 道場 UV2 Blend And Frame (float4) ・テクスチャアニメーション使用時のUV及びフレーム情報 ・xyに次のテクスチャのUVが入り、zには次のコマへの経過率 が入り、wにはシーケンス全体の経過率が入っている ・前述したParticle Anim Alpha Blendもこれを使っている Center And Vertex ID (float4) ・そのパーティクル(板ポリ)の中心座標が入る。 ・Positionは個々の頂点の座標でありCenter And Vertex IDは 中心 ・相対座標をとるのにも使えそう 1 2 3 4 5 6 7 8 X:0.45 フレーム内の 経過率 W:0.8 全体の経過率 COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

25.

Vertex Stream - カスタムデータ送信例 unity 道場 Custom Data ・カーソルの座標をワールド上での座標に変換してシェーダに送り、近くのパーティクルの色を変更した例 COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

26.

unity 道場 今後の話

27.

Corrected Billboard (5.5) unity 道場 ・現状はカメラをロール(Z回転)した時でもパーティクルは回転しない仕様。これだと不都合が起きやすい。 ・問題解消のため改善したビルボードを実装予定 COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

28.

まだまだイケてるアセットたち unity 道場 Vectrosity Particle Playground COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

29.

参考 unity 道場 ・Unity blog 5.4 新機能紹介: ・ https://blogs.unity3d.com/jp/2016/07/28/unity-5-4-is-out-heres-whats-in-it/ ・Unity blog 5.5βについて: ・ https://blogs.unity3d.com/jp/2016/08/30/get-the-unity-5-5-beta-now/ ・Unity blog LPPVについて: ・ https://blogs.unity3d.com/jp/2016/02/03/light-probe-proxy-volume-5-4-feature-showcase/ COPYRIGHT 2016 @ UNITY TECHNOLOGIES JAPAN

30.

unity 道場 Thanks!