ゲーム プログラミング用の Visual Studio ツールVisual Studio tools for game programming

概要Summary

Visual Studio Ultimate を使って、DirectX アプリを開発する場合は、画像、モデル、シェーダー リソースを作成、編集、プレビュー、エクスポートするための追加のツールを利用できます。If you use Visual Studio Ultimate to develop DirectX apps, there are additional tools available for creating, editing, previewing, and exporting image, model, and shader resources. また、ビルド時のリソースの変換や、DirectX グラフィックス コードのデバッグに使うことができるツールもあります。There are also tools that you can use to convert resources at build time and debug DirectX graphics code.

このトピックでは、こうしたグラフィックス ツールの概要について説明します。This topic gives an overview of these graphics tools.

イメージ エディターImage Editor

イメージ エディターは、DirectX で使うリッチ テクスチャと画像形式の種類を操作するのに使います。Use the Image Editor to work with the kinds of rich texture and image formats that DirectX uses. イメージ エディターでは、次の形式をサポートしています。The Image Editor supports the following formats.

  • .png.png
  • .jpg、.jpeg、.jpe、.jfif.jpg, .jpeg, .jpe, .jfif
  • .dds.dds
  • .gif.gif
  • .bmp.bmp
  • .dib.dib
  • .tif、.tiff.tif, .tiff
  • .tga.tga

ビルド時にこれらを .dds ファイルに変換するには、ビルド カスタマイズ ファイルを作成します。Create build customization files to convert these to .dds files at build time.

詳しくは、「テクスチャおよびイメージの使用」をご覧ください。For more information, see Working with Textures and Images.

  イメージ エディターは、アプリの編集機能の完全なイメージの置換をするものではありませんが、多くの単純な表示やシナリオの編集に適しています。Note  The Image Editor is not intended to be a replacement for a full feature image editing app, but is appropriate for many simple viewing and editing scenarios.

 

モデル エディターModel Editor

モデル エディターを使うと、基本的な 3D モデルをゼロから作成するや、フル機能を備えた 3D モデリング ツールで作成したもっと複雑な 3D モデルの表示や変更を行うことができます。You can use the Model Editor to create basic 3D models from scratch, or to view and modify more-complex 3D models from full-featured 3D modeling tools. モデル エディターでは、DirectX アプリの開発で使われるいくつかの 3D モデル形式をサポートしています。The Model Editor supports several 3D model formats that are used in DirectX app development. ビルド時に次のファイルを .cmo ファイルに変換するビルド カスタマイズ ファイルを作成できます。You can create build customization files to convert these to .cmo files at build time.

  • .fbx.fbx
  • .dae.dae
  • .obj.obj

エディターで照明を適用したモデルのスクリーンショットを次に示します。Here's a screenshot of a model in the editor with lighting applied.

ティーポット

詳しくは、「3-D モデルの操作」をご覧ください。For more information, see Working with 3-D Models.

  モデル エディターのアプリを編集する完全な機能モデルに代わるものではありませんが、多くの単純な表示やシナリオの編集に適しています。Note  The Model Editor is not intended to be a replacement for a full feature model editing app, but is appropriate for many simple viewing and editing scenarios.

 

シェーダー デザイナーShader Designer

HLSL でのプログラミングがわからない場合でも、シェーダー デザイナーを使うと、ゲームやアプリのカスタムの視覚効果を作成できます。Use the Shader Designer to create custom visual effects for your game or app even if you don't know HLSL programming.

シェーダーはグラフとして視覚的に作成します。You create a shader visually as a graph. 各ノードには、その操作までの出力のプレビューが表示されます。Each node displays a preview of the output up to that operation. 球体のプレビューでランバート照明を適用した例を次に示します。Here's an example that applies Lambert lighting with a sphere preview.

視覚シェーダー グラフ

シェーダー エディターは、シェーダーを設計、編集、.dgsl 形式で保存するのに使います。Use the Shader Editor to design, edit, and save shaders in the .dgsl format. また、次の形式をエクスポートします。It also exports the following formats.

  • .hlsl (ソース コード).hlsl (source code)
  • .cso (バイトコード).cso (bytecode)
  • .h (HLSL バイトコード配列).h (HLSL bytecode array)

