質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3034閲覧

ポストプロセッシングで2Dのスプライトを発光させたい

kanata_02

総合スコア25

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/08/31 13:58

http://tsubakit1.hateblo.jp/entry/2018/03/06/224207
こちらのサイトを参考にしてポストプロセッシングで2Dのスプライトを発光させようと思ったのですが、見た目が全く変わりません。
EditからHDRにチェックも入れてみたのですが、変わりませんでした。
原因として何が考えられるでしょうか。ご教授お願いします。
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/01 04:15

PostProcessLayerのlayerの値が違いませんか?あと、PostProcess Volumeのintensityの値も・・・GameObjectのレイヤーはPostProcessingに設定されていますか?
guest

回答1

0

ベストアンサー

単にスプライトの発光強度が足りないんじゃないでしょうかね?
Bloomの「Threshold」が1になっていますが、これはつまり少なくとも1.0以上の強度の色じゃないとブルーム効果が発生しないということかと思います。このしきい値を0.75、0.5...と下げていけば光り出すんじゃないでしょうか。

ですが、Thresholdを下げる方法では明るい色のスプライトの場合は全体がぼんやり光ってしまっていまいちかもしれません。やはり光らせたい部分だけ局所的に色の強度を上げたいところですが、インスペクターを見てもいまいち使えそうな設定項目が見つかりませんでした。
もしかすると独自のシェーダーを用意してやらないといけないかもしれません。試しにデフォルトのスプライト用シェーダーを改造してエミッションカラー、エミッションマップを追加し...

ShaderLab

1// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) 2 3Shader "Sprites/Emission" 4{ 5 Properties 6 { 7 [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 8 _Color ("Tint", Color) = (1,1,1,1) 9 [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 10 [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1) 11 [HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1) 12 [PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {} 13 [PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0 14 15 [HDR] _EmissionColor ("Emission Color", Color) = (0, 0, 0) 16 [HDR] _EmissionMap ("Emission Map", 2D) = "black" {} 17 } 18 19 SubShader 20 { 21 Tags 22 { 23 "Queue"="Transparent" 24 "IgnoreProjector"="True" 25 "RenderType"="Transparent" 26 "PreviewType"="Plane" 27 "CanUseSpriteAtlas"="True" 28 } 29 30 Cull Off 31 Lighting Off 32 ZWrite Off 33 Blend One OneMinusSrcAlpha 34 35 Pass 36 { 37 CGPROGRAM 38 #pragma vertex SpriteVert 39 #pragma fragment frag 40 #pragma target 2.0 41 #pragma multi_compile_instancing 42 #pragma multi_compile_local _ PIXELSNAP_ON 43 #pragma multi_compile _ ETC1_EXTERNAL_ALPHA 44 #include "UnitySprites.cginc" 45 46 sampler2D _EmissionMap; 47 half3 _EmissionColor; 48 49 half4 frag(v2f IN) : SV_Target 50 { 51 return SpriteFrag(IN) + half4(tex2D(_EmissionMap, IN.texcoord).rgb * _EmissionColor.rgb, 0.0); 52 } 53 ENDCG 54 } 55 } 56}

下図のようなロボットの画像に対して...

図1

下図のように目の部分を白く抜いたエミッションマップを用意し...

図2

マテリアルにエミッションマップをセットし、エミッションカラーをとりあえず(50, 50, 25)に(これは0.0~1.0での色表現における値であって、0~255ではない点にご注意ください)してみたところ...

図3

下図のように目が光って見えました。

図4

投稿2019/09/03 15:06

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問