Version: 2023.1
言語: 日本語
Line Renderer コンポーネント
Billboard Renderer コンポーネント

Trail Renderer コンポーネント

Trail Renderer コンポーネントは、動いているゲームオブジェクトの後ろにポリゴンの軌跡を、経時的に描画します。これにより、動いているオブジェクトの動きを強調したり、動いているオブジェクトの軌跡や位置を強調したりすることができます。

Trail Renderer は、ラインレンダラー と同じアルゴリズムでトレイルレンダリングを行います。

はじめに

トレイルレンダラーを作成するには、以下を行います。

  1. Unity メニューバーで GameObject > Effects > Trail の順に選択します 。
  2. Trail Renderer ゲームオブジェクトを選択し、それをトレイルを生成したいゲームオブジェクトの親にします。
  3. Inspector ウィンドウを使用して、トレイルの色、 幅、その他の表示設定を行います。
  4. 編集モードでトレイルをプレビューするには、シーンビューでゲームオブジェクトを移動して効果を観察します。
Trail Renderer の設定例と、その結果の軌跡です。
Trail Renderer の設定例と、その結果の軌跡です。

トレイルレンダラーのマテリアル

デフォルトでは、トレイルレンダラーはビルトインのマテリアルである Default-Line を使用します。このマテリアルを変更せずに、トレイルのカラーグラデーションや幅など、トレイルの外観に多くの変更を加えることができます。

トレイルにテクスチャを適用するなどの他の効果の場合は、異なるマテリアルを使用する必要があります。新しいマテリアル用に独自のシェーダーを作成したくない場合は、Unity のビルトインの スタンダードパーティクルシェーダー がラインレンダラーでうまく機能します。テクスチャをトレイルレンダラーに適用する場合、テクスチャは正方形である必要があります (例えば、256x256 や 512x512)。

トレイルレンダラーに複数のマテリアルを適用する場合、トレイルは各マテリアルに対して 1 回描画されます。

詳細は マテリアルの作成と使用 を参照してください。

点の間の距離

Min Vertex Distance の値は、新しいセグメント (1 区分) がトレイルに加えられる前に、トレイルが適用されるゲームオブジェクトが移動しなければならない距離 (ワールド単位) を決定します。0.1 のような低い値にすると、より頻繁にトレイルセグメントが作成され、より滑らかなトレイルが作成されます。1.5 のような高い値にすると、セグメントがよりギザギザになります。さらに、頂点が互いに非常に接近していて、トレイルが短い距離で著しく向きを変える場合、幅の広いトレイルは視覚的なアーティファクトを示す場合があります。

パフォーマンス上の理由から、作成しようとしている効果を実現できる範囲の最大値を使用するのが最善です。

Trail Renderer Inspector の参照

このセクションには、以下のサブセクションがあります。

トレイルの設定

プロパティ 機能
Width 幅とカーブの値を決め、トレイルのさまざまな位置で幅を制御します。

カーブは各頂点でサンプリングされます。そのため、その正確さはトレイルに存在する頂点数によって制限されます。トレイル全体の幅は Width 値によって制御されます。
Time トレイルのポイントの生存期間を秒単位で定義します。
Min Vertex Distance トレイル内の点の最小間隔 (ワールド単位)。
Autodestruct これを有効にすると、Time 秒移動しなかった場合は、Trail Renderer コンポーネントをアタッチしているゲームオブジェクトを破棄します。
Emitting これを有効にすると、Unity はトレイルに新しい点を追加します。これを無効にすると、Unity はトレイルに新しいポイントを追加しません。これは、トレイル生成の一時停止と一時停止解除を行うために使用します。
Color グラデーションを定義して、トレイルのさまざまな位置で色をコントロールします。

