VR、ゲーム制作、プログラミング。Unity とか Oculus Rift とか。

2016年12月23日金曜日

HTC Vive の音声ミラーをスクリプト制御する (ソーシャルスクリーンのネタバレ対策)

HTC Vive を展示等で利用する際、HMD を着けている人が見ている映像 (あるいは第三者視点の映像) をディスプレイに表示するソーシャルスクリーンは、周囲の人を楽しませ、惹き付けるのに有用なことはよく知られています。

この際、映像と合わせて音声もスピーカー出力できるとより良いことが多いです。

ヘッドフォンの音声を物理的に分岐する、サーバー/クライアント構成をとり HMD 接続 PC とスピーカー接続 PC を分けるなど、いくつか方法はありますが、SteamVR の設定でも簡単に実現できます。

以下のように、「設定」 > 「オーディオ」 > 「デバイスにオーディオをミラーする」でスピーカーを選択するだけで OK です。


さて、ネタバレ対策で一部のシーンでソーシャルスクリーンを隠したいことがあると思います。

映像の方は例えば Unity のカメラ制御などで前面に出せばできるので詳細は割愛しますが、音声ミラーも合わせてオンオフしたいので、オーディオのミラーリングのオンオフスクリプト制御することを考えます。

Unity + SteamVR Plugin 1.1.1 を使っている場合、以下でできました。

(2017/1/15 追記 : SteamVR Plugin 1.2.0 の場合、下記 11 行目、GetString() の引数 "" を削除してください。API が変わっています)


GetString() すると、以下のような文字列が取得できます。

"{0.0.0.00000000}.{4bad97d2-1df8-4fdb-bf3b-ccb574d6ff34}"


これを SetString() してから Sync() すれば反映されます。

ミラーリングしないときは空文字列です。

上記の文字列はデバイスのプロパティのバス関係の末尾と同じなように見えます。


openvr_api.cs には他にも CVRSettings.SetBool(), SetInt32(), SetFloat(), SetString() と複数のセクション、キーの定義があるので、SteamVR の設定の多くはスクリプト制御できるのではないかと思います。

UE 等は不明ですが同様の API があってもおかしくない気はします。

なお、ドキュメントにはなさそうなので保証はできない感じですが、実装も運用もお手軽で便利です。


2017/1/15 : SteamVR Plugin 1.2.0 について

2016年5月6日金曜日

[OculusRift]VRで写真撮ってメールで送るやつ(仮)

VR 空間内で見ている景色を、Leap Motion を使って手をファインダーっぽくすることによって撮影し、そのままメールで送るやつを作っていたので今更ながらまとめました。

(2015 年の夏に作って出展したきり放置しており…)


撮影している様子はこちらです。


撮影すると、登録しておいたメールアドレスに写真が届きます。


みなさんが撮ってくれた写真がこちらです!



VR で旅行して思い出が残せたりすると楽しそうですね。(これを作っていた 2015/8 はともかく、これを書いている 2016/5 現在、多分そういうアプリもありそうです)

課題はやはり、両手で構えてからタイマーで撮影する方式になっているため、瞬間で撮ることができない点です。音声認識で「ハイ、チーズ」といった方法は考えられますが、Oculus Touch などのボタンで撮影した方が手堅いですね。

手でやるなら、動画にしたり連射してあとから選べるようにすると、タイマーの欠点を補えるかもしれません。

なお、メールは一旦ローカルの HTTP サーバー (BlackJumboDog) に送信し、そこから Gmail を経由して送信元アドレスが Gmail になるようにしています。(一般向け展示のための、簡易なドメイン指定系のフィルタリング対策。直接 Gmail にログインしないのは単に認証の実装の手抜きです)

VR アトラクションを細々と作っている身としては、引き続き体験の思い出を残す手段も考えていきたいと思います。(ジェットコースターや観覧車で写真撮るやつ、定番ですよね!)

出展情報


クレジット


ライセンス

ユニティちゃんライセンス
このコンテンツは、『ユニティちゃんライセンス』で提供されています。

2016年4月29日金曜日

ソード&プリンセス(VRロールプレイングアトラクション)

ソード&プリンセスは、姫を助ける勇者になりきれることを目指した VR ロールプレイングアトラクションです。

ギャラリー


あらすじ

長きに渡って魔物との攻防を続けてきたある王国では、王家にのみ伝わる伝説の剣がありました。

ある日、その王家のが魔物にさらわれてしまいます。

勇者であるあなたはダンジョンの奥で姫を見つけますが、脱出しようとするも敵がそれを阻みます。

姫を抱きかかえたまま敵の攻撃に耐えなければならなくなった勇者は、はたして無事に姫を助け出すことができるでしょうか…?

概要

お姫様を、文字通りお姫様抱っこしながら勇者として実際に体を動かして戦う、VR ロールプレイングアトラクションです。

姫の重さと姿勢は擬似再現されており、表情や声 (CV : 四ッ谷ちとせ 氏) も相まって、姫を守りながら戦う勇者になる感覚を演出します。

単に敵と戦うだけではない、勇者になる体験をお届けします。

出展情報


メディア情報


実績

  • Unity VR EXPO Akiba プレイヤーチョイスアワード 3 位、グッドコンテンツアワード 3 位

クレジット

音声

音楽
  • Grief of Souls, Integral One, 勇気の剣 (Wingless Seraph / ユーフルカ 氏)
  • 風を感じて (ZIADARA / DAIZ 氏)

効果音
モデル

エフェクト

ツール

フォント

アンリミテッドスペシャルサンクス
  • リアルよめ氏


2016/07/06 : 動画を追加、クレジット更新
2016/07/09 : クレジット追加
2016/07/14 : 微調整
2016/07/28 : 出展情報更新、実績追加
2016/12/21 : クレジット追加
2017/01/09 : 出展情報更新
2017/01/18 : クレジット一部修正
2017/03/12 : 出展情報、メディア情報更新