渋谷ほととぎす通信

エンジニア社長によるUnityとAIのブログ & エンジニアの生存戦略

Unityで3Dプログラミングを学ぶロードマップ

Unityで3Dプログラミングを学ぶロードマップ

こんにちは、エンジニアのオオバです。

Unityは3Dプログラミングを始めるためにとても良いツールです。初心者でも少しプログラミングをかじったことさえあれば 3Dプログラミングを始められます。

なぜなら、本来3Dプログラミングはやらなければならない大量の手続きをUnity側が裏で処理してくれるからです。 「大量の手続きも含めてやるべき」という人もいるでしょう。

しかし、普通の人は挫折するくらい大量の手続きが存在します。しかもその手続は3Dプログラミングの本質とはちがう単純作業が多いのです。

Unityは簡単なコード(簡単と言ってもかなりのソースコードを書きます)で画面に表示できます。3Dプログラミングの導入としてはこれで良いのではないかと思っています。更に深く学びたい人がOpenGLやDirectX、WebGLといった技術を触っていくと良いでしょう。

話を戻すと、この記事のタイトル 「Unityで3Dプログラミングを学ぶロードマップ」 はその名のとおり、初心者向けの3Dプログラミングを学ぶロードマップです。

1つずつ学ぶことで3Dプログラミングを理解できるようになります。 教材は随時更新していますので、ぜひウォッチしていただければありがたいです。

👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

ステップ1.三角形メッシュ1つ作る

3Dプログラミングの基礎は三角形メッシュを作ることです。三角形メッシュを作る事ができればその他の形は応用です。ぜひこちらの記事で基礎を身に着けてみましょう。

ステップ2.三角形メッシュにシェーダーで色を塗る

三角形メッシュを作れるようになったら、シェーダーを使って色を塗ります。シェーダーとは 「3Dオブジェクトをディスプレイに映し出すためのプログラム」 です。こちらの記事では超シンプルなUnityのシェーダーを書いてみます。

3Dプログラミングにとってシェーダーは必須のスキル。最初は難しいかもしれませんが、この記事で紹介している簡単なシェーダーから入ると理解しやすいと思います。

また、シェーダーとは何かを分かりやすく解説したこちら記事もおすすめです。あわせて読むことをおすすめします。

ステップ3.頂点カラーを使って三角形メッシュに色を塗る

3Dプログラミングで忘れてはいけないのは頂点。 頂点はただ単に座標ではありません。 頂点にはさざまなデータを格納できることを知っていますか?

次の記事では頂点に色情報を書き込みます。その情報を使ってシェーダーで三角形を描画しています。頂点は3Dプログラミングを学ぶ上で避けては通れないため、ぜひ頂点の基礎を学んでみてください。

ステップ4.三角形メッシュにテクスチャを貼り付ける

3Dプログラミングの花形だと勝手に思っているテクスチャです。テクスチャ(画像)を三角形に貼り付けてみます。ここで初登場するのは「UV座標」です。UV座標とはテクスチャの座標です。

三角形にどのように貼り付けるかを決めるのはUV座標。このUV座標は頂点に書き込みます。イメージしづらいかもしれませんが、次の記事では分かりやすくUV座標を解説していますので、ぜひ読んでみて下さい。

ステップ5.球メッシュ、カプセルメッシュを作る

三角形以外の図形も作ってみます。球とカプセルです。いきなりハードルが上がったように感じるかもしれませんが、そうでもないです。 順序立てて考えることでクリアできます。

大事なことは頂点座標とインデックス配列を地道に計算することです。ぜひ挑戦してみてください。

カプセルメッシュは球メッシュの応用なので、まずは球メッシュの作り方をマスターしてみてください。

ステップ6.マウスを追いかけるペイントアプリを作ってみる

メッシュをプログラミングで作れるようになったら、応用したアプリを作ってみます。おすすめはマウスを使ったペイントアプリです。マウスをディスプレイ上で動かすことでメッシュが作られて絵になります。

難しそうに感じますが、基本的な考え方はは三角形の応用です。ぜひ挑戦してみてください。

教材は随時更新していますので、これからも3Dプログラミング頑張っていきましょう!

Unityオブジェクトの描画順の制御って難しいですよね。
この度、Unityの描画順を体系的に学べる「Unity描画順の教科書」を執筆しました。

Unityの描画順を基礎から学びたい方はぜひ確認してみてください!
Unity描画順の教科書

最後まで読んでいただきありがとうございました!
すばらしい3Dプログラミングライフをお過ごしください。

オススメ記事
検証環境
  • Unity2020.3.31f1