見出し画像

REALITY x mocopiの話と「HMDレスのフルトラ」について考える REALITY Advent Calendar 2024


はじめに

ロマサガ2とドラクエ3のリメイクが一息ついたので、次はインフィニティニキをやろうかなと思っているエンジニアのようてん(@youten_redo)です。
コーデバトルの概念が好きすぎて、エイプリルフールとかならREALITYでもできないかな、と1年に1回ぐらい妄想しています。

本エントリは、REALITY Advent Calendar 2024の18日目のものです。よかったら他のエントリも覗いてみてやってください。

つい先日の話ですが、弊REALITYアプリがmocopiによるフルボディトラッキングに対応しました。
本エントリでは、mocopi対応の内容と、タイトルにもあります、「HMDレスのフルトラ」について考えた話をお届けしようと思います。

自分、普段はどちらかというと「技術面に興味のあるREALITYユーザ」向け(あるいはUnityのニッチな話)のエントリを書くことが多いのですが、Advent Calendarということもありますし、本エントリは「3Dのアバターやトラッキングまわりの知見がある人」向けに書かせていただこうかと思います。

mocopi対応の概要

はじめに、REALITYアプリそのものと、mocopi対応の概要について説明します。

REALITYアプリ

REALITYは、3Dアバターでバーチャルなコミュニケーションができるスマートフォン向けアプリです。アバターやルームのカスタマイズができ、フェイストラッキングでアバターを動かし、ライブ配信などができます。

「スマートフォンでのVTubert的なアプリ」というコンテクストでバーチャルライブ配信側がフィーチャーされることもあれば、「3Dアバターを使った様々なコミュニケーションができるSNS的なアプリ」というメタバース側のコンテクストがフィーチャーされることもあります。

人類が(しゅごがおおきい)今まで、1次元の文字列と、デジタル・アナログ問わず2次元の画像を中心にバーチャルな人格でインターネット上でのコミュニケーションをとってきた話の延長線上として、3次元側も広げた3Dのアバターで、「なりたい自分で生きていく」ことができるように、だいたいなんでもやれるようにしましょう、というサービスです。

REALITYアプリのスクショ例

特徴の一つとして、自アバターが表示されている画面では原則フロントカメラを用いたフェイストラッキングが常時動作しており、リアルタイムに顔の表情と上半身を中心とした姿勢に反映し続ける動作をします。

鏡のように動作することで自己所属感を手助けする動作をベースとして、テンポラリで特定の動作させる「エモート」や、イスやベッドに座った際には特定のアニメーションを再生させる「アクション」など、アバターを手軽にかっこよく/かわいくキマった姿にできるような仕組みが動いています。

REALITYでのmocopi対応

続けて、そんなフェイストラッキングがアバター操作のベースにあるREALITYアプリでの、mocopi対応は、ざっくりとは以下の通りです。

  • mocopiを使って、REALITYアプリでフルトラで動けるようになりました。

  • 「mocopiアプリを動かすスマホ」と「REALITYアプリを動かすスマホ」の2台のスマホが必要です。

    • 後述しますが、mocopiの「Receiver Plugin」を使っています。

  • mocopiアプリから送信されたモーション情報をREALITYアプリで受けて動作します。

mocopi対応のざっくり説明

基本的に自アバターが表示されているところであれば全ての場所でmocopiによるトラッキングを有効にすることができます。
コラボ配信や、最大8体のアバターが表示されるワールドでもとくに制限なく動作します。

長押しのエモートUIから1操作でON・OFF

ポイント1:フェイストラッキングとの共存

REALITYアプリはアバターを動かすのに、フェイストラッキングを用いていると先ほど述べましたが、顔(頭部の位置・向きと表情)のトラッキング結果を、全身にそれっぽく適用させたものとなっています。

今回のmocopi対応では、mocopiによるトラッキングが動作していても、フェイストラッキングはそのまま共存して動作するようにしました。具体的にはBlendShapeの操作はフェイストラッキングで、ボーンの操作はmocopiトラッキングという分担になっています。

アバターのトラッキングシステムを作る際に、フェイシャルについてはとりうる作戦が主に2種類あります(諸説あります)。

  • 作戦A. 自動まばたき+音声ベースのLipSyncで口元をサポート

  • 作戦B. カメラベースでの表情トラッキング

はじめは、「アバターの全身が動いている際には顔の表情は主役ではないだろう」と前者の作戦Aを検討したのですが、REALITYのアプリのUnity層では音声は扱っておらず、LipSync方面の対応は大工事になってしまいます。

別モニタが用意できるようなPCを使うような配信環境と違い、REALITYはスマホアプリですので、「フルトラをしていても結構みんなスマホを見るし、それこそスマホを手に持ったりもするだろう」と考え、後者の作戦Bの方針で開発を進めました。

結果、うまくくっつきまして、既存のフェイストラッキング(ARKit/firebase/MediaPipe)はそのまま動作する共存方式になりました。

ポイント2:エモート・モーションの割り切り

mocopiトラッキングが有効になっている際には、エモートをはじめギフト・家具・ワールドのモーションが全て動作しません。mocopiによるトラッキング結果の適用が優先され、上書きされます。

