Unity5.3でTrail Rendererの軌跡の色を七変化させたかった話。
さいきん、Unityでゲーム作成をしてたりします。
公式サイト:Unity - Game Engine
Unityは、日本語ページがしっかりあったり、公式リファレンスも英語版とほぼ同じ内容で翻訳までされているので、そこそこ初心者にも優しい環境なのではないかな思っています。
そんな、UnityにはTrail Renderという機能があります。 簡単に言うと、オブジェクトの動きに合わせて、オブジェクトの後ろに軌跡を発生させてくれるものです。 例えば、飛行機の飛行機雲を表現したり、斬撃の軌跡表示などに使ったりします。
例からも分かるかもしれないのですが、通常は単色で軌跡を表現する事がほとんどです。
この軌跡を単色でなくて、色を変化させたい。というのが今回の内容です。
Unityのバージョンは、5.3.0f4です。
Trail Render
オブジェクトに、上のメニューからComponent -> Effects -> Trail Renderで追加してみます。 Trail Renderのインスペクターパネルは、5.3.0f4だとこんな感じです。
Trail Renderを追加しただけ
このまま実行してみます。
軌跡は表現できているのですが、色がピンク色?紫色?です。 インスペクターパネルのColorsを考えると白になりそうですよね。
Materialを追加してみる
通常、オブジェクトの色を変える時は、Materialを設定するらしいです。
参考 Unity GameObjectの色変更(C#) UnityでMaterialを追加して色を変更する方法【初心者向け】
ということで、インスペクターパネルのMaterialsのElementsにMaterialを追加してみます。
Assets -> Materials -> Create -> Materialで追加します。 プロジェクトパネルに追加されるので、色はよしなに設定するといいと思います。
色が変更できました。
Colorsを変更してみる
色の変更はできたのですが、単色のままです。 徐々にフェードしていくような設定にしているので、徐々に薄くはなっているように見えますが。
公式リファレンスによると、インスペクターパネルのColorlsで色を変化させる事ができるようです。
・トレイル色 5つの異なる色 / 不透明度の組み合わせを通じて、トレイルを循環できます。色を使うことで、明るい緑のプラズマトレイルを徐々に薄暗くし、最終的に鈍い灰色の消失にするか、虹のその他の色を循環させることができます。色を変更したくない場合は、各色の不透明度を変更し、トレイルを先頭や末尾でフェードインおよびフェードアウトさせると、非常に効率的です。
Colorsを設定してみます。 ここの色も、よしなに。
実行!
変わらない!
Materialのshaderを変更する
いろいろ調べてみると、MaterialのShaderがデフォルトのStandartだとダメみたいです。
先ほど作成したMaterialのShaderを変更します。 Materialを選択してインスペクターパネルの、Shader -> Sprites -> Defaultにします。
再度、実行します。
できました!
おわり
Trail Renderのインスペクターパネルで何とかできるものだと思っていて、MaterialのShaderを変更しなければいけないという事に気付かなかったので、もっと勉強します。
あと、今ほど、高校数学で数3Cまでやってた事に感謝したことはない......