🖥️

TOKYO GAME SHOW(等ビッグイベント)における、デモ展示の技術責任者の心得

2023/09/23に公開

恋愛メタバースMemoriaを開発するFlamers CTOの設楽(だーら)です。
TOKYO GAME SHOW 2023において、VRデバイスを開発するPICOのブースにMemoriaが出展しました。
https://x.com/memoria_vr/status/1704694258299813909?s=20
PICO 4を用いたMemoriaのデモ展示(試遊)や、人気YouTuberおるたなchannelないとーさんを招待した実演イベントを行い、MemoriaのTGS出展は成功を収めました。

https://x.com/torokeroo/status/1705414088304861688?s=20

今回は自分自身がMemoriaの技術的な運用を担当しました。
様々なトラブルに遭遇し、解決・対処したり、しきれなかったりしながら、なんとかデモ展示を回しました。今回は、その過程から得た学びを記したいと思います。

技術編

本番と同じ方法での起動を、前もって試すこと

  • 本番と同じ方法での起動を、期間よりずっと前もって行っておくことが重要です。
    • 具体的には、同じPC、同じソフトウェア、同じ配信環境での起動などを指します。可能な範囲で。
今回経験した事例(PCとPICOの接続ソフトウェアの違い)
  • 本番では、PCの"PICO Streaming Assistant"というソフトウェアを通してPCからPICOデバイスに配信をしました。これはPCとヘッドセットを有線接続で配信することができるソフトウェアが、現状ではPICO Streaming Assistant一択だからです。
  • 普段は、Virtual Desktopを利用していました。これはWi-Fi環境でのみ利用可能です。
  • "PICO Streaming Assistant"経由で配信したため、設定を新しく行う必要がありました。「VRモードで起動しない(デスクトップ画面だけで起動してVRには投影されない)」「マイクの入力が入らない」などの問題が直前で発生し、とても焦りながら対処することとなりました。
  • 解決できたので良かったですが、「VRモードで起動しない」のような致命的な問題が根深かった場合、イベント自体の失敗に繋がる本当に重要な確認でした。

全ての個体が起動可能かを確認すること

  • 同じ種類の端末であっても、全ての個体で動作確認を行うべきです。
  • これは、例えばインストールされているソフトウェアのバージョンが異なる場合があるからです。
今回経験した事例(ソフトのバージョン)
  • PCとPICOデバイスを接続する"PICO Streaming Assistant"は、PCとVRデバイス間のバージョン差で互換性を失うと、アップデートを強制されます。
  • 今回はPICOデバイス側のバージョンが低くアップデートをする必要がありました。しかし会場ではWi-Fi接続ができず、テザリングも不安定で、その場でのアップデートは困難でした。
  • そのためその個体は使わないこととしました(十分に数を用意していたので助かりました)。

ネットワーク環境が著しく悪いことを想定すること

  • ネットワークが非常に低速であっても、体験を毀損しない方法や、打開策を考えておくことが重要です。
  • TOKYO GAME SHOWでは、通信は全て有線接続で行いました。その際一時的に、通信速度が非常に悪い時間帯がありました。
    • 普段は10秒程度で読み終わるワールドの読み込みが、10分経っても終わりませんでした。
    • (マルチプレイの位置同期や音声に影響を与えるほどではありませんでした。幸い)
  • 今回は、ワールドのキャッシュ機能があったため、事前にバックグラウンドでキャッシュを作っておくことで対応しました。

ネットワーク環境の変化に伴う追加の機材を準備すること

  • PCと有線LANは接続可能か?USB-A to USB-Cへのケーブルの本数は十分か?といった、普段無線で済ませている部分が有線になるからこその機材準備が必要です。
  • 有線LANの形はRJ45と言われます。MacBookは非対応、Windows機も対応しているものと非対応のものがありました。
  • 十分な準備を想定できず、会場スタッフに方に借りることで対処しましたが、本来は必要な機材としてカウントするべきでした。
  • また、ネットワーク環境が悪いことによるアプリケーションの不具合が発生しました。これの対処はもはやイベント運営の域を超えますが、開発中の意識が必要だと感じました。
    • おそらく、非同期での読み込み処理に長い時間がかかり、それが完了する前にScene遷移をしたなどで、メモリリークをしていた可能性があります。キャンセル処理ちゃんとかけてなかった説...