Unity は各頂点でカラーグラデーションから色をサンプリングします。Unity は、各頂点間で色に線形補間を適用します。トレイルにより多く頂点を追加すると、より詳細なグラデーションがより精密に近似されます。
Corner Vertices トレイルに曲がり角を描画するとき、追加の頂点をいくつ使用するかを制御します。この値を増やすと、トレイルの曲がり角がより丸く表示されます。
End Cap Vertices トレイルにエンドキャップを描画するとき、追加の頂点をいくつ使用するかを制御します。この値を増やすと、トレイルのキャップがより丸く表示されます。
Alignment トレイルの向きを設定します。
表示 トレイルはカメラに正面を向けます。
TransformZ トレイルは Transform コンポーネントの Z 軸に正面を向けます。
Texture Mode テクスチャをトレイルに適用する方法を制御します。
Stretch トレイルの全長に沿ってテクスチャを 1 回マッピングします。
Tile ワールド単位の長さに基づいて、トレイルに沿ってテクスチャを繰り返します。タイリング率を設定するには、Material.SetTextureScale を使用します。
DistributePerSegment トレイルの全長に沿ってテクスチャを 1 回マッピングします。すべての頂点間隔は均等であると仮定します。
RepeatPerSegment トレイルに沿ってテクスチャを繰り返します。トレイルごとに 1 回の割合で繰り返します。タイリングレートを調整するには、Material.SetTextureScale を使用します。
Shadow Bias ライトを影から遠ざける量を設定して、影のアーティファクトを削除します。
Generate Lighting Data これを有効にすると、Unity は法線と接線を含むトレイルジオメトリを構築します。これにより、シーンのライティングを使用するマテリアルを使用できます。

Materials

Materials セクションには、このコンポーネントが使用するすべての マテリアル が列挙されています。

プロパティ 説明
Size マテリアルリストの要素数です。

要素数を減らすと、リストの末尾にある要素が削除されます。要素数を増やすと、リストの末尾に新しい要素が追加されます。新しい要素には、リストの末尾にある要素が使用しているマテリアルと同じマテリアルが使用されます。
Element リスト内のマテリアル。各要素にマテリアルアセットを割り当てることができます。

デフォルトでは、Unity はマテリアルの名前に基づいて、リストをアルファベット順に並べます。このリストは順序を変更することができ、順序を変更すると Unity は自動的に要素の番号を更新します。

Lighting

Lighting セクションには、ライティングに関連するプロパティを含まれています。

プロパティ 説明
Cast Shadows このレンダラーが、適切な Light に照らされるときに影を作るかどうか、また影を作る方法を指定します。

このプロパティは Renderer.shadowCastingMode API に対応します。
On このレンダラーは、影を投影するライトが当たるときに影を投影します。
Off このレンダラーは、影を作りません。
Two-sided このレンダラーは 2 面の影を作ります。つまり、平面や四角形のような片面オブジェクトは、光源がメッシュの背後にある場合でも、影を落とすことができます。

ベイクしたグローバルイルミネーション または Enlighten リアルタイムグローバルイルミネーション が両面シャドウをサポートするためには、マテリアルが Double Sided Global Illumination をサポートする必要があります。
Shadows Only このレンダラーは影を作りますが、レンダラー自体は可視ではありません。
Receive Shadows このレンダラーに投影された影を表示するかどうかを指定します。

このプロパティは、このシーンで Baked Global Illumination または Enlighten Realtime Global Illumination を有効にする場合にのみ、効果があります。

このプロパティは、Renderer.receiveShadows API に対応します。
Contribute Global Illumination ベイク時に行われるグローバルイルミネーションの計算に、このレンダラーを加えます。

このプロパティは、このシーンで Baked Global Illumination または Enlighten Realtime Global Illumination を有効にした場合にのみ、効果があります。

このプロパティを有効にすると、ゲームオブジェクトの Static エディターフラグ にある Contribute GI フラグが有効になります。これは、StaticEditorFlags.ContributeGI APIに対応します。
Receive Global Illumination Unity が、ベイクされたライトマップから、またはランタイムのライトプローブから、このレンダラーにグローバルイルミネーションデータを提供するかどうかを指定します。

このプロパティは、Contribute Global Illumination を有効にした場合にのみ編集可能です。このシーンに対して Baked Global Illumination または Enlighten Realtime Global Illumination を有効にした場合にのみ、効果があります。

