この記事は、KLab Advent Calendar 2016 の17日目の記事です。はじめまして、morikenです。
昨日はjukey17さんのVRのゲームを作ってみて気をつけたことでした。
さて、2016年は年始から盛んに「今年はVR元年だ」と言われていましたが、確かに一気にVRが普及したように感じます。
家庭用のVR機器がいくつも発売され、またVRを体験できる場所や機会も増えたことにより、VRの魅力を知った方も増えたと思います。
私自身も、VR ZONEでVRを体験してその魅力に取り憑かれ、PlayStation®VRももちろん購入し、日々バーチャル空間でサイリウムを振ったり、家庭教師の仕事をしたりして楽しんでいます。
ところで、面白いゲームをプレイすると、自分でも作ってみたくなるのがゲーム開発者の性です。そこで、VR元年が終わる前に、自分でもVRのゲームを作ってみることにしました。
今回は初めてということで、普段から慣れ親しんだUnityで、スマートフォン向けVRゲームを作ることにしました。
ところが、スマホ向けのVRゲームを作る上で、ある問題に直面しました。それは、プレイヤーにどのようにゲームを操作させるか、です。
というのも、スマホVRでは専用のゴーグルにスマホをセットし、それを覗いてコンテンツを楽しみます。そのため、タッチパネルによる操作はほぼ行うことができません。
それゆえ、VRコンテンツの開発者たちは、ゴーグルに磁石を取り付けてスイッチ代わりにしたり、視線でUIを選択できるようにしたり、首を縦横に振る動きを利用したりと、色々工夫をしてきました。しかし、これらの操作方法では、複雑な操作をさせることは難しいです。
そんな時、自宅にむかし購入したBluetoothのキーボードがあることを思い出しました。Bluetoothなので、スマホとも接続できるはずです。キーボードを使うことができれば、プレイヤーに複雑な操作をさせることができます。
そして、キーボードを使ったゲームと言えば、思い浮かぶものは1つしかありません。
そう、タイピングゲームですね。
手順は以下の通りです。
タイピングゲームを作ります。
1.で作ったものをVRに対応します。
以上の2ステップです。簡単ですね。
今回は、フィールドの中心にいるプレイヤーに向かって、周囲から襲いかかってくるモンスターをタイピングによって撃退するという、ベーシック(?)なタイピングゲームを作成しました。
プレイヤーを定点カメラにするのは、VRのデモ作品などによくある形式ですね。この形式は、周囲を 360° 見渡せるためVRと相性が良く、またカメラの移動がないため酔いづらい、というメリットがあります。
リソースにはUnity Technologies製のアセット、Survival Shooterを利用しました。
タイピングゲームがあらかた完成したら、次はVRに対応させます。
VR対応には、Google VR SDK for Unityを使用しました。Googleは以前、Google Cardboard SDK
というSDKを配付していましたが、今年の8月に発表されたDaydreamに対応され、リニューアルされたようです。
VR対応はとても簡単で、UnityにインポートしたSDKに含まれるGvrViewerMain.prefab
というPrefabをシーンに配置するだけです。これだけで下の画像のように、ゲーム再生時に自動で右目・左目用のカメラを配置し、VRゴーグルを通して見ることで、ゲーム内のオブジェクトが立体的に見えるようになります。
さて、VRゲームでは、非VRのゲームとは少しUIを変えなければいけません。
というのも、非VRゲームと同じようにUIを配置しても、UIが適切に表示されないためです。
例えばこのように、ゲーム内テキストと体力ゲージを模したUIを配置します。
ところが、これを再生すると、下のようにUIが左目、右目の領域にはみ出して表示されてしまいます。
この問題を解決するため、カメラ画像にオーバーレイさせていたUIを、3D空間上に配置しましょう。
CanvasコンポーネントのRender Mode
は、デフォルトではScreen Space - Overlay
になっていますが、これをWorld Space
に変更します。
すると、Canvas以下のUIコンポーネントが通常の3Dオブジェクトと同じようにワールド空間上に配置されるようになり、左目用・右目用の両方のカメラに描画されるようになりました。
こうして、無事にVRタイピングゲームが完成しました。
さて、実際にプレイする上で、いくつか必要なものがあります。
まずは、Bluetooth接続できるキーボードです。このゲームはタイピングゲームなので、キーボードは必須です。
次に、プレイ中はVRゴーグルを手で支えることができません。そのため、頭に固定できるタイプのものを用意する必要があります。
またモンスターは360°さまざまな方向から襲いかかってくるため、素早く周囲を見渡せるよう立ってプレイするのが最適です。その際にキーボードを手元に固定できるように、画板のようなものがあると便利です。
全て装備するとこのようになります。(本当は某ゲーム機を背負いたかったのですが、怒られそうなので諦めました。)
プレイしている様子です。遊んでいる本人はVRの世界に没入できてとても楽しいのですが、周りからは不審な目で見られるので、人目がないところでプレイするのが良さそうです。
ゲームのクオリティはさておき、VR対応ゲームはこのように簡単に作ることができます。興味を持たれた方はぜひチャレンジしてみてください。
一緒にこれからのVR業界を盛り上げましょう!
KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。
合わせて読みたい
KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。