Oculus Rift用シューティングの制作・展示メモ

2014年10月30日

Oculus Riftの体験イベント、OcuFes大阪OcuFes in DCEXPOにて、「VRシューティング(仮)」というものを展示しました。まだまだ制作中のゲームなのですが、この辺で一度メモを残しておきたいと思います。

izmさんのノウハウを開示しろという圧力もあったのでw

内容としては主に、ゲーム内容、展示方法、酔い対策、フライトスティックの固定方法の4点です。

ゲーム内容について

VRシューティング(仮)の制作動機としては、OcuFes大阪に参加するにあたって、この辺で普通(?)のVRゲームを1つ作りたいなと思ったことになります。ただし、一般向けのイベントで展示しますので、老若男女誰でも楽しめるようなものが望ましいです。なので、派手なVR体験ができるけれど実は全然難しくないというあたりを狙いました。

例えばエースコンバットなどのように自由に飛行できるとゲームとして面白いのですが、一般の方々に初見で楽しんでもらうのはなかなか難しいでしょう。そこで、前方に高速スクロールする形になりました。

また、一般的な3Dシューティングだと、レバーを下に入れると上昇したり、その逆だったりすることがあると思います。慣れない方が多数いるでしょうし、設定を変えることもできません。どうしたものかと考えた末、思い切って上下移動をなくしてしまいました。

結果、レバー左右とショットボタンだけという超シンプルなものになりました。これで遊べない人はほぼいません。

あとは、絶対にゲームオーバーになりません。2分間固定です。

前方のみに進む高速3Dシューティングということで、アフターバーナーなどを連想された方が多かったのですが、ゼビウスと言った方、大正解です。実は真上から見ると、何の変哲もない古風でスローな2Dシューティングになっています。これなら作るのが比較的簡単だし、破綻することもあまりないだろうという目論見です。

まあ、ぶっちゃけ時間もなかったので、VRの美味しいところをある程度確保しながら、いろんな引き算と保守的な判断を行った結果がこれです。

なお、ショットは最初セミオート連射(一般的なシューティングゲームと同じ。ゆっくり連打する必要あり)だったんですが、うまく連射できない人が2割くらいいました。デジタルコンテンツEXPO版ではフライトスティックを導入したこともあってフルオート連射(押しっぱなしで発射できる)に変更しています。

効果音素材はSound Ideas社Sci-Fi DVD Comboを使っています。DVD-ROM3枚組でSF系の音が3000個以上入っています。映画やアニメなどでも使われる定番メーカーのものです。実際、音を吟味していたら、ソードアート・オンラインで聞いたことがあるような音も見つかりました。高いです。こうした音素材集やソフトウェア音源はしばしばセールをやるので、そういうときを狙うといいと思います。

あと、よく訊かれるのですが、雲はただのビルボードです。板ポリゴンが前から飛んできているだけです。Quadにテクスチャを貼って、こういうスクリプトをアタッチして常にカメラに向けてます。

using UnityEngine;

public class Billboard : MonoBehaviour
{
    Camera targetCamera;

    void Start()
    {
        targetCamera = Camera.main;
    }

    void LateUpdate()
    {
        transform.LookAt(transform.position - targetCamera.transform.rotation * Vector3.back, targetCamera.transform.rotation * Vector3.up);
    }
}

背景との溶け込みとか、もうちょっと改善しないとダメですね。

展示方法について

コントローラなどがある場合、基本的には、Oculus Riftをかける前に操作説明をしたほうがいいのではと思います。かぶった後での説明はぎくしゃくしてしまいます。

展示中の案内は(あまり上手くないと思いますが……)こんな感じに落ちつきました。

「どうぞ座ってください」
「操作についてなんですけれども、まずジョイスティックを握ってみてください」
(手本の手の動きを見せながら)「左右に倒すと左右移動です。奥のトリガーを引くとショットです。これだけです」
「ではOculusをかぶせます。できるだけ綺麗に見えるところで止めてみてください」
「ヘッドホンをかけたらスタートします」

キーボードでスタートして(ジョイスティックではスタートできないようにしてあります。誤ってスタートしてしまうことがよくあったので)、2分間のプレイ後に、画面に「ゲーム終了 お疲れさまでした。Oculus Riftをはずしてください」と表示されるようになっています。

