今回はUnityのLineRendererを使って、メッシュを作成してみたいと思います。
LineRendererでは複数の点を指定するとその点を繋ぐメッシュを自動で生成してくれます。
メッシュを作成する、というと難しく感じますがLineRendererは点を指定すれば勝手に作成してくれるので難しい事はありません。
Unityでは、スクリプトから自分でメッシュを作成する事も出来ますが、それはまた別の記事でやりたいと思います。
LineRendererで2点を指定し使用すれば銃のレーザーポインターを作成する事も出来ます。
↑の記事ではUnity5.3.4f1のLineRendererを使って機能を作成していますが、今回はUnity5.6.1を使い新しい設定項目になったLineRendererを使っていきます。
LineRendererの設定項目
まずはLineRendererの設定項目を見ていきましょう。
ヒエラルキーに空のゲームオブジェクトを作成し、インスペクタのAdd ComponentからEffects→Line Rendererを選択し取り付けます。
CastShadowはラインレンダラーで作成したメッシュが影を落とすかどうかでOffでしない、Onで片側、Two Sidedで両側、Shadow Onlyで影だけ落とすになります。
↑のような感じになります。
LightMap ParameterはAssetsフォルダで右クリック→Create→LightMap Parameterで作成する事が出来ます。
↑のような3点を指定すると順番に点を繋いだメッシュが作成されます。
チェックを外すと取り付けたゲームオブジェクトからの相対位置になります。
Loopにチェックを入れると最初と最後の点を接続します。
↑では左下が最初の点、右上が最後の点としてPositionsに指定しています。
Loopにチェックを入れていると最後の点から最初の点へとメッシュが繋がります。
グラフの赤い線の上辺りで右クリックしAdd Keyを選択すると制御点を追加する事が出来ます。
↑のようにキーを追加し頂点の場所によってメッシュの幅を変更する事が出来ます。
キーの辺りで右クリックすると制御点の設定をする事が出来ます。
上の矢印が不透明度の変更点、下が色の変更点で、その点を選択すると下の方で色と不透明度を設定する事が出来ます。
新しい変更点を追加する時は近くの点をクリックすると追加出来ます。削除は点を選択した状態でDeleteキーです。
↑では上がCorner Verticesを0、下が10に設定したものです。
頂点数を増やしている為、緩やかなカーブを描いていますね。
↑では上がEnd Cap Verticesを0、下が10に設定したものです。
最初と最後の部分の頂点数が変わり丸みを帯びています。
上がView、下がLocalに設定したものです。
Localの方がメッシュを作成した面だけ表示しているので自然になってますね。
試しにLineRendererのマテリアルに
↑のようなテクスチャを設定したマテリアルを設定してみます。
↑のような違いが出ました。テクスチャの張られ方が上下逆になっていますが、点の繋げ方でのUVの設定でこうなっているのかもしれません。
ライトプローブに関しては
を参照してください。
リフレクションプローブに関しては
を参照してください。
これぞ秘儀丸投げ(゚Д゚=)ノ⌒゚
終わりに
LineRendererを使うと点を繋ぐメッシュを簡単に作成する事が出来ます。
最後に何かサンプルを作成しようと思ったんですが、昔書いたレーザーポインターの記事があるのでサンプルはそちらを参照してください・・・。
他にいいサンプルを思いつきませんでした。(‘_’)