読者です 読者をやめる 読者になる 読者になる

AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

Shaderで赤色光を明滅させる

XEVIOUS Unity2D

ゼビウスのキャラクターはモノトーンで立体性を強調したデザインですが、赤色光が明滅するのも特徴と思います。
おそらくパレット機能で実現されてると思いますが、Unityにはパレット機能は無いし、SpriteRendererのcolorを使っても全体の色が変わるだけです(´・ω・`)

changeRed = 1.0f;
changeGreen = 0.0f;
changeBlue = 0.0f;
changeAlpha = 1.0f;
this.GetComponent<SpriteRenderer>().color = new Color(changeRed, changeGreen, changeBlue, changeAlpha);

getPixelとsetPixelでリアルタイムに書き換えるという荒業もありますが、遅くなっては本末転倒です(´・ω・`)

おそらくshader使えばできるだろうと思ってましたが、shaderの知識はないしな。

しかし、こちらの記事を参考に、RGBHSVで表すshaderを適用してみましたところ、
kido0617.github.io
彩度を0から1.0に変更すると、赤色部分のみ黒から赤に変化して、他の灰色部分は変化無しでした。
これは使える!
ということで、赤色明滅が実現できました。
f:id:yasu9780:20160127025258p:plain

アンドアジェネシスはモノトーンじゃなくて、やや黄色みかかってるので、彩度を下げると灰色になってしまうので使えませんね。
これは特別に赤だけ抜き出したアルファを作って対処すればいっか。

広告を非表示にする