あと、よく話題になる汗や化粧などの汚れ対策ですが、自分の場合はシンプルにセロテープを貼りました。こうして防水処理?をしておくと、ティッシュやウェットティッシュで毎回拭けるようになります。ただ、見た目が相当悪いです。もうちょっといいものがないかと探したんですが、ビニールテープやゴム系はきつい臭いがするものばかりで……。何かいいものがあったら教えてください。

Oculus Riftとヘッドホンで視覚と聴覚をジャックすると、現実空間と完全に断絶してしまうのが難点です。指示ができないということもありますが、間が持たない、体験光景の魅力がいまいちというのもあって、VRアトラクションとしてはちょっとダメな感じです(隣の原さんLittle Witch Pie Deliveryは楽しそうでうらやましかったです。箒にセンサーを取りつけてコントローラにしている魔女ゲーです)。ただ、ゲーマーっぽい方々が数人一緒に来られることが何度かあって、そういうときには盛り上がりました。

ヘッドホンは、店頭でいいものを見繕ったところ、外界の音がそこそこ遮断されて、重低音が出て、装着感がやわらかく、運搬性が良く、見た目がすっきりしていて安いということで、ソニーのMDR-XB450を使用しました。ケーブルがやや短いのと、ヘッドバンドの調整にやや癖があるのが欠点です。

分配器を使ってスピーカーからも音声を出力するようにしてあります。このあたり、ヘッドホンつきのCrescent Bayではどうすればいいのか気になります。

あと、カードを置いておくと持って行く方が多いです。自分はアドプリントで印刷しています。

酔い対策について

身も蓋もない話、アフターバーナーのようなゲームなので、最初、左右移動に合わせて機体と一緒にカメラを最大30度バンクさせていました。が、OcuFes大阪前日のOculus Rift勉強会 #01で遊んでもらったところ、とにかく酔うという人が続出しました。たぶんOculus展示あるあるだと思いますが、Riftをはずした直後に「やっぱ酔いますねー!」とにこやかな顔で言われるのは地味にダメージがあります。途中ではずしてしまう方も何人かいました。

VR酔い問題にはとても厄介なところがあって、作っている本人はもう慣れてしまって、どれくらい酔いやすいかまったく分からなくなってるんですね。

翌日のOcuFes大阪ではバンク角を半分にしたものを展示したのですが、それでもやっぱり不十分なようでした。一方で、全然酔わないという人も結構いました。

Nao_uさんにこの動画を教えていただいたのですが(必見です。30秒あたりから)、人間や動物の頭には、いわばスタビライザーのような視界を安定させる仕組みがあるようです。

自分のプレイ光景を見ると、まさにそうした動きをして水平線を安定させているのが分かります。おそらく、無意識にこの動作ができる人は酔わないし、できない人は酔ってしまうということなのだろうと思います。

ということで、デジタルコンテンツEXPO版ではカメラはバンクさせずに、機体のみを傾けるようにしました。安定化後の視界を表示するという感じです。結果として、酔うという人はゼロになりました。150人ほどに遊んでもらって、「酔った」という言葉がただの一度も出てきませんでした。

ということで教訓なのですが、まず一点目、いわば被験者を見つけて試してもらわないことには対策は絶対に不可能だと思います。自分自身では、最初、たぶん大丈夫じゃないかと甘く考えていましたので。普通のゲームでもテストプレイは重要だと思いますが、VRでは、酔う、つまり「身体的に不快感を与える」という、ある意味では実害を与えてしまう問題がある以上、一層重要になると思います。

二点目は、Oculusのベストプラクティスガイドをきちんと読みましょう、ということでしょうか。3ページ目に、水平線を動かすと不快感を引き起こす、と書いてあります。Unity+Oculus Rift開発メモにも「水平線や大きな表示要素を動かさない」としっかり自分でメモってあります。なんで綺麗さっぱり忘れてるんでしょうか……。

とはいっても、

難しい問題だと思います。そもそも、本物の自動車や飛行機だって酔うじゃないか、という気持ちはそこそこあります。昔は3Dゲー自体ダメという人も多かった気がしますし、VRに慣れた人が増えるまでは自重して、穏当な動きのものや、カメラが定点から動かないものを作るか、または、可能なら設定で変更できるようにする感じでしょうか。