このプロパティは、MeshRenderer.receiveGI API に対応します。
Lightmaps Unity は、ライトマップからこのレンダラーにグローバルイルミネーションデータを提供します。
Light Probes Unity はシーン内の Light Probes からこのレンダラーにグローバルなイルミネーションデータを提供します。
Prioritize Illumination このプロパティを有効にすると、Enlighten リアルタイムグローバルイルミネーションの計算にこのレンダラーが常に含まれるようになります。これにより、パフォーマンス上の理由から通常グローバルイルミネーションの計算から除外されるものであっても、レンダラーが遠くのエミッシブの影響を受けることが保証されます。

このプロパティは、Contribute GI がゲームオブジェクトの Static エディターフラグ で有効になっており、プロジェクトがビルトインレンダーパイプラインを使用し、Enlighten Realtime Global Illumination がシーンで有効になっている場合にのみ表示されま す。

Probes

Probes セクションには、ライトプローブリフレクションプローブ に関するプロパティが含まれています。

プロパティ 説明
Light Probes このレンダラーが ライトプローブ システムから、ライトを受ける方法を設定します。

このプロパティは、Renderer.lightProbeUsage APIに対応します。
Off レンダラーは補間されたライトプローブを使用しません。
Blend Probes レンダラーは補間されたライトプローブを 1 つ使用します。これはデフォルトです。
Use Proxy Volume レンダラーは、補間されたライトプローブの 3D グリッドを使用します。
Custom Provided レンダラーは Light Probe シェーダーの統一値を MaterialPropertyBlock から抽出します。
Proxy Volume Override Light Probe Proxy Volume コンポーネントを持つ別のゲームオブジェクトへの参照を設定します。

このプロパティは、Light ProbesUse Proxy Volume に設定される場合にのみ表示されます。
Reflection Probes レンダラーが リフレクションプローブ システムからどのようにリフレクションを受けるかを設定します。

このプロパティは Renderer.probeAnchor API に対応します。
Off リフレクションプローブを無効にします。Unity はリフレクションにスカイボックスを使用します。
Blend Probes Reflection Probes を有効にします。ブレンドはリフレクションプローブ間のみで発生します。これは、キャラクターが異なるライティング設定のエリア間を移動する可能性がある屋内環境で便利です。
Blend Probes and Skybox リフレクションプローブを有効にします。ブレンドは、リフレクションプローブ間、または、リフレクションプローブとデフォルトのリフレクションとの間で行われます。これは、屋外環境に便利です。
Simple リフレクションプローブを有効にしますが、2 つのボリュームが重なっている場合、リフレクションプローブ間のブレンドは行われません。
Anchor Override ライトプローブ または リフレクションプローブ システムを使用するときに、Unity が補間位置を決定するために使用する Transform を設定します。デフォルトでは、レンダラーのジオメトリのバウンディングボックスの中心です。

このプロパティは、Renderer.probeAnchor API に対応します。

Additional Settings

Additional Settings には付加的なプロパティが含まれています。

Property Description
Motion Vectors このレンダラーのピクセル単位の画面空間のモーションを、あるフレームから次のフレームまで追跡するために、モーションベクトルを使用するかどうかを設定します。この情報を使用して、モーションブラーなどのポストプロセスエフェクトを適用することができます。

ノート: すべてのプラットフォームでモーションベクターがサポートされているわけではありません。詳しくは、SystemInfo.supportsMotionVectors を参照してください。

このプロパティは、Renderer.motionVectorGenerationMode API に対応します。
Camera Motion Only モーションを追跡するためにカメラの動きのみを使用します。
Per Object Motion このレンダラーのモーションを追跡するために特定のパスを使用します。
Force No Motion モーションを追跡しません。
Dynamic Occlusion これを有効にすると、静的遮蔽物 (Static Occluder) によってカメラのビューから隠されると、Unity はこのレンダリング対象オブジェクトをカリングし (除き) ます。これが無効になっている場合、このレンダリング対象オブジェクトが静的遮蔽物によってカメラのビューから隠されている場合、Unity はこのオブジェクトをカリングしません。

動的オクルージョンはデフォルトで有効になっています。壁の後ろにキャラクターの輪郭を描くなどの効果を出すには無効にします。
Sorting Layer このレンダラーの ソートレイヤー の名前。
Order in Layer このレンダラーの ソートレイヤー 内での順序。

TrailRenderer

Line Renderer コンポーネント
Billboard Renderer コンポーネント