1. HOME
  2. ブログ
  3. エンジニアになろう!
  4. 【Unity】スクリプトからメッシュを作ってみる!
【Unity】スクリプトからメッシュを作ってみる

【Unity】スクリプトからメッシュを作ってみる!

メッシュをスクリプトから生成してみよう!

3D ゲームの核となる要素「メッシュ」。

Unity でゲームを作るなら、これを理解しなければ始まりません。

そこで、今回は、シンプルなメッシュをスクリプトから作ってみたいと思います!

Unity Engine の Mesh クラスを使えば、メッシュの生成から応用まで簡単にできますよ。

こちらの記事もオススメ!


メッシュの基礎知識

メッシュとは

一般的に「メッシュ」とは、三角形のポリゴンの集合体(=オブジェクト)をいいます。

このメッシュには、以下のような情報が含まれています。

  1. Vertex(頂点の位置)
  2. Normal(法線。各頂点に対する面の向き)
  3. Tangent(接線。各頂点に対する Normal と直交する)
  4. UV1~UV4(テクスチャ座標。1つの頂点につき最大4個まで)
  5. Color(頂点の色)
  6. Index(頂点のインデックス。ポリゴンを定義するのに使う)

Mesh クラス

Unity において、上記のようなメッシュ情報を管理するのが Mesh クラスです。

ここでは、メッシュを生成する上で最低限の変数と関数のみご紹介します。

vertices

メッシュに含まれる頂点の位置情報を収納した配列です。

中身は Vector3 の配列になっていて、Mesh.SetVertices() で新しい頂点の配列を割り当てます。

引数には、新しい頂点の位置を収納した配列を渡します。

triangles

メッシュに含まれる全ての三角形の配列です。

中身は整数で、頂点配列のインデックスになっています。

triangles

Mesh.SetTriangles() で新しい三角形の配列を割り当て、引数には新しい三角形の配列を渡します。

メッシュを生成する

それではさっそく、メッシュ生成に取り掛かりましょう!

オブジェクトを作成

まずは、Hierarchy 内に Empty Object を作成してください。

そして、作成したメッシュを可視化する「MeshFilter コンポーネント」と「MeshRender コンポーネント」を追加します。

オブジェクトを作成

スクリプトの作成

今回は、Quad を作成します。

Quad は「4つの頂点を持ち、2つの三角形から構成されている」のがポイントです。

頂点の配列

まず、頂点の配列を作ってメッシュに割り当てていきますが、その際、以下の順番で割り当てます。

頂点の配列

三角形の配列

Quad を構成する2つの三角形は、それぞれ3つの頂点で定義されています。

頂点配列のインデックスで指定しますが、時計回りに並べることを忘れないでください。

メッシュをアタッチする

あとは、メッシュを MeshFilter の mesh に割り当て、最初に作成したゲームオブジェクトにアタッチするだけです。

以下が、スクリプト全体のサンプルコードです。

問題なく作成できていれば、以下のように Quad が表示されるはずです。

問題なく作成できていれば、以下のように Quad が表示される

ここでは、テクスチャー等を使用していないためピンクのままですが 、MeshRender 内の Material を変更すれば好みの色に変更できます。

メッシュを変形させてみよう

最後に、応用編として、メッシュを少しだけ変形させてみましょう。

スペースキーを押している間、メッシュが変形するようにします。

以下のコードを、上記スクリプトに付け加えてみてください。

再生中にスペースを押すと、Quad が変形するはずです!

さいごに

今回は、スクリプトからメッシュを作ってみました

今回はごくごくシンプルな仕様なので最低限のことしかしていませんが、冒頭で紹介したようなメッシュの要素をいじっていくと、さらに自由度や正確性が上がりますよ。

メッシュは奥深いので、ぜひ一度挑戦してみてくださいね!

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
WEBシステム・アプリ開発依頼、お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!


書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア