ゾンビとUnity

ゾンビネタとUnityでのゲーム制作について綴るブログです。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Unity Sprite と Plane を加算で表示する

※Unity 5以上では未検証。

unity additive 3

加算って何よ

加算合成、加算表示、OR(オア)演算などの呼び方を聞いたことがありますが、全て同じものを指しています。
加算合成はαチャンネルや透過処理を使わずに、絵を半透明に表示させる方法で、はるか昔から使われている描画方法です。
はるか昔のいっぱいいっぱいだったマシンパワーでは、透過処理が非常に重くて、加算合成は透過に比べると軽かったので、加算で済むなら加算を積極的に使うようにしていました。
透過処理が重かった理由は、抜き処理用のマスク画像を乗算合成した後、その上に表示したい絵を重ねて加算合成する必要があったからです。
要するに、同じサイズの絵を2回描画する必要があったため、重くなっていました。

加算合成は下地の絵の色に対して、表示したい絵の色値をプラスするだけです。
ですから、0より大きい色値で何度も加算合成して行くと、最終的には真っ白になります。
暗い色であっても、色値が0より大きければ確実にプラスされますから、沢山重ねれば真っ白になります。
そのため、表示したくない部分の色値は、RGB値の場合 R=0 G=0 B=0 (完全な黒)にします。


使用上の注意

加算合成はダメージエフェクトやレーザービームの描画でよく使われるのですが、使いすぎには注意が必要です。
基本的にエフェクトはキャラやオブジェクトより手前に表示させるものなので、沢山のエフェクトが重なると画面が真っ白になって何も見えなくなります。
エフェクトを派手にし過ぎたり、ゲームの終盤、大混戦になるようなシーンでよく起きます。


Unity で加算合成するには

Plane を使うにしろ、Sprite を使うにしろ、最初に加算合成用の Material を作ります。
マテリアルを新規作成して、表示したい画像(スプライト用でもただのテクスチャでもどっちでもOK)を選び、Particles / Additive もしくは、Particles / Additive (Soft) のシェーダーを指定します。

unity additive 4


Sprite の場合
Hierarchy にあるスプライトを選択して、Inspector - Sprite Renderer - Material に、↑で作成したマテリアルを指定。

Plane の場合
Mesh Renderer - Materials - Element 0 に、前述のマテリアルを指定。


unity additive 1
透過処理だけでスプライトを表示したところ。
透過色だけが抜けて、それ以外はそのまま表示されます。

unity additive 2
加算で表示したところ。
色値が 0 の部分は完全に透明になり、色値が 0 より大きい部分は、背景の色値にプラスされた状態で表示されます。
 
スポンサーサイト

- 0 Comments

Add your comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。