VRボンバーマンを作りたい その1(サブ画面表示)
VRでボンバーマンって・・・どうなんでしょう?
緊張感あって面白いんだろうか? そもそもどこから爆風が来るのか分からなくって、ゲームとして成り立たないんじゃなかろうか? でもそれは、どうゲームの作るか次第でなんとかなる??
んな不安を抱えつつ取り敢えず作ってみたいので、どこまで出来るかわからないけどやってみます。
さてまず最初にやることは、壊れるブロック・壊れないブロックをマップデータに沿って、動的に配置し迷路を作成、これは簡単に出来ました。(制作過程として書くことは特に無いです)
だがしかし!
試しに動かしてみたら、自分がどこに、敵がどこにいるのか分かない~~(敵はまだ作っていないけどね)
画面右下あたりにマップを上から俯瞰したレーダーみたいなのを作って、マップの様子が分かるよう手を加えよう。
「GameObject」→「UI」→「Canvas」を作成、同じく「GameObject」→「UI」→「Image」を作成。「Canvas」が目の前にあって、「Canvas」の中の「Image」に上からみたマップを描き込むように作ってきましょう。
「Canvas」の「Render Mode」は「Screen Space - Camera」、「Render Camera」は「Camera (eye)」、これでCanvasが目の前にくる・・・と
Imageは程よい大きさと場所に調整。
「GameObject」→「Camera」で、上から見る用のカメラを作る。Position・Rotationも上から迷路を見る感じになるよう設定。(カメラを30m上空に、90度回転させて下向きにしてます)
「Assets」→「Create」→「Render Texture」作る。(CameraTextureってやつ)
「Camera」の「Target Texture」を 作ったTextureに設定する。
カメラの位置合わせ為、動かしながら確認していたら、下の「Console」に「audio listnerが2つあるぞ」と警告が出ている・・・
これは元々ある「CasmeraRig」のAudio Listnerと重複しているのが原因なので、マップ用カメラの方はOFFにするか消すかします。
さて、これでこのカメラに移った画像がTextureに描画されるはず!
「Assets」→「Create」→「Material」を作る。
作ったMaterial の「Shader」を「Unlit/Texture」にし、更に「Base(RGB)」の「select」を押して、さっき作ったCameraのTextureにする。
んで、作ったMaterialをCanvasのImageにくっつける。
一旦作ってきたオブジェクトを整理。
最後に自分の頭の上「Camera (head)」に白い丸のTextureを設定したPlaneをのせて、自分の位置がわかるようにしています。
そしてホントにこのやり方であっているのか、不安を覚えつつ実行。
できた~、そして右下にマップ画面が出てきた。
だがしかし!
マップ画面の方向はこのままで固定。できれば自分がグルグル回ったら、マップも自分の方向に合わせてグルグル回って欲しい!!
マップ用のカメラにスクリプトを追加して、自分「"[CameraRig]/Camera (eye)"」の方向にカメラを回すように、更に自分の移動に合わせてカメラも動くようにしてみました。
完成、マップに対してまっすぐになってる時は、L字型。
斜めを向けば、それに合わせV字型に。(但し色が・・・すごくわかりにくい・・・これは後で直そう)
今回はひとまずここまでですが、プログラムを動かして1つ気付いたことが・・・
壁の高さは2mにしているのだが、VR内で自分と背比べしてみてなんだか若干低いような・・・コレ、2mあるんかな?
前に床に置いた2つのブロックの間の長さは調査したけど、高さはどうなの?
測ってみました
まず、2mの柱を作成し、一番上にコントローラを固定。
現実の世界ではこのようになっています。
測ってみると・・・
ん~、ちょっと足りない、でもまぁこんなもんっすかね?
(煮え切らない結果のまま調査終了)