Unity は、2D と 3D ゲーム作成の両方ともに適しています。Unity で新しいプロジェクトを作成するとき、2D/3D モードを選択をすることができます。このモードを選択するときにはすでに作りたいゲームが 2D か 3D かは決まっていると思いますが、どのモードを選択するかによって多少の違いがあります。
プロジェクト作成の開始時に 2D/3D モードを選択することによって、Unity エディターのさまざまな設定が決まります。例えば、画像をインポートするときに、Unityではテクスチャとして扱うべきかスプライトとして扱うべきか、という具合にです。プロジェクト作成時に決定したモードの設定にかかわらず、いつでもエディター上で簡単に 2D/3D モードを切り替えることができます (2D/3D モード設定 を参照)。ここでは、どのモードを選択すべきかの参考となるガイドラインを紹介します。
3D ゲームでは通常、まとまったゲーム環境、キャラクター、ゲームの世界を構成するオブジェクトを表現するために、オブジェクトの表面にマテリアルやテクスチャをレンダリングする 3次元のジオメトリを使用します。カメラは、現実的方法でライトと影が表現されているシーンの中を自由に移動することができます。3Dゲームは、常に透視投影(perspective)と呼ばれる投影法を使用してシーンを描画するので、オブジェクトはカメラに近くなるにつれスクリーン上でより大きく見えます。上記の説明で一致するゲームを作成したい場合は、3D モードで開始してください。
3D のジオメトリを用いるゲームでも、透視投影のカメラの代わりに平行投影のカメラを使う場合があります。これは、鳥かん (瞰) 透視投影(bird’s-eye view)のカメラをゲームで使用する際の一般的なテクニックで、“2.5D”と呼ばれることもあります。このようなゲームを製作する場合、 透視投影 ではないとはいえ、3D モデルや 3D に関するアセットで作業しなくてはいけないので、エディターを 3D モードで使用します。カメラ と シーンビュー は、 平行投影 に切り替える必要があります。
多くの 2D ゲームは、3次元ジオメトリを使用せずに、スプライトと呼ばれる平坦なグラフィックスを使用しています。スプライトは平坦な画像として画面に描画されており、ゲームのカメラには透視投影のモードがありません。この種のゲームを作成したい場合は、2D モードでエディターを起動する必要があります。
一部の 2D ゲームはゲーム環境とキャラクターに 3D ジオメトリを使用しますが、2 次元の ゲーム として制限されます。例えば、カメラは “横スクロールビュー” として、プレイヤーは2次元でのみ移動することができますが、ゲームは、まだ障害物の 3D モデルとカメラには 3D の透視投影を使用しています。これらのゲームに関して、3D 効果は機能的な目的というより、むしろスタイルを目的としている場合もあります。この種のゲームのこと もまた、“2.5D” と呼ばれることがあります。ゲームは 2D モードで設定しますが、3D モードでエディターを起動する必要があるので、ゲームを作成するときには、ほとんどが 3D モデルとなります。
これは人気のあるもう 1 つの 2D ゲームのスタイルで、2D グラフィックスを使用していますが、透視投影カメラで視差効果のあるスクロールを行うことができます。これは、“書割り” スタイルのシーンとして、すべてのグラフィックスが平坦ですが、カメラからの距離はオブジェクトによって異なります。この場合、Unityを使ったゲーム開発では 2D モードで開発するのが適しています。ですが、ゲームのカメラの投影モードは 透視投影 にして、シーンビューを 3D モードにすることをおすすめします。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.