Share
Embed
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
CEDEC2026で発表された資料です。
https://cedec.cesa.or.jp/2026/timetable/detail/s6985879736774/
Transcript
95 slides
-
⾃⼰紹介 池⾕ 駿弥 (Shunya Iketani) / IKEP(@CreativeIKEP) REALITY株式会社 テクニカルアーティスト •
2022年、グリー株式会社(現 グリーホールディングス株式会社)へ 新卒⼊社し、REALITY株式会社に配属 Unityエンジニアとしてアバター機能の開発やアセット運⽤を担当 • 約1年半の社内プロジェクトを経て、2025年7⽉のTechnical Artチーム 発⾜に寄与 • 現在はTAとして、アセット制作パイプラインの整備からアプリ機能の 開発まで幅広く担当 3 -
アジェンダ • アプリ「REALITY」と、REALITYのアセット • アセット制作における問題 • 制作パイプラインの改善(品質担保の安定化) • ◦ 2D制作
◦ 3D制作 ◦ Unity組み込み 制作パイプラインの改善(管理の安定化) • ◦ マスターデータ⼊稿 ◦ ビルド‧実機確認 ◦ PRレビュー ◦ リリース まとめ 4 -
REALITYアバターアイテム制作パイプライン 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー • パイプライン / 各⼯程の具体的なフローともに、リリース当初から5年の間に⼤きな変化なし • ⼯程によっては、⻑期運⽤に伴って属⼈化が発⽣し、制作加速のボトルネックに... リリース 12 -
効率性を維持しながら、安定性を実現するためのアプローチ 制作加速 効率的にアセットを作り続け、 量産する 安定化 VS 運用事故を起こさず アセットを制作する 効率化はすでに⾏ってきたので、済み 品質担保の安定化
誰もが高水準なアセット制作が可能で、 「必然的な」 安定性を醸成させる 管理の安定化 「ミスが起こり得ない」管理体制 の実現 15 -
制作パイプラインへの反映 2つに分離してアプローチできることが、制作パイプラインからもわかる • アセットそのものを作る⼯程に対して、品質担保の側⾯から • 制作したアセット‧メタ情報の共有‧ビルド‧リリースなどの⼯程に対して、管理の側⾯から 企画 2D (Photoshop) 3D
(Maya) マスタ データ入稿 品質担保の安定化 誰もが高水準なアセット制作が可能で、 「必然的な」 安定性を醸成させる Unity 組み込み ビルド 実機確認 PR レビュー リリース 管理の安定化 「ミスが起こり得ない」管理体制 の実現 16 -
2Dデータにおける事例 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー リリース -
品質担保の安定化 - 2Dにおける事例 テクスチャPSD制作体制の改善 • 仕様通りの構造になっているかをチェックす るツールを開発 • 従来のExtendScriptよりも、「保守性‧安全 性⾼く、リッチなUI表現」を⾏うため、
Adobe UXPによるモダンな開発体制を導⼊ ヒューマンエラーがゼロとなり、 圧倒的な品質保証改善 24 -
3Dデータにおける事例 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー リリース -
品質担保の安定化 - 3Dにおける事例 - Maya上で「Unityの⾒た⽬」を再現① ※別途動画ファイルあり Maya上で「Unityの⾒た⽬」を再現① アバター体型変更機能の⼤規模アップデート 『REALITY Avatar
2.0』プロジェクト 突き抜け回避などの調整がより困難となり、 Unity組み込み後に破綻が判明し、 Maya ⇔ Unityの往復作業に... アバター体型変更機能の技術詳細については、以下の資料を参照 『“なりたい⾃分“をアップデート! 「REALITY Avatar 2.0」の開発秘話』 28 -
品質担保の安定化 - 3Dにおける事例 - Maya上で「Unityの⾒た⽬」を再現① Maya上で「Unityの⾒た⽬」を再現① Unity上の体型変更機能と同等機能を、Maya上に実装 ※別途動画ファイルあり → 破綻をMaya上で再現でき、即座に修正可能に
突き抜けが発⽣しているメッシュが ⾚くハイライトされる機能 30 -
品質担保の安定化 - 3Dにおける事例 - Maya上で「Unityの⾒た⽬」を再現① Maya上で「Unityの⾒た⽬」を再現① • Unity • 各ボーンをスケールすることで実現しており、「親のスケールを打ち消すオブジェクトを挿
⼊」することで、親のスケールが⼦に影響しないように Maya ◦ ◦ セグメントスケール補正を利⽤ 31 -
品質担保の安定化 - 3Dにおける事例 - Maya上で「Unityの⾒た⽬」を再現① Maya上で「Unityの⾒た⽬」を再現① • Unity • 各カスタマイズ項⽬に対するボーンのス
ケールオフセット値を加算し、最終的な スケール値を算出 Maya ◦ ◦ アニメーションレイヤを利⽤ 32 -
品質担保の安定化 - 3Dにおける事例 - Maya上で「Unityの⾒た⽬」を再現② Maya上で「Unityの⾒た⽬」を再現② REALITYのアバターアイテムは頂点カラーによってアウトラインの太さを調整可能 → Unity組み込みまでルックが確定せず、⼿戻りが発⽣する... 先端だけR値が⼩さい
髪アイテムのMaya上の頂点カラー R値によりアウトラインの太さが変化 Unity上の髪アイテムの⾒た⽬ 33 -
品質担保の安定化 - 3Dにおける事例 - Maya × Unity双⽅向連携 ※別途動画ファイルあり Maya ×
Unity双⽅向連携 Unity上のアプリケーションロジックによって発⽣するメッ シュのめり込みや破綻は、静的なMaya上では確認できず、 ⼿戻りが発⽣しMaya ⇔ Unityの往復作業となっていた... • モーション機能による動き • フェイストラッキングシステムによる動き REALITYのフェイストラッキング ⾃分の顔を動かすと、アバターも動く 36 -
品質担保の安定化 - 3Dにおける事例 - Maya × Unity双⽅向連携 Maya × Unity双⽅向連携
Unityで記録したポーズをMayaに転送‧再現可能に → 「破綻状態」をMaya上で即座に修正可能とし、⼀⽅通⾏だったパイプラインを「双⽅向」に変⾰ ※別途動画ファイルあり ※別途動画ファイルあり 37 -
品質担保の安定化 - 3Dにおける事例 - Maya × Unity双⽅向連携 Maya × Unity双⽅向連携
• Unity: 数秒間のボーンの回転値をJSONに記録して出⼒ • Maya: JSONファイルを読み込み、対象ジョイントの回転値のキーフレームを打ち再⽣ 38 -
Unity組み込みにおける事例 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー リリース -
品質担保の安定化 - Unity組み込みにおける事例 Unity組み込み事例全体の問題点 アバターアイテム仕様の多様性‧複雑性が⾮常に⾼く、 仕様により組み込み⽅法が⼤きく異なる! 約30のカテゴリ数、約50の種別数 シェーダの種別/マテリアルプロパティ値の違い 約30のカテゴリ REALITY独⾃の特殊効果/機能の有無
マニュアル化しても膨⼤すぎるため、組み込み対象の 仕様がどれに該当するかの照合⾃体が困難 同カテゴリにおける 装着部位などのによる種別違い 40 -
品質担保の安定化 - Unity組み込みにおける事例 - 統合セットアップツール 統合セットアップツール • 1画⾯でセットアップが完結 • 常時制作する全仕様に対応
◦ 2D/3Dアイテムなど関係なく統合的に扱える 対象アイテムを選択し、 DCCツールの出⼒物から 組み込み設定候補を⾃動補完⼊⼒ 揺れものなどのクリエイティブな作業が必要な ものに関しては、テンプレ⽣成などまでは⾏う 42 -
品質担保の安定化 - Unity組み込みにおける事例 - 統合セットアップツール 統合セットアップツール • 操作漏れがなくなり、仕様の多様性‧複雑性を隠蔽 • 「マテリアルやPrefab、ScriptableObjectなど作成、プロパティ設定などの⼿動操作」‧「複数
ファイル操作や画⾯遷移、ファイル間参照関係の構築」などが不要となり、アイテムの仕様により 異なる作業が1本化‧単純化 43 -
品質担保の安定化 - Unity組み込みにおける事例 - アイコン撮影ツール アイコン撮影ツール • ※別途動画ファイルあり 1ボタンでアイテムアイコンの作成が完結 ◦
◦ ◦ ◦ ◦ 撮影 肌透過 ROI検出と余⽩サイズ統⼀ ⾓丸化 etc… 実際に⽣成された画像 45 -
品質担保の安定化 - Unity組み込みにおける事例 - アイコン撮影ツール アイコン撮影ツール 以前は、「グリーンバッグ + 緑肌で撮影 →
Photoshopで編集」と⾔う作業だった → 定型的な作業にもかかわらず、⾮常に⼿間な作業 網⽬など、複雑な形状の肌部分を 透過させることは⾮常に困難 47 -
品質担保の安定化 - Unity組み込みにおける事例 - アイコン撮影ツール アイコン撮影ツール • 服/髪/アクセサリ/デカール/2Dアイテム、など、種別ごとに全く異なる⼿法を1ボタンで実現 • ◦
常時制作する全仕様に対応 ⼀部アイテムは魅⼒的な表現を可能とするため、画⾓調整も可能 ※別途動画ファイルあり これら全て1ボタンのみで⽣成可能 49 -
品質担保の安定化 - Unity組み込みにおける事例 - チェックツール チェックツール • 組み込み対象がどの仕様に該当するのかの照合すら難しい • ◦
→ チェック作業は、シニアアーティストやアバター担当エンジニアですら⼀苦労 ⽬視でのチェック体制だったが、膨⼤すぎて⼯数‧⼼理⾯ともに地獄だった... ◦ ◦ ガチャの場合、「⽉3~6本」 × 「約30アイテム、500ファイル」 × 「修正回数」 20営業⽇換算の単純計算で、最低でも150ファイル/⽇の⼯数が必要 50 -
品質担保の安定化 - Unity組み込みにおける事例 - チェックツール チェックツール • 対象を選択 するだけ 膨⼤な仕様の組み合わせによるバリエー
ション全仕様に対応 • ビジュアル的制約‧システム制約‧暗黙知 (ノウハウ)まで総合的に踏まえ実装した、 完全⾃動チェック • 仕様⾃動判別から、データ間参照、ファ イル内の詳細なパラメータに⾄るまで、⾮ ファイル間の 整合確認 常に詳細なチェックを実現 • 作業者⾃⾝でチェック • 「ツールがOKを出せば問題ない」というルール という体制へ 51 -
品質担保の安定化 - Unity組み込みにおける事例 「複雑な仕様の隠蔽」と「多様性」両⽴の設計思想 1つの画⾯‧ボタンから、アイテム種別ごとに分岐し、汎⽤処理セクションの組み合わせで実現 アイテム種別分岐 汎⽤的処理セクション アイテムA ファイル種別A処理 アイテムB
ファイル種別B処理 アイテムC ファイル種別C処理 シンプルUI (1画⾯/1ボタン) ▪ 対応仕様の明⽰化 ▪ 拡張性の担保 マニュアルがなくとも、コードを読めば 「どの種別がどの仕様の組み合わせか」が理解可能 ‧種別追加 → 「分岐の追加」で対応 ‧特殊仕様追加 → 「セクションの追加」で対応 52 -
マスタデータ⼊稿における事例 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー リリース -
ビルド‧実機確認における事例 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー リリース -
管理の安定化 - ビルド‧実機確認における事例 ブランチ構成について • REALITYでは、Git, GitHubによってバージョン管理。リリース単位ごとにブランチ作成 • アセット確認者がAssetBundleのバージョンを意識しなくとも済むように、後⽅互換性を保つブラ ンチツリー構成が組まれており、専⽤ブランチまで順番にマージしてビルドする必要性
メインブランチ 次にリリースのアバターガチャ その次にリリースのアバターガチャ シリーズごとのツリー (アバターショップ, 家具ガチャ, ギフトアセット, etc…) 開発環境ABビルド⽤ブランチ 順番にマージを⾏い、 マージ後のブランチでABビルド 合計約30以上のブランチで 並⾏的に制作されている 62 -
管理の安定化 - ビルド‧実機確認における事例 以前の開発環境ABビルド体制 • • 各ガチャシリーズの責任Art担当者から、アセット担当エンジニアへビルド依頼 アセット担当エンジニアが順番に⼿動マージした上で、ビルドを実施 なぜエンジニアがマージ? 課題‧リスク
• 約30以上のブランチ全てを把握し、適切に制御する必要性 • ブランチ間マージ時におけるコンフリクト解消対応 • マージ順のミスによるチーム全体成果の消失リスクの回避 63 -
管理の安定化 - ビルド‧実機確認における事例 開発環境ABビルド体制の改善 • Art: Slack Botを使い、⾃⾝でABビルドが可能な体制へ • エンジニア:
アセット制作開始時にマージ順をNotionに定義するだけ 64 -
管理の安定化 - ビルド‧実機確認における事例 開発環境ABビルドのシステム構成 ビルド依頼 Slack Bot Art GitHub Actions
API経由で起動 develop asset/gacha-kamikoma ブランチツリーを定義 asset/gacha-love-illumination エンジニア assetbundle-lab API経由でマージ順を提供 マージ後のブランチで ABビルド -
管理の安定化 - ビルド‧実機確認における事例 開発環境ABビルドのシステム構成 GitHub Actions Slack Bot Art develop
asset/gacha-kamikoma エンジニア asset/gacha-love-illumination assetbundle-lab 定型作業のみをシステム移譲し、 本来⼈間が⾏うべき制御部のみを分離 -
管理の安定化 - ビルド‧実機確認における事例 マージ時における⾃動コンフリクト解消 • コンフリクトの⾃動検出スクリプトを実装し、GitHub Actions上で検知させる • 対象ファイルごとにコンフリクト⾃動解消処理を実装しておき、Unity Editorをバッチモードで
CLIから起動し実⾏ コンフリクト検出したファイル⼀覧のログ Botによってコンフリクト⾃動解消し、マージコミットされる 67 -
PRレビューにおける事例 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー リリース -
管理の安定化 - PRレビューにおける事例 以前のPRレビュー体制 • Unity組み込み時と同様、どの仕様に該当するのかの照合すら難しい • Unity Editorで1ファイルずつ詳細に⽬視でチェックする体制だったが、膨⼤すぎて⼯数‧⼼理⾯と もに地獄だった...
◦ ◦ ガチャの場合、「⽉3~6本」 × 「約30アイテム、500ファイル」 × 「修正回数」 1回あたり5時間以上の⼯数をかけることも多々あり ⾟すぎて、どうにかしたいとぼやいていた図 70 -
管理の安定化 - PRレビューにおける事例 PRレビュー体制の改善 • Unity組み込み時のチェックツールを流⽤ PRに特定ラベルをつけるだけ し、GitHub ActionsでPRレビューを⾃動化 •
ビジュアル的制約‧システム制約‧暗黙知(ノ ウハウ)まで総合的に踏まえ、全仕様に対応 アイテムごとに レビュー結果が確認可能 5時間以上の⼯数が5分に! 71 -
管理の安定化 - PRレビューにおける事例 GitHub Actionsでのチェック処理について • ブランチ間ファイル差分⼀覧を取得し、チェック対象アイテム⼀覧を算出 • Unity EditorをバッチモードでCLIから起動し、チェックを実⾏
• チェック結果を所定のフォーマットに変換し、GitHub PRにコメント記載 73 -
管理の安定化 - PRレビューにおける事例 変更差分全てに対するチェックの恩恵 • 変更差分全てを調べている & 全仕様対応ツールなので、不要データの混⼊を検知可能 • アイテムごとの結果をアセット制作⽬的と⽐べることで、意図しない変更を検知可能
不要データ混⼊ 制作企画として、 追加予定のものでないなら、 意図しない変更発⽣と判断可能 74 -
管理の安定化 - PRレビューにおける事例 変更差分全てに対するチェックの恩恵 • 変更差分全てを調べている & 全仕様対応ツールなので、不要データの混⼊を検知可能 • アイテムごと結果をアセット制作⽬的と⽐べることで、意図しない変更を検知可能
リリース前の最後の⼯程として、 絶対に壊れたアセットを「リリースできない」 ゲートキーピング体制を実現 75 -
リリースにおける事例 企画 2D (Photoshop) 3D (Maya) マスタ データ入稿 Unity 組み込み
ビルド 実機確認 PR レビュー リリース -
管理の安定化 - リリースにおける事例 以前のリリース体制 リリース作業担当エンジニアが、各領域担当エンジニアにマージ済みかを確認してからビルドする リリースReady? OK! アバター担当 エンジニア リリースReady?
No… リリース作業 エンジニア ルーム担当 エンジニア アセット進捗いかがでしょう? ルーム担当 Art リリースReady? OK! ギフト担当 エンジニア 79 -
管理の安定化 - リリースにおける事例 リリース体制の改善 ArtからGitHub PRが提出されたら、 • PdMは、リリース希望⽇をNotionに登録するだけ • エンジニアは、PRレビューを実施するだけ
エンジニア レビュー リリース⽇ 対象のPR PdM判断のリリース可否 80 -
管理の安定化 - リリースにおける事例 リリースを⽀えるシステム構成 リリース前⽇にNotionの登録情報から、リリース可否状態チェック‧マージ実⾏‧ビルド開始を Jenkinsで全⾃動化 (PdM) READY! (エンジニア) Approve!
全てのリリース物でOKなら、 マージ実⾏し、ビルド開始 81 -
管理の安定化 - リリースにおける事例 リリースを⽀えるシステム構成 Notion, GitHub PR、どちらかのステータスが不正の場合は、マージ & リリースが強制ストップ (PdM)
確認中... (エンジニア) Approve! ビルド前⽇なのに、 リリース準備できてない! PRはApproveされているが、NotionでWIPがついてるのでストップ 82 -
管理の安定化 - リリースにおける事例 リリースを⽀えるシステム構成 Notion, GitHub PR、どちらかのステータスが不正の場合は、マージおよびリリースが強制ストップ (PdM) READY! (エンジニア)
RequestChanges! ビルド前⽇なのに、 リリース準備できてない! NotionはReadyだが、PRがApproveされてないのでストップ 83 -
管理の安定化 - リリースにおける事例 リリース体制改善による効果 • マージ‧取りまとめ‧リリース意思確認など、定型作業をシステム移譲し、本来⼈間が⾏うべき判 断部分のみを分離 • 各領域担当、PdM‧エンジニアそれぞれが、Notion /
GitHubを通じて独⽴してリリース可否判断 が⾏え、本来の⾃⾝の責任範囲のみに注⼒できる体制に 84 -
以前のREALITYアバターアセット制作パイプライン 2D (PhotoShop) 3D (Maya) 仕様複雑化に 未対応 シニア アーティストに よる目視確認
最終ルックが 確定しない マスタ データ入稿 エンジニアに よる手動入稿 Unity 組み込み 複数手法に よる作業分岐 シニアによる 目視確認 実機確認 PR レビュー リリース エンジニアへ 作業依頼 エンジニアに よる手動チェッ ク 全社のリリース 内容を把握し 作業 属人化 ... 確認工程の 過多 ... 属人化 ... ヒューマン エラー ... × × 破綻による 手戻り ... 属人化 ... 属人化 ... データ不整合 の危険性 ... マニュアルの 複雑化 ... 定型作業の 繰り返し ... 5時間 × N回の 莫大なコスト ... × 87 -
現在のREALITYアバターアセット制作パイプライン 2D (PhotoShop) ツールの 最新仕様追従 自動チェック ツール導入 マスタ データ入稿 Unity
組み込み 全仕様対応の 自動チェック 導入 ツール 1本化 3D (Maya) Maya上での Unity表現 属人化排除 手戻りゼロへ ヒューマン エラーゼロ ✔ ✔ 新規仕様の 強制検知 完全自動 チェック (50種以上 ) 「ツール OK =問題なし」の 体制 実機確認 SlackBotから 自身でビルド ブランチ マージ自動化 定型作業は ツールで、 制御を人管理 PR レビュー リリース CI/CDで 全自動詳細 チェック リリース物の 自動マージ & ビルド 壊れた アセットを 阻止 職種間の、 責任分離 & 独立制御体制 ✔ 品質担保の安定化 誰もが高水準なアセット制作が可能で、 「必然的な」 安定性を醸成させる 管理の安定化 「ミスが起こり得ない」管理体制 の実現 88