線型代数学
ベクトル
ベクトルとは、一般的には「大きさと向きをもつ量」であり「矢印で表すことのできる量」である。

2次元のベクトルは2つの成分(x, y)があり、3次元の場合は3の成分(x, y, z)がある。Unityでは Vector2 と Vector3 の構造体があり、それぞれのベクトルを作成ができる。
Vector2 vec2D = new Vector2(vx, vy); // vxとvyはfloatである
Vector3 vec3D = new Vector3(vx, vy, vz); // vzもfloatである
ゲームの中で、ベクトルをよく使うものである。例えば、3D空間で、キャラクターの速度が「左向き:秒速2メートル、前方:秒速10メートル」であるとしたら…
// 3D空間だと、x:左右、y:上下、z:前後
Vector3 velocity = new Vector3(-2, 0, 10);
また、ゲームの場合は、向きと量はもちろんそうであるが、その他に「位置」もベクトルで表現する。
// プレーヤーはシーンの中心点から前方100メートルにいる
Vector3 playerPosition = new Vector3(0, 0, 100);
演算
やはり、ベクトルは重要なので、ベクトルの演算を学ばないといけない。
加算
2つのベクトルを足すことができる。その結果は各成分の足し算である:
2次元の場合:
|
|
3次元の場合:
|
|
Unityでは「+」の演算子で2つのベクトルを足すことができる
Vector3 v = new Vector3(vx, vy, vz); // vx, vyとvzは何かのfloat型の数値
Vector3 w = new Vector3(wx, wy, wz); // wx, wyとwzは何かのfloat型の数値
Vector3 vw = v + w;
幾何学的に、足し算は2つの矢印を連続し、1つ目のベクトルの始点から2つ目のベクトルの終点までに新しいベクトルを作成するイメージ:

減算
引き算は同じ形で行う:
Vector3 v = new Vector3(vx, vy, vz); // vx, vyとvzは何かのfloat型の数値
Vector3 w = new Vector3(wx, wy, wz); // wx, wyとwzは何かのfloat型の数値
Vector3 vw = v - w;
幾何学的には、引くベクトルの向きを反転してから連続に繋がる



