Version: 2023.2
言語: 日本語
ライン、トレイル、ビルボード
Trail Renderer コンポーネント

Line Renderer コンポーネント

Line Renderer (ラインレンダラー) コンポーネントは、3D 空間の 2 つ以上の点の配列をとり、それぞれの間に直線を描きます。1 つのラインレンダラーを使用して、単純な直線から複雑な螺旋まで、どんなものでも描画することができます。

線 (ライン) は必ず連続した状態になっています。2 本以上の完全に個別の線を描画したい場合、複数のゲームオブジェクトを使用し、それぞれにラインレンダラーを設定する必要があります。

ラインレンダラーはピクセル単位の幅の線を描画しません。ワールド単位の幅を持つポリゴンを描画します。ラインレンダラーは、 Trail Renderer (トレイルレンダラー) と同じアルゴリズムをラインレンダリングに使用します。

はじめに

ラインレンダラーを作成するには、次の手順に従います。

  1. Unity メニューバーで GameObject > Effects > Line の順に移動します。
  2. Line Renderer ゲームオブジェクトを選択します。
  3. ラインレンダラーの Positions 配列にポイントを追加するには、Inspector ウィンドウで配列の値を直接設定するか、シーン編集モード の Create Points を使用します。
  4. Inspector ウィンドウを使用して、線の色、 幅、その他の表示設定を行います。
ラインレンダラーの設定例
ラインレンダラーの設定例

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

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

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

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

ラインレンダラーのシーン編集モード

ラインレンダラーのインスペクターを使用してシーン編集モードを変更できます。さまざまなシーン編集モードでは、シーンビューとインスペクターを使用してさまざまな方法でラインレンダラーを編集できます。

シーン編集モードには、NoneEdit PointsCreate Points の 3 つがあります。

Scene Editing Mode (シーン編集モード) の設定

ラインレンダラーの Edit Points ボタンと Create Points ボタン
ラインレンダラーの Edit Points ボタンと Create Points ボタン

インスペクターの上部にある Edit Points ボタンと Create Points ボタンを使用して、現在のシーン編集モードを設定します。

Edit Points ボタンをクリックして、Scene Editing Mode を Edit Points に設定します 。もう一度クリックすると、Scene Editing Mode は None に設定されます。

Create Points ボタンをクリックして、Scene Editing Mode を Create Points に設定します 。もう一度クリックすると、Scene Editing Mode は None に設定されます。

Scene Editing Mode: None

Line Renderer Simplify コントロール
Line Renderer Simplify コントロール

シーン編集モードが選択されていない場合は、Positions 配列から不要なポイントを削除する簡略化操作を設定して実行できます。

以下のコントロールがインスペクターに表示されます。

コントロール 説明 
Simplify Preview Simplify Preview を有効にすると、簡略化操作の結果のプレビューを表示できます。
Tolerance 簡略化された線が元の線から逸脱できる度合いを設定します。

値が 0 の場合、偏差は発生しないため、単純化はほとんど、またはまったく行われません。正の値が大きいほど、元の線からの偏差が大きくなり、より簡略化されます。

デフォルト値は 1 です。
Simplify Simplify をクリックして、ラインレンダラーの Positions 配列の要素の数を減らします。

簡略化操作では、Ramer-Douglas-Peucker アルゴリズム を使用して、Tolerance 値に基づいて点の数を減らします。

Scene Editing Mode: Edit Points

Edit Points シーン編集モードのラインレンダラー
Edit Points シーン編集モードのラインレンダラー

Scene Editing Mode が Edit Points に設定されている場合、Unity は Line Renderer の Positions 配列の各点をシーンビューで黄色のスフィアとして表します。移動ツールを使用して、個々の点を移動できます。

以下のコントロールがインスペクターに表示されます。

コントロール 説明 
Show Wireframe 有効にすると、シーンビューでワイヤーフレームを描画し、線を可視化します。
Subdivide Selected このボタンは、隣接する複数の点を選択すると有効になります。このボタンを押すと、選択した隣接する点の間に新しい点が挿入されます。

