DirectX を使用して単純なユニバーサル Windows プラットフォーム (UWP) ゲームを作成する

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

Note

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 でのオブジェクト間の衝突検出
  • マウス、タッチ、および Xbox コントローラー コントロールのプレイヤー入力の処理
  • オーディオのミキシングと再生
  • 基本的なゲームのステート マシン

動作中のサンプル ゲーム

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