Slide 1

Slide 1 text

「REALITY」3Dアバターシステムの 7年分の拡張の歴史について REALITY株式会社 ソフトウェアエンジニア ようてん(山内 洋典)

Slide 2

Slide 2 text

自己紹介 ● ようてん(山内 洋典) ● @youten_redo ● ソフトウェアエンジニア ● REALITY社 8年生 ● Unity・3Dまわりを担当してい ます 2

Slide 3

Slide 3 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 3 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに 目次・アジェンダ

Slide 4

Slide 4 text

はじめに 4

Slide 5

Slide 5 text

REALITYと3Dアバター ● REALITYはスマートフォン一つでオリジナルの3Dアバターを作成してラ イブ配信などのコミュニケーションを楽しめるアプリです ● フェイストラッキングの適用など、3Dを活かした多様なアバター表現が可 能です ● 2018年にリリースされて7周年、8年目に入りました ● 今日は「7年間でいろいろ増えました」という話をします 5

Slide 6

Slide 6 text

REALITYと3Dアバター ● 今日は「7年間でいろいろ増えま した」という話をします 6 2018リリース当初の クローゼット 2025現在の クローゼット

Slide 7

Slide 7 text

REALITYと3Dアバター ● 今日は「7年間でいろいろ増えま した」という話をします ● カテゴリ:4→30 ● アイテム数:23→7000以上 7 2018リリース当初の クローゼット 2025現在の クローゼット

Slide 8

Slide 8 text

REALITYと3Dアバター ● 今日は「アセットと見た目の サービス的な互換性を保ったま ま7年間でいろいろ増えました」 という話をします ● カテゴリ:4→30 ● アイテム数:23→7000以上 ● このくらい仕様があとから増え てもなんとかなったよ! 8 2018リリース当初の クローゼット 2025現在の クローゼット

Slide 9

Slide 9 text

9 F体型 M体型 身長 最小 身長 最大

Slide 10

Slide 10 text

10 体型パラメータ変更 ウィッグ 髪色の設定 エモート

Slide 11

Slide 11 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 11 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 12

Slide 12 text

M体型の追加(2019) 12

Slide 13

Slide 13 text

M体型の追加(2019) ● リリースから体型が「F型」固定 でしたが、「M型」が追加され ました ● Female/Maleではなくて Feminine/Masculineぐらいの ニュアンスです ● 「F型用アイテム」と「M型用ア イテム」は全部別々につくって います 13 F体型 M体型

Slide 14

Slide 14 text

M体型の追加(2019) ● 「F型の素体」と「M型の素体」が別に存在します ○ F型でつくったメッシュをM型に「コンバート」したり、テクスチャやアクセサリをFMで 共通で使いまわすこともあるのですが、基本的には制作コストが2倍です ● 3D技術的には素体を別にするメリットはそこそこあります ○ 衣装パーツの体型変化時の互換性がよくなります ○ 共通素体にした際には、どうしても中性的な表現に落ち着きがちです ● ユーザー所持アイテムとしては複雑になるというデメリットがあります ○ REALITYでは、「F型とM型で別のアイテム」「F型とM型で共通のアイテム(内部的に2 つのアイテムをセットで扱います)」「体型に関係ないアイテム(壁紙など)」という3 種類の概念があり、かなり複雑です。 14

Slide 15

Slide 15 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 15 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 16

Slide 16 text

髪色自由化(2019) 16

Slide 17

Slide 17 text

髪色自由化(2019) ● リリースから髪・眉・目の色が 固定の10色でしたが、色を自由 に変更できるようにしました ● Main・Shadow・Highlight、 シェーダが扱う3つの色を変更す る仕組みです ● 内部的には最初から3つのRGB 値を保持するつくりになってい て、UIのみ後から追加されまし た 17 髪色の変更 目の色の変更

Slide 18

Slide 18 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 18 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 19

Slide 19 text

 ボトムス・シューズ(2019) 19

Slide 20

Slide 20 text

ボトムス・シューズ(2019) ● リリースからずっとREALITYア プリは上半身のみだったのです が、半年経って、ついに下半身 に対応しました。 ● 上半身しか映らないようにして いたカメラまわりの制限を見直 して、全身が映るようになりま した 20 ボトムスカテゴリ シューズカテゴリ

Slide 21

Slide 21 text

半年で初期計画仕様のリリース完了 ● 2018.10のREALITY Avatarのリリースから、約半年経過した2019.05の 「ボトムス・シューズ」で、初期に計画していたアバターシステムとして の仕様は、おおむねリリース完了となりました。 ● つまりこれ以降は全て仕様追加ということです! 21

Slide 22

Slide 22 text

ガチャとセット服(2019) 22

Slide 23

Slide 23 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 23 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 24

Slide 24 text

ガチャとセット服(2019) ● アバターアイテムを「売る」機 能の開発が始まりました ● より魅力的な、価値の高いアバ ターアイテムが必要になり、 トップスとボトムスがセットに なった「セット服」という概念 が追加されました 24 ガチャ試着 クローゼット セット服カテゴリ     +    =

Slide 25

Slide 25 text

他のカテゴリの装着状態に影響を及ぼすアイテム ● 着せ替えアプリとしてはよくあるものだと思いますが、セット服の導入に より「他のカテゴリの装着状態に影響を及ぼすアイテム」という概念がは じめて登場しました ● ルールとして以下の通りです ○ セット服を着ると、トップスとボトムスは脱げる ○ セット服を着た状態から、トップスを着ると、固定のボトムスになる ○ セット服を着た状態から、ボトムスを着ると、固定のトップスになる ○ 「セット服を着るとシューズが脱げる」のような特殊な設定もあります ● 元の髪型設定を残したまま別の髪を装着する「ウィッグ」や、複数の細か い調整パラメータを一括して変更する「フェイスプリセット」のような概 念に応用されていきます 25

Slide 26

Slide 26 text

クローゼットカテゴリとスロット ● 服として自然な分類を「クローゼットカテゴリ」が担当 ○ Original(体型), Hair(髪),Wig(ウィッグ), Eyes(目), ColorContact(カラコ ン), Tops(トップス), Bottoms(ボトムス), SetClothes(セット服), Shoes (シューズ), ... ● 一段階内側に、内部システムとして排他な装着箇所を「スロット」が担当 ○ Trunk, LeftArm, LeftHand, RightArm, RightHand, Waist, Legs, ACC_CenterEye, ACC_CenterEye_Glasses, ACC_FrontCenterHair, ACC_FrontLeftHair, ACC_FrontRigtHair, ... 26

Slide 27

Slide 27 text

クローゼットカテゴリとスロット 27 トップスにはTrunk, LeftArm, RightArm, LeftHand, RightHandが、 ボトムスにはWaistとLegsが所属します 頭部のメッシュ分割 後述するAvatar 2.0で刷新しました

Slide 28

Slide 28 text

クローゼットカテゴリとスロット ● このようにクローゼットカテ ゴリとスロットで2段の概念 になっています ● ちょっと複雑ですが、アセッ ト開発の効率化やカテゴリの 再構成がやりやすくなる効果 があります 28 スロット: Trunkのみ スロット: Trunk + LeftArm + RightArm スロット: Trunk + LeftArm + RightArm + LeftHand + RightHand

Slide 29

Slide 29 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 29 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 30

Slide 30 text

ジェスチャーエモート(2020) 30

Slide 31

Slide 31 text

● 2020年、ジェスチャーエモート 機能が登場しました ● 最初は固定の4つでしたが、後に クローゼットから差し替えが可 能になりました ● よくある「固定アニメーション 再生」機能です ● REALITYではフェイストラッキ ングと融合して動作するため、 多彩な表現ができます 31 ジェスチャーエモート(2020) リリース時の 固定4エモート ジェスチャーエモート カテゴリ

Slide 32

Slide 32 text

AnimationControllerのLayer芸 ● Unityではよくある AnimationContorllerのLayer芸 で優先度制御をしています ● REALITYでは配信中のギフトに よる「強制的に再生が開始され るエモート」などもあります ● 主に上半身を担当する「ジェス チャーエモート」に加え、全身 を担当する「ホールエモート」 が後から追加されました 32

Slide 33

