Version: Unity 6.0 (6000.0)
言語 : 日本語
2D ゲーム用のプロジェクトの設定
2D ゲームの視点のリファレンス

2D ゲーム作成ワークフロー

2D ゲームを作成する前に、ゲーム視点アートスタイルを決定する必要があります。

2D ゲームを作成するには、Unity プロジェクトを設定 し、以下の順序で関連する概念を学んでください。

  1. 基礎

  2. スクリプティング

  3. スプライト

  4. ゲーム内環境の構築

  5. キャラクターアニメーション

  6. グラフィックス

  7. [# 2D 物理](#Physics)

  8. オーディオ

  9. ユーザーインターフェース

  10. プロファイリング、最適化、テスト

  11. Publishing

基礎

ゲームオブジェクトは Unity の基本的なオブジェクトで、キャラクター、プロップ、風景などを表現します。ゲーム内のすべてのオブジェクトはゲームオブジェクトです。

ゲームオブジェクトはゲーム内のアイテムを表します。ゲームオブジェクトを配置してレベルをビルドするスペースはシーンと呼ばれます。Unity のシーンは常に 3D です。Unity で 2D のゲームを作成する場合、通常は 3 次元 (Z 軸) を無視することを選択しますが、2.5D のゲームを作成する場合など、特殊なケースで使用することも可能です。

ゲームオブジェクトの動作は、コンポーネントと呼ばれる機能ブロックによって定義されています。以下に示すのは、2D ゲームで基本となるコンポーネントです。

  • Transform: Transform コンポーネントは、シーン内の各ゲームオブジェクトの位置、回転、スケールを決定します。すべてのゲームオブジェクトに Transform コンポーネントがあります。
  • Sprite Renderer: Sprite Renderer コンポーネントは、スプライトをレンダリングし、シーンでの見え方をコントロールします。
  • Camera: ゲーム世界をキャプチャしてプレイヤーに表示するデバイスです。カメラを Orthographic (平行投影) にすると、カメラのビューからすべての遠近感が削除されます。これはアイソメトリックまたは 2D ゲームの作成に特に便利です。
  • Collider 2D: このコンポーネントは、物理衝突を目的とした 2D ゲームオブジェクトの形状を定義します。2D 物理演算を参照してください。

コンポーネントは、C# クラスを UI で表現したものです。スクリプトを使用して、コンポーネントを変更する、コンポーネントを操作する、または新しいコンポーネントを作成することができます。詳細については、スクリプティングのセクションを参照してください。

スクリプティング

すべての 2D ゲームにスクリプトが必要です。スクリプトは、プレイヤーからの入力に応答し、ゲームプレイのイベントが必要なときに発生するように制御します。

Unity でのスクリプトの使用方法について詳しくは、スクリプティングの概要を参照してください。Unity Learn の初級者向けのスクリプティングコースも参照してください。

スクリプトはゲームオブジェクトに添付され、作成したスクリプトは MonoBehaviour クラスを継承しています。

スプライト

スプライトは 2D グラフィックのオブジェクトです。あらゆる種類の 2D ゲームにスプライトを使用します。例えば、主人公の画像をスプライトとしてインポートすることができます。

キャラクタースプライト
キャラクタースプライト

また、スプライトのコレクションを使用してキャラクターを構築することも可能です。これにより、キャラクターの動きやアニメーションをより自由にコントロールすることができます。

Sprite Editor にキャラクターのパーツを構成する複数のスプライトを表示したところ
Sprite Editor にキャラクターのパーツを構成する複数のスプライトを表示したところ

スプライトのインポートと設定

Unity の推奨する設定でスプライトをインポートします。インポートしてスプライトを設定するを参照してください。

スプライトのレンダリング

スプライトを描画するには、Sprite Renderer コンポーネントを使用します。例えば、スプライトレンダラーを使用すると、スプライトの色や不透明度を変更することができます。

スプライトレンダラーによるスプライトの色の調整
スプライトレンダラーによるスプライトの色の調整

スプライトレンダラーの概要学習チュートリアルを参照してください。レイヤーで編成することによってスプライトのソートを行い、奥行きを感じさせることができます。スプライトはさまざまな方法でソートすることができます。詳細については、スプライトのソートを参照してください。例えば、Y 軸に沿ってスプライトを並べ替えると、高い位置にあるスプライトは低い位置にあるスプライトの後ろに並べられ、高い位置にあるスプライトは低い位置にあるスプライトよりも遠くに見えるようになります。

Y 軸に沿ってソートされたスプライト
Y 軸に沿ってソートされたスプライト

スプライトのオーバーレイ順序を設定するには、ソートレイヤーを使用します。

スプライトレンダラーでゲームオブジェクトをグループ化し、スプライトをレンダリングする順序を制御するには、ソートグループを使用します。

スプライトアトラス

スプライトアトラスを使用することで、複数のテクスチャを 1 つの結合されたテクスチャとして統合できます。これにより、ゲームが最適化され、メモリが節約されます。例えば、特定のキャラクターや目的に関連するすべてのスプライトをスプライトアトラスに追加することができます。

スプライトアトラス
スプライトアトラス

スプライトアトラスの概要学習チュートリアルを参照してください。

ゲーム内環境の構築

環境設計とは、ゲームのレベルと環境を構築するプロセスのことです。このセクションの環境デザインツールは、あなたのゲームに最も適した方法で組み合わせることができます。例えば、9 スライスのみを使用してトップダウンゲームを作成できます。または、タイルマップと SpriteShape を使用してサイドオンプラットフォーマーを作成することもできます。

9 スライス

9 スライスとは、複数のアセットを用意することなく、1 つの画像をさまざまなサイズで再利用することができる 2D 技術です。Unity では、1 つのスプライトの指定部分を動的に伸縮させてタイル状にすることで、1 つのスプライトをさまざまなサイズの UI 要素の境界や背景として使用することができます。9 スライススプライトを参照してください。

例えば、2D のレベルを構築する際に、9 スライスでスプライトを引き伸ばして形を整えることができます。

9 つのセクションに分割された 9 スライススプライト
9 つのセクションに分割された 9 スライススプライト

スケーラブルなスプライトに対する 9 スライスの使用を参照してください。

タイルマップ

Tilemap コンポーネントは、2D レベルを作成するためのタイルアセットを保存し、処理するシステムです。Tilemap を使用するには、2D Tilemap Editor パッケージ (デフォルトでインストールされています) を使用します。

例えば、Tilemap を使用すると、タイルとブラシツールを使用してレベルをペイントし、タイルの動作のルールを定義することができます。

タイルマップの編集に使用されるタイルパレットウィンドウ
タイルマップの編集に使用されるタイルパレットウィンドウ

タイルマップの概要学習チュートリアルを参照してください。

2D Tilemap Extras

プロジェクトに余分なタイルマップアセットを追加するには、2D Tilemap Extras パッケージをインストールします。このパッケージには、再利用可能な 2D と Tilemap Editor スクリプトが含まれており、独自のプロジェクトに使用することができます。スクリプトの動作をカスタマイズして、さまざまなシナリオに適した新しいブラシを作成することができます。

アイソメトリックタイルマップ

アイソメトリック投影法 (等角投影法) のゲームでは、アイソメトリックタイルマップを作成することができます。

SpriteShape

ベクトル描画ツールと同様に、SpriteShape は体系的な景観やパスなど、より大きなスプライトを作成するための柔軟な方法を提供します。スプライト形状プロファイルを参照してください。

SpriteShape に作成されたパス
SpriteShape に作成されたパス

SpriteShape の操作チュートリアルを参照してください。

キャラクターアニメーション

2D キャラクターのアニメーション化には、3 種類の方法があります。

2D アニメーションタイプ 用途
フレームバイフレーム 芸術的な理由 - ゲームに古典的なアニメーションのアートスタイルを持たせたい場合。フレームバイフレームアニメーションは、作成するにも実行するにも、比較的リソースに負荷がかかります。
カットアウト スムーズなスケルトンアニメーション - キャラクターがリアルな表現を必要としない場合。
スケルトン 骨の構造に合わせてスプライトが曲がる、滑らかなスケルトンアニメーション。キャラクターにより体系的な雰囲気を持たせたい場合に使用します。

フレームバイフレーム

コマ撮りアニメーションは、アニメーションの各瞬間を個々の画像として描き、それをパラパラ漫画のページをめくるように高速で連続再生するセルアニメーションの伝統的な技法をベースにしている。

フレーム単位のアニメーション化を行うには、フレーム単位アニメーションワークフローに従います。

Sprite エディターでのフレーム単位のアニメーション
Sprite エディターでのフレーム単位のアニメーション

スプライトアニメーションの概要に関する学習チュートリアルを参照してください。

カットアウト

切り絵アニメーションでは、複数のスプライトがキャラクターの体を構成し、それぞれのパーツが動くことで、キャラクター全体が動いているような視覚効果を得ることができます。このアニメーションは、スプライトが曲がらないことを除けば、スケルトンアニメーション (以下を参照) に近いスタイルです。

Sprite エディターでの切り絵アニメーション
Sprite エディターでの切り絵アニメーション

スケルトン

スケルトンアニメーションでは、スプライトまたはスプライトのグループを、アニメーションのスケルトンにマッピングします。キャラクターやオブジェクトのアニメーションボーンを作成して定義し、どのように曲げたり動かしたりするかを定義することができます。この方法では、ボーンがスプライトを曲げたり変形させたりすることで、より自然な動きを実現できます。スケルトンアニメーションを使用するには、2D Animation パッケージを使用する必要があります (デフォルトでインストールされています)。

ボーンエディターでの作業ガイドを含む 2D Animation ワークフローについては、2D Animation ドキュメントを参照してください。

ボーンエディターでボーンを持つキャラクター
ボーンエディターでボーンを持つキャラクター

グラフィックス

このセクションでは、ユニバーサルレンダーパイプライン (URP) を使用する際に利用可能な 2D URP グラフィックス機能について説明します。

ライティング

2D レンダラーで URP を使用するため、Light 2D コンポーネントを使用して、最適化された 2D ライティングをスプライトに適用することができます。詳細については、Lights 2D の概要を参照してください。

これら 2 つの画像は同じシーンを示しています。左側の画像では 2D Lights が無効になっており、右側の画像では 2D Lights が有効になっています。2D Lights では、同じスプライトを使用して異なる天候条件や雰囲気を作成できます。
これら 2 つの画像は同じシーンを示しています。左側の画像では 2D Lights が無効になっており、右側の画像では 2D Lights が有効になっています。2D Lights では、同じスプライトを使用して異なる天候条件や雰囲気を作成できます。

URP でのライティングに関する学習チュートリアルを参照してください。

シャドウ

ライトが影の投影を決定するために使用する形状とプロパティを定義するには、Shadow Caster 2D コンポーネントを使用します。

Shadow Caster 2D コンポーネントの影強度 0.5
Shadow Caster 2D コンポーネントの影強度 0.5

見た目と雰囲気の向上

パーティクルシステムやポストプロセッシングは、ゲームに磨きをかけるためのオプションツールです。

パーティクルシステム

スプライトを使用する代わりにパーティクルシステムを使用して、火や煙、液体などの動的なオブジェクトを作成することができます。スプライトは、物理的なオブジェクトにより適しています。パーティクルシステムを参照してください。

2D 用のパーティクルシステムと Shader Graph で作成された火のエフェクト
2D 用のパーティクルシステムと Shader Graph で作成された火のエフェクト

# ポストプロセス

ポストプロセスエフェクトとフルスクリーンエフェクトを使用すると、ゲームの外観を大幅に改善できます。例えば、これらのエフェクトを使用して、物理的なカメラやフィルムのプロパティをシミュレートしたり、様式化されたビジュアルを作成したりできます。

URP には独自のポストプロセスの実装があります。ユニバーサルレンダーパイプライン (URP) のポストプロセスを参照してください。

Lost Crypt のデモでは、ブルームとビネットのポストプロセスエフェクトを使用
Lost Crypt のデモでは、ブルームとビネットのポストプロセスエフェクトを使用

物理演算 2D

2D 物理演算設定は、2D ゲームでの物理シミュレーションの精度の制限を定義します。2D 物理演算を参照してください。

このビデオでは、Unity 2020.1 の 2D 物理演算機能の概要を説明します。

Unity の 2D 物理演算エンジンの使用方法については、2D 物理演算の学習チュートリアルを参照してください。

以下の 2D 物理ツールは、2D ゲームに有効です。

Rigidbody 2D

Rigidbody 2D コンポーネントにより、ゲームオブジェクトに物理演算エンジンによる制御が適用されます。Rigidbody 2D を参照してください。

Rigidbody 2D コンポーネント
Rigidbody 2D コンポーネント

Collider 2D

Collider 2D コンポーネントは、物理的な衝突を目的とした 2D ゲームオブジェクトの形状を定義します。また、入力検出のために Collider 2D コンポーネントを使用することができます。例えば、モバイルゲームでは、スプライトを選択可能にするために使用できます。

Rigidbody 2D と一緒に使用できる Collider 2D の種類は以下の通りです。

Circle Collider 2D コンポーネント
Circle Collider 2D コンポーネント

Triggers

Collider 2D を (Is Trigger プロパティを有効にして) トリガーとして設定すると、物理オブジェクトとして動作するのを止め、衝突を起こすことなく他のコライダーと交差するようになります。その代わりに、コライダーがその空間に入ると、Unity は Trigger GameObject のスクリプトにある OnTriggerEnter 関数を呼び出します。

Is Trigger が選択された Circle Collider 2D コンポーネント
Is Trigger が選択された Circle Collider 2D コンポーネント

2D ジョイント

ジョイントはゲームオブジェクトをつなげます。2D ジョイントは Rigidbody 2D コンポーネントが設定されたゲームオブジェクト、またはワールド空間の固定位置にのみアタッチできます。2D ジョイントを参照してください。

2D エフェクター

Collider 2D コンポーネントと Effector 2D コンポーネントを使用すると、ゲームオブジェクトのコライダーが互いに接触したときに、シーン内の物理演算の力を制御できます。2D エフェクターを参照してください。

オーディオ

Unity では、ゲームに背景音楽やサウンドエフェクトを追加できます。オーディオの概要を参照してください。サードパーティ製のソフトウェアを使用してオーディオを作成し、推奨される設定で Unity にインポートします。

ユーザーインターフェース

ゲームにメニューやヘルプを追加する必要がある場合は、ユーザーインターフェースを設定する必要があります。ユーザーインターフェースを設定するには、Unity UI を使用します。

ビルドのプロファイリング、最適化、テスト

プロファイリング

プロファイリングにより、ゲームのさまざまな部分にどれだけリソース負荷がかかっているかを確認できます。ゲームは常にターゲットリリースプラットフォームでプロファイリングする必要があります。アプリケーションのプロファイリングを参照してください。

最適化

プロファイリングの後、その結果を使用してパフォーマンスの改善と最適化を行うことができます。Unity における最適化についてを参照してください。

テスト

Unity Test Framework でゲームとコードをテストします。Unity Test Framework を参照してください。

Test Runner ウィンドウ
Test Runner ウィンドウ

公開

ゲームを完成させたら、いよいよ公開です。ビルドの公開を参照してください。

2D ゲーム用のプロジェクトの設定
2D ゲームの視点のリファレンス
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961