- ベストアンサー
3Dゲーム製作で使用する数学
いつか3Dのゲームを個人で作りたいと思って勉強しているのですが 3Dの扱いには数学が要ることを知りました。 今は2Dのゲームを作ることを目標にやっていますが、徐々に数学の勉強もしていきたいところですが 当方の数学力は中卒レベルです。 3Dゲームに関する参考書を買う予定ですが今お金がなくて少し先になりそうです。 その前に少しずつ勉強していきたく、また、なるべくゲームに関係のないことは勉強したくないのですが 手元には高校時代の数学の教科書 実教出版の 数学I 数学II(平成19、20年発行) があります。 3D数学参考書を買う前に、高校数学の教科書中で勉強しておくべき事はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
2Dでもやることによっては数学も必要です。 少なくとも教科書で三角関数・ベクトル・行列はやっておいたほうが良いと思います。 サイトをご紹介。 「3Dプログラム(3Dのグラフィックや動きを扱うプログラム)入門コーナー」 http://homepage2.nifty.com/skimp-studio/htm/crawl_top.htm 「ゲームつくろー!」 http://marupeke296.com/GameMain.html 「3D座標変換 - ゲームプログラミングWiki」 http://www.c3.club.kyutech.ac.jp/gamewiki/index.php?3D%BA%C2%C9%B8%CA%D1%B4%B9 「ゲーム共通技術 - ゲームプログラミングWiki」 http://www.c3.club.kyutech.ac.jp/gamewiki/index.php?%A5%B2%A1%BC%A5%E0%B6%A6%C4%CC%B5%BB%BD%D1
その他の回答 (2)
- LongSecret
- ベストアンサー率68% (22/32)
同時進行で、音響制御アプリ、3Dのモデリング・アニメーション関連のソフト、及び3Dのゲーム等を個人で作っています。 (個人だともちろん、市販レベルに仕上げるのは大変時間がかかりますがw) また、妹が高校生でたまたま最近数学の教科書を見ましたw >当方の数学力は中卒レベルです。 >ゲームに関係のないことは勉強したくないのです なるべく早く作りたいなら その意志通り 1.まずウインドウの作成~3Dの機構を作るための初期化部分などの土台を作ってしまう ↓ 2.次に簡単な2D画像を3Dの機構を使って表示してみる ↓ 3.3Dオブジェクトを作り、使っていく という風に、ポンポンとまず踏み出してみて いきなり具体的なコードを探してやってみようとしちゃってもいいと思います。 んで、色々研究してくついでに、質問者さんのやる気が相当なものであれば ゲームそのもの、には「直接は」関係のないこと でも、分かるとより良い手を打てるかもしれないことは 自然に調べようとするようになるでしょうし 実際マスターして行けるはずです。 (それぐらい「意気込み」はないと、逆に厳しいですが) >3Dゲームに関する参考書を買う予定ですが今お金がなくて少し先になりそうです。 基本的な土台を作るくらいなら、大抵のライブラリなら調べればネット上でも見つかると思います。 また、3D数学をバリバリに使うとしても、上記ステップ3以降ではじめて可能です。 実際 プログラマブルシェーダとかのかなり気のきいたことをしない限り 数学をほとんど知らなくても 有名どころのライブラリなら内部的にやってくれる部分はかなり多いです。 また、逆に相当深いところまでいじろうとすると 高校の教科書レベルはかなり逸脱した事まで扱わないといけない場合もざらに出てきます。 ということで結局「その場で最も知りたいことをその都度調べる」のが速かったりします。 それに、使うもの次第では「数学が使えるまでのお膳立て」のが結構大変なくらいなので。 もちろん ・行列 クォータニオン自体の知識がなくても、ある程度はライブラリ使えば十分可能でしょうが、演算の簡易化として、扱う必要自体は、まずある。 とはいえ、3Dのための、コード上で行う演算に対して 高校の教科書がどの程度役立つかというと、未知数。 ・三角関数 基本部分なら、自分で触れなくてもかろうじてOK?知ってるに越したことはないですが ・ベクトル 概念的に分かってればライブラリ任せで最初のころはOKではないかと ・微分積分 自分でいじくる場合に必要な時もあるでしょうが、結構先の話の可能性が高いです。 ↑この辺が分かってれば結構理解しやすいでしょうし、結構スムーズとは思いますが もしそれらの知識が全くない状況からスタートしても 問題にぶち当たってから その都度「検索技術」と「意欲」次第でカバーすることは十分可能です。
お礼
微分積分をやってみます
- mtaka2
- ベストアンサー率73% (867/1179)
最近の教科書に入っているかどうかわからないのですが、 「ベクトル」と「行列」、(特に行列の「線形変換」)あたりをマスターしておくと役に立つでしょう。 というか、3Dをプログラミングで使うなら、このあたりの知識は必須です。 3Dでは、物体の座標などを「ベクトル」で表現しますし、 「線形変換」は、座標の回転や拡大縮小を表現するものですが、 その「線形変換」を、さらにちょっと拡張した「アフィン変換」というものが、 3Dでの物体配置での「移動」「回転」「拡大縮小」などを表現するのに使われています。
お礼
三角関数 ベクトル 行列をやってみます