【Unity5】ポリゴンのラインを描画する

ラインを描くためのコンポーネントは、Line Renderer や Trail Renderer が用意されている。

幅をもったポリゴンで出来た線を描くだけなら充分だけれども、この二つでは画像にあるように頂点ごとに色を変える事ができない。

まぁ、通常はエフェクトなどでテクスチャが使用することを想定しているのだろう。

今回はテクスチャではなく、頂点カラーで色付けを行いたかったのでスクリプトで自作してみた。

ベースとなるラインデータの両サイドに頂点を作成して線に幅を持たせている。

ポイントはラインの両サイドの頂点座標をどうやって求めるか。

カメラは移動するし、ラインは2D座標上でなく3D空間上に自由に引けるものとしたい。

俺がやったやり方はこうだ。

1.ベースラインの向きのベクトルを前後関係から求める。
2.カメラからラインオブジェクトの原点に向かうベクトルを求める。
3.1と2のベクトルの外積(Cross積)を求めて法線を求める。
4.ベースラインの頂点から法線上の前後の任意の幅に頂点を作成する。

こうすることで、カメラがどこにいても、ベースラインから一定の幅をもつラインを描いている。はず、わはは。

基本的な考え方は書籍『ゲームの作り方 Unityで覚える遊びのアルゴリズム』の第10章、なぞればハシレールの仕様に書かれてある。

この本には何度もお世話になってます。

4年前

コメントを残す

メールアドレスが公開されることはありません。