第2回「趣味ナレジ」、今回も引き続きVRに関する話題です。また仕事関係ないやつです。
さる2018年9月16日、同人イベント「収容違反インシデント2018」にて、VRを用いた体験型展示を行いました。
テックブログに記事投稿できるこの機会に、せっかくですのでイベントでのVR展示のレポートと反省をまとめたいと思います。
準備
この同人イベントは、「SCP財団」という怪奇創作ジャンルのイベントです。その作品の世界観を体験できるコンテンツを、と考え、自分の出来ることとしてVRブースを出しました。
ただ考えたのは良かったのですが、諸々予定が詰まった結果、作れる期間が直前の一週間という厳しいスケジュールになり、すばやく作る必要がありました。そこでUnityAssetsを最大限活用する方向で進めました。
まずはワールドです。「秘密組織の研究所」が欲しかったため、「3D Scifi Kit Starter Kit」を使用しました。このアセットは、SFテイストな通路が小分けのパックのように用意されており、モジュールとして組み立てることでワールドを作成できるキットになっています。まずはこれを組み立て、迷路を作成しました。
次は小物です。これも「Old Office Props Free」と「Hospital Horror Pack」を使用し、各小部屋をオフィスや病室のようにしました。
ホラーテイストな探索の要素を入れるため、照明は落としました。Unityではライトを落としただけでは完全な真っ暗にはならないため、ライティングの設定を変更し、真っ暗な環境を作りました。
そして懐中電灯です。これは「Flashlight Modern with Script」を使用しました。これをモデルの右手に固定し、参加者が唯一使える光源としました。
単純に探索するだけの"雰囲気ゲーム"でもいいのですが、やはり攻略要素は欲しいところです。ここで、以前から作っていた大型発電機のモデルと、パーティクルアセットの「Particle Collection SKJ 2016_Free samples」で作ったポータルのオブジェクトを組み合わせ、「発電機を再起動して、ポータルを動かし、そこから帰還する」というゲームにしました。参加者はルール等を現地で把握して体験する必要があるため、なるべくシンプルな物を目指しました。
また、短い時間で参加者が順番に体験できるよう、制限時間を設けます。タイマーのイベントを組み込み、残り秒数を常に視界の左下に表示するようにします。ついでにフレーバーとして発電機の状態なども表示し、SF的な雰囲気の演出としました。
最後に画面全体の調子を整えるため「Post Processing Stack」を適用します。光の拡散効果や全体的な色調補正、僅かな色収差効果等を加えました。
一週間でC#を最低限勉強して作った割にはちゃんと動いてくれたので、別の言語でも根幹の仕組みがわかっていれば応用が効く、という師(上司)の言葉を噛みしめる日々でした。
当日
さて、いよいよイベントでこれを運用するフェーズです。
HTC VIVE では、中核となるPC、HMDのセット、そしてトラッキングに必要なベースステーションを設置する必要があります。今回使用した会場では壁への固定等が出来ないため、新規に三脚を購入し必要な高さを稼ぎました。
当日PCを仲間の車に積み込み、会場でセットアップを行ったのですが、三脚が思っていた以上に安定せず、伸ばしたコードの重さで倒れないよう、有効範囲を少し狭めて運用しました。
コンセントの位置の関係でコードの長さがギリギリになってしまい、宙に浮かないように養生等で固定する等、現地での苦肉の策が連続しました。諸々の都合で下見が十分出来なかったのが痛かったです。
また、HMDが直接肌につけるものであるため、イベント向けのHMD用衛生布を購入しておきました。
使い捨てタイプで、1人体験が終わるたびに剥がして新しいものに交換し、回していきます。
そして開場です。そこでイベント特有の"想定外"が発生、予測を遥かに超えた来場数となり、会場の限界近い人数になっていました。運営者としてはめちゃくちゃ嬉しいことではあったのですが、ブース担当者としては焦りに焦ります。
体験1人あたり、制限時間を10分+転換5分の15分で見積もっていたのですが、急遽制限時間を5分、計10分に変更しました。
その後、別配置のスタッフを送ってもらい、その場で整理券を作成、配布してもらいました。
しかしながら、焦ったことが完全に命取りになりました。セットアップの再調整中、電源のついているPCのコンセントが引っこ抜けてしまうトラブルが発生しました。養生で要所要所を固定していたのですが、それがことごとく剥がれており、正直頭が真っ白になりました。
再起動して、PCもUnityのプロジェクトも無事ではあったのですが、最終的に40分遅れでの開始となってしまいました。あの場で参加された皆さんには本当に申し訳なく思っています。
そこからは、他のイベントでVRコンテンツの提供経験のあるスタッフ等の助力を得ながら、Unityの操作を行いつつ口頭で参加者のガイドを行い、最後まで運用しました。この辺りは事前に考えていた内容どおりに進みました。
反省
終わったあとの反省として、来場者数の予測が出来なかった事もありますが、まず現地で慌てすぎたのが何より良くなかったです。コンセントが抜けた時は、最悪PCが壊れて立ち上がらなくなった可能性もあったので、エンジニアとしても運営担当としても大失敗でした。想定外の事態で慌てないためにも、コード長や機材配置等、もっとゆとりを持った構成にすべきでした。ハードウェア面の見積もりが甘かったです。
また、展示の運営面で言えば、VRコンテンツはその性質上、1回の体験で1人しか参加できず、かつその間で安全面のケアやコンテンツ内のガイド等、スタッフも張り付きになる点で、人的リソースを食う展示だったと感じます。
作品世界観を直接体験できる点では非常に優れた表現方法ですが、イベントで実施する上では担当者の配置やローテーション、そもそもUnity+VRを動かせる人員の確保等、諸々の課題を感じました。
今回のイベントでは諸々の改善の余地が山積みで、次回以降も継続するか未定ではあります。
今回体験したかったのにできなかった方や、そもそも会場に来られなかった方のため、何らかの形でこのコンテンツはWEB上でも提供したいと考えているところですが、それはまた別の機会で触れられればと思います。
少なくとも、実際の現場でVRコンテンツを運用したこの経験は、1人のエンジニアとして活かしていきたいと思います。