フライトスティックの固定方法

OcuFes大阪ではXbox 360コントローラを使っていたんですが、 izmさんが鉄騎コントローラを使っているのを見て、やっぱり操縦桿があったほうがいいよね、 視覚・聴覚に加えて触覚も欲しい! ということで、ロジテックのこれが意外と安かったのでお試しのような気持ちでぽちってみました。

で、届いて開封してみたところ、あーこりゃダメだと。動画のように、傾けると浮いたりずれたりしてしまいます。慣れている人は下方向に力をかけながら使ったり、手で押さえながら使ったりするんだと思いますが、初めて使う人にそんなことは期待できません。Oculus RiftでVR空間に没入している状態ならなおさらです。

いっそ手で押さえるというのも考えましたが、遊ぶ人に気を遣わせてしまうと没入感を損ねるでしょうし、ただでさえ7時間展示しつづけるのはしんどいのに、更に疲れるようなことはなしです。論外です。

何かいい方法はないかとホームセンターに何度も通って考えた結果、こういう方法に落ちつきました。厚い木板(刺が出ていたりしないもの)に、金具とビスを使ってコントローラを固定し、机にダイソーの衝撃吸収パッドで貼りつけています。

この方法は基本的に大成功でした。両手でレバーを握ってものすごい力で傾ける方もいたのですが、板がずれたり、はずれたりすることは一切ありませんでした。

ただ、大きな誤算があって、コントローラはずれないんですが、机に揺れが伝わるんですね。隣の方々に振動が伝わってしまうので、机を1つ増やしてもらうことになりました(ご迷惑おかけしました……)。

あと数名ほど、机自体がガッと動いてしまうということがあって、軽く押さえておく必要がありました。逆に言えば、それほど強く机に固定されていたということでもあります。

それから、板は45cm四方で厚さ1.5cm、重量1.6kgほどあるものを使用したのですが、もっと小さいものでもよかったかなという気がしています。今回は安全側に振った感じです。手軽に使えると思ったコントローラがそうでなくなってしまったのですが、そこは仕方ないですね。

余談として、持って行ったビスが1本見つからなかったので、3本で運用することになりました。また、金具の固定のためにドライバーを持って行ったのですが、準備後にほったらかしにしていたらどこかに持って行かれてしまったようで、解体できなくなってしまいました……。藤宮さんわっふるめーかーさんに借りてきていただいて事なきを得たのですが、感謝です。

というわけで、いろいろありましたが、基本的に、この木板・金具とビス・防振パッドで固定する方法は融通が効くものだと思います。金具さえ合えば、普通の机の上に何でも置けて固定できますので、そうした展示をしたい場合は考慮してみてもいいのではないでしょうか。ただし振動に注意です。

それと、フライトスティックがダメだった場合のために、Xbox 360コントローラも一応持参しました。バックアップ重要だと思います。

今回使ったフライトスティックにはフォースフィードバックがないのですが、振動がVRに効果的とのことなので、フォースフィードバックのあるものも検討してみたいです。

他には、最初は小型の扇風機を持って行くことを考えていたのですが、試した結果、なくてもいいかなと思ってやめました。加速度が再現できないかなと思ったんですが、風は風であって、加速度の代わりにはならないようです。

今後のこと

VRシューティング(仮)の今後についてですが、きちんとゲームとして完成させるというのが目標になります。Oculusの公式ストアもできるようですし、完成品を1本くらい送り込まないとちょっとな、みたいな感じです。

ちなみに11月16日に秋葉原UDXでデジゲー博という同人・インディーゲームのイベントがあって、そこでもVRシューティング(仮)を展示予定です。今度は一般向けの作りから、ゲーマー向け、シューター向けの作りに変更する予定です。エンドレスシラフさん主催のスコアアタック大会、同人シューティングゲームキャラバン in デジゲー博2014の参加タイトルになりますのでよろしくお願いします。あと16日しかないのでやばいです。

3D駐車シミュレーターも地味に制作続行中です。

あとは、ゲーム的なものではなく、VRアトラクション的な案もいくつか思いついているので、またOcuFesで全然違うものを展示できればと思っています(ゲーム系に走ったほうがいいですか?)。

思いのほか長くなってしまったので、ひとまずこの辺で。ではでは。

(書いた人: こりん

ブログトップへ