エモートのアニメーションのみマスク情報を見て部分的に上書きするとか、歩き・走りやジャンプの動作中はそちらを優先するなど、いくつか考えられる作戦があったのですが、ファーストアタックとしては割り切ってナシとしています。

ポイント3:スマホ2台とReceiver Plugin

mocopiには連携するアプリを作る方式としておもに2種類(?)のSDKが提供されています。
1つはmocopiアプリが独自フォーマットの姿勢情報がUDPで送信できる機能をもっていますので、それを受信するアプリとしてつくるための「Receiver Plugin」、もう1つは6つのセンサデバイスとの接続状態を直接制御・取得できる「Mobile SDK」です。

どちらも提供されたライブラリからとれる姿勢情報としては同等で、Mobile SDKの方がネットワークを経由しない分、遅延など、ネットワーク環境に左右されづらいシステムとして組み上げることができます。

(ちょうどこの話が本格的に進み出したぐらいの8月末、Mobile SDKの個人利用が可能になってダウンロードできるようになり、このあたりの話もちょっとだけ気軽に書けるようになりました、という前置きをしつつ)

Mobile SDKをのサンプルScene(概ねmocopiアプリのクローンとして動作します)をビルドして、アプリを触ってみたところ、以下のような感想をもちました。

『Mobile SDKで進めるには、mocopiアプリがカバーしている機能を適切に選択・再構成の上REALITYアプリに融合させる必要があって、結構大変そう。』

この画面、結構役割が豊富なんです

「スマホ1台で動く」と「スマホ2台が必要」の差は大きく、社内でも当然Mobile SDKでやるべきでは、という声はありました。

しかし、以下のような課題が挙がりました。

  • UnityのSceneとして使いやすく画面部品が提供されてはいるものの、どこまでREALITYアプリのデザインにあわせこむのか

  • 設定メニューや6つのセンサデバイスの状態を表示するUIはどう提供すべきか

    • mocopiアプリでアバターが表示されている画面のように、状態や設定にすぐアクセスできるコントロールパネル的なUIはREALITYには、現状ない概念です。

  • REALITYアプリはUaaL(Unity as a Library)を用いて作られており、3Dのアバターなどを描画するビューを担当するUnity Playerは画面ごとにpause/resumeされる動きをするため、そのあたりSDKをベースとして、カバーする実装が必要そう

2022年に発売してから徐々に改善されてきたmocopiとmocopiアプリの変化を思い出すに(発売当初にくらべるとマカロンの再接続、めちゃくちゃやりやすくなってますよね!)、「初手、こっちの方針で妥当なものを出すのはハイリスク」と判断しました。

そんなわけで、ハードウェア要件としてスマホ2台になってしまったのは申し訳ないのですが、今回のような形でのリリースとなりました。
(mocopiとmocopiアプリの既存のノウハウがそのまま参考にできる、というメリットはあります!)

おわりに:「HMDレスのフルトラ」について

おわりに、過去と未来の話をちょっとさせてください。

VRの現状は、「VR HMD一式という、スマホと比較してコモディティ化しきれていない、たいそうなハードウェアがコンテンツを楽しむ側にも必要」なものです。

そこに対して、バーチャルYouTuberというものは「コンテンツを提供する側にはVR方面の技術を扱う(当時に比べれば十分に一般化しましたが)それなりに特別なハードウェアが必要なものの、コンテンツを楽しむ視聴側はコモディティ化しているスマホで良い」という非対称な需給を確立させたことに価値がある、と思っています。

MMORPGでケの日、日常生活をしていたあれを3Dアバターで完全にして老後を過ごしたい」という個人的な夢があります。「メタバース」というキーワードも後押しして、だいたい実現できてきています。

2000年代前半の、目的別にPCを何台も所持して稼働させていた時代の感覚であれば、もうそろそろ「すべて揃った!」と言えそうなのですが、2000年代後半になって、スマホがやってきてしまいました。2024年現在の感覚では、「スマホ(あるいはスマホより携帯性の良いもの)で全部できないとヤダヤダ」と思っています。

そんな状況の中、これから数年で進化・整備するのを見届けたい注目ピースが「HMDレスのフルトラ」です。

VR HMDと両手のコントローラの「3点トラッキング」に対して相対的な用語として定着した「フルボディトラッキング」ですが、6点や10点をVive Trackerで実現していた時代と比較すると、業界(?)全体としては、じょじょに「姿勢を推定している」範囲が広がっていると言えます。(メジャー化したバーチャルYouTuberサイドはこの点においては光学式のトラッキングシステムに分岐収束した話が別にあったりしますが…)

PICO Motion Trackerというハードウェア仕様としては全部乗せのカッコイイ新顔が2024年は登場しました。
「両足首にIMUセンサ、頭部と上半身の姿勢はカメラ画像ベース、画角に入れば手の形もトレース」あたり、もうそろそろトータルで結合したシステムとして遊べるようになるんじゃないかな、と他人事のように期待しています。

とはいえタイトルに振り戻りまして、まずは手が届く範囲の話、mocopiの全身以外のモードにも対応するとか、イスなどの家具モーションとの協調とか、一歩進んだREALITYアバターの世界を引き続き広げていけたらいいなと思っています。
少し早いですが2024年中はお世話になりました、2025年のREALITYもよろしくお願いします!