Slide 33 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 33 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 34

Slide 34 text

フェイストラッキングの変遷とハンドト ラッキング(2018-2024) 34

Slide 35

Slide 35 text

フェイストラッキングの変遷 35 機種 2018 2019 2020 2021 2022 2023 2024 2025 iOS ARKit対 応機種 iOS ARKit非 対応機種 Android 2018.10 ARKit Face Tracking 2018.12 firebase ML Kit Face Detection 2020.08 hyprface 2018.12 Vision Framework Face Landmark 2021.10 Facemoji 2020.08 hyprface 2021.10 Facemoji 2023.04 エイプリルフール でMediaPipeによるハンド トラッキングを実現 2023.02 MediaPipe 2023.02 MediaPipe 2024.04 ランク報酬としてハ ンドトラッキングを開放

Slide 36

Slide 36 text

フェイストラッキング 36 ● 前図のとおり、そこそこ入れ替わっています ● iOSのARKit Face Trackingがとにかく優秀で、REALITYアバターの表現 力はかなりこれに支えられています ○ 2020年のARKit 4から、TrueDepthカメラ非搭載の機種でも対応となりました ● Androidは色々あって、買い入れライブラリを経て、MediaPipeベースの 内製に落ち着きました ○ homuler/MediaPipeUnityPlugin ○ MediaPipeは非常に相性の悪い機種(SoC)があり、リリース時に開発した、負荷の軽い firebaseが選択的に現存しています

Slide 37

Slide 37 text

ハンドトラッキング 37 ● せっかくMediaPipeを導入したの で、発展系としてハンドトラッキ ングを実現しました ● エイプリルフールで登場、後にラ ンク報酬として開放 ● MediaPipe導入とHolisticなハン ドトラッキング話は2023年の発 表を参照 ● REALITYアバターの個性を引き出 す!MediaPipeによる高品質フェイス トラッキング実装術 - GREE Tech Conference 2023 MediaPipe Face Mesh Face Mesh REALITYカスタム Holistic REALITYカスタム MediaPipe Holistic REALITY向けに最適化したFace Meshを元に Holisticもカスタムして フェイストラッキング品質を維持 478個の顔ランド マークがとれます 顔・ポーズ・手が とれます

Slide 38

Slide 38 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 38 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 39

Slide 39 text

アクセサリ位置調整(2023) 39

Slide 40

Slide 40 text

アクセサリ位置調整(2023) ● アクセサリの大きさ・位置・角 度を調整できる機能です ● パラメータに制限が設定できる ようになっています ● 3Dアバターとしては定番の機能 ですが、REALITYでは「なるべ く手間をかけずにいい感じにす る」ことを心がけてきたため、 比較的最近の実装になりました 40 アクセサリ位置調整 あっ、飛んできそう

Slide 41

Slide 41 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 41 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 42

Slide 42 text

ルームとアニメーション家具(2023) 42

Slide 43

Slide 43 text

● ルーム機能にて、アバターがア ニメーションする家具が登場 ● イスに座ったり、ベッドで横に なったり、楽器を弾いたり… ● 昔からあった「装着できるギフ ト」とワールドの「座る機能」 がベース ● エモートとあわせてアニメー ション組み合わせのカンブリア 爆発 43 イスに座って キーボードを演奏中 多様なギミックが ついた家具 ルームとアニメーション家具(2023)

Slide 44

Slide 44 text

複雑な組み合わせルール ● イスなどの「乗り物」 ● 楽器などの「装着品」 ● 「乗り物」と「装着品」は同時 に使える ● エモートは、部位があいていれ ば同時に使える ● ただしいずれかが全身アニメー ションだった際には排他される : 44 乗り物であり装着品で あるドラム家具 スティックを持ってい ない際にはエモート可

Slide 45

Slide 45 text

複雑な組み合わせルール ● ベストエフォートで探りながら やっている ● リリース済みの家具を遡って修 正することも 45 ドラムから離れても スティックで叩ける 「上半身」のエモート はイスとの相性がある

Slide 46

Slide 46 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 46 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 47

Slide 47 text

Avatar 2.0(2024) 47

Slide 48

Slide 48 text