ビルド時にこれらの形式を .cso ファイルに変換するには、ビルド カスタマイズ ファイルを作成します。Create build customization files to convert any of these formats to .cso files at build time.

シェーダー エディターでエクスポートした HLSL コードの一部を次に示します。Here is a portion of HLSL code that is exported by the Shader Editor. これは、ランバート照明ノードのコードだけです。This is only the code for the Lambert lighting node.

//
// Lambert lighting function
//
float3 LambertLighting(
    float3 lightNormal,
    float3 surfaceNormal,
    float3 materialAmbient,
    float3 lightAmbient,
    float3 lightColor,
    float3 pixelColor
    )
{
    // Compute the amount of contribution per light.
    float diffuseAmount = saturate(dot(lightNormal, surfaceNormal));
    float3 diffuse = diffuseAmount * lightColor * pixelColor;

    // Combine ambient with diffuse.
    return saturate((materialAmbient * lightAmbient) + diffuse);
}

詳しくは、「シェーダーの操作」をご覧ください。For more information, see Working with Shaders.

3D アセットのビルドのカスタマイズBuild customizations for 3D assets

プロジェクトにビルドのカスタマイズを追加して、リソースを Visual Studio で利用できる形式に変換できます。You can add build customizations to your project so that Visual Studio converts resources to usable formats. その後で、アプリにアセットを読み込み、他の DirectX アプリと同じように DirectX リソースを作成し、設定して、アセットを使うことができます。After that, you can load the assets into your app and use them by creating and filling DirectX resources just like you would in any other DirectX app.

ビルド カスタマイズを追加するには、ソリューション エクスプローラーでプロジェクトを右クリックし、 [ビルドのカスタマイズ] をクリックします。プロジェクトには次の種類のビルドのカスタマイズを追加できます。To add a build customization, you right-click on the project in the Solution Explorer and select Build Customizations.... You can add the following types of build customizations to your project.

  • 入力として画像ファイルを受け取り、DirectDraw Surface (.dds) ファイルを出力するイメージ コンテンツ パイプライン。Image Content Pipeline takes image files as input and outputs DirectDraw Surface (.dds) files.
  • メッシュ ファイル (.fbx など) を受け取り、.cmo メッシュ ファイルを出力するメッシュ コンテンツ パイプライン。Mesh Content Pipeline takes mesh files (such as .fbx) and outputs .cmo mesh files.
  • Visual Studio シェーダー エディターで作成した視覚シェーダー グラフ (.dgsl) を受け取り、コンパイル済みシェーダー出力 (.cso) ファイルを出力するシェーダー コンテンツ パイプライン。Shader Content Pipeline takes Visual Shader Graph (.dgsl) from the Visual Studio Shader Editor and outputs a Compiled Shader Output (.cso) file.

詳しくは、「ゲームまたはアプリケーションでの 3-D アセットの使用」をご覧ください。For more information, see Using 3-D Assets in Your Game or App.

DirectX グラフィックスのデバッグDebugging DirectX graphics

Visual Studio には、グラフィックス固有のデバッグ ツールが用意されています。Visual Studio provides graphics-specific debugging tools. これらのツールを使って、次のような項目をデバッグします。Use these tools to debug things like:

  • グラフィックス パイプライン。The graphics pipeline.
  • イベント呼び出し履歴。The event call stack.
  • オブジェクト テーブル。The object table.
  • デバイスの状態。The device state.
  • シェーダーのバグ。Shader bugs.
  • 初期化されていないか、無効な定数バッファーとパラメーター。Uninitialized or incorrect constant buffers and parameters.
  • DirectX バージョンの互換性。DirectX version compatibility.
  • 制限されている Direct2D のサポート。Limited Direct2D support.
  • オペレーティング システムと SDK の要件。Operating system and SDK requirements.

詳しくは、「DirectX グラフィックスのデバッグ」をご覧ください。For more information, see Debugging DirectX Graphics.