PR

DXライブラリとC言語で3Dゲームを作るまとめ

DXライブラリとC言語で3Dゲーム制作のまとめ。これから3Dゲーム作る人に参考にでもなれば。Visual Studio2022かつDirectX11で作る前提です(VS2026・Directx12は公式でまだ未対応なため)。

C言語、と書いていますが外部ソフトとの連携などの関係でC++を含む場合があります。

※※※注意事項※※※
バグ・不具合は極力無いようにしていますが見落としているバグ・不具合があったりコピペの際に数文字ずれるなどでミスってるものがあるかもしれません。あと「問題なく動けばいい」精神で書いているのでもっとスマートなコードの書き方があるかもしれません。

DXライブラリについて

DXライブラリとはデスクトップアプリの開発に必要になるDirectXやWindows関連のプログラムを使いやすくまとめたライブラリ(※ゲームエンジンではない)。これでDirectXを直接叩く必要がなくなりゲームのプログラミングに専念できるようになる、というもの。C++向けに作られているがC言語だけで大丈夫。AndroidやiOS版もある。

DXライブラリ本家はこちら

DXライブラリは無償で提供されていて、ソフトウェアに対するライセンス料なども商法利用問わず発生しないため無料で使用可能(2026年現在)。

開発者は山田巧氏。公開は2001年と歴史が長く、老舗。現在も年に1回更新が入っている。

今だとUnityやUnreal Engineなどもっと便利な開発環境があり、なんなら生成AIもあるがそれでもDXライブラリを使っているユーザは一定数いる。大学や専門学校での講義・サークル活動で指定されている場合を除けば

  • C++やC#はわからないがC言語はある程度わかる人
  • Unityなどは便利すぎて逆にコーディング力が身につかないのであえてDXライブラリで鍛える
  • 意地でもライセンス料を避けたい

この辺りが多いだろうか。

ゲーム制作に使われるのがメインだがそれ以外のソフトウェア・アプリなども使われている。DXライブラリで開発されたものはこちら(※基本個人製作のもので企業のゲームの紹介はないです)。

3Dゲームを作ろう

DXライブラリで3Dゲームを作る場合、まず開発環境を整えておく。Visual Studioが一番使用率が高いのでこれを使う。現在VS2026に対応とはなっていないのでできればVS2022の方を使うのを推奨。

Visual StudioとDXライブラリを導入する
Visual StudioとDXライブラリを導入する方法について説明しています。Visual Studio・DXライブラリの導入からプロジェクト作成、テストコードで動作確認まで。

導入が済んだらガンガンコードを書いていく。

DXライブラリ土台編

キーボード・ゲームパッドでの操作など、3Dゲーム・ジャンルにかかわらずほぼ必要となる機能の実装。下準備といったところで退屈かもしれませんがここで全部整えておくと楽です。

ゲームパッドはXInut形式のものを使う前提です(DirectInputだと各社の仕様が違っていてやりにくいので…)。

1-1:キーボードで操作できるようにする

1-2:ファイルを分割してコンパイルする

1-3:フレームレートを固定する

1-4:シーンの切り替え機能を作る

1-5:選択項目を作る

1-6:ゲームパッドで操作できるようにする

1-7:キーコンフィグを実装する

1-8:マウスの入力を得る

3Dゲームプログラミング基本

ここからは3Dゲーム向けの実装。3Dアクションゲームを作る前提で基本となるであろう処理をまとめました。

2-1:DxLibModelViewerの使い方(3Dモデルの確認・mv1形式の出力など)

2-2:3Dモデルを表示する

2-3:カメラを操作する、回転させる

2-4:3Dモデルのアニメーションを再生する

2-5:3Dモデルを動かす

2-6:ジャンプを実装する

2-7:3Dマップとの当たり判定処理

2-8:画像を表示する

2-9:フォントや色を指定して文字を表示する

2-10:音を鳴らす

2-11:シェイプキーを設定する

2-12:敵を実装する

2-13:敵との当たり判定処理

2-14:似た要素をまとめて処理する管理部を作る

2-15:背景を表示する

2-16:Effekseerと連動してエフェクトを表示する

2-17:3Dモデルの一部だけを表示/非表示にする

シェーダー関連

3Dゲームの描画に欠かせないシェーダーの実装について。使用する言語はHLSL。

3-1:シェーダーを作って読み込む方法

3-2:ライティングなしのシェーダーを作る

3-3:ランバートシェーダーを作る

3-4:ライトの設定(コードはC言語側)

3-5:鏡面反射光と環境光の実装

3-6:トゥーンシェーダーを作る

トラブル対処

ゲーム制作時のトラブル対策まとめ。ブログ主が経験したものに限るので参考にならないかもしれませんが載せておきます。

4-1:コンパイル時に「LNK2019未解決の外部シンボル~」が出た時の対処法

4-2:予測変換が出なくなった時の対処法

4-3:コンパイル時にWindowsSDKDirプロパティが定義されていない~が出た時の対処法

4-4:コンパイル時にソースファイルが開けません~と出た時の対処法

4-5:3Dモデルが正しく表示されない時の対処法

参考にしたサイト一覧

3Dゲーム作成にあたり参考にしたサイトの一覧。ブクマしておくといいです。

DXライブラリ置き場

DXライブラリ本家サイト。関数のリファレンスを確認したい場合はここ。

DXライブラリ置き場 HOME

新・C言語 ~ゲームプログラミングの館~

本家以外ではおそらく一番有名なDXライブラリを使ったゲームプログラミングサイト。たまに繋がりにくい時があるので注意。

新・C言語 〜ゲームプログラミングの館〜 [DXライブラリ]
C言語による、誰でも作れる2Dゲームプログラムから本格的なゲーム作成まで解説。DXライブラリを使い、C言語入門者にも気軽にゲームが作れます。疑問質問は掲示板で気軽に質問して下さい。同時に管理人は四聖龍神録、Aerobeatなどフリーゲームを…

dxライブラリ隠し関数のページ

本家サイトに載っていない関数のリファレンスを確認できるサイト。

Welcome to CCS! – 千葉大学電子計算機研究会(CCS)
千葉大学電子計算機研究会(CCS)は、プログラム・DTM・グラフィックなど、コンピュータに関連した創作活動を行うサークルです。

HLSLリファレンスまとめ

シェーダーで使うHLSL言語のリファレンスまとめページ。

HLSLリファレンスまとめ
msdnが読みにくいのでまとめ
\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング

コメント

タイトルとURLをコピーしました