初めての3D

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
nnn

初めての3D

#1

投稿記事 by nnn » 14年前

こんにちはnnnです。
今までC言語でDXライブラリーを使い、
いろいろなツールやゲームを作ってきましたが、
携帯、スマフ(smart phone スマートフォンを略してスマフ)などが
3D化してきたのでそろそろ自分も3Dに足を突っ込もうかと思っております。
が、所詮しがない高1(ユトリ乙www)に、

ベクトルとか分かるか!!!!


というわけで、DXライブラリーとメタセコイヤを使って3Dの空間に地面を表示
するまでは良かったのですが、
自機を動かすにあたって、どうしてもベクトルが必要になりました。
ちなみに今作ろうとしているゲームは、目標高く、エース〇ンバット的なものを作ろうかと思っています。

三角関数でなんとか誤魔化せないか考えましたが、ユトリには、難しすぎました。

なので、どなたかソースを説明付きでうpしていただけないでしょうか。
ユトリにも分かるようにお願いします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: 初めての3D

#2

投稿記事 by h2so5 » 14年前

DXライブラリのホームページに3Dのサンプルがあるので、まずはそれを参考にすれば良いかと思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 初めての3D

#3

投稿記事 by softya(ソフト屋) » 14年前

いや、エースコンバットだと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でもアクションやシューティングにはベクトルは不可欠だと思いますが、どうやってクリアしてきたのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

nnn

Re: 初めての3D

#4

投稿記事 by nnn » 14年前

softyaさん、過去ログ拝見いたしました。
素晴らしい量のレビューとURLが貼ってありましたので、
しばらくの間、そのレビューを熟読させていただきます。

2Dでは、四聖龍神録的な移動をやりましたが、
制作時に頑張って覚えました。
キー入力に合わせて、X軸方向に~ドット、Y軸方向に~ドット動かすだけなので、
2Dはなんとかなったのですが、3Dは空間ベクトル(?)と行列を使わなくてはならにそうなので、
頭がこんがらがってしまって、ここに質問させていただきました。

フォーラムルーム読みましたスイマセン(汗)。
とりあえず、しばらくの間URL先のレビューを読みますので留守にするつもりなので今さらですが、
os windows 7
コンパイラ borland BCC
ライブラリー bcpad231
です。
留守にする為、解決にさせて頂きます。
ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 初めての3D

#5

投稿記事 by softya(ソフト屋) » 14年前

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
※ 新しいモノから並んでいるので下の方から読んで下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る