8.1K Views
January 17, 24
スライド概要
CEDEC2016 (Computer Entertainment Developers Conference 2016)で行われた講演
『自社エンジンと翻訳支援ツール「XLOC」を連携させたテキスト管理システムとその運用事例の紹介』
で使用されたスライドです。
※本スライドには動画が含まれております。pptxファイルをダウンロードすることで動画込みでご覧いただけます
講演概要は以下のサイトをご覧ください。
https://cedec.cesa.or.jp/2016/session/PRD/4734.html
※CEDECの資料公開サイトCEDiLでも本資料が公開されています。
https://cedil.cesa.or.jp/
株式会社カプコンが誇るゲームエンジン「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/
自社エンジンと翻訳支援ツール「XLOC」を 連携させたテキスト管理システムと その運用事例の紹介 技術開発室 グローバル開発推進室 株式会社カプコン 八牧 健太 (ゲームエンジンプログラマ) Mark Reichwein (ローカライズディレクター)
はじめに 近年のゲーム開発では – 大規模開発でローカライズフローが複雑化 – ゲームエンジンを利用した開発の普及 ところが、ローカライズとゲームエンジンの 関係についての情報は意外と少ない 2
はじめに そこで、カプコンの最新のゲームエンジンである これを用いて開発中の これらのテキスト管理について説明します ※ボイスローカライズについては触れません 3
アジェンダ • カプコンのテキスト管理の歴史 • RE ENGINE のテキスト管理システム • BIOHAZARD7 における運用事例 4
アジェンダ カプコンのテキスト管理の歴史 • RE ENGINE のテキスト管理システム • BIOHAZARD7 における運用事例 5
①Excelファイルによる管理 6
Excelファイルによる管理 MT FRAMEWORKでは標準フォーマットのExcelファイルと 共通の便利マクロをタイトル開発側へ提供 タイトル側はカテゴリ毎にファイルやシートを分けて マスターファイルをファイルサーバーやVCSで管理 翻訳者には必要な箇所を切り出して渡し、 返ってきた結果を開発者が手動でマージする 7
Excelファイルによる管理 • メリット ➢ 高速で柔軟な編集が可能(UIの使い勝手・マクロ) ➢ 習熟が容易く、特殊な環境が必要ない • デメリット ➢ まともな共同編集ができない ➢ データ管理で人の手間やミスが起きやすい ➢ VBAマクロの長期メンテナンスは大変 8
②XLOCによる管理 9
XLOC • XLOCを使用することになった経緯 – GDCでXLOCに出会う – トライアルの後、実際に使用 – 他タイトルでも使用
XLOC • XLOCとは – ウェブブラウザーで使用 – 翻訳管理と作業 – データベース(サーバーは社内) – 便利機能豊富 – 外注もアクセス可
ソースから翻訳まで • ソース言語(日本語)のExcelをXLOCに入れる • XLOCから翻訳結果入りのExcelが出力される 12
XLOC 変更前 変更後
XLOC • ローカライズが効率的に – コスト削減 (マージミス少なくなって、作業時間削減) – 作業率アップ (検索しやすく、マージ無し) • ゲーム開発側の管理はXLOCでは難しかった – 新しいテキスト作成・削除はXLOC上では出来ない – 誰がどこを変更したなどの細かい履歴は残らない
③内製のシステムによる管理 24
内製のテキスト管理システム あるタイトルでは、そのタイトル向けにデータベースで テキスト管理するシステムを独自で作り運用した • マスターデータはDBにより一元管理 • 編集にはWebUIとExcel入出力の仕組みを提供 • 毎日定刻にゲームリソースに変換して、タイトルの データサーバーに自動コミット(任意タイミングも可) 25
内製のテキスト管理システム • 良かった点 – ファイル管理から脱却しデータを一元管理できた – 複数人での同時編集・変更履歴管理の問題が解決した • 問題になった点 – ゲーム開発者も翻訳者も主にExcelで編集した為、 Web⇒Excel⇒Webの手順が入り、作業効率が落ちた – テキストが多くなるとサーバー負荷で重くなることも – システムの対応コスト、メンテナンスコストが高い 26
振り返り いくつかのツール・システムを試したが、 どれもメリット・デメリットが存在した ゲーム開発とローカライズ双方の要求を 理想的に満たすことは出来ていなかった 27
理想のシステム • • • • • 高い編集性能と拡張性 (Excelの様な!) 豊富な翻訳支援・安全な管理機能 (XLOCの様な!) データは全て一元管理 変更を高速にゲームへ反映 今後10年保守できる 28
経験から分かった問題 • ゲーム開発側の機能に力を割くと ➢ 翻訳管理側の機能がおろそかになりやすい • 翻訳管理側の機能に力を割くと ➢ ゲーム開発のイテレーションが犠牲になりやすい • 両方を頑張って満たそうよ! ➢ システムの肥大化。対応難易度とリスクが急上昇 29
アジェンダ • カプコンのテキスト管理の歴史 RE ENGINE のテキスト管理システム • BIOHAZARD7 における運用事例 30
作業者のワークフローに着目 カプコンの主な翻訳フロー ① 日本語でテキストを作成 ゲーム開発者 ② 日本語を元に英語に翻訳 翻訳担当者 ③ 英語を元にして他言語に翻訳 明確に担当者とツールをセットで分ける事にした。 31
RE ENGINEのアプローチ • ゲーム開発側 – メインの編集インターフェイスとしてExcelを採用 – データはRE ENGINEのアセットとして管理 – 翻訳元(日本語)の編集のみに制限 • 翻訳管理側 – 翻訳管理ツールとしてXLOCを採用 – データをRE ENGINEのアセットと自動連携 – 翻訳元以外の言語は基本的にXLOCで編集 32
RE ENGINEのアプローチ • ゲーム開発側 – メインの編集インターフェイスとしてExcelを採用 – データはRE ENGINEのアセットとして管理 – 翻訳元(日本語)の編集のみに制限 • 翻訳管理側 – 翻訳管理ツールとしてXLOCを採用 – データをRE ENGINEのアセットと自動連携 – 翻訳元以外の言語は基本的にXLOCで編集 33
RE ENGINEとExcelの連携 ①データはエンジンのアセットとして管理 ②ツールで内容確認・最低限の編集は可能 ③Excelファイルに変換&編集 ④Excel保存でアセットに反映 ⑤アセットはコミット時にマージ 34
RE ENGINEとExcelの連携 実際のツールの動作をご覧ください。 35
Excelとの連携
Excelとの連携
ツールのバックエンド ツールからExcelファイルとして開く仕組み ① エンジンのツールUIはWPFで実装 ② アセット(JSON)を読み込みC#のデータ構造に変換 ③ Excel(xlsx形式)への変換には「ClosedXML」を使用 https://closedxml.codeplex.com/ ④ xlsxファイルをユーザーの一時フォルダに保存 ⑤ 保存したファイルを開く 38
ツールのバックエンド Excel保存でアセットへ変更を反映する仕組み ① .NETのFileSystemWatcherでファイルの変更を監視 ※ChangedイベントではなくRenamedイベントを監視 ② 変更通知が来たらxlsxファイルを読込(ClosedXML) 変更部分を内部データに反映 ③ アセットの保存によりランタイムでリロードが実行 ゲーム画面にも編集内容が反映される 39
ツールのバックエンド コミット時のアセットのマージ機能 • RE ENGINEのアセットマネージャの基本機能 • JSONのデータ構造をマージ可能 「いまどきのゲーム制作環境:エディター群とそのバックエンド、 開発スタッフ間のコミュニケーションの具体的な方法解説」 https://cedil.cesa.or.jp/cedil_sessions/view/1303 技術情報が公開されています。 40
ツールのバックエンド 日本語のみの編集に制限 • ツールの機能としては全言語編集可能 • 「日本語以外編集禁止モード」を用意 • プロジェクト単位で一斉に環境をスイッチできる 41
RE ENGINEのアプローチ • ゲーム開発側 – メインの編集インターフェイスとしてExcelを採用 – データはRE ENGINEのアセットとして管理 – 翻訳元(日本語)の編集のみに制限 • 翻訳管理側 – 翻訳管理ツールとしてXLOCを採用 – データをRE ENGINEのアセットと自動連携 – 翻訳元以外の言語は基本的にXLOCで編集 42
RE ENGINEとXLOCの連携 やっていること ① 翻訳元(日本語)の変更をXLOCに反映する ② XLOC上の翻訳結果をゲームのアセットに反映する この2つをJenkinsのジョブで自動化 43
アセットからXLOCへ(日本語) ゲーム開発者 Perforceサーバー ①日本語を編集して アセットをコミット Jenkinsマシン ②即時ジョブを発行 ③XLOCへ日本語の 更新を反映 44
XLOCからアセットへ(日本語以外) Jenkinsマシン ①AM5:00頃に ジョブ起動 Perforceサーバー ③翻訳結果を最新の アセットにマージコミット ②最新の翻訳結果を取得 ④エンジン上で 最新の翻訳結果が 確認できる 45
データの一元管理の問題 この仕組みではアセットとXLOCでテキストのデータは 2重化されておりデータの一元管理は出来ていない しかし • 各ツールで扱うデータを明確化 • ツール間のやり取りに人間の手を挟まない この2つの徹底することで実際の運用では 一元管理と同様の結果を得る事ができている 46
振り返り • ゲーム開発側 – メインの編集インターフェイスとしてExcelを採用 – データはRE ENGINEのアセットとして管理 – 翻訳元(日本語)の編集のみに制限 • 翻訳管理側 – 翻訳管理ツールとしてXLOCを採用 – データをRE ENGINEのアセットと自動連携 – 翻訳元以外の言語は基本的にXLOCで編集 47
エンジン開発側は低コスト • 最低限の確認・編集ツール(C#, WPF) • C#のオブジェクトとxlsxの相互変換(C#, ClosedXML) • XLOC連携用のJenkinsのジョブ(bat、C#) ゲーム開発向けの便利機能に 機能追加の時間を割きやすくなった。 48
ツールの便利機能の一例
アジェンダ • カプコンのテキスト管理の歴史 • RE ENGINE のテキスト管理システム BIOHAZARD7 における運用事例 50
運用事例 従来のフロー 開発 マスター ファイル 英語 ファイル 51
運用事例 従来のフロー 開発 マスター ファイル 英語 ファイル 他言語ファイル 52
運用事例 従来のフロー 開発 マスター ファイル 英語 ファイル 英語 ファイル 他言語ファイル 53
運用事例 従来のフロー 開発 マスター ファイル 英語 ファイル 英語 ファイル 開発 マスター ファイル 他言語ファイル 54
運用事例 もし10ファイルで60ヶ所の 変更があった場合・・・ 55
運用事例 ファイル:10 変更:60 合計 20分 開発 マスター ファイル 3時間くらい 40分 1.5 時間 30分 英語 ファイル 英語 ファイル 従来のフロー 開発 マスター ファイル 他言語ファイル 56
運用事例 ファイル:10 変更:60 日本語 作成担当 BH7のフロー ローカライズ ディレクター 57
運用事例 ファイル:10 変更:60 日本語 作成担当 BH7のフロー ローカライズ ディレクター 11言語 担当 58
運用事例 ファイル:10 変更:60 日本語 作成担当 BH7のフロー ローカライズ ディレクター 11言語 担当 ローカライズ ディレクター 59
運用事例 ファイル:10 変更:60 BH7のフロー 5分 日本語 作成担当 5分 ローカライズ ディレクター 5分 11言語 担当 5分 ローカライズ ディレクター 日本語 作成担当 60
バイオ7の作業が効率的になった ➢ ボタン1つでゲームに全言語コミット • 開発側マージ作業なし、効率アップ ➢ 社内メンバーはすぐゲームで確認できる • 一発でクォリティー高い翻訳 ➢ 使いにくいマスターファイルで作業しなくて済む • 間違えてデータ変更はない ➢ 依頼しやすい • 依頼資料作成なし、効率アップ 61
まとめ 62
まとめ • RE ENGINE, Excel, XLOCを連携させる事で 課題を解決できる仕組みが構築できた。 • BIOHAZARD7 の開発においても ゲーム開発者、ローカライズチーム双方の 満足が高いワークフローが実現できた。 63
今後の課題 • ブランチへの対応方法 XLOCにはブランチの機能・概念が存在しない • 開発側の特殊なステータスとXLOCの連携 テキスト毎にタイトル事情のステータスがある場合 XLOC側でも分かると便利なケースが稀にある 64
皆さんへの提案 • Excel(xlsx形式)と自前のデータ構造との 「相互変換」はテキスト管理に限らず便利です。 一度試してみる事をオススメします。 • 全てを解決するツールは中々ありませんが、 既存のツールの良い所を上手く利用すれば 問題を解決できる可能性があります。 65