見出し画像

高校の授業で習った「アイツ」がVR開発に早速役立った件

目標は「VRで自由に会って話せるサービス」を作ることです!

環境構築が終わり、UE4の映像制作コンテストも終わったので、いよいよVR開発に本腰で取り掛かっていきます!

今日の開発テーマ

さて、今日の開発では「VR空間内で自由に歩き回れる」ようにしました!「話す」ためのアプリといっても、やっぱり動き回れるほうが面白いですよね。

今日の成果

百聞は一見に如かず。今日の開発は上手くいったので、結果を3秒の動画にまとめてみました。

こんな感じの仕上がりです。Quest 2には、ハンドコントローラーが2つあるので、そのコントローラーのスティックを倒すと進みたい方向に進めます。

「アイツ」の実力

さて、「アイツ」とはズバリおなじみの高校数学です!高校で習う数学って何かに応用することってありますか??ちなみに僕は理系ですが授業とテスト以外で「コイツ」が役に立ったことをほとんど覚えていません💦
そんな「コイツ」ですが、実は今日の成果は「コイツ」なしでは到底完成しませんでした。もう少し詳しく触れると、「行列」の回転運動の項目に助けられました。

ちょっとマニアックな話

ここからは勝手にマニアックな話をするので、ここまでで「あ~高校数学も役に立つんだな~」と思っていただけたらこの項目は飛ばしちゃってください笑

まず、一番の問題だったのは「プレイヤー目線での『前後』『左右』の方向を求める事」でした。この方向が分かりさえすれば、その方向にキャラを動かすのは実は造作もありません。ちなみに「方向」とは二次元のベクトル(x方向とy方向のみ)の事です。

では方向をどうやって決めるか。もう少し踏み込むと、実は『前』と『右』の方向だけ分かれば十分です。(『前』に"+2"のスピードで進むと前に進み、『前』に"-2"のスピードで進むと後ろに進みます)

で、『前』の方向はすぐにわかりました。(UE4にはそういう便利な機能が備わってる)

問題は『右』です。んなああんと、UE4の機能には『右』を求めるものはありません!!(見つけてないだけだったらすみません)

ということで自力で『右』方向を求めるしかありません💦💦

ここで授業で少しだけ習った「行列」が役に立ちます。今回使った知識は、「行列」の中でも「ある行列に特定の行列を掛け算すると、元の行列を回転させることができる」というものです。

…つまりは、「『前』方向を表す数になんか掛け算すれば『右』方向が分かる!!!」ってことです。

そして、計算の結果、x座標とy座標の値を入れ替えてx座標の値を-1倍するだけで『右』を求められることが分かりました!!

これで晴れてプレイヤーは自由に歩けるようになりました。

まとめ

数学ってたま~に意外なところで役に立つことあるよね。


いいなと思ったら応援しよう!