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
2
2.9k
”なりたい自分”をアップデート! 「REALITY Avatar 2.0」の開発秘話
GREE Tech Conference 2024で発表された資料です。
https://techcon.gree.jp/2024/session/TrackC-2
gree_tech
PRO
October 25, 2024
Tweet
Share
Video
More Decks by gree_tech
See All by gree_tech
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
1.8k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
19
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
12
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
0
14
あうもんと学ぶGenAIOps
gree_tech
PRO
0
6
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
13
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
29
コンテンツモデレーションにおける適切な監査範囲の考察
gree_tech
PRO
0
5
新サービス立ち上げの裏側 - QUANT for Shopsで実践した開発から運用まで
gree_tech
PRO
0
4
Other Decks in Technology
See All in Technology
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
技育祭2025【秋】 企業ピッチ/登壇資料(高橋 悟生)
hacobu
PRO
0
110
プロダクトのコードから見るGoによるデザインパターンの実践 #go_night_talk
bengo4com
1
2.5k
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
240
『バイトル』CTOが語る! AIネイティブ世代と切り拓くモノづくり組織
dip_tech
PRO
1
130
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
280
AI Agent Dojo #2 watsonx Orchestrateフローの作成
oniak3ibm
PRO
0
120
データ戦略部門 紹介資料
sansan33
PRO
1
3.7k
AWS Control Tower に学ぶ! IAM Identity Center 権限設計の第一歩 / IAM Identity Center with Control Tower
y___u
0
170
能登半島地震で見えた災害対応の課題と組織変革の重要性
ditccsugii
0
960
Simplifying Cloud Native app testing across environments with Dapr and Microcks
salaboy
0
160
このままAIが発展するだけでAGI達成可能な理由
frievea
0
100
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
35
6.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
A better future with KSS
kneath
239
18k
Thoughts on Productivity
jonyablonski
70
4.9k
Docker and Python
trallard
46
3.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Agile that works and the tools we love
rasmusluckow
331
21k
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