UnityのLineRendererを使って点を繋いだメッシュを作成してみる

今回はUnityのLineRendererを使って、メッシュを作成してみたいと思います。

LineRendererでは複数の点を指定するとその点を繋ぐメッシュを自動で生成してくれます。

メッシュを作成する、というと難しく感じますがLineRendererは点を指定すれば勝手に作成してくれるので難しい事はありません。

Unityでは、スクリプトから自分でメッシュを作成する事も出来ますが、それはまた別の記事でやりたいと思います。

LineRendererで2点を指定し使用すれば銃のレーザーポインターを作成する事も出来ます。

Unityでバイオハザード風のガンシューティングの機能を作成していきます。今回は銃を構えそこからレーザーポインタを表示するようにし敵に当たっている時に攻撃ボタンを押すと敵にダメージを与えます。

↑の記事ではUnity5.3.4f1のLineRendererを使って機能を作成していますが、今回はUnity5.6.1を使い新しい設定項目になったLineRendererを使っていきます。

スポンサーリンク

LineRendererの設定項目

まずはLineRendererの設定項目を見ていきましょう。

ヒエラルキーに空のゲームオブジェクトを作成し、インスペクタのAdd ComponentからEffects→Line Rendererを選択し取り付けます。

LineRendererのインスペクタ

CastShadowはラインレンダラーで作成したメッシュが影を落とすかどうかでOffでしない、Onで片側、Two Sidedで両側、Shadow Onlyで影だけ落とすになります。

CastShadowでの変化

↑のような感じになります。

  • ReceiveShadowにチェックを入れるとメッシュ上に影が投影されます。
  • Motion Vectorsはモーションベクタータイプを指定し、Camera Motion Onlyはカメラの動きだけ、Per Object Motionはオブジェクト毎の動き、Force No Motionはモーションをレンダリングしません。うーん・・・よくわかりません。モーションブラ-等のエフェクトをしたい時に使うみたいですが・・・。
  • Materialsはメッシュに使うマテリアルを指定する事が出来ます。
  • LightMap ParameterはLightMap Parameterを設定する事が出来ます。LightMap Parameterはグローバルイルミネーションを制御するパラメータで、
    LightMap ParameterはAssetsフォルダで右クリック→Create→LightMap Parameterで作成する事が出来ます。
  • Positionsはラインを繋ぐ点を順番に指定します。
  • 3点を指定した場合のメッシュ

    ↑のような3点を指定すると順番に点を繋いだメッシュが作成されます。

  • Use World Spaceにチェックを入れるとLineRendererを取り付けたゲームオブジェクトの位置に関わらずPositionsで指定した位置でラインを繋ぎます。
    チェックを外すと取り付けたゲームオブジェクトからの相対位置になります。
  • Loopにチェックを入れると最初と最後の点を接続します。

    LineRendererのLoopチェック確認

    ↑では左下が最初の点、右上が最後の点としてPositionsに指定しています。

    Loopにチェックを入れていると最後の点から最初の点へとメッシュが繋がります。

  • Widthは点と点を結ぶ線の幅を指定します。グラフにキーを追加し頂点の移動でメッシュの幅を変更する事が出来ます。
  • LineRendererのWidthのグラフにキーを追加

    グラフの赤い線の上辺りで右クリックしAdd Keyを選択すると制御点を追加する事が出来ます。

    LineRendererのWidthのグラフを調整した画像

    ↑のようにキーを追加し頂点の場所によってメッシュの幅を変更する事が出来ます。

    キーの辺りで右クリックすると制御点の設定をする事が出来ます。

    制御点の設定項目

  • Colorでは頂点の位置に応じて色や不透明度を変化させる事が出来ます。Color部分をクリックすると設定ウインドウが表示されます。
  • LineRendererのColor設定

    上の矢印が不透明度の変更点、下が色の変更点で、その点を選択すると下の方で色と不透明度を設定する事が出来ます。

    新しい変更点を追加する時は近くの点をクリックすると追加出来ます。削除は点を選択した状態でDeleteキーです。

  • Corner Verticesは点と点の間にいくつの頂点を設定するかです。Corner Verticesの値を大きくすれば頂点数が増える為、緩やかなカーブを描く事が出来ます。
  • LineRendererのCornerVerticesの設定項目

    ↑では上がCorner Verticesを0、下が10に設定したものです。

    頂点数を増やしている為、緩やかなカーブを描いていますね。

  • End Cap Verticesは最初と最後の点の線の頂点数です。
  • LineRendererのEndCapVertices項目

    ↑では上がEnd Cap Verticesを0、下が10に設定したものです。

    最初と最後の部分の頂点数が変わり丸みを帯びています。

  • AlignmentをViewにすると線がカメラの方を向くようになり、Localだとコンポーネントの向きに応じて整列します。
  • LineRendererのAlignmentをView

    LineRendererのAlignmentをLocal

    上がView、下がLocalに設定したものです。

    Localの方がメッシュを作成した面だけ表示しているので自然になってますね。

  • Texture Modeはテクスチャの貼り付け方の設定です。stretchはメッシュの長さに応じて引き延ばし、Tileはテクスチャを繰り返し貼り付け、Distribute Per Segmentはメッシュの四角形毎にテクスチャを引き延ばし貼り付け、Repeat Per Segmentはメッシュの四角形毎に繰り返し貼り付けになります。
  • 試しにLineRendererのマテリアルに

    LineRendererに設定するマテリアル

    ↑のようなテクスチャを設定したマテリアルを設定してみます。

    LineRendererのTextureModeの設定項目を変更

    ↑のような違いが出ました。テクスチャの張られ方が上下逆になっていますが、点の繋げ方でのUVの設定でこうなっているのかもしれません。

  • Light Probesはライトプローブを使用するかどうか
  • ライトプローブに関しては

    Unityマニュアルーライトプローブー

    を参照してください。

  • Reflection Probesはリフレクションプローブを使用するかどうか
  • リフレクションプローブに関しては

    Unityマニュアルーリフレクションプローブー

    を参照してください。

    これぞ秘儀丸投げ(゚Д゚=)ノ⌒゚

    終わりに

    LineRendererを使うと点を繋ぐメッシュを簡単に作成する事が出来ます。

    最後に何かサンプルを作成しようと思ったんですが、昔書いたレーザーポインターの記事があるのでサンプルはそちらを参照してください・・・。

    他にいいサンプルを思いつきませんでした。(‘_’)

    参考サイト

    UnityマニュアルーLineRendererー

    スポンサーリンク

    記事をシェアして頂ける方はこちら

    フォローして頂くとやる気が出ます