ゲーム数学
苦手であっても、ゲーム開発に絶対に必要な数学を理解しましょう。
三角関数
三角関数とは、平面三角法における、角度の大きさと線分の長さの関係を記述する関数の族、およびそれらを拡張して得られる関数の総称である。 簡単にいうと、上記の図で 角度 θ が知っていれば、...
線型代数学
ベクトル ベクトルとは、一般的には「大きさと向きをもつ量」であり「矢印で表すことのできる量」である。 2次元のベクトルは2つの成分(x, y)があり、3次元の場合は3の成分(x, y, z...
3Dモデルの仕組み(その1)
今まで、FBXファイルでモデルをダウンロードし、そのまま使ってきましたが、実際にどう作られているのか調べてみましょう。 頂点(Vertex / バーテックス) 頂点は3D空間の「ある位置」を...
各種の変換(トランスフォーム)
今まで、物体の移動(位置)、回転と拡大縮小をUnityの「transform」コンポーネントを使ってやってきました。 実は裏側でなにが行われているのか、学んでいきましょう。 移動(位置) ...
オイラー(Euler)回転の弱点:ジンバルロック
ここまで学んできた回転方法は「オイラー」(Euler)回転といい、x, y, zの各軸ごとに別々に回転することにより、オブジェクトに連続に適用すると、自由に回転できる… 設定しても、回転順番を...
単純な物理
ゲームでよく使われそうな物理を練習しましょう。以下の処理は、Unity の Rigidbody を対応してくれる処理である。 移動、速度、加速度 移動と速度の関係性 次の状況を考えてみてくださ...
当たり判定
Unityのコライダーのおかげで、当たり判定は自動的に計算され、「OnCollisionXXX」「OnTriggerXXX」で衝突があった時にお知らせを受け取る、処理ができるが、実際に裏側でなに...
3Dモデルの仕組み(その2)
模様を付けましょう:UV座標 今までのモデルはすべて白い色で表示してきたが、実際にゲームで使うものは一定色ではない。前回作成した「MyCube」をベースにし、複雑な模様(テクスチャ)を付けてみま...
シェーダー
シェーダーはGPU(グラフィックスカード)で実行する特別なプログラムである。シェーダーを使うことにより、3Dモデルの「見せ方」(描画)などを自由に変えることができる。ただし、GPUで実行するプロ...
Shader Graph
プロジェクト設定 ShaderLabの自由度が高く、とてもパワフルなシェーダの作り方であるが、やや難しいところもある。複雑で高速なシェーダが必要なら、ShaderLabの方が良いと思われるが、単...