【ゆるぼ】VRHMDで現実空間と同じ距離感・サイズ感を「正確に」再現するには?(未解決)
(この質問どこにポストしようかなーと悩んだけどブログに投稿)
例えば、建築の分野で「一軒家を実際に建てる前に広さがどんなもんかVRで体験したい」という(実際にありそうな)案件があったとします。
ところが、六畳間を作って部屋の中央あたりでプレビューして見回してみると、何か違う・・現実の六畳間よりちょっと狭く(または広く)感じるような気がする・・・となったとします。
この「何か違う」の原因ですが、以下が考えられそうです。
◆VRプレビューの『試着室の鏡』問題*1の原因リスト
- ソフトウェア内の建物の大きさを間違えて、
実際の見取り図と違う大きさで作ってしまったため - ソフト内でのカメラの高さが、実際の目の高さと異なるため
- ソフト内のカメラの画角が人間の眼球の画角と異なるため
- ソフト側でレンダリングされた左目用と右目用の歪み画像が、HMDのレンズに合わないゆがみ方のため*2
- HMDの瞳孔間距離の調節が、実際の目の位置と異なるため
- 体験者のHMD自体の装着感が甘く、HMDのレンズと眼球との距離が最適な位置とは異なるため
で。これらの問題をすべてクリアしてプレビューしてみて「うん!実際の6畳間と同じくらいの距離感、サイズ感だ!」と感じたとしても、微調整とプレビューを何度も繰り返した結果、実際は異なるサイズであるにも関わらず、合ってると思い込んでしまってるだけの可能性があります。
特にVRHMDは「クロスモーダル現象」を引き起こすほど脳を騙すことに長けた技術なので、今回の「一軒家の実際の広さを確認する」という、正確さが求められるミッションでは、感覚に頼るのはあまり良くないかなと思っています。
(画像はイメージ。ちゃんと日本橋ヨヲコ先生のツイートからいただきました)
とは言え、現実の空間とVR空間が同じ距離感、サイズ感であることを確実に保証する方法ってあるんでしょうか?思いつく限りだと・・・
◆現実の部屋と、現実の部屋を同じ寸法で再現したVR空間が「同じ距離感で、同じサイズで見えている」ことを確認する(測定する)方法は?
- viveのトラッキングセンサー2つと、viveコン2つを部屋の隅と天井にくっつけて、
それがVR空間内の部屋の隅、天井にくっついていれば、同じ距離、サイズ感である(Riftでもセンサーの位置は多分VR内で表示できたと思うので、あとはTouchさえあれば同じことは可能) - VRHMDに眼球と同じ画角のカメラをくっつけて、そのカメラの映像をVR空間に重ねて、VR空間と現実空間の部屋の壁がピッタリ重なっていれば、同じ距離、サイズ感である(viveのフロントカメラが眼球と同じ画角であれば代用できる?)
あたりが正解なのかな?と思っています。
ただし1は、トラッキングセンサーの精度が現実と同じである、という保証が予めされていることが前提です(Lighthouseはミリ単位で正確にトラッキング・・ってどっかで言ってた気がするからここは保証されてると考えていいのかなぁ。誰かわかる人教えてください)。
◆言いたいことまとめ
- 「試着室ミラー問題」の原因リストアップした項目の他に、現実の空間とVR空間の距離感、サイズ感を合わせるために必要なことや、実際に試したことや思いついたこと、参考文献などあれば@n_mattunにぜひ教えてくださいおなしゃっす!
- 現実の空間とVR空間が同じ距離感、サイズ感であることを確認する方法で実際に試したことや思いついたこと、参考文献などあればぜひ@n_mattunに教えてくださいオンシャッス!
- 今回のお題である「一軒家を実際に建てる前に広さを確認する」案件では『この間取りだと本当は狭いんだけどVR確認では気付かない程度に広く見せて成約に繋げてしまえ・・・!』と、本当に試着室の鏡のように騙せてしまうので、距離感、サイズ感が正確であることが重要なケースにも関わらず再現性が低い場合は、必ず体験者に「あくまでイメージですよ!」みたいな形で事前説明をしよう!
飛べると!ご自宅でブース出展時と同じ環境(アーケード操作)を作るための手順書
この記事は07/17(日)に秋葉原で行われたVRコンテンツ展示イベント『Unity VR EXPO AKIBA』にて、VRコンテンツダウンロードカードをお買い上げいただき、「飛べると!」をプレイして、自宅でも展示時と同じジェットパックを背負ったプレイスタイル(アーケード操作)をしたい!と思った人向けに書いています。
わぁいターゲットすげー狭いw
※注意※
本手順は各自の責任において設定とプレイを行ってください。またアーケード操作は上半身を動かし、かつ着座の椅子でグルグル回るプレイスタイルとなるため、プレイの際は周りある障害物を避けるなど、回っても安全な空間を確保した上で行ってください。万が一お使いのPCに不具合等が発生したり、プレイ中に思わぬケガ等が発生しても、責任は負いかねます。
0.必要なもの
- VR Ready PC本体(OSはwIn7推奨。8、10はそもそも作者が試してません)
- SIXAXIS機能が搭載されたPS3コントローラ、またはPS4コントローラ
- PSコンと通信する用のBlueToothアダプタ
- PSコンのSIXAXIS入力をXInputの任意のキー入力に変えてくれるソフト
(PS3コンはMotionJoy+BetterDS3、PS4コンはDS4Windows inputなど) - 背負い型のリュック、メッセンジャーバッグ、ランニングバッグ等
- 100円ショップで売っているゴムとマジックテープが一体化したゴムバンド
- 100円ショップで売っているマジックテープ
- 軸部分が素直な形をしている回転する背もたれ付きの椅子
- 普通の無線式マウス(通常使ってるマウスとは別にさらにもうひとつ)
- トラックボール式グリップマウス
1.PC側のセッティング
ジェットパック(中身)を準備する
PS3コントローラ+MotionJoy+BetterDS3を使う場合
MotionJoyをインストールし、PS3コントローラをUSB接続でMotionJoy環境下でキーマッピングできる状態にします。次にMotionJoy上で、用意したBlueToothアダプタにMotionJoyドライバをインストールし(※)、BlueToothとPS3コントローラをペアリングして、PS3コンをBlueToothで通信できる状態にします。
※BlueToothアダプタ内のドライバを上書きする挙動になります。さらに一度認識させたあとはこのBlueToothアダプタからは他のBlueTooth機器が接続できなくなるため、ノートPC等に内臓されているBlueToothアダプタがあったとしても、手順どおりに別途のBlueToothアダプタを用意することを強くお勧めします。
無事にBlueTooth接続ができたのち、接続したまんまでの状態でBetterDS3をインストールすると、BetterDS3上でもPS3コンとBlueToothが認識&接続されている状態が確認できます。
(Better DS3のメイン画面。画面左にDualShock3(Bluetooth)って書いてればOK)
続いて[New]ボタンから「XInput」でキーコンフィグを行います。設定するキーは
だけで、残りのキーはすべて「None」のままです。
その状態でキーコンフィグ設定を作ったのち、「Selected Profile」で作成したキーコンフィグを選択し、[Apply]を押してキーコンフィグを適用します。そのあとは[ControlPanel]からゲームパッドのコンパネを開き、ちゃんと認識ができているかどうかを確認し、PS3コンを前後に傾けたらY軸が上下すればOKです。
PS4コントローラで他のキーコンフィグソフトで設定を行う場合でも、手順としては
「BlueToothで繋ぐ」「SIXAXISのUP/DOWNをそれぞれLeftStick+-に当てはめる」さえちゃんとしていれば、基本的には問題なく動くと思います。
2.現実側のセッティング
ジェットパック(外側)を用意する
背負い型のリュック、メッセンジャーバッグ、ランニングバッグ等を用意して、その中にPSコントローラを垂直で、PSコントローラの背中が自分の背中とくっつくような向きで入れます。この際、PS3コントローラは自分の首に近い位置に入れるようにすると快適に操作できるようになります。
バッグが大きくてPS3コンが腰付近まで落ちてしまう場合は、身近にある空き箱等を入れてカサ上げをしてみてください。
手近にちょうどいいバッグがない場合は、展示でも実用したこちらのランニングバッグを試してみてください。
ランニングバッグ3 ブラック BR017BK : 【BODYMAKER / ボディメーカー 】 BB-SPORTS
- 出版社/メーカー: BODYMAKER
- メディア: その他
- この商品を含むブログを見る
バッグを開けるとメッシュのポケットがありますので、この中に350mlの空き缶を入れて、その上にPS3コンを挟み込むとちょうどいいです。
これを こうじゃ!
椅子の回転をPCが検知できるようにする
続いて椅子の回転をPCが検知できるようにします。
100円ショップで売っているゴムとマジックテープが一体化したゴムバンドと、100円ショップで売ってるマジックテープ単体、それとマジックテープの粘着で自重を支えられるくらいの比較的軽めのマウスを用意します。
- マジックテープ一体式のゴムバンドを椅子の上に巻きつけます。
- マウスの後ろにマジックテープを貼り付けます。
- 椅子の軸に巻きつけたマジックテープに、マウスを下向きにくっつけます。
マウスを椅子に貼り付ける際は、マウス背面の赤外線センサーが椅子の下側の軸を読み取るような位置にうまく貼り付けてください。写真ではマウスの赤外線センサーをより確実に検知させるために、マウスパッド代わりにマスキングテープを下軸に巻き付けています。
うまくセッティングができると、下の画像のように椅子の回転角度がそのままマウスの動きにマッピングしてくれます。ゲーム内部ではこのマウスの移動ベクトル値を、VR空間内の体のヨー方向の回転に割り当てています。
3.プレイの準備をする
- PSコンをBluetooth接続させ、通信されてる状態でバッグに突っ込みます
- バッグを背負います
- マウスを貼り付けた椅子に座ります
- こちらのトラックボール式グリップマウスを持ちます。準備が面倒な場合は普通のマウスの手持ちでも良いです(ここはOculus Remoteで代用するつもりだったのに対応するのすっかり忘れてました・・・すみません)
AGPtek ワイヤレス指ハンドヘルド充電式 USB 2.0トラックボールマウス 3D光学式 MacBook / PC + 適用
- 出版社/メーカー: AGPtek®
- メディア: エレクトロニクス
- この商品を含むブログを見る
- ゲームを起動してEnterキーを入力すると、操作モードが切り替わるようになっているので、アーケード操作にします。
- マウスのホイールクリックがゲーム開始/終了時のリトライボタンになっているので、あとはゲームをひたすら楽しんでください。
- 椅子の回転の検知は、時間が経過するとだんだん判定がズれてきて、VR空間内で体を正面に向けた時の方向と、実際の進行方向が変わっていきます。
そうなった場合、手元のトラックボールを左右に動かして、自分が正面を向いている時はVR内の画面上の矢印も正面が見える位置に調整をしてください。
4.おわりに
アーケード操作の下準備の手順は以上です。
ちなみに、OculusTouchやHTC vive+viveコントローラに今後対応していけば、こんな面倒なことをしなくても、片方のコントローラーを背中にくっつけるだけでハード側の対処は終了するので、それぞれのハードが手元に来次第、順次対応を進めていく予定です。値段的には現行の方式のほうがいちばん安上がりなのでこれはこれでアリなんですけどね。
Oculus Touch初体験の雑感まとめ
表題通りです。
PSVRの予約開始日である06/18(土)に秋葉のベルサール1Fで行われてたNVIDIAのイベントで「究極のVR体験」なる事前予約制の体験会があり、サイトのイメージ画像でOculusTouchが使われていたので『これはひょっとしてTouchを体験できる大チャンスでは・・!』と意気揚々に応募してきました。
んで、体験の感想をTwitterで連続ツイートをしたんだけども、Twitterだとあとで見返したくなった時にちょっと面倒なので、ブログで引用ツイートをまとめておこうかなと思って。
といいうワケで以下引用まとめ。
さて、落ち着いたところで改めてOculusTouchの雑感を連続投稿。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
もうファーストインプレッションは「軽っ!」の一言に尽きる。
比較になる身近な持ち物としてはPS3(4じゃない)コントローラを真っ二つにしたのと大体同じ感じ。 pic.twitter.com/OoZGXlowqV
中指と人差し指の位置にトリガーがあって、PSコンや箱コンのLRキーはそれぞれ下のキーだけが押し込み式だけども、Touchは両方とも押し込み式。押し込みの感触はGCコンのZトリガーと同じ重さで、深さはもう少し浅め。押し込みきった先にもう1ボタンがあったかどうかはちょっと不明。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
振動機能に関しては、だいたいWiiリモコンとPS3コンの間くらいの振動の強さだったかな。ゲーム内の各種フィードバックを振動によって伝えるぶんには充分な感じ。しかしよく振動センサーも突っ込んでこの軽さにできたなぁ・・。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
体験コンテンツはBulletTrain。ゲーセンにあったタイムクライシスをより体感型にした感じで、そのへんに落ちてる銃を拾って撃ったり、手榴弾を投げたりする。敵の弾は常時マトリックスの弾除けシーンみたく超スローで自分の周囲に浮いていて、それを掴んで敵にぶん投げることもできる。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
銃の操作方法は、落ちてる銃の近くに手(Touch)を持ってって、その状態から中指トリガーを握ると持てて、人差し指トリガーを引くと撃てる。中指トリガーを離すと持ってる銃を離せるので、弾切れになったら銃を放り投げ、別の銃をまた持って撃つ。狙いの定め方は本物の銃とまったく一緒。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
ちなみに右手と左手で操作方法は同じなので、2丁拳銃で撃ちまくることも可能。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
あと武器には手榴弾もあり、こっちは握ってそのまま投げるんじゃなくて、握ったら反対の手をもってって、人差し指のトリガーでピンを抜く操作をしてから投げる。 pic.twitter.com/J9sJaDQcdz
あとこの照準を見る狙い方!ファミコンの光線銃でも同じことができてたけど、PCマウスFPSやwiiリモコン風のポインティング式が主流になってから長らく失われてたから、やっとコンシューマに「本物の操作」が戻ってきたのでホント大感激!! pic.twitter.com/b5mmBb5q4K
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
ゲーム内の移動はTouchの表面にあるアナログパッドを進行方向に倒すと、ゲーム内10Mくらいの範囲内にいくつかワープ先が表示されて、
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
移動したいワープ先に手を向けた状態でアナログパッドをニュートラルに戻すと、その位置に自分がテレポートする。前評判どおり酔いはまったく無し。
ちなみにテレポート先で、ゲーム内での自分の体の向きと、現実の自分の体の向きと異なる場合があるのはちょっと違和感があった。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
プレイ中に立って回ることはOculusもできるので、ここはちゃんと自分で回りたかったなぁ。
Touchのポジトラの精度に関しては、地面の空き缶を拾う時に1回だけ範囲外になったらしく、そのときは拾いたくても(VR内で手が)届かない状態になったけど、それ以外はまったく問題なし。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
なので2コ目のセンサーの置き場所はゲームによって最適な位置が変わるなーと思った。
しかしマジ、Touchの「持つ」「離す」の自然さは、本当に素晴らしかった・・viveコンでもグリップ部分に固めのボタンがあって、強く握るとそのボタンが押し込まれて「握った」という状態で扱えるけど、Touchは本体の軽さとトリガーの軽さもあいまって、より自然に持った感覚になれる。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
あと本体が軽くて、モノ持ってるって気にならないので、よりいっそうVR内に「手」があるっていう意識になれるんだなと思った。ただ、この本体重量はVR内で持たせるモノ次第でシンクロ率が変わると思う。例えば弓矢は現物もそれなりに重いのでこれはviveコンの方が向いてそう、とかね。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
Touchの連続ツイートDone。
— まっつん◆SW1/SWF8io (@n_mattun) 2016年6月18日
この連続ツイート埋もれちゃうのもったいないから、自分のブログでセルフまとめでもしておこうかしら。
いやホント、この完成度はマジで期待しかない。発売日の発表はよ!
【拡散希望】VRHMDのVR酔い防止カメラ『Grid』の紹介【アンケート集計中】
タイトルちょっと宣伝気味でw
前の記事「Oculus+FPS視点のカメラ左右操作時のVR酔い対策を思いついて試したらかなり良かった件」以降、より詳細にVR酔いの原因と解決策を自分なりに調べたところ、前記事のようなTPS視点への遷移ではなく、一人称視点のままでVR酔いを防止できるカメラが作れたっぽいので紹介します。
(実際に体験できるソフトも本記事の最後に置いてあります)
体験用ソフトと合わせて、このカメラの効果の確認のためのアンケートフォームも用意しています。アンケートの結果はVR界隈の共有知見として後日公開を行う予定でいますので、みなさんぜひ体験&アンケートにご協力ください!
※ちなみに、いくつかのVR勉強会にこのカメラを持ち込んで何名かのVRエンジニアに口頭で感想をいただいてますが、かなり好評です。
既知のVR酔い対策の概要と、制作に至った背景
カメラの回転運動を伴うVRコンテンツを作る上で発生する「VR酔い」について、現在有効とされている主な対策は
- カメラ(キャラクター)の移動を一方方向に制限する
- カメラの回転を遅くする
- ポインティング先にテレポートする
- カメラの直前面に固定物となるコックピット、黒メッシュフレーム等を配置する
- アバターとカメラを切り離し、神視点にする
- 現実側でプレイヤーがカメラと同じ方向に回り、視覚と体感を一致させる
などがありますが、これらはいずれも従来の一人称視点コンテンツのカメラ操作、移動方法とは異なるため、同種の操作感を下敷きとした、VR内で自由に動き回るコンテンツが事実上作れないという非常に大きな制約があります。
今回作ったVR酔い防止カメラ「Grid」は、その制約をとっぱらうために、可能な限り従来のカメラ操作入力と同様の操作感になることを意識しつつ、効率的にVR酔いを防ぐことを目指して作られました。
VR酔い防止カメラ「Grid」の基本説明
カメラ操作開始時に、カメラを囲うように球形のグリッドが表示され、カメラ操作中はカメラの代わりにグリッドが回転(経度線が描かれた地球儀の中心にカメラがあるようなイメージです)。回転しているグリッドの線が中央に固定表示された赤線に触れた時に、グリッドの間隔と同じ角度ぶん、カメラが瞬時に回転します。
酔いを防ぐために考慮したこと
- 加速度(だんだん速く/だんだん遅く)を伴ったカメラ移動は酔いやすい(OculusベストプラクティスガイドP25あたりに書いてあります)ので、なるべく等速(同じ速度)での移動や、瞬間移動などを使うようにする
- 「予想外のカメラの動き」も酔いを引き起こす原因のひとつなので、カメラが動く時は予めユーザーが動くことを予測できるようにする
- カメラ回転中、移り変わる景色に意識が向かないよう、景色以外に注視ができるオブジェクトを用意すること
Gridが酔わない理由
- 景色以外に注視するオブジェクトとして、
カメラ操作中は視線中央に赤線が固定表示される(ので酔わない) - グリッドが赤線に触れる様子が見えるので、
カメラ移動発生の瞬間を確実に把握できる(ので酔わない) - 移動発生から次の移動発生までのタイミングは基本的には等間隔になるので、常時、次の移動発生のタイミングを的確に予測できる(ので酔わない)
- カメラ(景色)の回転は瞬間的に行われる(ので酔わない)
- グリッドの形状そのものが、既知のVR酔い対策案である
『カメラ前面に黒メッシュを配置しておくと酔い防止になる』
と似たような形をしている(ので酔いにくさに貢献しているハズ)
※ちなみにこれは開発時に意図したものではなく、まったくの偶然でしたw - 「正面を向いてカメラを左右に回す」よりも、人によっては「上を向いてカメラを左右に回す」方が非常に酔いを引き起こしやすいのですが、各グリッドは球の正面よりも球の天面の方が密集している(ので上向き回転でも酔いにくい)
※ちなみにこれも開発時に意図したものではなく、偶然こうなりましたw
Gridの他のメリット
- 最初に書いたとおり従来の一人称視点ゲームと同じカメラ操作感になるので、酔いを防ぐ目的でゲームシステム自体に制限をかけたり、特殊な操作方法をユーザーに強要しなくて済む
- 一人称視点だけではなく、TPS視点のゲームへも応用可能
(神視点カメラ側の周囲にグリッドを表示し、アバター周辺は何もなし) - グリッドの目盛り間隔はスクリプトで可変指定できるので、
個々のユーザーの体調や酔いにくさに応じて柔軟に調整、対応ができる - グリッドの目盛り間隔を少しづつ変えていくことにより、VR酔いを段階的に克服することができる可能性がある(!)
問題点
- カメラ操作中、視界にずっとグリッドがパタパタ回転してるのがやや邪魔くさい(ただこの点は、カメラの移動が発生するタイミングを操作している本人が知覚した後であれば、グリッドを消しても大丈夫なんじゃないかなという気もしています。あとコンテンツ自体に夢中になってると、わりと気になりません)
- 現実ではあり得ない景色の回転になるため、カメラ回転中はVR空間への没入感が損なわれる
まとめ
VRコンテンツを作る以上、VR空間に対する没入感は非常に重要です。
が、VRHMDが今後様々な分野への応用が期待される中で、コンテンツの種類、目的によっては『操作への不満や酔いへの不快感が解決できるのであれば、没入する快感を多少犠牲にしてもそちらを選ぶ』というケースも出てくると思いますので、そのようなケースではGridが非常に有効な選択肢になり得るのではないかと考えています。
そしてここまで、GridがVR酔いに効くことを前提に話を進めてきていますが、OculusベストプラクティクスガイドのP17あたりに「アプリ開発者自身のVR酔い防止経験談はアテにしてはいけない(意訳)」と書いてある通り、このカメラが本当に効果があるかどうかは、他の方の体験&感想があって初めて立証されます。
ので、ぜひ皆さん体験+アンケートへのご協力、よろしくお願いいたします!
※ちなみに「空を飛びながら周囲を見回し、目的地に飛んで行く」という、VR酔い上等なコンテンツを作ってる自分にとって、Gridが酔い解決の大きなきっかけになりそうで非常にホクホクしています。実戦投入にはもう少しカスタマイズが必要そうですが。
サンプルプログラム本体とアンケートフォーム
VR酔い防止カメラ「Grid」体験アンケート(Googleフォーム)
追記(2016/10/29)
Gridの成果を『「予測と体感の不一致」説によるVR酔いの説明と対策方法」』
というスライド内で発表しました。
参考資料
Oculus+FPS視点のカメラ左右操作時のVR酔い対策を思いついて試したらかなり良かった件
VR酔い、なんとかしたいですよね。
上記、MoguraVRさんの記事でいろいろな対策方法が紹介されていますが、おそらく基本的な考え方は回転している画面をユーザに注視させないために、代わりとなる固定オブジェクトを画面内に表示するだと思います。
で。私のコンテンツは「FPS視点で空を飛び回る」をコンセプトにしているので、このへんの酔い対策は何らか考えなきゃいかんなーと思っていまして、こんな方法を編み出してみました。
コード的には難しいことはしていなくて、ただ単に
ゲームパッドのカメラ左右操作の入力値をモデルとカメラとの距離情報にも割り当てて、カメラ回転の時はやたらモデルが近いTPS視点になるという代物です。
これならカメラが回転していても、その時に注視するオブジェクトは固定されたモデルの背中になるので、体感ではかなりの*1酔い低減になりました。
検証用のexeファイルはこちら。
OculusRift カメラ左右操作のVR酔い対策 検証用ソフト - BowlRoll
※(2016/01/01追記)
すんません、ただいま検証用ソフトを丁寧に作り直しているので公開を一時停止しました(特にカメラ周り)、再配布まで今しばらくお待ちください。
※(2016/05/28追記)
ここからさらに研究を重ね、もっと良いカメラを作ることができたので、体験用ソフトはそちらをご利用ください → VRHMDのVR酔い防止カメラ『Grid』の紹介
これ、FPS視点のOculusゲームのVR酔い対策としてめっちゃ低コストで実現できるので、他の開発者もぜひ試してみてください。そして実際に酔い低減効果が認められたかどうか、私のtwitter(@n_mattun)などにぜひお知らせいただければと!※そして「おいこれでもやっぱり酔うじゃねーか!お前がVR酔いに強いだけだろボケナス!」と言われるまでがセット・・・じゃないといいなぁ。
*1:初回テストであまりにも自分が酔わなかったので「これは共有せねば!」と、コーディング作業をぶん投げてこの記事を書き始めたくらいに。
VR体験型ゲーム「飛べると!」の制作時の知見まとめ
この記事はOculus Rift Advent Calendar 2015 の9日目です。
(昨日 の記事は@hidex97さんによる「VRは健康!!!」でした)
Oculus・VR界隈で体験型ゲームを作ったり、たまにOcufesスタッフでも出没する@n_mattunです。今回は拙作の体感型VRゲーム「飛べると!」の初回リリースから現在までの変更点を書きながら、今まで得た知見を紹介していきます。
本記事が他のVRコンテンツ制作者へのヒントになれば幸いです。
そもそもどんなゲームなのか
背中に背負わせたジェットパックの出力方向を上半身の動きで制御して飛び回り、VR世界に浮いてる風船を制限時間内にたくさん割ろう!という、一人称視点の体感型ゲームです。
(この画像は出展時に使ってる説明書です)
Oculus DK2が出回りはじめて約1年半、VRコンテンツも数多く増えてきていますが、前後左右+上下の360度のVR空間を、ユーザの意思で自由に動き回らせるゲームとなると意外と数が少なくて、さらに体の動きをそのまま操作性に取り入れるコンテンツとなると、今のところ世界中見回しても本作だけだと思います。やった!世界初だ!!(自称)
操作方法
出力方向の検出
体の動きをエンジンの出力方向にマッピングするという操作系は当初から今までずっと変わっていませんが、軸の取得方法でマイナーチェンジがあったりしています。
- ロール
操作方法:体を左右に傾ける
検出方法:SIXAXISのロール回転を利用
→OculusRift本体のロール回転の値を使うように変更しました。
みんな背中より頭を動かすんだねw - ヨー
操作方法:座ってる椅子で体ごと回る
検出方法:椅子にマウスを付け、X方向の移動を利用
→長時間運用でマウスが物理的に斜めにズれてくると値が変わるため、
XだけではなくX方向とY方向の移動量のベクトルを使うように変更。
※椅子の下にマウスはこんな感じでくっつけてます
PS3のSIXAXISの検知方法には、去年のAdventCarenderで紹介した「BetterDS3」を引き続き使っていますが、次のバージョンではPS4のコントローラに引越しをしようと思い、現在情報収集中です。
今のところ「DS4 windows input」がXInput形式でSIXAXIS、振動、タッチパッド、BlueTooth認識してくれ、SIXAXISの検出範囲の調整もでき、とても良さそうです。BlueToothドングルはCSRと東芝のドライバだと動かないという罠があるので、注意しましょう。私はこれ使ってます↓
I-O DATA Bluetooth4.0+EDR/LE準拠 USBアダプター USB-BT40LE
- 出版社/メーカー: アイ・オー・データ
- 発売日: 2013/05/20
- メディア: Personal Computers
- この商品を含むブログを見る
持たせたコントローラの変遷
主にエンジンの出力で使う、手に持たせるコントローラです。
ここはだいぶ試行錯誤してます・・・
- 第一弾:wii/wiiUのヌンチャク
ELECOM ゲームパッドコンバータ USB接続 Wiiクラシックコントローラ対応 2ポート ホワイト JC-W02UWH
- 出版社/メーカー: エレコム
- 発売日: 2013/02/16
- メディア: Personal Computers
- この商品を含むブログを見る
キー割り当て
Zトリガー・・・・エンジン出力
Cボタン・・・・・エンジンブレーキ
アナログキー・・・地上にいる時のキャラの移動→グリップ感は最高だけど、有線接続のため取り回しに難あり。
- 第二弾:グリップ式トラックボールマウス
2種類の使い方ができるトラックボール付きマウスがコードレスになって新登場!! トラックボール付き コードレス マウス 上海問屋 DN-69528の通信販売【上海問屋】 | 上海問屋
キー割り当て
上トリガー(クリック)・・・エンジン出力
下トリガー(右クリック) ・・エンジンブレーキトラックボール・・・・・・使用しない(椅子の回転検知と同じヨー回転)
→ワイヤレス化に成功したものの「操作ボタンが2つあること自体がユーザを悩ませる」ということに気がつき、コントローラ側はエンジン出力のみに絞ることにする。
- 第三弾:トリガー式トラックボールマウス
AGPtek ワイヤレス指ハンドヘルド充電式 USB 2.0トラックボールマウス 3D光学式 MacBook / PC + 適用
- 出版社/メーカー: AGPtek®
- メディア: エレクトロニクス
- この商品を含むブログを見る
(リンク先のやつは電池式+副ボタンさらにEscとEnterキーがマッピングされてますが、私が持ってるやつは充電式で、副ボタンは右クリックと、なぜかプレゼン用の赤外線レーザーの出力機能がありますw)
キー割り当て
メイントリガー(クリック)・・エンジン出力
副ボタン(右クリック) ・・・・使用しない
トラックボール・・・・・・・使用しない(椅子の回転検知と同じヨー回転)
マウスホイールクリック・・・ゲーム開始/ゲームリセットワイヤレス化+1ボタン化にした現行のバージョン。
マウスの形状的に、人差し指が必ずメイントリガーにマッピングされるのがグッド。さらに別途、中クリックでゲーム開始/リセットをできるようにして、Oculusを外さずにリトライできる体制も作りました(主に自宅でのデバッグ用です)
複数のプレイスタイルに対応
初版ではPS3コントローラ背負い+手元にコントローラ+椅子にマウスという特殊環境のみでのプレイスタイルしか対応していませんでしたが、ソフト配布することも想定し、現在は従来のゲームコントローラでも遊べるよう、外部iniファイルから
・PS3コン背負い+手元にマウス+椅子にマウス
・PS3コン持ち+SIXAXISで出力方向調節
・PS3コン持ち or XBOXコン持ち+アナログスティックで出力方向調節
など、いくつかのプレイスタイルを選べるようにしてあります。
出展時の立ち回り
実際にプレイしている様子を見るのは制作者にとって何よりも嬉しい瞬間なんですが、オペレーションを効率的にしてあげないとその様子を見る時間もなかなか確保できません。立ち回りは効率的にいきましょう。
説明書
本記事の冒頭に紹介した説明書です。最初は説明書は無く、苦労しながら現場で口頭で説明してましたが、ちゃんとマニュアル化しました。載せてる項目は
- ゲームタイトル
- 体験者のプレイの様子が一見でわかる写真
- ゲーム画面のスクリーンショット
- ゲームの簡単な説明文
- ゲームの目的
- 操作方法
- OculusRIft自体の簡単な説明
- 制作者名と連絡先
こんな感じです。この説明書をA4カラーで印刷してクリアファイルに入れ、体験待ちの人に渡しています。これを読んでもらうことにより口頭説明の時間が省略でき、かなりスムーズにブースが回るようになりました。
ちなみにけっこう忘れがちなのが「ゲームの目的(ゴール)」。これが明示されていないとユーザは「どうすればいいの?」と手が止まってしまうので、説明書なりゲーム内なりで終了条件をキチンと説明するか、ゲーム内で制限時間やゴール地点を設けるなりして、ユーザーが『終わりが明確にわかる』状態をちゃんと用意しておきましょう。
プレイ前の口頭説明時に気をつけていること
コントローラを渡す際は、まずマウスを見せ、使うのは1ボタンのみであることを説明し(この時点ではマウスは渡さない)、次にOculusをかぶせてVR世界を見渡してもらい、そのあとトリガーに指を通すように渡します。
ちなみに操作説明時は「Aボタンが●●、Yボタンが●●」と言われてもOculus装着後はそのボタンラベルが物理的に見えないので、「人差し指にあるボタン」という風に、指ベースに説明するのがコツです。
特殊装備
日本のVRコンテンツ制作者が大好きな特殊装備について。
飛べると!ではPS3コントローラを背負わすために使っている肩パッド+サスペンダーがそれにあたります。最初1セットのみでしたが、サイズもS・M・Lとバリエーションを持たせ、現在は予備含め5セット用意していて、オペレータが複数人いる時は体験待ちの人に先に装備してもらうというローテーションを組めるようにしてあります。
ただ装着の手間は相変わらずなので、小さいリュックとかにして装着の時間をさらに削減するのもアリかなぁと思ってたりしてます。
リアルタイム調整
ヨー軸の出力方向の検出で使っている「椅子マウス」について、激しい回転を連続で行うとマウスの位置がズれ、ヨーが高頻度で取得できなくなるというわりと致命的な問題があるのですが、ここは年明けの展示以降
『プレイ画面に表示されている矢印マークからヨー方向を常に監視し、椅子と矢印の向きがズれてきた場合は自分の手元にも持っているトラックボールマウスから直接調整する』
という、かなり強引な運用でカバーし続けています。
ここの解決方法については、椅子の側面かプレイヤーの腰付近にOculus Touchの片方をくっ付けてトラッキングさせるという資金力で殴る方向で考えてますが、他にもう少しコスパ的にも良いアイデアがあったら誰か教えてください・・w
ゲームバランス調整
出力エンジンの加速度
初回バージョンでは加速度はかなりピーキーで、行きたい方向に行くのはほぼ不可能でしたが、現在のバージョンでは地球防衛軍のペイルウィング/ウィングダイバーの経験、またはパイロットウィングスのロケットベルトの経験が豊富であればかなり自由に飛べるようになっています。
ちなみに後期のバージョンでは、落下時の火力を上昇時より強めに設定し、落下からのリカバリーをやりやすいようにしています。
風船の数と場所について
線路沿い、高速道路沿い、ビルの屋上、歩道橋の下など、なんとなく目指したくなるような所に置きつつ、空中にもランダムに散らして置いています。また風船の数は「数が多すぎてどこを目指したらいいかボやけてしまってる」という的確なレビューをいただいたことがあり、そこも適切な数になるよう自分なりに調整しています。
ちなみに開発時の風船の置き方については、Unityの3Dキャンバス上にいちいちドラッグで置いていくのは大変そうに見えたので、シーンプレビューで自分が飛びながら任意のボタンを押すと現在の座標を出力する状態を作り、その座標データを元に風船をスクリプトで配置していきました。
マップ
マップデータは「Japanese Otaku City」を利用しています。
マップの端っこにたどり着いた場合、どうやってごまかそうか・・という問題に対しての試行錯誤です。ちなみに一般的なゲームでもありがちな「空中に『見えない壁』があって、そこから先は『作戦外エリアです』とかもっともらしい理由を付けて行けないようにする」という解決策は、飛行時の爽快感を大きく損なうことと、見えない壁にあたってユーザの予測なしにいきなり慣性が変わると即VR酔いに繋がるので、ここは避けるべき問題と捉えていました。
- 第一弾
マップ端まできたら慣性を維持しながら反対側の画面端に演出付きでワープするようにしていた。→ユーザからすると画面端に到達してしまう焦りを伴った状態でいきなり別場所に飛ばされると意味がわからない状態になっていた。
-
第二弾
ワープ機能を無くして、街の端っこまで来たら地上に降りてもらい、反対側を向き直して飛びなおすように口頭で案内するようにした。
→オペレーションが大変なうえに「ひたすら真っ直ぐ飛び続ける」ということができなくなり、ゲームとしての爽快感が失われた。 -
第三弾
体験しているユーザにはわからないように、マップを無限ループ化。
方法は以下のとおり。
・同じ地図を3x3で9個配置
・地図上の線路と高速道路を、外側の地図と繋がってるように見せるために
角度を微調整
・ゲーム上での飛行可能区域は中央の地図だけにし、
中央地図の画面端まできたら、慣性を維持しながら
中央地図の反対側の画面端にワープ。
(ユーザーからすると画面上の変化は無い)→策としては成功したが、当然のように重くなり、オクルージョンカリングをかけてもOculus警察が見たら助走をつけて殴るレベルのバージョンになった。
(同じ地図を3x3配置してる様子。実際の飛行範囲は赤枠部分)
- 第四弾
現行のバージョン。ゲームのコンセプト的には秋葉原の街がちゃんと再現されてる必要は特にないので、許容できる程度のFPSがでるまで、建物の数をひたすら間引き。
また風船も自分から離れている場合はアルファさせないなど、わかる範囲での軽量化を施す。
マップに対する手加えはいったんこれでFixしていますが、無限ループ実装でひたすら真っ直ぐ飛び続けられるものの、今度はそのせいでプレイヤーがほとんど旋回しない、やや単調なゲーム性になってしまっているので、次のバージョンでは飛行操作のひとつひとつを楽しむことに主眼を置いた、自作ベースのアスレティックなマップを提供しようかと思っています。
今後の予定(ひと段落したのでソフト配布も始めました)
今後ですが、OtakuCity上を飛び回るこのバージョンはこれでいったん開発終了にして、現在はUnity5.x環境下で大幅に作り変えた新バージョンをまたイチから作り直しています。新しいバージョンをOcufes等のイベント展示でお目にかけるにはまだまだ時間がかかりそうですが、どうぞ気長にお待ちください。
また、これでいったんひと段落したことだし、Oculus Runtime SDK 0.6.0.1以下でしか動きませんが、現状のバージョンのソフトを配布します。
こちらのアドレスからダウンロードしてください。
VR体感型ゲーム「飛べると!」 2015年版 - BowlRoll
コントローラ手持ち式でも普通に楽しめるかと思いますが、
がんばれば自宅でもPS3コンを背負ってワイヤレスのトラックボールマウスを用意した上で椅子にマウスを付けることも可能だと思いますので、面白そうだと思った方はぜひチャレンジしてみてくださいw
明日のAdvent CarenderはOcuFesの縁の下の力持ち、@mkt_さんの「OculusRiftデモ展示Tips」です。
Oculus Riftペラいち説明書(メモ用)
OcuFes体験者に「Oculus Riftとは何ぞや?」って部分をザックリと説明するためのペラ1枚の説明書っていうつもりで書いてたのに、A4用紙1枚じゃ収まりきらないっぽい物量になってしまった・・・w とりあえず推敲晒し用にブログ上にドキュメント仮置きしておきますので、@n_mattunまで突っ込みをお願いします。
【A4用紙1枚にまとめたpdfできました、こちらからダウンロードできます】
用紙表面
■Oculus Rift(オキュラスリフト ※)とは?
超高精度のヘッドトラッキング機能と3D表示機能がついたヘッドマウントディスプレイ(HMD)です。自分の頭(首)の動きと、HMD内で映る3D世界のカメラの動きが同調することにより、あたかも【自分が仮想世界内に存在している】ようなバーチャルリアリティ体験(VR体験)ができる、素晴らしいガジェットです。
※機器自体の正式名称は『Rift』ですが、国内では「Oculus Rift」または「Oculus」という呼称が一般的です。本紙では「Oculus Rift」で統一しています。
本体の基本機能説明は以上です。が、実際に体験した方なら言葉では伝わりきれない感情をいっぱい持ってると思いますので、ぜひその感想を友達に伝えてくださいw
■Oculus Riftをかぶるとどんな体験ができるの?
アニメやマンガの世界にそのまま入り込めたり、会うことができなかった「俺の嫁」に会いにいけたり、バンジージャンプ、乗馬体験といった現実でそうそう簡単には体験できないコンテンツの仮想体験や、現実では絶対にできない「重量級ロボットのコックピットに乗って戦う」や「空を自由に飛び回る」といった仮想体験ができるようになります。
■でも、お高いんでしょう?
Oculus Rift本体の値段は$350、送料や関税込みで約5万円弱です。それプラス、それなりのスペックのPC本体1台で、むしろこっちの方が高くつきますw が、その合計金額で未体験の近未来が買えるのであればハッキリ言って安いもんです(※)。購入はOculus VR社の公式サイトでできますが、現在販売されているものは「Development Kit(開発者版)」なので、PCに詳しくない方は製品版まで待った方が無難です。それでも今回の体験で「そんなの待ってられない!」となった方は、先日発売されたこちらの書籍
Oculus Riftでオレの嫁と会える本 UnityとMMDモデルで作る初めてのバーチャルリアリティ: 桜花一門, ゆーじ
http://www.amazon.co.jp/dp/4798137464
に購入の手順、最初のセットアップ、WEB上で配布されている無料アプリ紹介、さらには自作ダンスアプリの作り方まで丁寧に書いてあるので、こちらを読みながらの購入をお勧めします。(MMDモデルを用いたアプリを作成、公開する際は、必ずモデルに同梱されたReadmeや配布サイトの利用規約、モデルキャラクターのライセンス等をよく読み、記載条件を遵守するようにしてください)
※もっと安いVR機として、手持ちのスマホをHMD代わりにするカジュアルなHMDキット「ハコスコ」というものもあります。3D表示には対応していませんが、なんとお値段たったの1000円!
■Oculus Riftを楽しむために必要なPCのスペックはどのくらい?(入りきらないのでトル)
CPUはi5クラス、メモリは8Gもあれば問題ありませんが、グラフィックボードは万単位のものが【ほぼ必須】です。ノートPCでもモバイル用のグラフィックボードが載っていればそれなりに動きますが、将来的な拡張に不安があります。ゲーミングPCブランド「G-tune」と共同で『OcuFes監修PC』を提案しているので、これを機にPCの新調を考えている方はご一見ください。
OcuFes監修PC |G-Tune
http://www.g-tune.jp/ws_model/ocufes/
■Oculus RiftのようなVR機って他にもあるの?(入りきらないのでトル)
あります、以下いくつかご紹介。
====
・[未発売] Project Morpheus(プロジェクトモーフィアス)
現在ソニーが開発している、Oculus Riftとまったく同じコンセプトのVR機。PCではなくPS4に接続する想定で開発されており、完成したらゲームメーカーによる良質のゲームがVRで体験できるようになることが期待されています。
・[日本未発売] GearVR
Samsung社とOculus社による共同開発で作られたVR機。本体にスマートフォン「GALAXY Note 4」をはめ込み、Oculus Riftと同様の機能を実現しています。機器の開発にあたってOculus社の技術力を結集したモバイル用のSDKが備わっているため、とてもモバイル機器とは思えないトラッキング精度が実現しています。
・[発売中] ハコスコ
「もっとお手軽にVR体験を」を旗印に作られた、ダンボール組み立て式のVR機。GearVRと同じくスマホを本体に差し込み、スマホの加速度検知機能を使ってヘッドトラッキングを実現しています。対応コンテンツは同名のスマホアプリをDLすることにより体験可能。お手軽&安価にするために3D表示機能は無いが、値段(なんと1000円!)を考えれば充分。
スマホVRのハコスコ | 1000円で手軽にバーチャルリアリティ体験
====
ほかにも国内外問わず、現在数多くのVR機が開発されている最中です。世はまさにVR大航海時代の幕開け・・・!
■なんか酔いそう
適切に開発されたコンテンツと動作環境であれば、基本、酔いません。(特に今回の展示だと、メイドさんの着せ替え体験は酔いはゼロでしょう)なお、OcuFesではひとりでも多くのユーザに快適なVR環境を提供できるよう、開発者が個人、企業の枠組みを超えてノウハウを共有し、ソフト、ハード、さらにはUX(体験スペース)という多方面で、様々な努力を行っています。
■OcuFes(オキュフェス)とは?
・日本全国民、1億人にVR文化を体験させる
・VR作家に発表の場と発表の喜びを与える
・VR作家達の知識や人脈のハブとなり、VR文化をもっと加速させる
この3つを柱とした、パーソナルVRという新しい文化を支える開発者団体です。
URL:http://www.ocufes.jp/ 代表:桜花一門( @oukaichimon )
文責:まっつん◆SW1/SWF8io ( @n_mattun )
用紙裏面(両面印刷できたらw)
■VR機を使った代表的な作品って何がある?
・まさにアニメそのまんまのSAO体験「ナーヴギアデモ」
リンクスタート! Oculus VRが「ソードアート・オンライン」のナーヴギアデモを公開 - ファミ通.com
http://www.famitsu.com/news/201407/04056592.html
・進撃の巨人 序盤の名シーンを追体験できる「進撃の巨人展 360°体感シアター 哮」
巨人のデカさがヤバすぎる! 『進撃の巨人展』でOculus Riftをかぶってきた - 週アスPlus
http://weekly.ascii.jp/elem/000/000/278/278687/
・気分はジョッキー VRアトラクション「Hashilus(ハシラス)」
超会議3:Ocufesチームが乗馬ゲームHashilusを出展。Oculus+乗馬マシンで仮想荒くれ馬にライド - engadget
http://japanese.engadget.com/2014/04/27/3-ocufes-hashilus-oculus/
・ミクさんと握手「MikuMikuAkushu(ミクミク握手)」
何この未来! “初音ミクの握手会”がVRメガネと感触インタフェース装置で実現したぞ - ねとらぼ
http://nlab.itmedia.co.jp/nl/articles/1309/27/news070.html
・ミクさんと添い寝「MikuMikuSoine(ミクミク添い寝)」
MikuMikuSoine(ミクさんと添い寝できるアプリ改)を作ってみた
http://www.nicovideo.jp/watch/sm22268397
・女の子の部屋で家庭教師を体験「サマーレッスン」
Project Morpheusで『サマーレッスン』が体験できる!
興奮、緊張……「ヤバい!」の声続出のユーザー体験会をリポート【動画あり】 - ファミ通.com
http://www.famitsu.com/news/201411/29066814.html
筆者による「VR機の魅力が一見で伝わるであろう作品」という観点で
独断と偏見で選んでみましたが、VRアプリの総量からすると、ごく一部です。
他にも海外製で「日本を代表するアニメ映画監督が作った某子ども向け超有名映画の
『雨降りバス停で、すぶ濡れおばけがきたらあなたの雨傘を差してあげましょ』シーンの体験」なんていう、ものすごいアウトっぽいけどファンからしたら垂涎もののアプリもあったりします。