Article:

概要

TFPortalは2023年1月5日から8日にかけて開催された、JMoF(Japan Meetup of Furries)というケモノコンベンションイベントにて実施した企画です。 JMoF2023では現実の会場での開催と並行して現実の会場を模したVRでの会場イベント、VRJMoFがVRChat及びNeosVRでも開催されました。

NeosVRでのVR_JMoFチームが発足され、NeosVRでの会場の整備・独自企画などの準備が行われる中、 現実会場とVR会場で連動できる企画があると面白いよね! ということで、チームの議論の中で考案されたのがこの「TFPortal」です。

TFPortalとは

TFPortalは、 VR会場の人と、現実会場の人でいっしょに写真を取りたい! というモチベーションからスタートしました。 ただし、VR会場の人はアバターを用いているのに対して、現実の人はもちろんそのまま写真を撮ってしまうと真人間です。

日本人はあまり自分の顔をSNSにアップロードしませんから(特に今回のイベントはケモノイベントなので尚更です)、これはクリティカルな問題なのですが、 モーションキャプチャで現実の人もアバターの姿になって映れたら、変身体験(専門用語でTFと呼びます)もできるし、撮った写真はSNSにアップロードし易くなりますから、一挙両得です。

現実会場の様子

VR会場の様子

PANOさんが作ってくれた素晴らしいポスターが、この企画をよくまとめてくれているのでここに示します。

また、隠れた狙いとして、「VR会場の人と現実会場の人がそれぞれSNSに同じ構図の写真を投稿しまくることで、誰が現実会場にいて、誰がVR会場にいるのか分かりにくい状態にする」。すなわち、現実とVRの境目をごっちゃにして、「現実のイベントと、VRイベントが連続した同一のイベントのようだ」という実感を誘いたいという狙いもありました。

仕組み

モーションキャプチャ

ユーザーのモーションキャプチャにはAzure Kinectを用いました。 非常に広角なカメラで、狭いブースでも十分にトラッキングができるところが素晴らしいです。

但し、公式に作られている姿勢推定ライブラリのMLモデルは古いので、現代風なアプローチであればmediapipe等を駆使したい部分もありましたが、期日的にお手軽なAzure Kinectを採用しました。

Unityで専用アプリを作成し、推定したポーズをNeosVRへ送ったり、またプレビュー及び通常の写真撮影のためにリアルタイムのcolor画像、depth画像を出力する機能を実装しました。

NeosVRでの開発

NeosVRでは特段難しいことはする必要がなく、基本的にはUnityのアプリからwebsocket経由で送られたモーションデータをパースし、実際のモデルへ適用するだけです。 その他としては「モデルを切り替える」「写真撮影を行う」「カメラを切り替える」などの操作コマンドを受け取り、そのように動かす機能を細々と作成します。

受付用Webサイト

このイベントで一番の難点は、「どのように画像を参加者へ手渡すか」です。

自分でホストしたストレージに画像をアップロードし、URLをQRを表示することで渡してもいいのですが、DL期限などを設けるのも心苦しいのでなかなか取りたくない方法です。

今回は目的の一部として、「参加者にTwitterに撮影した写真を投稿してほしい」という気持ちがあったため、TwitterのDMで渡す方法が適していると考えました。

しかし、TwitterでDMを送るためには相手がDMを開放しているか、送信元のアカウントをフォローしてくれている必要があります。これを確実にするため、事前エントリーサイトを作成し、Twitterでのログインを強制することでこれを解決しました。

サイトのデザインも、ポスターと同じくPANOさんがデザインしてくださいました。1枚適当なスケッチをお渡ししただけで素敵なデザインを作ってくれ、その上パーツごとに画像を分解して送ってくれるなど気配りが効いてて本当に助かりました…!

また、自分たちが使うコンソールも併せて同じサイトに作りました(本当は分けたほうが良いのですが、時間がなく…)。QRコード読み込み等の機能があり、通常利用者がこれを読み込むことになると完全に余計なので、chunkを分解しておきました。

今回このサイトはAWSでホストしているのですが、100% Terraformで、サーバーレスな作りにしました。サーバーレスなので実質無料です(本当)。

今回初めてモノレポでterraformも、バックエンドのLambdaのコードも、webのコードも作成し、Github Actionsで一気にインフラ構築・webビルド・デプロイを行うようにしたのですが、非常に快適でした。 小規模なプロジェクト(コード量も、作業者数も)なら全然モノレポでいいな~と思いましたね。

実施してみて

JMoF2023の開催日のうち、初日を除く3日間でそれぞれ2時間づつ実施させて頂いたのですが、現実でもVRでも、想像以上に多くの方に参加頂けました!! ハッシュタグ#TFPortalで検索するとたくさんの写真が流れてきたときは本当に嬉しかったです!

中でも、VR会場と現実会場で離れ離れになっているフレンド同士で写真が取れたよ~~という声は非常に嬉しかったですね。

多くの方のご参加とそして写真のツイート、本当にありがとうございました!!!

最初の狙いのうち、十分に満たせなかったところ等はいくらかあったので、次回も機会があれば、企画の軸から見直してよりよい企画ができればと思います。

クレジットと謝辞

TFPortalの企画ではシステム面にて携わらせていただきましたが、多くの人の協力があってこそ実現できました。ここで紹介すると共に感謝の意を述べさせて頂きます。

VR_JMoFスタッフの方々

VR_JMoFスタッフのGentouさんすみたさんいなぷさんには本部との調整含め、 大変お世話になりました。Neos以外の企画が山のようにある中調整していただき、本当に頭が上がりません。ありがとうございました!!!

当日運用チームの3人

当日の運用はぼくとあむちゃんなぼくんにて行っていたのですが、この3人のうち誰か1でも欠けていたら明らかに崩壊していたし、この3人だからこそ当日上手く回せたと思っています。 本当に良かった!ありがとう!

デザインを作ってくれたPANOさん

口頭では伝えるのが少し難しい企画となってしまったTFPortalだけれど、PANOさんが作ってくれたポスターがあったからこそこれだけの人が当日足を止めて参加してくれたと思っています! webサイトも完璧にデザインしてくれて、本当に助かりました!ありがとうございました!!!

Neos会場チームの皆様

そして当日TFPortalをVR会場から一緒に盛り上げてくれたNeos会場チームの皆様! 始まる前は現地会場とVR会場でコミュニケーションがいくか不安でしたが、バッチリ盛り上げてくれたおかげで始終楽しくオペレーションできました!本当に頼もしかったです!ありがとうございました!

アバターをお貸しくださった方々

JMoF2023のTFPortalでは「ケプラー」「レグルス」の2キャラをGigashさんに、「ディゴル」「ソルグ」の2キャラをshimuさんに、「ロップ」をkemonapさんにお貸し頂きました。 TFPortalは素敵なアバターを使わせて頂けたからこそ実施できた企画でした!どれも素敵なアバターで、参加者の方もどの子にするか、いい意味で迷ってられました。本当にありがとうございました!