実例で学ぶゲーム 3D 数学
ジツレイ デ マナブ ゲーム スリーディー スウガク
- 著者:
- フレッチャー・ダン / イアン・パーベリー(ダン, フレッチャー / パーベリー, イアン)
- 出版社:
- オーム社
- 出版日:
- 2008年10月
- ISBN:
- 9784873113777
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
近年のゲーム開発では 3DCG や物理シミュレーションなどの技術が多用されているため、その基盤である数学についての理解なしに商業ベースのゲーム開発はありえません。本書では、ゲーム開発や 3DCG で用いられる数学的な要素ーデカルト座標系、ベクトル、行列、線型代数、オイラー角、四元数、座標変換 (平行移動、回転、拡大縮小)、幾何形状プリミティブの種類と構造体、プリミティブの可視性と衝突判定といった 3D 数学、さらにはグラフィックス用の 3D 数学ーについてサンプルを多用しながらわかりやすく解説します。
技書の森解説
『実例で学ぶゲーム 3D 数学』 (Fletcher Dunn、Ian Parberry 著、松田 晃一 訳、オライリー・ジャパン、2008 年 10 月 3 日発行) は、原書 3D Math Primer for Graphics and Game Development の日本語版で、ゲーム開発や 3DCG で用いられる数学を、サンプルを多用しながら解説する書籍です。版元の紹介文が挙げる範囲は、デカルト座標系、ベクトル、行列、線型代数、オイラー角、四元数、座標変換 (平行移動、回転、拡大縮小)、幾何形状プリミティブ、プリミティブの可視性と衝突判定、そしてグラフィックス用の 3D 数学です。
全 15 章と付録 3 本の構成、座標系から可視性の決定まで
第 1 章「デカルト座標系」と第 2 章「複数の座標空間」は、2D から 3D への座標の考え方、左手座標系と右手座標系の違い、ワールド空間、オブジェクト空間、カメラ空間、慣性空間といった座標空間の使い分けを整理します。第 3 章「ベクトル」と第 4 章「ベクトルの演算」で内積と外積までを押さえ、第 5 章「簡単な 3D ベクトルクラス」で実装上の設計判断に移ります。第 6 章「行列入門」から第 8 章「より詳しい行列の説明」までは、回転、スケーリング、正投影、リフレクション、せん断といった線型変換と、行列式、逆行列、直交行列、4×4 の同次座標行列を使った透視投影を扱います。
第 9 章「3D における方向と角変位」は、方向を表す行列形式、オイラー角、四元数を長所と短所から比べ、slerp と呼ばれる四元数の補間や表現どうしの変換までを扱い、第 10 章「C++ による座標変換」でそれらをクラスとして組み立てます。続く第 11 章「幾何形状プリミティブ」、第 12 章「幾何テスト」、第 13 章「三角形メッシュ」、第 14 章「グラフィックス用の 3D 数学」、第 15 章「可視性の決定」では、光線と平面、球、AABB、三角形との交差テスト、グラフィックスパイプラインとライティング、視錐台に対するテスト、四分木と八分木、BSP ツリー、ポータルテクニックまでが並びます。巻末には付録 A「数学の復習」、付録 B「ゲーム開発者のための確率・統計入門」、付録 C「参考文献」が付き、版元ページでは練習問題の答えとサンプルコードが関連ファイルとして公開されています。
方向の表し方が 3 通りある理由と、実装で確かめる学び方
ゲームの 3D 数学でつまずきやすいのは、物体の向きを表す方法が一つではない点です。回転行列はベクトルの変換にそのまま使えますが 9 つの数を持ち、計算の誤差が積み重なると直交性が崩れます。オイラー角は 3 つの角度で直感的に扱えますが、回転の順序によっては 2 つの軸が重なって自由度を失うジンバルロックが起き、2 つの向きの間をなめらかにつなぐ補間も苦手です。四元数は 4 つの数で回転を表し、補間や合成に強い一方、値を見ても向きを想像しにくいという弱点があります。カメラやキャラクターの向きを扱う ゲームの開発現場 では、補間には四元数、ベクトルの変換には行列、編集画面での入力にはオイラー角というように、場面ごとに表現を使い分けるのが一般的で、第 9 章が 3 つを並べて比べる構成はこの実務の必要とよく対応しています。
本書の実装例は C++ で書かれたクラス として示されます。第 5 章は Vector3 クラスを題材に、浮動小数点の精度の選び方や演算子のオーバーロードの是非、仮想関数を使わない理由といった設計上の決定を節ごとに説明しており、数式がそのままコードに落ちるまでの距離を具体的に確かめられます。数式だけの教科書で線型代数を学んだものの、ゲームのコードでどう使うのかが結びつかなかった人にとって、この往復は理解の助けになります。
2008 年刊の前提と、ゲームの数学を土台から固めたい人への向き
刊行は 2008 年で、第 14 章のグラフィックスパイプラインの説明には、頂点のライティングやフラットシェーディングとグーローシェーディングといった項目が並びます。目次にシェーダーの語は無く、GPU 上で光の計算を自由に書く手法を学びたい場合は、別の本で補う必要があります。また、版元の紹介文は物理シミュレーションをゲーム開発で多用される技術として挙げていますが、物理演算そのものを扱う章は目次にありません。特定のゲームエンジンの使い方を知りたい人にも、目的の違う本です。
一方で、座標空間やベクトル、行列、四元数といった考え方は、エンジンや描画の仕組みが変わっても使われ続ける土台です。三角関数や総和の記号に不安があれば付録 A で復習でき、各手法の背後にある数学を、交差テストや可視性の判定という具体的な処理につなげて理解したいゲームプログラマーや学生にとって、本書は一冊で土台をまとめて固められる選択肢です。
言及した記事 (9 件)
【Unity】Shaderことはじめ【Shader : 0】
♡ 119Unity, Shaderオレオレ技術書ロードマップ(ゲームプログラマ編)
♡ 78ゲーム, 技術書, 書籍, ゲームプログラミング未経験からARスタートアップエンジニアになった1年を振り返ってみた
♡ 36Unity3D, Unity, ARKit[WebGL] 球面に沿って移動するオブジェクトを実装する
♡ 20JavaScript, WebGLゲーム数学の習得:初級編
♡ 14C++, ゲーム制作, 数学やり直しクォータニオンを真に理解する qpq-1の導出
♡ 13Unity, 数学, 3D, クォータニオン[3D] 回転行列の意味
♡ 11WebGL, 3Dクォータニオンの回転公式 ~ハミルトンが見つけた4次元の回転ルート~
♡ 8Unity, 四元数, クォータニオン, 3D数学呪術廻戦で学ぶゲームプログラミング学習のコツ
♡ 1C++, 初心者, ポエム, ゲームプログラミング
この本に興味がある方におすすめ
関連する本
関連記事
機械学習に必要な数学の本ガイド - 「どこまでやるか」で選ぶ 3 レベル
機械学習 / ディープラーニングに必要な数学を学ぶ本の選び方を 3 レベル (数式アレルギーの解消 → 機械学習で使う数学だけ → 数理を体系的に) で整理。学び直しの範囲を絞り、挫折せずに必要十分な数学を身につけるルートを解説します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。
ディープラーニング本の選び方 - 原理 / 理論 / 実装 / 数学の 4 系統で整理 (2026 年 8 月時点)
ディープラーニング本の選び方を 4 系統 (原理を手で理解する本 / 理論を体系的に学ぶ本 / フレームワーク実装本 / 数学を補う本) に整理。2026 年 8 月時点の定番書を目的別 / レベル別に紹介し、賞味期限の見極め方も解説します。