Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
”なりたい自分”をアップデート! 「REALITY Avatar 2.0」の開発秘話
Search
gree_tech
PRO
October 25, 2024
Video
Technology
4.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
”なりたい自分”をアップデート! 「REALITY Avatar 2.0」の開発秘話
GREE Tech Conference 2024で発表された資料です。
https://techcon.gree.jp/2024/session/TrackC-2
gree_tech
PRO
October 25, 2024
Video
More Decks by gree_tech
See All by gree_tech
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
89
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
89
ゲームにおけるメディアミックス展開との向き合い方 -ヘブンバーンズレッドのメディアミックス企画の立て方-
gree_tech
PRO
0
94
課題発見から始めるプロダクト密着型TA組織立ち上げ 〜小規模TAチームが3Dアセットの生産性を倍にした方法〜
gree_tech
PRO
0
110
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
99
20年続く長寿タイトルが、15年目にして売上を伸ばせた理由
gree_tech
PRO
0
150
我々はどう生きるか
gree_tech
PRO
2
860
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
5.2k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
84
Other Decks in Technology
See All in Technology
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.5k
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
330
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
130
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
ホームラボ紹介
y_sera15
0
210
PLATEAU で バーチャル花火大会
tatsuya1970
0
170
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
500
少人数チームで実現する、大規模AWSサーバーレス基盤における"揺らがない"信頼性運用
maimyyym
1
110
20分でわかるセキュアAPI
nwiizo
2
310
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
830
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
280
コーチングの奥義 何もしないテクニック
jinwatanabe
0
110
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
530
Visualization
eitanlees
152
17k
How STYLIGHT went responsive
nonsquared
100
6.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
370
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
420
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
270
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Ruling the World: When Life Gets Gamed
codingconduct
0
300
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Transcript
“なりたい自分”をアップデート! 「REALITY Avatar 2.0」の開発秘話 REALITY株式会社 ソフトウェアエンジニア 三宅広大 / 池谷駿弥
三宅広大 / yaegaki REALITY株式会社 ソフトウェアエンジニア/ アバターシステムチーム テックリード 2 • 経歴
◦ 2020/11 REALITY株式会社 入社 ◦ 2020/11〜、Unityエンジニア • 主な担当領域 ◦ Unityを用いたアバター機能の開発 ▪ アバターコア開発 ▪ ワールド機能 ▪ ルーム機能 ▪ スペース機能
池谷駿弥 / IKEP • 経歴 ◦ 2022/04、グリー株式会社に新卒入社 & REALITYへ配属 ◦
2022/04〜2022/09、サーバエンジニア ◦ 2022/10〜、Unityエンジニア • 主な担当領域 ◦ Unityを用いたアバター機能の開発 ◦ TA(Technical Artist)業務 ▪ アバターアセット運用 ▪ アセット制作効率化 REALITY株式会社 ソフトウェアエンジニア 3
目次・アジェンダ • アプリ「REALITY」について • 「REALITY Avatar 2.0」プロジェクトについて • 体型変更機能 •
顔変更機能 • まとめ 4
アプリ「REALITY」 5
スマホひとつでアバター作成、ライブ配信による交流やゲームなどが楽しめる、スマホ向けメタバース アプリ「REALITY」 6
「REALITY Avatar 2.0」とは? 7
「REALITY Avatar 2.0」とは? • ユーザーがより「なりたい自分」を表現できるようにするのプロジェクト • 具体的には ◦ 体型や顔などのカスタマイズ可能な項目を増加させる ◦
目、眉、髭、チークなどへの新アイテムの追加 8
「REALITY Avatar 2.0」の目指すところ • アバターのカスタマイズのバリエーションを用意する ◦ ユーザーがより「なりたい自分」を表現できるようにする • “誰でも”高品質なアバターが作成できるようにする ◦
アバター作成が複雑になりすぎないようにする • REALITYらしいアバタールックを維持する ◦ 人間離れしたような極端な見た目にはならないようにする 9
「REALITY Avatar 2.0」の課題 • すでにリリースされている大量のアバターアイテムの互換性を維持する ◦ ユーザーが変更しなければ見た目が変わらないようにする ◦ 全てのアイテムを新しいシステムに対応させる •
アプリの全ての機能で使用できる必要がある ◦ REALITYには多種多様な機能が存在するので全ての機能で 正常に動作させる必要がある 10
体型変更 11
体型のカスタマイズ幅の向上 • 従来のアバターでカスタマイズ可能な項目 ◦ 身長 ◦ バストサイズ 12
体型のカスタマイズ幅の向上 • Avatar 2.0でカスタマイズ可能な項目 ◦ 身長(調整範囲の増加) ◦ バストサイズ ◦ 肩幅
◦ ウエスト ◦ 手足の長さ 13
身長(調整範囲の増加) • 従来より小さく/大きく できるように 14 新 最小 旧 最小 標準
旧 最大 新 最大
肩幅 • 肩まわりを変更する パラメータ 15 最小 最大 標準
ウエスト • ウエストなど変更する パラメータ 16 最小 最大 標準
手足の長さ • 身長を変えずに手足の長さを 変更するパラメータ 17 最小 最大 標準
体型変更の実装 • 実装を始めるに当たって以下の方法が検討されました ◦ ボーンスケール方式 ◦ ブレンドシェイプ方式 18
ボーンスケール方式 • 文字通りモデルのボーンにスケールを加える方式 • Unityでは親のスケールが子にも反映されるという課題があった(後述) 19
ブレンドシェイプ方式 • 設定されたパラメータに応じてブレンドシェイプの値を変更する • ボーンスケール方式に比べて表現の幅が広い • アセット制作が大変 20
体型変更の実装 • 最終的にはボーンスケール方式を採用 • 採用理由は以下の通り ◦ ブレンドシェイプ方式だとアセットの対応工数がかなりかかる ◦ ボーンスケール方式でも良いものになったため 21
体型変更の実装 • 最終的にはボーンスケール方式を採用 • 採用理由は以下の通り ◦ ブレンドシェイプ方式だとアセットの対応工数がかなりかかる ◦ ボーンスケール方式でも良いものになったため 22
すでに大量のアイテムがリリースされ ているのでそれらの対応にかなり工数 が必要だった 自動でブレンドシェイプを作成する 機能について検証したが完全に自動で 対応するというのもできなかったので 最終的には採用しなかった
ボーンスケール方式の課題 • 文字通りモデルのボーンにスケールを加える方式 • 従来の身長変更もこの方式 • Unityでは親のスケールが子にも反映されるという課題があった(後述) 23
ボーンスケール方式の課題 24
ボーンスケール方式の課題 25 親のYを2倍にする
ボーンスケール方式の課題 26 子も変形される
ボーンスケール方式の課題 27 子を回転させるとY軸のみ2倍されて いるので菱形になってしまう
ボーンスケール方式の課題 • アバターに当てはめるとウエストを変更するためにSpineのスケールを変 更すると全てのボーンに影響してしまう 28
ボーンスケール方式の課題 解決策 • 親と子の間に親のスケールを 打ち消すオブジェクトを挿入 • これによって親のスケールが 子に影響しないようになった 29
体型変更とアニメーション 30
体型変更とアニメーション • 体型変更によって既存のアニメーション関連処理の変更が必要 ◦ ポーズ機能 ◦ アバターエモート機能 ◦ 家具およびワールドの乗り物機能 31
ポーズ機能 • アバターにポーズを撮らせて画像を撮影する機能 • チャットで使えるアバターのスタンプなどで使用されている 32
ポーズ機能 問題点 • ポーズのアセットにローカル座標 での位置が保存されていたので そのまま適用すると壊れてしまった 33
ポーズ機能 解決策 • Unityのマッスル値を保存するように 変更 マッスル値を使用することで ヒューマノイドのアバターなら どんなアバターにもポーズが適用 可能に 34
アバターエモート機能 • ユーザーが任意のタイミングでアニメーションを実行できる機能 • 上半身だけ、全身、それらの組み合わせなどが可能 上半身のみ 全身 組み合わせ 35
アバターエモート機能 問題点 手を合わせる系のアニメーションで 手が合わなくなった 36
アバターエモート機能 解決策 • UnityのアニメーションのIK機能を活用 インポート時の設定でIKを有効にしておくと IK用の位置、回転の情報が含まれるようになる 37
家具およびワールドの乗り物機能 • 3D空間上に設置された椅子などに座る機能 • 椅子に限定されずに様々なものが存在する 38
家具およびワールドの乗り物機能 問題点 • 椅子に体がめり込んでしまう • 手の位置とオブジェクトの位置が 合っていない 39
家具およびワールドの乗り物機能 解決策 • 乗り物側に腰や両手の最終的な位置を設定できるようにする ◦ 最終的な位置をIKのゴール位置とすることで姿勢を制御 • 最終的な位置にどのタイミングで到達するかをアニメーションカーブで 指定可能にする ◦
座るアニメーションと違和感がないように調整するため 40
顔変更 41
より多様な顔を表現するために、コンセプトアートから各要素に分解し、 技術検証 / 開発 / アセット制作 顔のアバターカスタマイズ拡張 42
• 眉 • 目 • 口 顔の既存アバターアイテムの仕様変更 43
• 彫りの深さ • 輪郭 • アイメイク • 鼻 • メッシュひげ
• しみ・あざ • しわ • 髪(刈り上げ・スキンヘッド) • 顔プリセット 顔の新規アバターアイテム機能 44
顔の基本構成の変更 45 • 鼻先から上は、目のアイテムごとに固有アセット • 鼻先から下は、1Meshで表現 目のアイテムそれぞれに修正対応が必要なため、 カスタマイズ要素の追加難易度が高い... × 約70アイテム
× 1Mesh
顔の基本構成の変更 46 × 1Mesh × 1Mesh × Nアイテム • 目の周りだけ目アイテムごとの
固有アセットに • 額、鼻、顔側面部分などは 共通Meshとし「FaceBase」に FaceBase操作だけで形状を変化させることが できるため、顔表現のカスタマイズ幅が増加 (= 輪郭や鼻などのアイテム実現) FaceBase Neck Eyes
FaceBaseには、 表情用のBlendShape以外にも、 形状変更のためのBlendShapeも 顔の基本構成の変更 47
• Meshを含むPrefabをロード、配置 • 表情用のBlendShapeによって上下移動 眉(既存仕様) 48
上下位置の微調整機能 • 特定のジョイントへのウェイトを 持つように全ての眉アセットを更新 • ユーザの操作に合わせて、 ジョイント位置を上下に移動 →「彫りの深さ」の影に追従 眉(追加仕様) 49
目(仕様変更) 50 顔の基本構成の変更に伴い、目周辺のみのメッシュに変更 × 約70アイテム
目(仕様変更) 51 微調整機能(大きさ/位置) • 特定のジョイントへのウェイトを 持つように全ての目アセットを更新 • ユーザの操作に合わせて、 ジョイント位置を移動 →
顔つきの表現が可能に
目(仕様変更) 52 微調整機能(ハイライト / 目の開き) • ハイライトに関するマテリアル プロパティを操作し、ON/OFFを 切り替え •
フェイストラッキングから 適用するBlink_L/Blink_Rの 最小値を大きく ◦ 0~100 => N~100 の範囲で動かす → ジト目などの表現が可能に
• 顔の基本構成の変更に伴い、FaceBaseに統合 • アイテムごとの口形状の違いについては今まで同様、BlendShapeで形状変更 口(仕様変更) 53
肌追加陰影テクスチャにより、「唇の厚さ」などを表現 口(仕様変更) 54 肌追加陰影テクスチャなし 肌追加陰影テクスチャあり
肌追加陰影テクスチャ 55 • 肌の陰影を追加で描画可能な機能を新規開発 • 肌の色を適用する前に追加の陰影テクスチャを合成する FaceBase ベーステクスチャ 各アイテムからの 追加陰影を合成
肌の色を合成 デカール類を描画 レンダリング過程
肌追加陰影テクスチャ 56 肌の色を適用する前に陰影を合成しているので、肌の色によって見え方に ばらつきが発生しない! デカールで陰影を 描画すると、肌の 色によっては見え にくい...
• 眉/目を前後に移動 ◦ 眉で使っている ジョイントを手前へ ◦ 目で使っている ジョイントを奥へ • 肌追加陰影テクスチャにより、
影を表現 彫りの深さ(新規) 57
FaceBaseのBlendShape値を アイテムごとの設定値にすることで形状変更 輪郭(新規) 58
BlendShape値の更新を リアルタイムに行うことで、 ユーザ自身による微調整も可能 輪郭(新規) 59
肌追加陰影テクスチャにより、「頬がこけた顔」や「ケツ顎」を表現 輪郭(新規) 60
• チークだけでなく、目上や目下への メイクアイテム枠として開発 • 既存のデカールシステムを利用して 描画 アイメイク(新規) 61
FaceBaseのBlendShape値を アイテムごとの設定値にすることで形状変更 鼻(新規) 62
BlendShape値の更新を リアルタイムに行うことで、 ユーザ自身による微調整も可能 鼻(新規) 63
肌追加陰影テクスチャにより、「鼻の高さ」などを表現 鼻(新規) 64 肌追加陰影テクスチャなし 肌追加陰影テクスチャあり
• 今までのデカール髭と違い、 メッシュを持つ3Dな髭 • メッシュをロードし、髪色と同じ色に メッシュ髭(新規) 65
• 既存の「ほくろ・そばかす」 カテゴリに追加 • 既存のデカールシステムを 利用して描画 しみ・あざ(新規) 66
肌追加陰影テクスチャにより表現 しわ(新規) 67
• 頭部の地肌に直接髪の毛を描画する ことにより、刈り上げや坊主・剃り 込みなどの表現が可能 • 顔(FaceBase)と後頭部(RearHead)の 任意の場所に適用可能 髪(刈り上げ・スキンヘッド) 68
髪アイテムのマテリアル 髪アイテムとしては、顔(FaceBase)と後頭部(RearHead)のどこに 適用するかをテクスチャ指定するだけ → ランタイムで顔と後頭部のマテリアルに渡してレンダリング メッシュベースの刈り上げは 隙間やズレが発生する... 髪(刈り上げ・スキンヘッド) 69 R
→ 髪色ベース G → 髪色シャドウ B → 髪色ハイライト
• 輪郭 / 目 / 眉 / 彫りの深さ / 鼻
/ 口、および、 それぞれの微調整項目が予め設定されている • 自由度が向上したアバターカスタマイズにおいて、 「顔つき」を簡単に表現できるようにサポート 顔プリセット(新規) 70
顔形状を変更できるようになったことで、他アイテムで突き抜けが発生 その他(突き抜け対策) 71 鼻の高さ変更により、 眼鏡のブリッジを突き抜け... 輪郭や鼻の高さ変更により、 マスクを突き抜け... 輪郭変更により、 メッシュ髭が埋まる...
顔に密着するアイテムは、FaceBaseのBlendShape変動に連動してアイテムの BlendShapeも操作 その他(突き抜け対策) 72
顔に密着しないアイテムは、 アクセサリー位置調整機能により ユーザ操作で回避可能に その他(突き抜け対策) 73
• 新規制作 or 既存アイテム修正 ◦ アイテム数: 645 ◦ 変更ファイル数: 5962(*)
• システム仕様や表現ルールに 沿っているかの自動チェック ツールを開発 ◦ 全アセットの約半分を自動 チェックし、100件以上の問題検出 その他(効率的なアセットチェック体制) (*)通常ガチャ1本分は、約30アイテム、約500ファイル 74 仕様に沿わず修正が必要な項目が 赤色になる
まとめ 75
コンセプトアートと「REALITY Avatar 2.0」PVを比較 76 より多様な “なりたい自分”を実現!
• 技術検証・開発・アセット制作まで含め、約1年で開発 • REALITYらしいアバタールックを維持しながら、 ユーザーがより「なりたい自分」を表現できるように! ◦ Avatar 2.0で開発した機能を活用したコーデの保存割合が 70%以上に ◦
北米地域などにおける DAUが10%以上成長 まとめ 77
ご清聴ありがとうございました 78
None