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

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

キャラクターの色を変えてシルエットだけ表示する【Unity】


このエントリーをはてなブックマークに追加

キャラクターの色を変える

ゲームでまた出現していないキャラクターのシルエットだけを見せたくて、コナンの犯人みたいにスクリプトから真っ黒にしてみました!
実際には以下の画像のようになります。

f:id:kan_kikuchi:20141218064440g:plain

なお、黒くするだけでは無く、他の色にも変えられます.


レンダラーとマテリアル

色を変えるにはレンダラーに設定されているマテリアルのMain Colorを変更します。

f:id:kan_kikuchi:20141218070630p:plain

ただし、Main Colorを設定出来ないShaderが設定されていると、今回のやり方では色は変えられません


プログラム

実際のプログラムは以下の通りです。
色を変更したいゲームオブジェクトと変更したい色を入力します。

レンダラーが含まれているオブジェクトは一つとは限らないので、入力されたオブジェクト及びその子全てのレンダラーに処理を行っています。例えば、女剣士の場合だとキャラクターと剣でレンダラーが分かれています。

またマテリアルについても、複数設定されている場合があるので、設定されているもの全てに処理を行っています。


おわりに

マテリアルの色を変えているので、同じマテリアルを使ってる他のオブジェクトがある場合、そっちの色も変わっちゃうので注意が必要です!
本当は黒から元の色に戻す時に徐々に戻したかったのですが、Main Colorを徐々に変えても綺麗にフェードしなかったので諦めた次第です(:3っ)∋〜