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
1
160
”なりたい自分”をアップデート! 「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
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
190
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
150
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
150
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
120
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
150
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
240
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
180
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
230
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
390
Other Decks in Technology
See All in Technology
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
330
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
110
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
260
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
100
生成AIのガバナンスの全体像と現実解
fnifni
1
190
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
Featured
See All Featured
Navigating Team Friction
lara
183
15k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Faster Mobile Websites
deanohume
305
30k
Thoughts on Productivity
jonyablonski
67
4.4k
Code Reviewing Like a Champion
maltzj
520
39k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Producing Creativity
orderedlist
PRO
341
39k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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