Avatar 2.0(2024) 48 ● 6年目にして初の大規模アップ デート ● 体型と顔まわりを中心にカテゴリ ・調整項目が大幅追加 ● 内部の仕組みを大幅に変えつつも 見た目の互換性を最大限維持 ● Avatar 2.0のテクニカルな詳細に ついては2024年の発表を参照 ○ “なりたい自分“をアップデート! 「REALITY Avatar 2.0」の開発秘話 - GREE Tech Conference 2024

Slide 49

Slide 49 text

体型調整の拡張 49 より小さい より大きい 肩幅 横幅 手足の長さ ● ボーンスケールで 実現 ● Unityでは親のス ケールが子に反映 されてしまうた め、GameObject を1つ挟んで解決 ● 家具やエモートで 体型差をカバーす るためIK機構と設 定を導入

Slide 50

Slide 50 text

顔まわりの変更 50 新カテゴリ「鼻」「輪郭」 「掘りの深さ」「しわ」 「アイメイク」などの追加 テクスチャベースで任意の領 域に髪色を適用、刈り上げ・ スキンヘッドに対応 顔の構成要素・境界線をがっつり変更 「元と同じ見た目になるように」 大量のアセットを新規作成 最終的に修正したアイテム数645 (変更ファイル数6000弱)の アセットチェックを支える チェックツールも開発

Slide 51

Slide 51 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) ● フェイストラッキングの変遷とハ ンドトラッキング(2018-2024) 51 ● アクセサリ位置調整(2023) ● ルームとアニメーション家具 (2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 52

Slide 52 text

フルボディトラッキング(2024) 52

Slide 53

Slide 53 text

フルボディトラッキング(2024) 53 ● ソニー株式会社のモバイルモー ションキャプチャーmocopi®に よるフルボディトラッキングに対 応しました ● フェイストラッキングと共存 ● 特定シーンに限定せず、クロー ゼットから配信中、ルームもワー ルドもコラボも区別なく動作 mocopiアプリ REALITYアプリ モーション 情報 mocopi mocopi対応の概要

Slide 54

Slide 54 text

● はじめに ● M体型の追加(2019) ● 髪色自由化(2019) ● ボトムス・シューズ(2019) ● ガチャとセット服(2019) ● ジェスチャーエモート(2020) 54 ● フェイストラッキングの変遷とハン ドトラッキング(2018-2024) ● アクセサリ位置調整(2023) ● ルームと装着系家具(2023) ● Avatar 2.0(2024) ● フルボディトラッキング(2024) ● アバター染色(2025) ● おわりに

Slide 55

Slide 55 text

アバター染色(2025) 55

Slide 56

Slide 56 text

アバター染色(2025) 56 ● アバターのパーツの色を変えられ るようにする機能 ● 元々カラバリを作りやすくするた め、多くのアイテムはマスクテク スチャ+色情報で動作するシェー ダになっている ○ この方式は2019年春に導 入、6年越しのフラグ回収 染色中の画面

Slide 57

Slide 57 text

アバター染色(2025) 57 ● 根本としては「マテリアルの色を 変えるだけ」の機能 ● しかし「染色色情報をどう保存し てどう伝達するか」についてはア バター関連全域に渡る大改造 ● リリース後、「社内ツールが染色 に対応していない」というバグが そこそこ出ました。 マスクテクスチャの例

Slide 58

Slide 58 text

おわりに 58 ● たいていのことはがんばればなんとかなります

Slide 59

Slide 59 text

おわりに 59 ● たいていのことはがんばればなんとかなります ● という話で終わってしまうと得るものがないので「いちばん後悔している 仕様」を紹介してオチにしたいと思います

Slide 60

Slide 60 text

おわりに 60 ● たいていのことはがんばればなんとかなります ● という話で終わってしまうと得るものがないので「いちばん後悔している 仕様」を紹介してオチにしたいと思います ● 0埋めstringはやめときましょう ○ カラバリを"0001", "0002",... という文字列で表現しているのですがかなりよくないで す。素直に1,2,3,....のintにしましょう。

Slide 61

Slide 61 text

ご清聴ありがとうございました 61

Slide 62

Slide 62 text

No content