9.2K Views
November 27, 23
スライド概要
■概要
「アーティストが作ったデータの最新がどこにあるかわらかない」
「複数人でデータをやりとりした時にリンクが切れたりしませんか?」
「大量のデータを探しやすいように、アーティストが構造を作りたくないですか?」
などを解消するための、アーティストが作ったファイルを蓄積・共有・探索するツールをご紹介致します。
※CAPCOM Open Conference Professional RE:2023 で公開された動画を一部改変してスライド化しております。
■想定スキル
特になし
ファイル管理に興味がある方
詳細は下記公式サイトをご確認ください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CAPCOM Open Conference Professional RE:2023
https://www.capcom-games.com/coc/2023/
カプコンR&Dの最新情報は公式Twitterをチェック!
https://twitter.com/capcom_randd
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Python® is registered trademarks or trademarks of Python Software Foundation.
株式会社カプコンが誇るゲームエンジン「RE ENGINE」を開発している技術研究統括によるカプコン公式アカウントです。 これまでの技術カンファレンスなどで行った講演資料を公開しています。 【CAPCOM オープンカンファレンス プロフェッショナル RE:2023】 https://www.capcom-games.com/coc/2023/ 【CAPCOM オープンカンファレンス RE:2022】 https://www.capcom.co.jp/RE2022/ 【CAPCOM オープンカンファレンス RE:2019】 http://www.capcom.co.jp/RE2019/
アーティストの膨大なアセットを一括管理 Scene Data Manager (SDM)とは このセッションでは「アーティストの膨大なアセットを一括管理」と題しましてアーティストが日々作っているファイルを どのように管理しているかを紹介したいと思います。 -------Python® is registered trademarks or trademarks of Python Software Foundation. ©CAPCOM 1
始めに アートアセット量が膨大になってきてますよね? それでは、はじめに。 昨今のゲーム開発ではゲームの解像度やクオリティの向上に伴い、アートアセットの量も膨大になってきています。 2 ©CAPCOM 2
困った・・・ この様なことを言われたり感じた事はありませんか? ・最新ファイルはどこ? ・Mayaファイルのリファレンスファイルが参照できない ・あのファイルはどこにある? 膨大なアートアセットを扱う上で、この様なことを言われたり感じた事はありませんか? • 「アーティストが作ったファイルの最新」が、どこにあるかわからない。 3 • 複数人でMayaファイルをやりとりした時に、リファレンスファイルなど、外部ファイルが参照できなくなったりする。 • 大量のファイルが存在するので、欲しいデータを探しにくい。 アーティストはゲームに乗せるデータを作る過程で、ゲームに乗らないファイルも大量に作っています。 それらのファイルに対して、さらに・・・ ©CAPCOM 3
色々やりたい • • • • • • • • • • • ステータス/ラベル • アップロードのルール • その他にも色んな情報 • 自由に作れるツリー • フィルター機能 • 自動化もしたい • このアセットは誰が作成? • 色々なデータを管理 • ファイル名で高速に探したい • 履歴 ステータスやラベルを付与したい。 その他にもファイルに色んな情報を付与したい。 フィルターが欲しい。 誰が作ったのか氏名を日本語で知りたい。 ファイル名で高速に探したい。 アップロードルールを作成したい。 ルールは作るけど自由に作れるツリーも欲しい。 出来るところは自動化したい。 色々なデータを管理したい。 履歴も欲しい。 4 というような様々な要望がありました。そこで… ©CAPCOM 4
よし開発しよう! これらの事を解決するために カプコンで開発したのが Scene Data Manager これらの事を解決するためにカプコンで開発したのが、『Scene Data Manager』というファイル管理ソフトです。 5 ©CAPCOM 5
SDM2.0 Scene Data Managerは “SDM”と呼ばれています。 (以後の説明では“SDM”と呼称) これが Scene Data Managerのメイン画面です。 Scene Data Managerは弊社内では“SDM”の略称で呼ばれています。 6 以後の説明ではScene Data Managerは“SDM”と呼称させて頂きます。 アーティストに協力してもらって専用のロゴを作成していただいております。 ©CAPCOM 6
目次 • 概要 • SDMの歴史 • 機能紹介 • 今後の予定 • 最後に それでは本公演はこのような構成で進めていきたいと思います。 7 ©CAPCOM 7
目次 • 概要 • SDMの歴史 • 機能紹介 • 今後の予定 • 最後に まずは概要です。 8 ©CAPCOM 8
Scene Data Manager(SDM) Scene Data Manager(SDM)とは・・・ アーティストが作成したファイルを 蓄積・探索・共有するためのファイル管理ソフトウェア 前述のスライドでも記載していましたので、改めて にはなりますが、Scene Data Manager(SDM)とは、 カプコンで開発運用している、アーティストが作成したファイルを蓄積・探索・共有するためのファイル管理ソフトです。 9 ©CAPCOM 9
動作環境 種類 OS Windows10・Windows11 Platform .NET6 DCC Maya2018~Maya2024、 Substance 3D Designer(Ver13)、Substance 3D Painter(Ver9)、 その他、様々なファイルに対応 構成(exe) Manager/Visualizer/Bootstrap/Updater/SDM2Cmd/ KeepAlive/WatchDog まず動作環境です。 OSはWindows10・11、プラットフォームは.NET6、 DCCはMaya2018~Maya2024とSubstance、その他様々なファイルを管理できます。 10 構成としてはメイン処理を行なうManager.exeやGUI用のVisualizer.exe、ローカルやサーバーを監視するexeなど、 主に7個のexeに分かれています。 ©CAPCOM 10
社内採用事例 未発表タイトル SDM これは弊社での運用タイトルです。 発売・発表されているタイトルと、まだ未発表のタイトル含め、数十タイトルで利用されております。 ©CAPCOM 11 11
社内採用事例 利用者 年々増加中! 総ファイル数:74万7158個 総利用者数:867人 ファイル数も利用者数も、 年々右肩上がりで増加しています。 こちらは「採用タイトル」の総Asset数・利用者数です。 現在登録されている総Asset数が約74万、総利用者数が867人くらいです。 ©CAPCOM 12 12
目次 • 概要 • SDMの歴史 • 機能紹介 • 今後の予定 • 最後に それでは「SDMの歴史」と題しまして、 「SDM1.0というものを作ってあったのですが、なぜ2.0を新しく作ったのか」をご説明させて頂きたいと思います。 13 ©CAPCOM 13
SDM1.0とは • Maya上でのみ動作するツール • 開いているMayaファイルのアップロード • サムネイル表示のみ • UIでの分類が3分類 • 検索機能は簡易文字検索のみ これがSDM1.0のツール画面です。 弊社は Autodesk Mayaが、メインDCCソフトウェアである事から、SDM1.0は 「Maya上で動作するツールのひとつ」 14 として開発しました。 • • • • Maya内のツールであり、基本的に直接登録できるのは、Mayaファイルとその外部ファイルのみです。 表示形式はサムネイルのみです。 UIでの分類は、[セクション]プルダウン -[タブ]-[フレーム]の3分類です。 検索は文字入力による簡易検索のみです。 そしてSDM1.0を開発運用していくうちに、色んな要望や問題が発生してきました。 ©CAPCOM 14
SDM1.0の要望・課題 • Maya以外の対応 • サムネイル表示のみ • 様々な分類 • 様々な条件で探したい • 登録数の増大で表示速度が異常に低下 • メタがXMLとjsonの混合 SDM1.0 SDM1.0の要望や課題を抜き出すと • Mayaに依存していて、基本的に直接登録できるのはMayaファイルとその外部ファイルのみだが、 Maya以外の様々なファイルも直接扱いたい。 • また、ファイルをDownloadしたいだけの時はMayaナシでも行ないたい。 • サムネイル表示以外の 「情報を中心としたリスト表示」 も欲しい。 • UIでの分類が3分類しか出来ないが、もっと色んな分類を行ないたい。 • 文字以外の様々な条件でもファイルを探したい。 • あと、登録数が1万を超えたりすると表示が異常に重くなったり • メタがXMLとjsonの混合になってしまったり 15 …と、この他にも色んな要望や課題が出てきました。 ©CAPCOM 15
SDM2.0へ ・「SDM1.0への機能追加」では実現困難 ・全て刷新しWindows上で動作するソフトウェア化 Scene Data Manager2.0(SDM2.0) これら様々な要望や課題に対応するためには、SDM1.0のままでは困難だったため、 これを刷新しWindows上で動作する単体のソフトウェアとして、新規に開発を行ったのが、 『Scene Data Manager2.0』です。 ©CAPCOM 16 16
SDM2.0での改善点 SDM2.0では様々な事が解決出来ました • Maya依存の解消 • 各アーティスト別権限付与 • 各種高速化 • TAなどによる自由な検索ツリー作成 • ツリー管理により自由な分類 • 増員対応不要 • ラベル/ステータス • 他のタイトルのデータを容易に参照 • サムネイル/詳細/コンテンツ 表示 • コマンドライン対応 そして、SDM2.0を新規に作成して、様々な事が解決できました。 • • • • • • • • • • メインとなる本体のexe化とMaya側の処理を分離する事で、Mayaに依存しなくなりました。 本体のexe化により各種高速化しました。 1番多いタイトルで17万ファイルあるが、ファイルの一覧表示は遅くても約1秒になりました。 3分類ではなくツリー管理により分類が自由になりました。 ラベル、ステータスによる分類も可能になりました。 Asset一覧の表示が「サムネイル」以外にも、「詳細ビュー/コンテンツビュー」の表示に対応しました。 アーティストごとにAdministrator/User/Guestの権限を付与できるようになり、利用方法を制御できるようになりました。 タイトルのTA(Administrator権限の人)が、探しやすい検索ツリーを自由に作成可能になりました。 タイトルにアーティストが増員されても「SDM2.0利用」については、SDM2.0開発者は何も作業する必要がなくなりました。 他のタイトルのデータを容易に参照できるようになりました。 コマンドライン対応により、TAが自身のツールから、SDM2.0のデータを操作できるようになりました。 17 というような感じでSDM1.0では出来なかった事を実現できました。 次からはSDM2.0の機能を紹介していこうと思います。 ©CAPCOM 17
目次 • 概要 • SDMの歴史 • 機能紹介 • 今後の予定 • 最後に それではここからはSDM2.0の各種機能をご紹介させていただければと思います。 ここのスライド以降は、「SDM」と表現するところはすべて「SDM2.0」と解釈していだけると幸いです。 ©CAPCOM 18 18
基本UIについて まず、SDMの基本UIの説明を行わさせていただきます。 19 ©CAPCOM 19
基本UIの説明 ツリービュー アセットビュー 詳細ビュー こちらがSDMのUIの外観になります。 構成としては、大きく分けて3つの項目に分かれており、 20 • アセット管理を行うツリービュー • 選択したフォルダ内のアセットの一覧表示を行うアセットビュー • 選択したアセットやフォルダの情報表示を行う詳細表示ビュー …となっております。 次に、個々のビューについて簡単に説明させていただきます。 ©CAPCOM 20
ツリービューについて • フォルダ構造でのアセットの管理 • フォルダ単位でのメタ情報の管理 • フォルダ検索 • 複数の条件の異なるツリーの管理 ツリービューについて説明させていただきます。 先ほどのお話にあったとおり、SDM1.0の時の問題を改善すべく、タブの管理から、ツリー構造でのフォルダ管理に変更しています。 21 • まず フォルダ構造でのアセット管理になりました。 フォルダの構成は、タイトルで決めた専用のルールで作成されており、アセットの名前などから自動で配置位置が決まる仕組みに なっています。 • フォルダ単位でメタ情報を設定できるようにしています。 付けているメタ情報の一例として、管理されているフォルダ名だとわかりづらいので、図の画面中で言うと “リオレイア” などの 別名表示を付けて、ぱっと見てフォルダがなにを管理していかをわかりやすくしたりなどしています。 ©CAPCOM 21
ツリービューについて • フォルダ構造でのアセットの管理 • フォルダ単位でのメタ情報の管理 • フォルダ検索 • 複数の条件の異なるツリーの管理 • フォルダに付与したメタ情報をキーとして、フォルダの検索を行うことができるようにしています。 • 図のツリーとは別に、メタ情報を利用して、別途、複数の表示条件の異なるツリーを作成することができるようにしています。 22 どのような情報を付与して使用しているか、別のツリーがどのようなものかの詳細は後述します。 ©CAPCOM 22
アセットビューについて • アセットのサムネイル表示 選択しているフォルダの下層フォルダの 内容も含めた状態で表示が行われる 次に、アセットビューについてです。 • アセットビューでは、現在選択されているフォルダに管理されている、アセットの表示が行われます。 23 表示されるアセットは、現在選択しているフォルダ以下の、下層となるフォルダに所属するものを全て含めたものが表示される 仕様になっています。 ©CAPCOM 23
アセットビューについて • 表示される情報はメタデータの情報 • DCCソフトウェア対応のフィルター機能 • メタデータの情報に応じた検索が可能 • 依存しているアセット相互の表示が可能 • ダウンロードや、コミットが可能 • ここで表示されるアセットは、実際のファイルを扱っているわけではなく、アセットのメタ情報を元に表示を行っています。 • DCCソフトウェア単位などの、頻繁に使用しそうな種類で、表示フィルターをかけることをできるようにしており、 24 フィルターをかけられる種類は、Mayaなど、社内で現在使用されているDCCソフトウェア単体を表すものや、 Document のように、テキスト、ワード, PDFなどを複合化したものにしてあるものなどもあります。 用意した一覧から、コンボボックスを使用して切り替えを行えるようにしています。 • アセットが持つ、メタ情報の値を元にして検索を行うことができます。 上記のフィルターを使用している場合は、フィルターの条件との and 検索になります。 ©CAPCOM 24
アセットビューについて • 表示される情報はメタデータの情報 • DCCソフトウェア対応のフィルター機能 • メタデータの情報に応じた検索が可能 • 依存しているアセット相互の表示が可能 • ダウンロードや、コミットが可能 • アセットが依存している、アセットの相互表示ができます。 Mayaのシーンが使用しているリファレンスシーンや、Substance 3D Designerが使用しているテクスチャーなどが依存アセット に相当します。 25 • アセットのダウンロードや、ドラッグ&ドロップでの、ファイルのコミット操作、コミットの履歴閲覧などを行うことができます。 MayaやSubstanceなどは、ソフトウェアの方から直接コミット操作などができるのですがそちらは後述します。 こちらのビュー上から上記のような操作などを行うようにしています。 ©CAPCOM 25
詳細ビューについて • サムネイル表示 • 選択されているフォルダのメタ情報の表示や アセットのメタ情報の表示 • メタ情報の現在の値の編集 次に、詳細ビューについてになります。 詳細ビューでは、 • 現在選択されているフォルダやアセットのサムネイルの表示。 • 選択されているフォルダや、アセットのメタ情報の現在の内容の表示。 • メタ情報の値の編集などを行うことができます。 26 以上で、基本UIの簡単な説明とさせていただきます。 ©CAPCOM 26
SDMの主目的 SDMの主目的としては 蓄積・探索・共有 を目的としており 今回はそのうちの探索にあたる 共有したアセットを素早く見つけられるようにする ここで、SDMの主目的についてお話をしておきますと、SDMの主目的として、蓄積・探索・共有 の3つを目的としており、 今回はそのうちの、探索にあたる部分の、共有したアセットを素早く見つけることができるようにすることを実現するために、 どのような情報を用意しているかについて、次にお話をしていきたいと思います。 27 ©CAPCOM 27
検索のための情報を作成 フォルダ、アセットのメタ情報には各種メタ情報を持たせています。 用意しているメタ情報例 • ファイル名 • ファイルサイズ • 表示名 • ラベル / ステータス • 概要 • アセット依存情報 • 担当者 • DCCの種類 • 更新者 • DCCの種類に応じた専用情報 • 更新日時 • サムネイル など アセットを素早く見つけるために、フォルダや、アセットには各種メタ情報を持たせるようにしています。 メタ情報の一例としてですが、ファイル名や、概要、更新日時などの一般的な情報から、ラベル/ステータス、依存関係情報、 28 DCC単位での専用情報なども用意しています。 DCC単位での専用情報としては、シーン内でのポリゴン数や、テクスチャーの解像度などがその情報に当たります。 これら付与したメタ情報を、アセットを探すための検索条件として利用しています。 今回は、ここの ラベルとステータス の情報の説明と、つけた情報をどのように使用しているかについてピックアップしてお話させ ていただきます。 ©CAPCOM 28
ラベルについて 次に、ラベル情報について、ラベルがどのように使用されているかなどの説明をさせていただきます。 29 ©CAPCOM 29
ラベルについて Administrator 1. ラベル定義とグループを作成 2. フォルダにラベルグループの設定を登録 3. 全体共通で使用されるラベルに関しては、親のフォルダに事前に付与しておく User 1. 自身が管理するフォルダに、ルールに従ってラベルを付与する SDMでは各タイトル側メンバーとして、“Administrator” と “User” という権限がついている人たちがいます。 ラベルを使用する上での流れとして、Administrator 主に、TAなどの人たちになるのですが、まずラベルを使う上での準備を 30 行います。 • 1つ目、主にはセクションの代表者が必要なラベルと、ラベルのグループを作成します。 • 2つ目、作成したグループをフォルダにセットします。 これは、使用者に使わせたいラベルのみを表示させるための設定となります。 • 3つ目、セクション全体で使用したいものは、親のフォルダに事前にラベルを付与しておきます。 何故上記のようなことをしているかの理由は、次以降に実際のフォルダ構成を交えて説明をさせていただきます。 ©CAPCOM 30
ラベルについて Administrator 1. ラベル定義とグループを作成 2. フォルダにラベルグループの設定を登録 3. 全体共通で使用されるラベルに関しては、親のフォルダに事前に付与しておく User 1. 自身が管理するフォルダに、ルールに従ってラベルを付与する 次に、User側、実際にシーンなどを作成する人たちです。 個人単位で管理する作業フォルダに、必要なラベルをルールに従ってセットする作業をしていただきます。 31 Administratorが、事前に使用できるラベルの設定を指定してあるので、User側ではフォルダにつけていいラベルのみが表示されて いる状態になっています。 次から、実際の作成例と使用例について説明させていただきます。 ©CAPCOM 31
ラベルについて(Administrator) ラベルは専用のUIにて作成 ・タイトル単位で好きなラベルを作成 ・ラベルを管理するグループを定義 ラベル自体はGUIDを使用しているので、 後からの表示名の変更にも対応しています。 ラベルの作成方法について、ラベルは、専用の作成UIを用意しています。 左側のLabelがついている部分が、ラベルの一覧になります。 タイトル単位で好きな名称のラベルを作成できるようにしています。 32 右側のGroupがついている部分が、ラベルの種別を管理するためのグループ定義になります。 こちらのグループ定義は、ラベルの使用ルールとして利用されます。 また、ラベル自体は、Guidで管理するようになっており、後から表示名を変更しても大丈夫なように対応をしております。 ©CAPCOM 32
ラベルについて(Administrator) ラベルの初期設定について (例) ①Propsに使用するグループとして、 このフォルダで、使用できるラベルとして設定 ②家具・内装 フォルダにカテゴリ全体 に指定したいラベルをセット ラベルを使用してもらう上で初期設定としての一例となります。 ここでは、Propsフォルダに対して、使用できるラベルのグループの設定をまず行っていきます。 33 こちらを設定することで、ここ以下の下層のフォルダでは、使用できるラベルのみが表示されるようになっていきます。 次に 家具・内装 以下のフォルダすべてに、共通のラベルをセットします。 下層のフォルダにはセットしたラベルの情報が引き継がれるようになっているので、これを設定することで、 共通で設定しておきたいラベルを、下層にある個々のフォルダにセットしなくて良くなります。 ここまでが、Administrator側で行っておく作業になります。 ©CAPCOM 33
ラベルについて(User) Userがラベルを設定する場合 • 木の机などアセット単体の管理フォルダに、 アセットの作業者などがラベルをセットしていく • Administratorがルールをセットしているので、 セットできるラベルのみが編集時に 表示されるようになっている 次にuser側のお話になります。 各使用者が、自身の担当アセットにラベルを設定していく場合です。 34 家具・内装 以下にある、担当のフォルダを選択してラベル編集を行っていくものとし、ここでは、木の机 を管理するフォルダを 選択して操作しているとします。 初期設定として、どのラベルを表示するかをAdministratorが指定しているので、使用する側では、必要なものだけが表示される 状態となっています。 そこから、タイトルで決められたルールに従い、必要なものを選択して情報を追加していってもらいます。 ここまでが、ラベルを設定していく流れとなります。 ©CAPCOM 34
ラベルについて(User) アセットでなく、フォルダにラベルを付けているのはなぜか 1. 木の机を構成するものは、シーンの他に、テクスチャーなど 複数のアセットが絡んでくるため 2. フォルダのラベル情報は所属するアセットすべてに、 継承という形で引き継がれるので、個別に制御しなくてもよくなるため ここでは、これまでの説明で、なぜ、ラベルをアセットではなくフォルダにつけているかについて触れておきます。 もともとは、アセットにつけるのを想定していたのですが、実際の運用をしてみると、フォルダにつけた方が利便性が高いと 35 わかったためです。 第一に、フォルダ単位で一つのオブジェクトとして管理されていることがほとんどだからです。 木の机を例に挙げると、シーンを構成する要素は、シーンだけではなく、シーンで使用するテクスチャーなど他のアセットも 含んだものとなっているためです。 これら、すべてに一つ一つ情報を付与していくと非常に手間が発生してしまいます。 また、設定数が増えていくとミスが発生する可能性も高まります。 ©CAPCOM 35
ラベルについて(User) アセットでなく、フォルダにラベルを付けているのはなぜか 1. 木の机を構成するものは、シーンの他に、テクスチャーなど 複数のアセットが絡んでくるため 2. フォルダのラベル情報は所属するアセットすべてに、 継承という形で引き継がれるので、個別に制御しなくてもよくなるため 配置先の入れ替えなどが発生した場合、配置先がかわるため情報のつけ直しを行わないといけないなどの手間も出てきてしまいます。 フォルダに値をつけておいた場合は、フォルダに所属するアセットには値の情報が継承されるようになっている。 36 これは、パラメーターの継承を親から子に行うような実装にしてあるためです。 必要なファイルが増えたり移動したりした際にも、フォルダ側につけておけば自動的にアセットにフォルダにつけた値が 継承されるため、これによって、アセット側を個別に値の付け直しをする手間などが省けます。 実際の運用を行った結果、アセット個別につける意味があまりなかったというのがあり、管理フォルダについていれば運用上 問題ないことがわかりましたので、現状はフォルダの方で値の管理を行うような形になっています。 ©CAPCOM 36
特殊ラベル システム側で用意している特殊なラベルについて UI上での表示が、専用表示になるようになります。 • 使用禁止 作成したがタイトルで使用されなくなったものに セットすると、フォルダはグレー表示、アセットは表示されなくなる。 • 取り扱い注意 サムネイル上に、使用注意という表示が行われるようになる。 取り扱い注意 タイトルが用意するラベルとは別に、システムで管理する特殊なラベルも用意しています。 こちらは、全タイトルで自動で使用できる形にしており、UI上でも専用の表示が行われます。 37 • 使用禁止 作成したが、もろもろの事情で、使用されなくなったものなどにセットします。 今後使用をしてもらいたくないものなので、フォルダはグレー表示、アセットは表示が行われなくなるようにしています。 • 取り扱い注意 セットすると、サムネイル上に「注意喚起を行う表示」などを行います。 ゲーム中で、特定の表現をしないようになど、利用時の注意喚起を行ったりしたいときに使用します。 ラベルの説明は以上のようになります。 ©CAPCOM 37
ステータス ステータスというパラメーターについて • 作業依頼、進捗状態などで使用する情報で、 複数の状態から、一つの状態を排他制御で管理するもの • 作業依頼や、進捗状態の制御をする都合上、 所属しているセクション単位での、選択条件の表示オン/オフ 状態の変更をトリガーとしたメールの自動送信 などの機能を用意 次にステータスについての説明をさせていただきます。 作成方法や、設定方法に関しては、ラベルとかわらないのですが、使用用途がラベルとは異なるものになっています。 38 ラベルとの使用用途の違いとしては、作業依頼だったり、進捗状態などの情報を管理するのに使用をしているものになっており、 複数の状態から一つの状態を排他で管理するものとなっています。 扱っていくものが、作業依頼や、進捗状態となる都合上、所属しているセクションや権限によって、操作させたくないものも 出てくることがあります。 そのため、選択できる状態を変化させる機能や、作業依頼の様に、他の人に変更を連絡したいなどがあり、特定の状態に変更すると、 連動してメールが自動送信される機能などを専用機能として用意しています。 ©CAPCOM 38
ステータス ステータスというパラメーターについて • 作業依頼、進捗状態などで使用する情報で、 複数の状態から、一つの状態を排他制御で管理するもの • 作業依頼や、進捗状態の制御をする都合上、 所属しているセクション単位での、選択条件の表示オン/オフ 状態の変更をトリガーとしたメールの自動送信 などの機能を用意 また、送信されるメールには、変更したフォルダ/アセットを選択するためのリンクを記載しておき、そこをクリックすることで、 SDM上で、依頼があったアセットの場所を調べなくても選択ができるようにしています。 39 ©CAPCOM 39
ステータスの実用例 ステータス使用例として、画像や素材の著作権チェックなどにおいて、 弊社内の知財担当者とのやり取りフローを実例として紹介します。 メール自動送信 確認資料の用意 知財チェック依頼に ステータスを変更 依頼メールを 確認 メール自動送信 確認を行い、 OK or NGに ステータスを変更 結果を確認し OKなら終了 NGなら修正 ステータスの実用例として実際に、知財担当者とのやり取りなどを行った時の例です。 タイトル側の人員が、アセットに、知的財産などの侵害がないかの依頼をするためのフローとなります。 緑枠がタイトル側の対応、黄色枠が知財担当者側の対応となります。 40 タイトル側がまず、確認用の書類を用意し、SDMにアップロードします。 確認してほしいアセットのステータスを知財依頼用の状態に変更します。 ここで、設定してある確認依頼のメールが知財担当者の方に送られます。 ©CAPCOM 40
ステータスの実用例 ステータス使用例として、画像や素材の著作権チェックなどにおいて、 弊社内の知財担当者とのやり取りフローを実例として紹介します。 メール自動送信 確認資料の用意 知財チェック依頼に ステータスを変更 依頼メールを 確認 メール自動送信 確認を行い、 OK or NGに ステータスを変更 結果を確認し OKなら終了 NGなら修正 知財担当者の方は依頼メールを確認してもらい、問題がないかの確認をしていただきます。 大丈夫か駄目かを確認し、結果をステータスとして変更してもらいます。 変えたタイミングで、結果がメールで送信されますので、依頼者は確認を行い、OKならそのまま終了。 NGなら、修正を行い再度同じ工程でOKになるまで確認を行っていきます。 41 このような流れで作業を行ったりしています。 次に、説明を行ってきたラベル/ステータスなどのメタ情報を使用して、どのように表示を変更しているかの説明を行っていきます。 ©CAPCOM 41
カスタムツリー/お気に入りツリー その他表示機能について • フォルダやアセットのメタデータをキーとして 表示の構成を構築できる • フォルダから表示するか、アセットのみを表示するかは 条件で制御 • カスタムツリーはタイトル全体で共有される • お気に入りツリーは個人単位で取り扱われる 次に、実際ラベルやステータスなどのメタ情報を使用して、どのように表示を見せているかの説明を行っていきます。 メタ情報のデータをもとにして、表示を切り替えられる機能をカスタムツリー/お気に入りツリー という名称で用意しています。 42 • これはアセットの管理構造とは別に、フォルダ、アセットに付与しているメタデータの情報から、表示構成を自由に構築できるよ うにしてあります。 現在設定されているメタ情報の値を基準として、表示が見れた方が便利な時が往々にしてあるためです。 • それぞれ、アセットのみを表示、フォルダから表示するかは条件で制御できます。 ©CAPCOM 42
カスタムツリー/お気に入りツリー その他表示機能について • フォルダやアセットのメタデータをキーとして 表示の構成を構築できる • フォルダから表示するか、アセットのみを表示するかは 条件で制御 • カスタムツリーはタイトル全体で共有される • お気に入りツリーは個人単位で取り扱われる • カスタムツリーはタイトル全体で条件が共有されます。 全体で共有されるため、管理者権限を持つ人のみが条件の編集を行うことができるようにしています。 43 • お気に入りツリーの方は、個人単位で管理され、自分が見たいものだけを表示したり使用するのに使用できます。 カスタムツリーとお気に入りツリーは動作としては同じものとなっており、上記に話をした通り、共有範囲が異なるものとなります。 上記のような表示の管理をできるようにしてあります。 ©CAPCOM 43
振り分けの例 カスタムツリーの表示例 ポリゴン数単位での表示 指定ラベルでの表示 権利確認情報の 状態での表示 担当分を表示 実際にどのような振り分けができるかの例を挙げますと、 • • • • データのチェックなどを目的として、シーンのポリゴン数を情報として、アセットの表示を行ったり セットしたラベル単位で、フォルダの振り分け表示を行ったり 先ほど説明した、知的財産のステータスの状態によって振り分けた表示を行ったり 自身の作業担当分の表示を行ったり 44 …など、現在セットされているメタデータの情報を元にして、タイトルもしくは、個人で必要な情報単位で見やすいツリーを 構築できるようにしています。 ©CAPCOM 44
タイトルの切り替えについて 次に、作業タイトルの切り替えについてです。 こちらは、TAの方など、複数のタイトルにまたがって作業をしたりする人たちや、過去作のデータを参照したりしたいときなどが 45 あった場合に、複数のタイトルを参照して作業をする人向けの機能となります。 こちらは、切り替え時の動画を再生させていただきます。 ©CAPCOM 45
タイトル切替 プルダウンを選択するだけで、「BIOHAZARD VILLAGE」と「MONSTER HUNTER RISE SUNBREAK」が、 すぐに切り替えられます。 46 ©CAPCOM 46
他のソフトウェアとの連携 ここからはSDMと、他のソフトウェアとの連携についてご紹介したいと思います。 47 ©CAPCOM 47
他のソフトとの連携 Autodesk社ShotGridとのフォルダ情報の連携 RE ENGINEでラベル情報や表示名情報の取り込み Autodesk社Mayaとの各種連携機能 本日は3つをご紹介します。 • 1つ目は、Autodesk社のShotGridとの、フォルダ情報などの連携。 • 2つ目は、弊社RE ENGINEとの、ラベルや表示名情報の連携。 • 3つ目は、弊社のメインソフトウェアであるMayaとの連携も行なっています。 48 それではひとつずつご紹介していきます。 ©CAPCOM 48
SDM&ShotGrid ShotGridとのフォルダ情報の連動 ・ShotGrid側と共通で扱えるパラメーターを対象 ・ShotGrid側へ情報を送信 ・SDM上で取り込み実行 ・専用の差分情報ウィンドウ上で取り込み ShotGridでは、SDMのフォルダ情報の連動などをサポートしています。 先ほどの説明にあげていた、ラベル/ステータスや、表示名、サムネイルなど、ShotGrid側と共通で扱えるパラメーターは、SDM側 49 での値の変更時に、ShotGrid側へ情報の送信を行い同期するなどを行ったりしています。 取り込みに関しては、取り込みメニューを実行すると、現在の値と、ShotGrid側との差分情報を表示するようにしていて、選択して 値を取り込む形にしています。 ©CAPCOM 49
SDM&ShotGrid RE ENGINEとの フォルダ情報の連動 • RE ENGINE側で情報を取り込み • 表示名/ラベルを対象 • RE ENGINEへの反映は自動化 RE ENGINEでは、現在は、RE ENGINE側でSDMのラベルや表示名の情報を取り込んでいます。 SDM側とRE ENGINE側で、「表示名やラベルを付与する操作を2度しなくてはいけない手間」を減らすために、SDM側から情報を 50 jsonで用意し、RE ENGINE側で取り込む形の自動化を行っています。 ©CAPCOM 50
SDM & Maya SDM2.0 アップロード MAYA ダウンロード (OpenScene) ここからはSDMとMayaの連携についてご紹介していきます。 MayaからSDMへのUploadと、SDMからMayaでのOpenSceneをご紹介します。 ©CAPCOM 51 51
SDM & Maya • TCP/IPで接続 • 接続状態をアイコンで表示 • SDMアイコンの右クリックメニューから様々な機能にアクセス MayaとSDMはTCP/IPで接続していて、SDMアイコンがMaya上に常に表示されています。 SDMと接続されているとアイコンの色が青色、切断されていると灰色になります。 SDMアイコンの右クリックメニューから、色んな機能にアクセスできるようになっています。 ©CAPCOM 52 52
Maya Upload • SDMアイコンからUploadWindowを起動 • シーンの情報と外部ファイル、 サムネイル画像ファイルをアップロード • SDMへのアップロード先のフォルダは自動で決定 次に、MayaからSDMへMayaファイルをUploadする方法です。 SDMアイコンの右クリックメニューから[アップロードメニュー]をクリックすると[UploadWindow]が起動します。 53 ここからUploadする事で、Mayaシーン内の「TextureやReferenceファイルやポリゴンなど“様々な情報”」とともに、 「MayaファイルやReferenceやTexure、ShaderやAudioなどの“外部ファイル”」がSDMにUploadされたり、 自動でサムネイルが生成されたりします。 また、この時アーティストは「Upload先のフォルダ」をいちいち指定する事はありません。 ©CAPCOM 53
Maya Upload • SDMアイコンからUploadWindowを起動 • シーンの情報と外部ファイル、 サムネイル画像ファイルをアップロード • SDMへのアップロード先のフォルダは自動で決定 画像では「Candidate VPath」という項目にSDMへのUpload先のフォルダが表示されるのですが、これはアーティストが入力する ものではなく、自動で決定したフォルダが確認用に表示されています。 54 SDMではタイトル固有のルールを作成する事が可能で、「Uploadするファイル名などの条件によってUpload先が自動で決まる」 ようにしています。 これによってアーティストは、毎回Uploadフォルダを選択したり、どこにUploadするのか迷ったりUpload先を間違ったりする事が ないようにしています。 ©CAPCOM 54
Maya OpenScene • Mayaファイルの参照情報は全て把握 • 依存ビューに外部ファイルすべて表示 • 依存ビューからジャンプ可能 次は、SDMに登録されているMayaファイルを、自分のMayaで開く方法をご紹介します。 MayaからUploadした時に、Mayaファイルが参照している外部ファイル情報(Texture・Reference・Shader・ImagePlane・ 55 Audioファイルなど)をSDMが把握しているので、UI上でMayaファイルを選択すると、下部のUI上(依存ビュー)に、依存してい るTextureファイルや他のリファレンスファイルが表示されるので、Openする前に確認する事が出来ます。 また依存ビューで右クリックすると、そのファイルにジャンプする事も出来ます。 ©CAPCOM 55
Maya OpenScene • Mayaファイルと 関連するファイルのみダウンロード • 外部ファイルパスは 利用者の環境に合わせて自動で変更 SDMのUI上から「OpenScene」をクリックすると、「選択したMayaファイル」と「そのMayaファイルが使っている外部ファイル のみ」をローカルにDownloadしてMayaでOpenします。 56 また、Mayaシーン内に記録されているTextureやReferenceファイルのパスは、OpenScene操作をした人の環境に合わせて自動で変 更されます。 例えば、とあるアーティストさんがDドライブ、別のアーティストさんがEドライブを使っていたとしてもOpenSceneした時に各 アーティストの環境にあわせて外部リンクを自動変更しており、Referenceファイルなどの外部ファイルが参照できなくなるような 事は無いようにしています ©CAPCOM 56
履歴の確認 • 各ファイルの履歴を保持 • 履歴一覧からダウンロード • MayaファイルのみMayaですぐに開く事が可能 • ダウンロード先はリビジョン番号のフォルダを生成 次に、ファイルの履歴についてです。 ファイル管理ソフトなのでSDMも履歴を持っています。 履歴一覧からDownload可能です。 57 ただ、Mayaファイルだけは、SDMの履歴ウィンドウからMayaファイル名を右クリックして「Edit」をクリックすると、Download されるだけではなく、すぐにMayaで開いて確認できるようにしています。 そのとき、ローカルのDownload先はそのリビジョン番号のフォルダをローカルに作って、そちらにDownloadすることで、最新と 混ざらないようにしています。 ©CAPCOM 57
タイトルごとの処理挿入 Upload直前/OpenScene直後にタイトル固有処理を実行可能 • シーンが正しいかチェック • Mayaファイルとfbxをアップロード • 通知の送信 • 特定チェックのスキップ • 特定テクスチャファイルのアップロードをスキップ • 必須ノードの自動生成 • タイトル購入のサードパーティ製プラグインの固有設定 • 膨大な不要ノード検出 次は、各タイトルごとの処理についてです。 アーティストが作成するデータは、共通の部分もありますがタイトルごとに異なる部分も多いです。 58 そこで、Uploadする直前/OpenSceneした直後に、タイトルごとの様々な処理を実行する事が出来るようにしています。例えば • • • • • • • • シーンが正しいかチェックしたり Mayaファイルのついでにfbxファイルも裏で生成してUploadしたり 特定のチェックに引っかかったら通知を飛ばしたり 特定のシーンは特定のチェックをスキップしたり 特定のシーンはTextureファイルのUploadをスキップしたり 必要なノードがなかったら自動生成したり そのタイトルで購入したThirdParty製プラグインの固有設定を施したり 膨大な不要ノードがシーン内に存在したら警告を出したり …というような様々な処理を挿入する事が出来ます。 ©CAPCOM 58
タイトル(TA)用MayaPython®コマンド ・Mayaツール制作者が自身のMayaツールからSDMを操作可能 ・SDM操作用MayaPythonの関数を提供 MayaPythonコマンドも用意してあります。 先ほどは「SDMへUploadする時にタイトル固有の処理を はさむ方法」をご紹介しました。 59 それとは別に、例えば • TAなどMayaツール制作者が自身のツールに「SDMへのUpload機能」や「SDMからのImport機能」を付けたりする事も出来ます。 • MayaPythonの関数としてSDMを操作できるものを公開しており、Mayaツール制作者は自由に自分のツールに組み込む事が出来 るようにしてあります。 ©CAPCOM 59
タイトル(TA)用MayaPython®コマンド例 # SDMへアップロード Sdm2.commit_maya_scene() # SDMからリファレンス更新 Sdm2.download_all_reference_files() # SDMから オープン/インポート/リファレンス Sdm2.open_maya_scene2() # SDMにある任意ファイルのダウンロード Sdm2.download_assets() # SDMにあるファイル情報取得 Sdm2.get_asset_file_info() # SDMにあるツリーの情報取得 Sdm2.get_tree_info() # SDM上のUIでアセットを選択状態にする Sdm2.select_object() • RE ENGINEへの出力のついでに SDMへアップロード こちらがSDMのMayaPythonコマンドの一例です。Uploadしたり、Openしたり、Referenceしたり、SDM上の情報を取得したりで きるようになっています。 60 タイトルによっては、「弊社RE ENGINEへデータを出力した時」に、ついでにSDMへMayaファイルをUploadするような仕組みを 作っていたりもします。 ©CAPCOM 60
タイトル(TA)用コマンドライン 「コマンドラインで実行できるexe」も提供 // SDMへアップロード(upload.jsonに詳細記述) SDM2Cmd.exe -upload -fileinfo "d:/tmp/upload.json“ // Alias文字でSDMにある ファイル情報取得 SDM2Cmd.exe -query -alias “Event系” // SDMからファイルをダウンロード SDM2Cmd.exe -download -filename aa.png // SDMの最新を同期 SDM2Cmd.exe -sync -force // ファイル名でSDMにあるファイルの情報取得 SDM2Cmd.exe -query -filename bb.mb さらに、MayaPython以外にも「コマンドラインで実行できるexe」も用意しており、こちらがSDMのコマンドラインの一例で、 Uploadしたり、Downloadしたり、情報を取得したり出来るようにしています。 61 ©CAPCOM 61
Maya OpenScene OpenSceneの高速化 • 「本体Mayaファイルとリファレンスファイル」のみ 先にDownload/Open処理開始 • MayaでのOpen処理のバックグラウンドでテクスチャダウンロード • テクスチャダウンロード完了時にMaya側でリロード 次に、SDMに登録されたMayaファイルを、自身のMayaでOpenする時の、ちょっとした高速化手法についてです。 • Open操作を行なったとき「本体であるMayaファイルとReferenceファイルのみ」をDownloadしたら、すぐMayaでOpenします。 62 • MayaでのOpen処理が行なわれている間に、バックグラウンドでTextureファイルをDownloadします。 • その後、TextureファイルのDownloadが完了したらSDMからMayaに完了通知を出して、Maya側でTextureをReloadします。 …という処理を行なっています。 巨大なTexture画像ファイルが使用されているシーンでは、MayaファイルのOpen処理とTexture画像ファイルのDownloadを同時に 行なうことで、Mayaシーンを開く速度の高速化を図っています。 ©CAPCOM 62
Maya OpenScene(テクスチャ) テクスチャファイルの問題点 • テクスチャファイルが重い • カットシーンなど多くのMayaファイルを利用するシーン • とあるカットシーンのOpen完了に11分42秒 次はTextureの話を少ししたいと思います。 Textureファイルの問題点として 63 • 使用するTextureファイルの解像度や個数が増大して、ひとつのMayaシーンで利用するTextureがかなり重くなったりしています。 • 特にカットシーンなど、多くのMayaファイルを利用してひとつのシーンを構築したりすると、MayaファイルのOpen時に大量の Textureが影響して、Openが遅くなったりします。 • とあるカットシーンを開いてみると、Openの完了に 11分42秒 かかったりしました。 ©CAPCOM 63
Maya OpenScene(テクスチャ) 対応策 • 「縦横比を維持した軽量テクスチャファイル」を自動生成 • 「軽量テクスチャでOpen」を指定して開く 結果 Maya 通常テクスチャ 軽量テクスチャ Open完了時間 11分42秒(702秒) 52秒 使用メモリ 20.32 [GB] 9.65 [GB] こういうMayaシーンのために、SDMではSDM側で「縦横比を維持した軽量Textureファイル」をサーバーに自動生成しており、 SDMから「軽量TextureでOpen」を指定してOpenすると、「“軽量化されたTexture画像ファイル”が貼られたMayaファイル」が Openされるようにしています。 64 その結果、とある巨大なカットシーンだと、Open完了時間は「約11分 が 52秒」になり、使用メモリも「20GB が 9GB」になった りしました。 ©CAPCOM 64
テクスチャについて 通常テクスチャ 軽量テクスチャ 左の画像が通常Textureで、右の画像が軽量化したTextureに差し替えられたモデルです。 カットシーンなどを作る時には違和感のないクオリティかと思います。 65 ©CAPCOM 65
SDM & Substance 3D Painter • Substance 3D Painter にもUploadWindowが存在 • sppファイル または spp+テクスチャファイルをアップロード可能 クリックしてSDMと接続 接続が成功すると青表示に Mayaと同様に、Substance 3D PainterにもUploadWindowが存在しています。 Substance 3D Painter からは「sppファイル」または「sppファイルとTextureファイル」をUpload出来ます。 ©CAPCOM 66 66
SDM & Substance 3D Designer • Substance 3D Designer にもUploadWindowが存在 • sbsファイル または sbs+sbsar+テクスチャファイルをアップロード可能 同様に、Substance 3D DesignerにもUploadWindowが存在しています。 Substance 3D Designer からは「sbsファイル」または「sbsとsbsarファイル」・「Textureファイル」をUpload出来て、依存関係 67 情報も自動で付与されます。 ©CAPCOM 67
SDM & Substance この画面は、Substance系のファイルがUploadされている例です。 Substanceのファイルにも依存関係が自動で付与されます。 68 ©CAPCOM 68
目次 • 概要 • SDMの歴史 • 機能紹介 • 今後の予定 • 最後に 主な機能の紹介は以上となります。次は今後の予定を少しご紹介致します。 69 ©CAPCOM 69
今後の予定 ・高速化 ・安定性の向上 ・対応DCCソフトウェアの増加 ・Mayaファイル自体の自動ファイルバージョンアップ ・データの自動圧縮/展開 ・他のソフトウェアとの連携強化 ・リファレンスの参照を維持したファイルリネーム 今後の予定としては • 高速化 70 全データの最新情報取得や、膨大なCustomTreeをTitle側が作成した時の検索、MayaからのUploadやOpenなど、高速化する余地 はまだまだありますので対応したいと思っています。 • 安定性の向上 • 対応DCCソフトウェアの増加 現在MayaとSubstanceですが、MotionBuilderやZbrushの対応を考えています。 ©CAPCOM 70
今後の予定 ・高速化 ・安定性の向上 ・対応DCCソフトウェアの増加 ・Mayaファイル自体の自動ファイルバージョンアップ ・データの自動圧縮/展開 ・他のソフトウェアとの連携強化 ・リファレンスの参照を維持したファイルリネーム • Mayaファイル自体の自動ファイルバージョンアップ これは、例えばTitleで使用しているMayaが2019の場合、サーバー上でMaya「2020のファイル」「2022のファイル」「2023の ファイル」「2024のファイル」が自動生成されていく機能です。 71 2019のMayaファイルをいきなり2024で開いても開けなかったりする事があるのですが、バージョンの段階を踏めば開けること があるので、その対応をしようと考えています。 • データ自動圧縮/展開 アーティストが扱うファイルのサイズは増加の一途をたどっているので「アーティストの“普段使い”の速度」には影響しないよう にしつつサーバーの使用容量を減らそうと考えています。 ©CAPCOM 71
今後の予定 ・高速化 ・安定性の向上 ・対応DCCソフトウェアの増加 ・Mayaファイル自体の自動ファイルバージョンアップ ・データの自動圧縮/展開 ・他のソフトウェアとの連携強化 ・リファレンスの参照を維持したファイルリネーム • 他のソフトウェアとの連携強化 弊社RE ENGINEはもとより、TeamsやShotGridとの連携がもっと出来れば…と考えています。 72 • リファレンスファイルの参照を維持したファイルリネーム 通常Mayaはリファレンスファイルのファイル名を変更してしまうと、親シーンを開いた時にリファレンスファイルが参照できな くなりますが、これをファイルリネームしても、リファンレスファイルが正しい状態でシーンが開けるようにしたいと思っていま す。 ©CAPCOM 72
目次 • 概要 • SDMの歴史 • 機能紹介 • 今後の予定 • 最後に それでは最後に… 73 ©CAPCOM 73
視聴者の皆様 • SceneDataManager2.0 • Webシステム構築 • DCCソフトウェアのプラグイン開発 • プラグイン管理システム構築 視聴者の皆様に向けてですが、ゲーム会社には「“ゲーム”プログラム」以外にも、今回紹介した • SDMのようなアーティスト向けソフトウェアの開発業務もあります。 • ゲーム開発者向けのWebシステム構築業務もあります。 • もちろんDCCソフトウェアの様々なプラグインの開発業務もあります。 MayaもHoudiniもMotionBuilderもSubstanceもZbrushもPhotoshopも、様々あります。 • さらに制作した様々なプラグインを管理するシステム構築もあります。 74 今回のSDMの紹介から、こういった開発環境の構築にも興味をもっていただければ幸いです。 ©CAPCOM 74
ご清聴ありがとうございました。 それではSDMの発表を終了させていただきます。ご清聴ありがとうございました。 75 ©CAPCOM 75