Unity の Line Renderer
を使用して、線を引く方法について紹介します。
Line Renderer とは
Line Renderer
コンポーネントは、3D空間の2つ以上の点 (Vector3) の配列を保持して、各点の間に直線を描きます。1つの Line Renderer を使用して、シンプルな直線から複雑な螺旋まで、どんなものでも描画することができます。線 (Line) は、必ず連続した状態になっています。1つの Line Renderer
で描画できるのは一本の線なので、2本以上の線を描画したい場合は、複数のゲームオブジェクトを用意して、それぞれに Line Renderer
を適用する必要があります。
Line Renderer の使い方
Unity メニューバーで GameObject > Effects > Line
を選択します。
ヒエラルキービューに、Line (GameObject) が追加されます。ゲームオブジェクトには、Line Renderer
コンポーネントがアタッチされています。
Line Renderer
コンポーネントを追加することで、簡単に線を追加することができます。
Line Renderer のプロパティについて
Line Renderer
コンポーネントの Inspector を見ていきたいと思います。
プロパティ名 | 説明 |
---|---|
Simplify Preview | Simplify Preview を有効にすると、Simplify を実行した際の線のプレビューを表示することができます。 |
Tolerance | Simplify を実行する際に、元の線から逸脱できる度合いを設定します。値が 0 に設定されている場合、偏差は発生しないため、単純化 (Simplify) はほとんど、または全く行われません。正の値が大きいほど、元の線からの偏差が大きくなり、より簡略化されます。 |
Loop | Loop を有効にすると、最初と最後の点を繋ぎ、閉じたループを作成します。 |
Positions | 線の元となる点 (Vector3) の配列を設定します。 |
Size | Positions の配列の大きさ、点の数 |
Width | 線の幅とカーブの値によって、線の様々な位置での線の幅を制御します。カーブは各頂点でサンプリングされるので、正確に再現されるかどうかは頂点数に左右されます。 |
Simplify でラインを簡略化する
Simplify の挙動を確認してみたいと思います。以下の図は、フリーハンドで書いた線です。
Simplify Preview
が有効になっていないので、プレビューの線は表示されていません。Inspector から Simplify Preview
のチェックボックスにチェックを入れてみます。
黄色いプレビューの線が表示されました。ただ、Tolerance が 0 のため、フリーハンドで書いた線のままです。
ここで、Tolerance を 0.3 に設定してみます。さきほどのプレビューと比べて、随分と簡略されました。このプレビューを実際の線に反映して、Positions
の配列を更新するには、Tolerance の横にある Simplify
ボタンを押します。
実際に Simplify
を実行すると、Positions 配列の数が減り、フリーハンドで書いた線が簡略化されました。
ラインの幅を変更する
ラインの幅の変更は Width
プロパティのカーブを使って行うことができます。初期設定では、0.100
に設定されています。
カーブを使って、ライン全体の幅を少しずつ太くしてみると、以下のような線の形に変わりました。
ラインのカラーにグラデーションを設定する
ラインの色は、Color プロパティから Gradient Editor
を開き、設定することができます。例えば、始点を黒、終点を白とするグラデーションを設定した場合は、このような表示になります。
上記設定を適用した後のラインは、以下のような色合いになります。
ラインの始点と終点に丸みをつける
ラインの始点と終点に丸みをつけるには、End Cap Vertices
を設定します。End Cap Vertices
は、線にエンドキャップを描画する際の、追加の頂点をいくつ使用するかを制御します。この値を増やすと、線のキャップがより丸く表示されます。
End Cap Vertices が 0 の場合
End Cap Vertices が 5 の場合
End Cap Vertices が 20 の場合
以上、簡略化、線の幅、色の変更を試してみました!
Refs