ページ 1 / 1
初めての3D
Posted: 2012年5月08日(火) 20:00
by nnn
こんにちはnnnです。
今までC言語でDXライブラリーを使い、
いろいろなツールやゲームを作ってきましたが、
携帯、スマフ(smart phone スマートフォンを略してスマフ)などが
3D化してきたのでそろそろ自分も3Dに足を突っ込もうかと思っております。
が、所詮しがない高1(ユトリ乙www)に、
ベクトルとか分かるか!!!!
というわけで、DXライブラリーとメタセコイヤを使って3Dの空間に地面を表示
するまでは良かったのですが、
自機を動かすにあたって、どうしてもベクトルが必要になりました。
ちなみに今作ろうとしているゲームは、目標高く、エース〇ンバット的なものを作ろうかと思っています。
三角関数でなんとか誤魔化せないか考えましたが、ユトリには、難しすぎました。
なので、どなたかソースを説明付きでうpしていただけないでしょうか。
ユトリにも分かるようにお願いします。
Re: 初めての3D
Posted: 2012年5月08日(火) 20:05
by h2so5
DXライブラリのホームページに3Dのサンプルがあるので、まずはそれを参考にすれば良いかと思います。
Re: 初めての3D
Posted: 2012年5月08日(火) 20:22
by softya(ソフト屋)
いや、エースコンバットだと4次元数(クォータニオン)を使わないといけないのでベクトルどころか行列も必須です。
さすがに勉強して下さいとしか言えませんが、過去ログを参考に貼っておきます。
あとフォーラムルールをお読みください。
http://dixq.net/board/board.html
「揚力のベクトルを求める。(フライトシミュ) • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=4596
「旋回する。(フライトシミュ) • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=4623
「3Dでの移動計算 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=1774
ベクトルの勉強方法とかならアドバイスしますけど。
【補足】
2Dでもアクションやシューティングにはベクトルは不可欠だと思いますが、どうやってクリアしてきたのでしょうか?
Re: 初めての3D
Posted: 2012年5月09日(水) 19:44
by nnn
softyaさん、過去ログ拝見いたしました。
素晴らしい量のレビューとURLが貼ってありましたので、
しばらくの間、そのレビューを熟読させていただきます。
2Dでは、四聖龍神録的な移動をやりましたが、
制作時に頑張って覚えました。
キー入力に合わせて、X軸方向に~ドット、Y軸方向に~ドット動かすだけなので、
2Dはなんとかなったのですが、3Dは空間ベクトル(?)と行列を使わなくてはならにそうなので、
頭がこんがらがってしまって、ここに質問させていただきました。
フォーラムルーム読みましたスイマセン(汗)。
とりあえず、しばらくの間URL先のレビューを読みますので留守にするつもりなので今さらですが、
os windows 7
コンパイラ borland BCC
ライブラリー bcpad231
です。
留守にする為、解決にさせて頂きます。
ありがとうございました。
Re: 初めての3D
Posted: 2012年5月09日(水) 20:19
by softya(ソフト屋)
2Dのベクトルと3Dのベクトルは軸が2つから3つに増えるだけなので大差はありません。
行列は、こういう物という点さえ抑えれば数学レベルの行列を理解していなくても使えることは使えます(知っていればより高度なことができますけどね)。
ベクトルや座標に行列を掛ければ回転移動と平行移動が出来るとか、ワールド系の回転とローカル系の回転の違いとかを理解出来ればとりあえずは動かせるようになると思います。
勉強も頭が痛いと思いますので、実際にプログラムで実感しながら組んでみるとより理解できます。
● 参考。
「3D座標変換 - ゲームプログラミングWiki」
http://www.c3.club.kyutech.ac.jp/gamewi ... A%D1%B4%B9
ラトルズのこの講座も参考になるのは。すごく分かりやすく書かれています。
http://i-libro.net/wpmu/blog/archives/c ... /3d/page/2
※ 新しいモノから並んでいるので下の方から読んで下さい。