- 2011-03-06 (日) 4:49
- 3D | C言語(Windows) | DXライブラリ
お知らせ:DXライブラリオンライン関数リファレンス付録編の3D関数編を公開しました。まだすべての関数の解説は揃っておりませんが、本記事を読む助けとしていただければ幸いです(足りない関数については本家「DXライブラリ置き場」のリファレンスをご参照ください)。
注:本記事で配布するソースコードにはモデルデータは含めませんので、それぞれの配布元から別途ダウンロードしてください(詳しくは初回記事を参照)。
ようやくマリオブラザーズ風のゲームデモができあがりました。元々2D前提で作ったものを3Dに変更したため、座標変換がややこしいことになってしまい、予想以上に手こずりました。取り急ぎソースコードと実行ファイルを公開しますが、解説はまた日を改めてとさせてください。
動画も用意したのですが、ゲームとキャプチャソフトを同時に実行できるスペックが無かったので、iPhoneで撮影しています。BGMはYoutubeの機能で合成したもので、実際のプログラムは無音です。操作方法はカーソルキーの左右とXキー、頭突きで動くブロックは動くだけでコインなどは出てきません。
http://www.youtube.com/watch?v=56foghugriI(クリックして動画再生)
©CRYPTON FUTURE MEDIA, INC.
Copyright (C) 2008-2010 唄音ウタProject, 飴屋/菖蒲 All Rights Reserved.
解説中で使用しているモデルはenamel toy box(ハッチさん運営)で公開されている「PMDねんどろ風初音ミクv1.1」と「PMDねんどろ風デフォ子v1.11」です。
ソースコードとコンパイル済みの実行ファイルは以下からダウンロードできます。
maori-bros3D_src.zip(要Visual C++ 2010 Express)
maori-bros3D_bin.zip(Windows用実行ファイル)
どちらもモデルファイルやテクスチャファイルを別途ダウンロードして、mediaフォルダ内にコピーする必要があります。「MmdDefoko1.11.pmd」は「MmdDefoko.pmd」にファイル名を変更しないといけません。ファイル名中にピリオドや数字があると、DXライブラリがモーションファイルを読み込んでくれなくなるためです。
以前の記事で説明したとおり、トゥーンマップのBMPファイルもコピーしておいてください。無くても動作しますが、トゥーン調表示になりません。
ちなみに、meidaフォルダ内に最初から入っているファイルは、こちらで作成したモーションファイルや地形のモデルファイル、マップファイルなどです。
次回は2Dゲームに合わせて3D描画を行う方法や、必要な範囲内だけ描画して処理を軽くする方法などを説明する予定です。
Comments:0
Trackbacks:3
- Trackback URL for this entry
- http://i-libro.net/wpmu/blog/archives/942/trackback
- Listed below are links to weblogs that reference
- 【DXライブラリ3D入門】MikuMikuDance風かつマリオブラザーズ風なゲームデモ公開 from わくわくプログラミング自習室 Blogs
- pingback from わくわくプログラミング自習室 Blogs - 【DXライブラリ3D入門】2Dに合わせて3Dグラフィックスを描画する その1 11-03-10 (木) 18:41
-
[...] Older [...]
- pingback from わくわくプログラミング自習室 Blogs - 【DXライブラリ3D入門】2Dに合わせて3Dグラフィックスを描画する その2 11-03-14 (月) 4:12
-
[...] 引き続き前々回記事で公開したマリオブラザーズ風のゲームデモのグラフィックス処理について解説していきます。解説を書く中でソースコード中の問題をいくつか見つけて修正したので、新たにこちらのソースコードをダウンロードし直してください。 [...]
- pingback from わくわくプログラミング自習室 Blogs - 【DXライブラリ3D入門】2Dに合わせて3Dグラフィックスを描画する その3 11-03-22 (火) 14:53
-
[...] 引き続き前々回記事で公開したマリオブラザーズ風のゲームデモのグラフィックス処理について解説していきます。今回説明するのは表示範囲内にあるモデルを絞り込む方法です。範囲内の物体を高速に行うのは意外と面倒なのですが、ここではBox2DのQueryAABBという関数を使います。AABBは「Axis Aligned Bounding Box」の略で、「軸に沿った範囲を表す矩形」という意味になります。軸に沿わない――つまり回転もありうる矩形に比べると、高速に判定ができるわけです。 [...]