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

Keep Coding!

A fearless adventure in knowing what to do when no one’s there telling you what to do.

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だとこんな感じです。

ins1.png

Trail Renderを追加しただけ

このまま実行してみます。

trails1.png

軌跡は表現できているのですが、色がピンク色?紫色?です。 インスペクターパネルのColorsを考えると白になりそうですよね。

Materialを追加してみる

通常、オブジェクトの色を変える時は、Materialを設定するらしいです。

参考 Unity GameObjectの色変更(C#) UnityでMaterialを追加して色を変更する方法【初心者向け】

ということで、インスペクターパネルのMaterialsのElementsにMaterialを追加してみます。

Assets -> Materials -> Create -> Materialで追加します。 プロジェクトパネルに追加されるので、色はよしなに設定するといいと思います。

trail3.png

色が変更できました。

Colorsを変更してみる

色の変更はできたのですが、単色のままです。 徐々にフェードしていくような設定にしているので、徐々に薄くはなっているように見えますが。

公式リファレンスによると、インスペクターパネルのColorlsで色を変化させる事ができるようです。

・トレイル色 5つの異なる色 / 不透明度の組み合わせを通じて、トレイルを循環できます。色を使うことで、明るい緑のプラズマトレイルを徐々に薄暗くし、最終的に鈍い灰色の消失にするか、虹のその他の色を循環させることができます。色を変更したくない場合は、各色の不透明度を変更し、トレイルを先頭や末尾でフェードインおよびフェードアウトさせると、非常に効率的です。

Colorsを設定してみます。 ここの色も、よしなに。

ins4.png

実行!

trail2.png

変わらない!

Materialのshaderを変更する

いろいろ調べてみると、MaterialのShaderがデフォルトのStandartだとダメみたいです。

参考 Unity and touch controls

先ほど作成したMaterialのShaderを変更します。 Materialを選択してインスペクターパネルの、Shader -> Sprites -> Defaultにします。

ins2.png

再度、実行します。

ins5.png

できました!

おわり

Trail Renderのインスペクターパネルで何とかできるものだと思っていて、MaterialのShaderを変更しなければいけないという事に気付かなかったので、もっと勉強します。

あと、今ほど、高校数学で数3Cまでやってた事に感謝したことはない......