DirectX を使った単純なユニバーサル Windows プラットフォーム (UWP) ゲームの作成

この一連のチュートリアルでは、DirectX と C++/WinRT を使用して Simple3DGameDX という名前の基本的なユニバーサル Windows プラットフォーム (UWP) サンプル ゲームを作成する方法について説明します。 このゲームは、主観 3D シューティング ギャラリーで行われます。

注意

Simple3DGameDX サンプル ゲームをダウンロードできるリンク自体が、Direct3D サンプル ゲームです。 C++/WinRT ソース コードは、cppwinrt という名前のフォルダーにあります。 その他の UWP サンプル アプリの詳細については、「 Windows 開発用のサンプル アプリケーション」を参照してください。

これらのチュートリアルでは、アートやメッシュなどのアセットの読み込み、主要なゲーム ループの作成、シンプルなレンダリング パイプラインの実装、サウンドやコントロールの追加などのプロセスを含む、ゲームの主要な要素すべてについて説明します。

UWP ゲーム開発の手法と考慮事項についても説明します。 主要な UWP DirectX ゲーム開発の主要な概念に焦点を当て、これらの概念に関係する Windows ランタイム固有の考慮事項について説明します。

目標

UWP DirectX ゲームの基本的な概念とコンポーネントについて学習し、DirectX を使って UWP ゲームをより快適に設計できるようになること。

知っておくべきこと

このチュートリアルでは、次の点について理解している必要があります。

  • C++/WinRT。 C++/WinRT は、Windows API 用の標準的な最新の C++17 言語プロジェクションであり、ヘッダー ファイル ベースのライブラリとして実装され、最新の Windows API へのファースト クラスのアクセスを提供するように設計されています。
  • 線形代数およびニュートン物理学の基本的な概念。
  • 基本的なグラフィックス プログラミング用語。
  • Windows プログラミングの基本的な概念。
  • Direct2D および Direct3D 11 API に関する基本的な知識。

この Simple3DGameDX サンプル ゲームは、シンプルな主観 3D シューティング ギャラリーを実装し、そこでプレイヤーが動く標的に弾を撃ちます。 標的に命中するたびにポイントが与えられ、プレイヤーは難度が上がっていく 6 つのレベルを進むことができます。 レベルの最後に、ポイントが集計されて、プレイヤーに最終スコアが与えられます。

このサンプルは、次のゲーム概念を示しています。

  • DirectX 11.1 と Windows ランタイムの間の相互運用
  • 主観 3D 視点およびカメラ
  • ステレオスコピック 3D 効果
  • 3D でのオブジェクト間の衝突検出
  • マウス、タッチ、Xbox コントローラーからのプレイヤーの入力の処理
  • オーディオ ミキシングおよび再生
  • 基本的なゲームのステート マシン

サンプル ゲームの動作

トピック 説明
ゲーム プロジェクトのセットアップ ゲーム開発の最初の手順は、Microsoft Visual Studio でプロジェクトを設定することです。 ゲーム開発専用のプロジェクトを構成すると、後でテンプレートの一種として再利用できます。
ゲームの UWP アプリ フレームワークの定義 ユニバーサル Windows プラットフォーム (UWP) ゲームのコーディングでの最初の手順は、アプリ オブジェクトと Windows との対話を可能にするフレームワークを構築することです。
ゲームのフロー管理 プレイヤーとシステムとの対話を有効にする高度なステート マシンを定義します。 UI で全体的なゲームのステート マシンを操作する方法および UWP ゲーム用のイベント ハンドラーを作成する方法について説明します。
メイン ゲーム オブジェクトの定義 ここでは、サンプル ゲームのメイン オブジェクトの詳細と、実装するルールをゲーム ワールドとの対話式操作に変換する方法について説明します。
レンダリング フレームワーク I: レンダリングの概要 グラフィックスを表示するレンダリング パイプラインの開発方法について説明します。 レンダリングの概要。
レンダリング フレームワーク II: ゲームのレンダリング グラフィックスを表示するレンダリング パイプラインをアセンブルする方法について説明します。 ゲームのレンダリング、データのセットアップと準備。
ユーザー インターフェイスの追加 DirectX UWP ゲームに 2D ユーザー インターフェイス オーバーレイを追加する方法について説明します。
コントロールの追加 ここでは、サンプル ゲームで 3-D ゲームにムーブ/ルック コントロールを実装する方法と、タッチ コントローラー用、マウス コントローラー用、ゲーム コントローラー用の基本的なコントロールを開発する方法について説明します。
サウンドの追加 XAudio2 API を使用してゲームの音楽とサウンド効果を再生する単純なサウンド エンジンを開発します。
サンプル ゲームを拡張する UWP DirectX ゲームの XAML オーバーレイを実装する方法について説明します。