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

この一連のチュートリアルでは、DirectX と C++/WinRT を使用して、 Simple3DGameDXという名前の基本的なユニバーサル Windows プラットフォーム (UWP) サンプルゲームを作成する方法について説明します。In this set of tutorials, you'll learn how to use DirectX and C++/WinRT to create the basic Universal Windows Platform (UWP) sample game named Simple3DGameDX. ゲームプレイは、単純なファーストユーザー3D 撮影ギャラリーで行われます。The gameplay takes place in a simple first-person 3D shooting gallery.

注意

Simple3DGameDXサンプルゲーム自体をダウンロードできるリンクは、 Direct3D サンプルゲームです。The link from which you can download the Simple3DGameDX sample game itself is Direct3D sample game. C++/WinRT ソースコードは、という名前のフォルダーに cppwinrt あります。The C++/WinRT source code is in the folder named cppwinrt. その他の UWP サンプルアプリの詳細については、「 uwp アプリのサンプルの入手」を参照してください。For info about other UWP sample apps, see Get UWP app samples.

これらのチュートリアルでは、アートやメッシュなどのアセットを読み込んだり、メインのゲームループを作成したり、単純なレンダリングパイプラインを実装したり、サウンドやコントロールを追加したりするためのプロセスなど、ゲームの主要な部分について説明します。These tutorials cover all of the major parts of a game, including the processes for loading assets such as arts and meshes, creating a main game loop, implementing a simple rendering pipeline, and adding sound and controls.

また、UWP ゲームの開発手法と考慮事項についても説明します。You'll also see UWP game development techniques and considerations. ここでは、主要な UWP DirectX game development の概念に焦点を当て、これらの概念について、Windows ランタイム固有の考慮事項について説明します。We'll focus on key UWP DirectX game development concepts, and call out Windows-Runtime-specific considerations around those concepts.

目的Objective

UWP DirectX ゲームの基本的な概念とコンポーネントについて説明すると共に、DirectX を使用して UWP ゲームをより快適に設計します。To learn about the basic concepts and components of a UWP DirectX game, and to become more comfortable designing UWP games with DirectX.

知っておく必要がある情報What you need to know

このチュートリアルでは、これらのサブジェクトについて理解している必要があります。For this tutorial, you need to be familiar with these subjects.

  • C++/WinRTC++/WinRT. C++/winrt は、Windows ランタイム (WinRT) Api 向けの標準の最新 C++ 17 言語投影であり、ヘッダーファイルベースのライブラリとして実装されており、最新の Windows Api に対するファーストクラスのアクセスを提供するように設計されています。C++/WinRT is a standard modern C++17 language projection for Windows Runtime (WinRT) APIs, implemented as a header-file-based library, and designed to provide you with first-class access to the modern Windows APIs.
  • 線形代数およびニュートン物理学の基本的な概念。Basic linear algebra and Newtonian physics concepts.
  • 基本的なグラフィックス プログラミング用語。Basic graphics programming terminology.
  • Windows プログラミングの基本的な概念。Basic Windows programming concepts.
  • Direct2D および Direct3D 11 API に関する基本的な知識。Basic familiarity with the Direct2D and Direct3D 11 APIs.

Simple3DGameDXサンプルゲームでは、単純なファースト person 3d 撮影ギャラリーが実装されています。プレーヤーは、移動先のボールを発射します。The Simple3DGameDX sample game implements a simple first-person 3D shooting gallery, where the player fires balls at moving targets. 標的に命中するたびにポイントが与えられ、プレイヤーは難度が上がっていく 6 つのレベルを進むことができます。Hitting each target awards a set number of points, and the player can progress through 6 levels of increasing challenge. レベルの最後に、ポイントが集計されて、プレイヤーに最終スコアが与えられます。At the end of the levels, the points are tallied, and the player is awarded a final score.

このサンプルでは、これらのゲームの概念を示します。The sample demonstrates these game concepts.

  • DirectX 11.1 と Windows ランタイムの間の相互運用Interoperation between DirectX 11.1 and the Windows Runtime
  • 主観 3D 視点およびカメラA first-person 3D perspective and camera
  • ステレオスコピック 3D 効果Stereoscopic 3D effects
  • 衝突-3D のオブジェクト間の検出Collision-detection between objects in 3D
  • マウス、タッチ、Xbox コントローラーからのプレイヤーの入力の処理Handling player input for mouse, touch, and Xbox controller controls
  • オーディオ ミキシングおよび再生Audio mixing and playback
  • 基本的なゲームの状態-マシンA basic game state-machine

動作中のサンプルゲーム

トピックTopic 説明Description
ゲーム プロジェクトのセットアップSet up the game project ゲームを開発するための最初の手順は、Microsoft Visual Studio でプロジェクトを設定することです。The first step in developing your game is to set up a project in Microsoft Visual Studio. ゲーム開発専用のプロジェクトを構成した後、後でテンプレートの一種として再利用できます。After you've configured a project specifically for game development, you could later re-use it as a kind of template.
ゲームの UWP アプリ フレームワークの定義Define the game's UWP app framework ユニバーサル Windows プラットフォーム (UWP) ゲームのコーディングの最初の手順は、アプリオブジェクトが Windows と対話できるようにするフレームワークを構築することです。The first step in coding a Universal Windows Platform (UWP) game is building the framework that lets the app object interact with Windows.
ゲームのフロー管理Game flow management プレイヤーとシステムとの対話を有効にする高度なステート マシンを定義します。Define the high-level state machine to enable player and system interaction. UI で全体的なゲームのステート マシンを操作する方法および UWP ゲーム用のイベント ハンドラーを作成する方法について説明します。Learn how UI interacts with the overall game's state machine and how to create event handlers for UWP games.
メイン ゲーム オブジェクトの定義Define the main game object ここでは、サンプルゲームの主要なオブジェクトの詳細と、それが実装するルールがゲームワールドとの相互作用にどのように変換されるかについて説明します。Now, we look at the details of the sample game's main object and how the rules it implements translate into interactions with the game world.
レンダリング フレームワーク I: レンダリングの概要Rendering framework I: Intro to rendering レンダリングパイプラインを開発してグラフィックスを表示する方法について説明します。Learn how to develop the rendering pipeline to display graphics. レンダリングの概要。Intro to rendering.
レンダリング フレームワーク II: ゲームのレンダリングRendering framework II: Game rendering グラフィックスを表示するレンダリング パイプラインをアセンブルする方法について説明します。Learn how to assemble the rendering pipeline to display graphics. ゲームのレンダリング、データのセットアップと準備。Game rendering, set up and prepare data.
ユーザー インターフェイスの追加Add a user interface DirectX UWP ゲームに2D ユーザーインターフェイスオーバーレイを追加する方法について説明します。Learn how to add a 2D user interface overlay to a DirectX UWP game.
コントロールの追加Add controls ここでは、サンプルゲームが3d ゲームで移動外観コントロールを実装する方法と、基本的なタッチ、マウス、およびゲームコントローラーコントロールを開発する方法について説明します。Now, we take a look at how the sample game implements move-look controls in a 3-D game, and how to develop basic touch, mouse, and game controller controls.
サウンドの追加Add sound XAudio2 Api を使用してゲームの音楽とサウンド効果を再生する単純なサウンドエンジンを開発します。Develop a simple sound engine using XAudio2 APIs to playback game music and sound effects.
サンプル ゲームを拡張するExtend the sample game UWP DirectX ゲームの XAML オーバーレイを実装する方法について説明します。Learn how to implement a XAML overlay for a UWP DirectX game.