オペレーション編

期間中のリリース・デプロイは基本的には無しとすること

  • 期間中にソフトウェアのアップデート・デプロイをすることは安定性の観点から危険です。安定を保って期間を乗り切ることが大切です。
  • Memoriaの場合は、Unity製のVRアプリと、自社で構築しているWebシステムを持っています。WebシステムはUnity側からAPIとしてアクセスされ、Unityアプリ側に情報を伝達します。
  • 今回、イベント期間中にWeb側のデプロイ作業を行い、結果としてそこに含まれていたコードによってバグが生じました。
  • 本当に緊急事態のデプロイ以外では、安定性を損なう可能性が1ミリでもあるアクションには慎重になるべきだと感じました。

当日は朝早く準備すること

  • とても基本的なことですが、朝、1時間以上のゆとりを持った準備を行うことの重要性を感じました。
  • 前日の夜会場を出るときには上手く動いていたものが、当日の朝には動かなくなったりします。
  • 朝ゆとりをもって、その日の環境で(日によってネットワークの速度が変わったりとか)構築することが大切です。
余談: なんでそれよりによって今起きるの?が発生する
  • あるある話ではありますが、イベント関係ないのになんでそれ今起きるの??ということが発生します。
  • 例えば、パソコンを一度再起動しようとしたら再起動が進まない、GitHubにアクセスしたら突然2段階認証の確認が出てきて焦って突破できない、など。

リハーサルは本番と同じ機材、同じ配置、同じ工程で行うこと

  • これも当たり前に思えますが、大事です。
  • 機材は割りと意識して揃えますが、配置も重要です。
    • 「あれ、ここに有線LANないんだけど!」から、スタッフの方にLANケーブルを貸してもらい、配置を本番直前に作る、などの作業が発生しました。これにより重要なチェックを見る時間・集中力が削がれていきます。
  • また、「本番ではこれも追加でやっといて!」のような小さなタスクでも、頭を一定占有します。そういった小さな工程も、リハーサルのときから含めておくと本番でより安心、ゆとりが生まれます。

スタッフメンバーに教える(自分でやってしまわない)こと

  • イベントでは、外部のイベントスタッフ会社の方が運営を手伝ってくれます。もちろんその方たちはVRやパソコンに詳しいわけではないので、一定のことを教える必要があります。
  • 教えることを大変だと思い自分でやってしまうと、また次同じ問題が発生したときにその人が対処できないため、不安から自分がずっとアンテナを貼り続ける必要がありました。
  • しかし、一度教えてその人が出来るようになると、自分はその事を気にかけなくて良くなります。これは大きな差でした。
  • 「自分が作業をする1分」が問題なのではなく「"自分が作業をしないといけない"と思いアンテナを張り続ける数時間」の方が問題なのです。
教えるのがそれなりに面倒くさい内容の具体例
  • アプリを再起動する方法(ESCを押してカーソルを出してからアプリを落として、またアイコンから起動した後にこの手順でログインして...など)
  • VRを被ったユーザーが「何も見えません」や「動きません」と言ったときの対処(だいたい電源が切れてる、ガーディアンの設定、ホームボタンが押されてる、など)

今後の意気込み

  • 今回のイベントでは、「この人はなんかとても頼りになる。この人がいたらまあなんとかなるだろう」という安心感をもたらす人が居ました。僕もそういう人になりたい。
  • おそらくそれは、数々の経験と、その度に丁寧に準備をして対処をしている積み重ねがあったからなのだと思います。
  • 自分も、特に技術的な観点から、砦として「実行」を守れるような人になりたいと思いました。
Flamers Tech Blog

Discussion