Scene Editing Mode: Create Points

Create Points シーン編集モードのラインレンダラー
Create Points シーン編集モードのラインレンダラー

シーン編集モードが Create Points に設定されている場合は、シーンビューの内側をクリックすると、ラインレンダラーの Positions 配列の最後に新しいポイントを追加できます。

以下のコントロールがインスペクターに表示されます。

コントロール 説明 
Input 点の作成に使用する入力方法を設定します。
Mouse position シーンビューのマウスの位置に基づいて点を作成します。
Physics Raycast シーンへの レイキャスト に基づいてポイントを作成します。Unity はレイキャストが当たる位置に点を作成します。
Layer Mask レイキャストを実行するときに使用するレイヤーマスク。このプロパティは、InputPhysics Raycast に設定されている場合にのみ表示されます。
Min Vertex Distance シーンビューでマウスをドラッグして点を作成するときに、最後のポイントからこの距離を超えると、ラインレンダラーが新しい点を作成します。
Offset 作成された点に適用されるオフセット。InputMouse Position に設定されている場合、ラインレンダラーはシーンカメラからのオフセットを適用します。Input が Physics Raycast に設定されている場合、Line Renderer はレイキャスト法線からのオフセットを適用します。

Line Renderer Inspector のリファレンス

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

ライン設定

プロパティ 機能
Loop これを有効にすると、最初と最後の線の位置を接続し、閉じたループを作成します。
Positions 接続する Vector3 の点の配列を設定します。
Width 幅とカーブの値を決め、線のさまざまな位置で線の幅を制御します。

カーブは各頂点でサンプリングされます。そのため、その正確さは線に存在する頂点数によって制限されます。線全体の幅は Width 値によって制御されます。
Color グラデーションを定義して、線のさまざまな位置で色をコントロールします。

Unity は各頂点でカラーグラデーションから色をサンプリングします。Unity は、各頂点間で色に線形補間を適用します。線により多く頂点を追加すると、より詳細なグラデーションがより近似されます。
Corner Vertices 線に曲がり角を描画するとき、追加の頂点をいくつ使用するかを制御します。この値を増やすと、線の曲がり角がより丸く表示されます。
End Cap Vertices 線にエンドキャップを描画するとき、追加の頂点をいくつ使用するかを制御します。この値を増やすと、線のキャップがより丸く表示されます。
Alignment 線の向きを設定します。
View 線はカメラに正面を向けます。
TransformZ 線は Transform コンポーネントの Z 軸に正面を向けます。
Texture Mode テクスチャを線に適用する方法を制御します。
Stretch 線の全長に沿ってテクスチャを 1 回マッピングします。
Tile ワールド単位の長さに基づいて、線に沿ってテクスチャを繰り返します。タイリング率を設定するには、Material.SetTextureScale を使用します。
DistributePerSegment 線の全長に沿ってテクスチャを 1 回マッピングします。すべての頂点間隔は均等であると仮定します。
RepeatPerSegment 線に沿ってテクスチャを繰り返します。線のセグメント (1 区分) ごとに 1 回の割合で繰り返します。タイリングレートを調整するには、Material.SetTextureScale を使用します。
Shadow Bias Set the amount to move shadows away from the Light to remove shadowing artifacts caused by approximating a volume with billboarded geometry.
Generate Lighting Data これを有効にすると、Unity は法線と接線を含むラインジオメトリを構築します。これにより、シーンライティングを使用するマテリアルを使用できます。
Use World Space これを有効にすると、点はワールド空間座標で考えられます。無効にすると、このコンポーネントがアタッチされているゲームオブジェクトの Transform に対してローカルになります。

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 このレンダラーの ソートレイヤー 内での順序。

LineRenderer

ライン、トレイル、ビルボード
Trail Renderer コンポーネント