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の方を使うのを推奨。

導入が済んだらガンガンコードを書いていく。
DXライブラリ土台編
キーボード・ゲームパッドでの操作など、3Dゲーム・ジャンルにかかわらずほぼ必要となる機能の実装。下準備といったところで退屈かもしれませんがここで全部整えておくと楽です。
ゲームパッドはXInut形式のものを使う前提です(DirectInputだと各社の仕様が違っていてやりにくいので…)。
1-1:キーボードで操作できるようにする
1-2:ファイルを分割してコンパイルする
1-3:フレームレートを固定する
1-4:シーンの切り替え機能を作る
1-5:選択項目を作る
1-7:キーコンフィグを実装する
1-8:マウスの入力を得る
3Dゲームプログラミング基本
ここからは3Dゲーム向けの実装。3Dアクションゲームを作る前提で基本となるであろう処理をまとめました。
2-1:DxLibModelViewerの使い方(3Dモデルの確認・mv1形式の出力など)
2-2:3Dモデルを表示する
2-3:カメラを操作する、回転させる
2-5:3Dモデルを動かす
2-6:ジャンプを実装する
2-7:3Dマップとの当たり判定処理
2-8:画像を表示する
2-10:音を鳴らす
2-11:シェイプキーを設定する
2-12:敵を実装する
2-13:敵との当たり判定処理
2-14:似た要素をまとめて処理する管理部を作る
2-15:背景を表示する
シェーダー関連
3Dゲームの描画に欠かせないシェーダーの実装について。使用する言語はHLSL。
3-1:シェーダーを作って読み込む方法
3-3:ランバートシェーダーを作る
3-4:ライトの設定(C言語側)
3-5:鏡面反射光と環境光の実装
トラブル対処
ゲーム制作時のトラブル対策まとめ。ブログ主が経験したものに限るので参考にならないかもしれませんが載せておきます。
4-1:コンパイル時に「LNK2019未解決の外部シンボル~」が出た時の対処法
4-2:予測変換が出なくなった時の対処法
4-3:コンパイル時にWindowsSDKDirプロパティが定義されていない~が出た時の対処法
4-4:コンパイル時にソースファイルが開けません~と出た時の対処法
参考にしたサイト一覧
3Dゲーム作成にあたり参考にしたサイトの一覧。ブクマしておくといいです。
DXライブラリ置き場
DXライブラリ本家サイト。関数のリファレンスを確認したい場合はここ。
新・C言語 ~ゲームプログラミングの館~
本家以外ではおそらく一番有名なDXライブラリを使ったゲームプログラミングサイト。たまに繋がりにくい時があるので注意。
dxライブラリ隠し関数のページ
本家サイトに載っていない関数のリファレンスを確認できるサイト。
HLSLリファレンスまとめ
シェーダーで使うHLSL言語のリファレンスまとめページ。
コメント