Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
”なりたい自分”をアップデート! 「REALITY Avatar 2.0」の開発秘話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
gree_tech
PRO
October 25, 2024
Video
Technology
4.5k
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
1on1、進捗確認だけになっていませんか?〜明日から使えるTips〜
gree_tech
PRO
0
79
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
1k
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
1.2k
ゲームにおけるメディアミックス展開との向き合い方 -ヘブンバーンズレッドのメディアミックス企画の立て方-
gree_tech
PRO
0
1.2k
課題発見から始めるプロダクト密着型TA組織立ち上げ 〜小規模TAチームが3Dアセットの生産性を倍にした方法〜
gree_tech
PRO
0
1.1k
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
1k
20年続く長寿タイトルが、15年目にして売上を伸ばせた理由
gree_tech
PRO
0
1.8k
我々はどう生きるか
gree_tech
PRO
2
1.1k
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
5.7k
Other Decks in Technology
See All in Technology
Claude Code本は、どのように執筆チームで書かれたか
oikon48
0
330
Incremental HTTP
kazuho
5
2.1k
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
230
Deep Data Security 機能解説
oracle4engineer
PRO
2
720
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
130
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
930
継続的なAIコスト最適化
bgpat
1
230
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
160
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
550
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
290
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
530
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Site-Speed That Sticks
csswizardry
13
1.6k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
470
The Language of Interfaces
destraynor
162
27k
Un-Boring Meetings
codingconduct
0
440
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
WENDY [Excerpt]
tessaabrams
14
40k
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