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
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
5分でわかるDuckDB
chanyou0311
10
3.2k
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
530
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
110
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
3
2.4k
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
540
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
16
13k
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
160
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
Featured
See All Featured
Fireside Chat
paigeccino
34
3.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
We Have a Design System, Now What?
morganepeng
51
7.3k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Typedesign – Prime Four
hannesfritz
40
2.4k
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