ゲームプログラミングから見る数学 #1 ~ベクトル~
こんにちは。インターン生の小野です。
突然ですがみなさん、「数学」と聞いてどんな感情を持つでしょうか。
目を背けたくなったり、トラウマを感じている人も多いと思います。
苦手意識の一番の要因は、やはり「どこで使うかわからない」という点でしょう。
ですが、身近な場面においても数学的な知識は使われています。
その最たる例が、ゲームです。
プレイヤーキャラクターの動きにも、高校数学の理論を用いてプログラムされています。
そこで今回の記事では、ゲームプログラミングを通して、数学の魅力を伝えると同時に、ゲームプログラマーを目指す人が最低限知ってほしい数学知識をお伝えします。
前置きが長くなってしまいましたが、本題に入ります。
今回は第1回ということで、『ベクトル』というものについて書いていきます。
さて、『ベクトル』とは何でしょうか。
日常会話でも「話のベクトルが違う」と言うこともありますよね。
英語でベクトル(vector)とは、「方向量、方向、進路」といった意味があります。
参考URL : https://ejje.weblio.jp/content/vector
数学的に言うならば、ベクトルとは「向きと大きさを持ったもの」となります。
※完全に余談ですが、1とか2などの大きさしか無いものは『スカラー』と呼んだりします。
ゲームにおける一番わかりやすい例は、「大乱闘スマッシュブラザーズ」シリーズでしょう。
知らない人はいないとは思いますが、相手を吹っ飛ばして倒すアクションゲームですね。
この、吹っ飛ばすという動作は、どの方向に吹っ飛ぶか(向き)と、
どのくらい吹っ飛ぶか(大きさ)の2つがあることから、ここにベクトルが使われています。
シューティングゲーム等で、プレイヤーキャラクターを追跡するような弾も、
敵キャラクターの位置からプレイヤーキャラクターの位置へのベクトルを用いて表現されています。
さて、1+2=3という式が成り立つのは皆さんご存じでしょう。
では、ベクトル同士の足し算とはどのようにするのでしょうか。
これも単純です。下の図をご覧ください。
かなり簡略化したベクトルAとベクトルBの足し算の図です。
赤い矢印が足し算した結果となります。
図で見るとわかるように、直感でわかるような結果になっています。
逆に考えると、1つのベクトルを2つのベクトルに分けることが出来る、ということでもあります。
なぜわざわざ2つに分けるの?と思うかもしれませんが、それは次回以降説明したいと思います。
ベクトルについては以上となります。
他にもベクトルの便利な性質はありますが、今回は最低限ということでここまでです。
次回は三角関数について書こうと思います。
興味を持たれた方はお気軽にお問い合わせください。
インターンシップへの申し込み・お問い合わせ先
