3D ゲームを作成するには、Unity プロジェクトを設定 し、以下の順序で関連する概念を学んでください。
ゲームオブジェクト は、Unity の基本的なオブジェクトで、キャラクター、小道具、風景などを表現します。ゲーム内のすべてのオブジェクトはゲームオブジェクトです。
ゲームオブジェクトは、シーン と呼ばれる 3D 環境の中に存在します。シーンはゲームのレベルと考えることができますが、メニューやゲーム終了時のクレジット、まったく別のものを表すこともあります。
ゲームオブジェクトの動作は、コンポーネントと呼ばれる機能ブロックによって定義されています。ゲームオブジェクトに複数のコンポーネントをアタッチすることができます。以下のコンポーネントは、3D ゲームでは基本です。
Unity では、スクリプト を使用して、独自のコンポーネントを作成できます。スクリプトを使用すると、ゲームイベントを発生させたり、時間の経過とともにコンポーネントのプロパティを変更したり、ユーザー入力に応答したりすることができます。 Unity は、C# プログラミング言語をネイティブでサポートしています。 ここでは、ゲームでのスクリプトの使い方の例をいくつか紹介します。
Unity でのスクリプトの使い方の詳細については、スクリプトの概要 を参照してください。 スクリプトの基礎を学ぶには、Unity Learn Beginner Scripting コース を参照してください。 より詳細なガイダンスについては、サンプルプロジェクト Create with Code と Creator Kit: Beginner Code を参照してください。
モデルとは、オブジェクトを 3 次元で表現したものです。3D ゲームのビジュアルの大半は、キャラクター、相互作用可能なオブジェクト、プレイヤーの周りの世界などのモデルで構成されています。
Probuilder のようなツールを使用して、Unity でモデルを作成することができます。しかし、これらは最終製品ではなく、プロトタイピングに最適です。
より洗練された 3D アセットを最終製品に加えるには、3D モデリングソフトウェアで 3D モデル、マテリアル、テクスチャを作成し、それらを Unity にインポートします。
Unity は .fbx モデル形式を使用します。また、他の一般的なネイティブの モデル形式 (例えば、.max, .blend, .mb, .ma) も使用でき、Unity はそれらをインポートした後に .fbx に変換します。
モデル を Unity にインポートして、プロジェクトで使用できます。
3D メッシュは、3D モデルの構造的なビルドです。複数のポリゴン形状から構成されています。ゲームオブジェクトに 3D モデルを加えるには、Mesh Filter をゲームオブジェクトに追加します。Mesh Renderer コンポーネントは、シーン内のメッシュをレンダリングします。ゲーム内にモデルを確実に表示するには、Mesh Filter コンポーネントを持つゲームオブジェクト に Mesh Renderer を加えます。
マテリアル は、テクスチャ、色合い、シェーダー など、サーフェスの視覚的な外観に関する情報を組み合わせています。マテリアルは、サーフェスのレンダリング方法を定義するために使用します。
Material Design チュートリアルを参照してください。
環境デザインとは、ゲームの舞台となる環境を作成するプロセスです。Unity エディターで環境の設計と構築を同時に行うこともあれば、Unity の外部で環境設計を行い、Unity で構築することもあります。
ゲーム内の環境を構築するには、シーンにゲームオブジェクトを加え、好みやデザインに合わせて配置します。 Unity エディターには、モデルをシーンに手動で配置する以外に、景観をゲームに加えるビルトインの Terrain (地形) 機能が備わっています。エディターでは、複数の Terrain (地形) タイルを作成し、地形の高さや外観を調整し、木や草を追加することができます。詳細は Terrain (地形) の作成と編集 を参照してください。
他のプログラムで作成したアニメーションをインポートしたり、エディターで直接アセットをアニメーション化することができます。 3D アニメーションの詳細については、Unity Learn の Introduction to 3D Animation Systems を参照してください。
Unity では、アニメーション付きのモデルをインポートする場合、アニメーションクリップをインポート できます。つまり、他のプログラムでモデルをアニメーション化し、Unity でそのクリップにアクセスし操作することができます。
Animation ウィンドウ を使って、Unity 内で直接アニメーションクリップを作成、修正します。 キーフレームアニメーションを使って、シーン内のゲームオブジェクトに位置、サイズ、回転などの簡単なアニメーションを加えることができます。
アニメーションクリップ の再生を制御するには、スクリプト内で Animator クラスを使って直接呼び出すか、Animator ウィンドウ で アニメーターコントローラー を作成し、変更することができます。
Animator ウィンドウ を以下に使用できます。
シーンにライトを当てて、環境に深みとムードを与え、プレイヤーが作成したゲーム世界を体験しやすくします。 ライティングを設定するには、以下を行います。
Unity Learn の Lighting in URP チュートリアルを参照してください。
Unity でゲームにバックグラウンドミュージックや効果音を追加することができます。オーディオの概要 を参照してください。サードパーティのソフトウェアを使用してオーディオを作成し、推奨される設定で Unity にインポートします。
Unity の物理エンジンを使用して、ゲームオブジェクトの相互作用を制御します。これを使って重力や力学のような力を再現し、現実世界での衝突時にゲームオブジェクトがどのように動作するかを定義することができます。また、物理設定を構成して、ゲームのデザインに合うように、現実世界の正確なシミュレーションではない、カスタムの物理を作成することもできます。 Unity の物理エンジンの使い方を学ぶには、Unity Learn の Physics チュートリアル を参照してください。詳細については、ユーザーマニュアルの 物理演算のセクション を参照してください。
ゲームオブジェクトに物理演算を設定する。
ゲームにメニューやヘルプを追加したい場合、ユーザーインターフェース を設定する必要があります。ユーザーインターフェースを設定するには、Unity UI を使用します。
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.