うにty生活

UnityChanを生活させたい

【Unity】Trail Rendererで軌跡を描く #29

 

f:id:tubakihimeLoveHate:20191227235317p:plain

今回はTrail Rendererを使って軌跡を描いていこうと思います

 

◆Trail Renderer

オブジェクトが移動した軌跡を簡単に描画してくれます

銃弾や振った剣の軌跡やリボンなど、結構いろんな場面で利用できるので便利

 

 

◆使用方法

f:id:tubakihimeLoveHate:20191215173922p:plain

まずは簡単に動かしてみましょう

 

用意することは2つ

・新しオブジェクトを作成

 軌跡を描画したいオブジェクトに、新たに空のオブジェクトを追加して、

 Trail Rendererコンポーネントを追加します

 

f:id:tubakihimeLoveHate:20191222192828p:plain

 

今回はUnityちゃんの手からTrailを出していきたいので、手のオブジェクトから新たにGameObjectを作成して、Trail Rendererコンポーネントを追加します

f:id:tubakihimeLoveHate:20191222193111p:plain

 

・パーティクルマテリアルを作成

 どんなMaterialでもいいのですが、公式ではパーティクルマテリアルを推奨されているので作成していきます

プロジェクトビュー | Create | Material | Standard Shaderして

「Particle / Standart Util」に変更します。色は変化がわかりやすい白で

f:id:tubakihimeLoveHate:20191222193712p:plain

これをTrail RendererのMaterialにアタッチ

 

再生すればもう軌跡が描画されます

f:id:tubakihimeLoveHate:20191222194910g:plain

 

 

これからリファレンスと動作を見ながら機能をさらっていきます

Trail Renderer - Unity マニュアル

 

◆Width

Widthはそのままですね

※グラフはカーブさせることができるはずなのですが、私の環境(Unity2019.2)では

AddKeyすることができませんでした

 

◆Time

軌跡の継続時間

 

◆Min Vertex Distance 

曲がるまでの距離です

この値になるまで直線で描画し続けるので、カクカクした表現が可能

逆に滑らかに動かしたいときは0.1に設定する必要があります

f:id:tubakihimeLoveHate:20191222200139g:plain

f:id:tubakihimeLoveHate:20191222200152g:plain

 上0.1、下2でやってます(gifがやかましいですね)

◆AutoDestruct

全てのTrail描画が終了した時に「Trail Rendererコンポーネントを追加したオブジェクト」が消えるかどうかです

 なんとコンポーネントだけがOFFになるのではなく、オブジェクトそのものが消えるので注意

f:id:tubakihimeLoveHate:20191222200831g:plain

 

◆Emitting

 これが実はTrail Rendererのリファレンスページに説明のない項目です(スクリプトリファレンスに有る)

When set to true, trail geometry will be created while the GameObject moves.

 これによると、移動しているときにTrailを描画するかどうかと書かれています

つまり描画機能だけをOFFにしたい場合はAutoDestructではなくEmittingを使えと

ただそれだけでした。

◆Color

これは機能自体というよりかは、Gradientエディタの扱い方の方が難しかったです

f:id:tubakihimeLoveHate:20191222203328p:plain

 

以下はグラデーションカラーの増やし方と消し方です

f:id:tubakihimeLoveHate:20191222230114g:plain

色を増やすときは選択した時の青い枠線を持って動かします

消すときは上にドラッグ!最初全然わからんかったぞ!

 

◆Corner Vertices

角の丸さ(0~90)

Trailに角ができた場合の丸さで、90にすると丸みが出てきます

f:id:tubakihimeLoveHate:20191222202103p:plain

f:id:tubakihimeLoveHate:20191222202113p:plain

 

 ◆End Cap Vertices

Trailの両端(始端と終端)の丸み(0~90)

Corner Verticesと同じで0が四角、90が丸です

f:id:tubakihimeLoveHate:20191223001128p:plain

f:id:tubakihimeLoveHate:20191223001136p:plain

※この二つの項目は0~90で変更できるようになっていますが、0か90のどちらか出ないと変化は見られません

 

◆Alignment

以前に紹介したLine Rendererもそうですが、処理を軽くするために見えない部分

つまり半分は描画しません

この項目は見せる方向を選ぶ設定です

・View  

 Viewの場合は常にカメラに向いて描画します

 

・Transform Z

Transform Zだと、正のZ軸に向いて描画するので見方によっては側面の薄い部分だけ見えてしまうこともあります

f:id:tubakihimeLoveHate:20191223014921p:plain

このように上からだとペラペラに見えてしまいます
 

◆Texture Mode

Textureの描画方法を変更できる(伸縮、パターンなど)

 

◆Shadow Bias

リファレンス曰く、シャドウアーティファクトを取り除く....そうです

グラフィックの方面で調べてみると、シャドウアクネを取り除くためにバイアスを

いじることがあるそうです。

自分はここを深掘りしていくのはまだ早そう

◆Material 

公式ではパーティクルシェーダーを持ったマテリアルを推奨しているみたい

 

◆CastShadow

・On/OFF 

 Trailに影が落ちるか落ちないか

 

・TwoSided

 カリングをOFFにしますつまり、両面の影が落ちるということです

 ちょっとTrailでは再現しにくいのでPlaneでも同じ設定があるので解説していきます

f:id:tubakihimeLoveHate:20191223015723p:plain

Cast Shadow:On・正面からライト

デフォルトのPlaneは背面が描画されていません。処理を単純にするためにデフォルトではオブジェクトのメッシュ背面(法線ではない方)は描画されないようになるか真っ黒になります

 

描画されないと、影が落ちなくなるのです

f:id:tubakihimeLoveHate:20191223015903p:plain

CastShadow:ON・背面からライト

 

しかし、Two sidedはこのように片面描画のまま両面の影を落とします

f:id:tubakihimeLoveHate:20191223020204p:plain

CastShadow:Two sided・背面からライト

検証したらまじでスッキリした

けど結局Trail Rendererではあんまりわかりません笑

 

・Only Shadow:影のみ落として、本体は見えなくなります

・Receve Shadow:変えられません

 

◆Motion Vectors

Post Proccessingのブラーなど、オブジェクトのピクセル移動によって

効果を発動するものの対象が選択できる

今回はPost Proccessingのblurエフェクトをかけて検証

・PerObjectMotion

 Trailが対象となり、Trailが動くとTrail自身にblurがかかる

 

f:id:tubakihimeLoveHate:20191225224837g:plain

 

・Camera Motion Only:カメラ移動が対象、カメラが動くとblurが発動

f:id:tubakihimeLoveHate:20191225224900g:plain

 

・Force No Motion:Trailが効果対象から外される、他の部分はblur発動

 Camera Motion Onlyと何が違うのかわからない

 

余談ですが、このblurエフェクトめっっちゃ好きだわ

というわけで、重要な部分は紹介できたかなと思いますので、指先からほんのりTrail出るようにしました!

 

 

◆透明にするには

アタッチしているmaterialのShaderをParticles/Shader Surfaceに変更、

それとRendering Modeを「Transparent」に変更します

f:id:tubakihimeLoveHate:20191228213608p:plain

あとはColorのalph値を下げるだけ!

 

f:id:tubakihimeLoveHate:20191227235317p:plain

 

というところで今回はここまで!