Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

世界へ向けたゲーム開発 〜ローカライズ支援ツール『LION』〜

25,120 views

Published on

DeNA TechCon 2018の登壇資料です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

世界へ向けたゲーム開発 〜ローカライズ支援ツール『LION』〜

  1. 1. 世界へ向けたゲーム開発 〜ローカライズ支援ツール『LION』〜 中本瑞枝・立浪千尋
  2. 2. 自己紹介 • 立浪千尋 (たちなみ ちひろ/Chihiro Tachinami) – 所属 • ゲーム・エンターテインメント事業本部 Japanリージョンゲーム事業部 開発基盤部 – 略歴 • 2013年新卒入社 • 2013秋〜2016年夏 – モバイルゲーム用サーバSakashoの開発 – 主にサーバ側のAPIをメインに担当 • 2016年夏〜現在 – ローカライズ支援ツール「LION」の開発リーダー – サーバ・フロントの機能設計〜開発・運用 2
  3. 3. 自己紹介 3 • 中本瑞枝(なかもと みずえ/Mizue Nakamoto) – 所属 • ゲーム・エンターテインメント事業本部グローバル推進部 – 略歴 • 2012年中途入社〜 – 各プロジェクトのローカライズ案件 担当 • 2015年冬〜2017年春 – FINAL FANTASY Record Keeperのローカライゼーションコーデ ィネーター – 主にローカライズのフロー調整及び英語版のコーディネーション を担当 • 2016年夏〜現在 – ローカライズ支援ツール「LION」の発起人
  4. 4. アジェンダ • Japanリージョンゲーム事業部が目指すこと • モバイルアプリ運用時代のローカライズ事情 – ゲームのローカライズとは – ローカライズフロー – 解決したい課題 • ローカライズ支援ツール「LION」 – 機能紹介 – LIONで解決する課題・手作業 – LIONの技術コンポーネント – 今後について • まとめ 4
  5. 5. 面白いゲームを世界に発信して 世界中のお客様をデライトしたい 5 ゲーム事業部が目指していること
  6. 6. 各地域に合わせたローカライズを 適切に行う必要がある 6 そのためには…
  7. 7. ゲームのローカライズとは • ゲーム内外で使用するすべての言語に関するコンテンツ (テキスト・音声・画像内テキストなど)を多言語する ・ゲーム内 ・公式サイト ・SNS ・Wiki ・Store文言など 7※添付の画像はSQUARE ENIX様との共同制作のFINAL FANTASY Record Keeperの実際のスクリーンショットです
  8. 8. • ローカライズすべき文字列の全てに対してユニークなID/ラベルをつける (ID/ラベルとはプログラムに読ませるもので、それに対して各言語の文字列を準備しゲーム内 表示します。) • 全てのIDに対し日本語でデータ作成後、それを元に各言語へ翻訳していく ※ 言語によってはどの言語からどの言語に翻訳できるかに制約がある為、 2段階に分けて翻訳を進める必要がある 多言語化のフローとは 8 日本語 英語 フランス語 イタリア語 ドイツ語 スペイン語 中国語 韓国語
  9. 9. ローカライズタイトルのスケジュール • 企画が決まり日本語テキストが準備できたら翻訳開始 • 翻訳完了後は、テキストバグが無くなるまで修正を反映を繰り返す 9
  10. 10. イベント、機能追加、UI改修なの為のデータ更新を繰り返す テキストの追加、更新も同時に発生 運用フェーズに入ると 10 初回リリース用開発 イベント開発1 イベント開発2 UI改修開発 それぞれの開発で同じフローを繰り返し実施
  11. 11. イベント、機能追加、UI改修なの為のデータ更新を繰り返す テキストの追加、更新も同時に発生 運用フェーズに入ると 11 初回リリース用開発 イベント開発1 イベント開発2 UI改修開発 それぞれの開発で同じフローを繰り返し実施 運用を考慮したローカライズフロー構築が重要となる
  12. 12. 翻訳開始から完了までの作業と役割 • 翻訳のために必要な作業 – 翻訳ファイル準備 • 翻訳対象抽出 • 重複箇所の排除 • 翻訳作業に必要な資料や詳細情報の準備 – 各種スケジュール調整 (開発スケジュール、翻訳者のスケジュール、リリーススケジュール) – 翻訳者への翻訳ファイル発注 – 翻訳ファイルの納品確認 – 翻訳作業(間違い修正を含む) 12
  13. 13. 翻訳開始から完了までの作業と役割 13 ローカライゼーション コーディネーター (以降コーディネーターと略す) • 翻訳のために必要な作業 – 翻訳ファイル準備 • 翻訳対象抽出 • 重複箇所の排除 • 翻訳作業に必要な資料や詳細情報の準備 – 各種スケジュール調整 (開発スケジュール、翻訳者のスケジュール、リリーススケジュール) – 翻訳者への翻訳ファイル発注 – 翻訳ファイルの納品確認 – 翻訳作業(間違い修正を含む)
  14. 14. コーディネーター 翻訳開始から完了までの作業と役割 14 • 翻訳のために必要な作業 – 翻訳ファイル準備 • 翻訳対象抽出 • 重複箇所の排除 • 翻訳作業に必要な資料や詳細情報の準備 – 各種スケジュール調整 (開発スケジュール、翻訳者のスケジュール、リリーススケジュール) – 翻訳者への翻訳ファイル発注 – 翻訳ファイルの納品確認 – 翻訳作業(間違い修正を含む) 翻訳者
  15. 15. コーディネーターの作業詳細 15 • 翻訳対象の抽出 – 新規翻訳及び更新などによる変更部分を判別して翻訳依頼する • 補足情報の追加及び資料作成 – 翻訳に必要な情報を翻訳ファイルに追加 or 資料作成 • 重複している文字列の排除 – 翻訳を効率的に進めるため、無駄な翻訳は依頼しないようにする • 文字カウント – 翻訳スケジュール検討(及び費用計算用) • 翻訳依頼ファイルを作成する – 上記の情報を取りまとめてファイルにまとめる • 翻訳の進捗管理 – 納期及び納品状況管理する
  16. 16. 翻訳者の作業詳細 • 翻訳者は依頼ファイル内のテキストを翻訳 – 基本的に翻訳元言語のテキストしかみれない • コーディネーターが準備した補助情報が正確な翻訳の鍵となる – 補助情報とは何か • スクリーンショット • 使用箇所や表示領域などの情報 • 関連テキスト • 用語集 – 補助情報なしだと翻訳ミスに繋がる • 運用が長くなると過去翻訳との整合性なども考慮対象となる • (例:似たような日本語の技が同じ翻訳にならないように等) 16
  17. 17. 翻訳者 翻訳開始から完了までの作業と役割 17 • 翻訳のために必要な作業 – 翻訳ファイル準備 • 翻訳対象抽出 • 重複箇所の排除 • 翻訳作業に必要な資料や詳細情報の準備 – 各種スケジュール調整 (開発スケジュール、翻訳者のスケジュール、リリーススケジュール) – 翻訳者への翻訳ファイル発注 – 翻訳ファイルの納品確認 – 翻訳作業(間違い修正を含む) コーディネーター
  18. 18. これらが手作業だと何が起きるか... 18 • 翻訳発注ファイル作成の準備効率低下 – エクセルで作業をしている場合、翻訳必要箇所の抽出するために 既存翻訳や依頼中のファイルとの差分取得が必要となる – 重複テキストをエクセルのVLookup やIF関数などを使いながら確認 – 上記を手作業で実施するため、作業時間を要する – 担当者のスキルや正確性に依存するため、作業ミスも発生しやすい • 用語統一の困難が発生 – 用語集をまとめたエクセルファイルや過去翻訳など 複数のファイルを確認しながらの翻訳確認作業が発生 – 大量の用語をベースに翻訳をするため、適切な管理をしないと 確認に多大な時間を要する
  19. 19. 運用タイトルにおけるローカライズの課題 これらの手作業を可能な限り自動化し、効率化して困難をなくすと 運用タイトルの同時ローカライズでも品質を高くできる 19 検索 履歴管理 用語統一 差分抽出 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ 先祖返り リリース 制御
  20. 20. これらの課題の克服のために… ローカライズ支援ツール「LION」を開発中 20 localization → l10n → L10N → LION
  21. 21. ローカライズで発生する様々な手作業 21 システムに落とし効率化・標準化する LIONで目指すこと
  22. 22. LIONとは • Webアプリケーションベースのローカライズ支援ツール • 開発要件 – テキストの追加、途中変更機能は運用を想定したものとする – 無駄な翻訳作業を発生させない – テキストのコンテキスト情報をシェアできる – 役割に従ったアクセスコントロールが適切に行われる 22
  23. 23. 23 LION機能紹介
  24. 24. LIONの機能一覧 24  プロジェクト設定  アカウント・権限制御  多言語間原文・翻訳文対応  文字列ID/ラベル管理  ID(64bit int)  言語別バージョン・状態管理  xlsxによるupload  アップロード時差分自動抽出  柔軟な文字列検索  文字列のリリース制御  ID・言語・バージョン単位  翻訳サポート  翻訳メモリ  用語集  コメント  ファイル添付  発注フローのシステム化  各数値集計  状態遷移と可視化  バックエンドのAPI化  SPAとしての作り込み  自動化への組み込み
  25. 25. プロジェクトの設定(1) • 複数タイトルで同時に利用される – 他のタイトルに関する情報は見れてはいけない • ローカライズフローでは様々な役割のメンバーが作業 – 開発者、コーディネーター、翻訳者、QA • 各役割に最適化したUIが必要 – コーディネーターと翻訳者に見せるべき情報は違う – 翻訳者毎に必要な情報も違う 25  適切なアクセスコントロール  プロジェクト毎・アカウント毎のロール設定
  26. 26. プロジェクトの設定(2) • 翻訳テキストの依存関係を考慮した適切なバージョニングが必要 – 翻訳元テキストが変更されれば、再翻訳が必要になる • 翻訳者毎に表示すべき翻訳元言語が違う 26 日本語 英語 フランス語 イタリア語 ドイツ語 スペイン語 中国語 韓国語  ソース(翻訳元)言語・ターゲット(翻訳先)言語の設定
  27. 27. 文字列ID/ラベル管理 • 各テキストをユニークなID/ラベルで管理 • 言語毎のバージョン管理 • どのバージョンのテキストをどの言語に翻訳したのか正しく追跡できるようにする 27 日本語 1 英語 1 日本語 2 英語 2 フランス語 1 ① ② ③ ③ ④
  28. 28. 文字列ID/ラベル管理 28
  29. 29. xlsxによるアップロード • 慣れたアプリケーションを使用してデータ作成したい – 元データとなるテキスト入力はエクセルで(or Google SpreadSheet) – WebのUIを使って1つずつ入力するのはとても面倒 – 更新内容を目視しやすくしてほしい • 新規追加ID • 内容変更されたID • 変更内容 29  xlsxファイル形式での一括入力をサポート  アップロード時の差分自動抽出
  30. 30. xlsxによるアップロード 30
  31. 31. 柔軟な文字列検索 • 様々なケースで検索が必要 – ソース言語の更新が反映されていない文字列 – 単語自体が間違っていた文字列 • データベース化によって各検索用途に対応 • 提供している検索条件 – 文字列内容/ID/ラベル/更新日 – 発注/リリース/ハッシュタグ – 翻訳者/コメント/添付ファイル有無/ステータス 31
  32. 32. 柔軟な文字列検索 32
  33. 33. 検索結果に対して一括操作  内容修正  ハッシュタグ付与  xlsxダウンロード 33
  34. 34. 34 • 運用においてデータ更新は何度も有る – 更新タイミング • イベント、機能追加、UI改修… • 並行して開発されているデータに同じ文字列が含まれることもある 文字列 1 追加 文字列 1 修正 文字列 2 追加 文字列 1 ver. 1 リリース 文字列 1 ver 2. 文字列 2 ver 1. リリース リリース制御 イベント開発 開発 QA 翻訳 機能追加 開発 QA 翻訳
  35. 35. リリース制御(2)  リリーススケジュール設定管理  リリース名  公開順を決める通し番号  ID/言語/バージョン単位でスケジュール設定可能  リリース名を使った検索  翻訳依頼時の抽出  追加データダウンロード 35
  36. 36. 翻訳サポート • 翻訳対象の選定時・翻訳時に必要な情報 a. 翻訳済みの類似文字列を表示 b. 完全に包含されている別文字列の存在チェック c. タイトル固有用語集の参照 d. コンテキスト共有のための付帯情報  提供するサポート機能 a. 翻訳メモリ b. 含有文字列 c. 用語集 d. コメント・ファイル添付 36
  37. 37. 翻訳サポート 37
  38. 38. 翻訳サポート 38
  39. 39. 発注フローのシステム化 • 複数の発注が同時並行で処理される – コーディネーターの役割である発注管理の負担大 39 作業 ・文字カウント ・スケジュール設定 ・担当者 翻訳 チェック 発注 修正 提出 差し戻し 再提出 チェック 受け入れ ピックアップ コーディネーター 翻訳者 発注フロー
  40. 40. 発注フローのシステム化(2)  一つの発注に関連する情報を保持するオーダー  ピックアップした文字列のリスト  文字カウント  スケジュール  アサイン  LIONがオーダー管理をサポート 40 作業 ・文字カウント ・スケジュール設定 ・担当者 翻訳 チェック 発注 修正 提出 差し戻し 再提出 チェック 受け入れ ピックアップ コーディネーター 翻訳者 発注フロー
  41. 41. バックエンドのAPI化 • 使いやすいUI → SPA化 – SPA化のためにAPIが必要 41 APIコーディネーター 翻訳者 フロント サーバ
  42. 42. バックエンドのAPI化 • 使いやすいUI → SPA化 – SPA化のためにAPIが必要 • アプリのビルド環境への組み込みにも必要 – Jenkins等 42 APIコーディネーター 翻訳者 タイトルの 自動化環境 フロント サーバ API
  43. 43. 43 検索 履歴管理 用語統一 差分抽出 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ 先祖返り リリース 制御 LIONで解決・効率化される課題と手作業
  44. 44. 44 履歴管理 先祖返り 文字列ID/ラベル管理 LIONで解決・効率化される課題と手作業 検索 用語統一 差分抽出 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御
  45. 45. 45 履歴管理 差分抽出 先祖返り xlsxによるアップロード LIONで解決・効率化される課題と手作業 用語統一 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御 検索
  46. 46. 46 柔軟な文字列検索 LIONで解決・効率化される課題と手作業 履歴管理 差分抽出 先祖返り 用語統一 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御 検索
  47. 47. 47 翻訳サポート LIONで解決・効率化される課題と手作業 履歴管理 差分抽出 先祖返り 用語統一 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御 検索
  48. 48. 48 リリース制御 LIONで解決・効率化される課題と手作業 履歴管理 差分抽出 先祖返り 用語統一 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御 検索
  49. 49. 49 発注フローのシステム化 LIONで解決・効率化される課題と手作業 履歴管理 差分抽出 先祖返り 用語統一 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御 検索
  50. 50. 50 LIONで解決・効率化される課題と手作業 履歴管理 差分抽出 先祖返り 用語統一 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御 検索
  51. 51. 51 LIONで解決・効率化される課題と手作業 履歴管理 差分抽出 先祖返り 用語統一 文字 カウント 参考画像 添付 重複確認 発注作業 修正漏れ 翻訳漏れ リリース 制御 検索 LIONで効率化・標準化
  52. 52. 52 LIONの技術コンポーネント
  53. 53. LIONの技術コンポーネント 53 1. サーバ a. Ruby on Rails + MySQL + Elasticsearch b. API化 1. フロント a. Mithril.js, Handsontable b. SPA i. ローカライズ作業特化の作り込み ii. サーバとはAPIを介してやり取り 1. CI a. サーバ、フロントの自動テスト/ビルド b. 開発環境への自動デプロイ API コーディネーター 翻訳者 タイトルの 自動化環境 フロントエンド サーバ
  54. 54. LIONの運用 • 現在は運用タイトル、開発タイトルそれぞれで使い始めるための準備中 • 運用からの組み込みと開発時からの組み込み → 大きく違う – 運用ではすでに辛い部分が発生 • 組み込みにあたって見えてくる課題 – 今後解消・最適化していく予定 54
  55. 55. 今後の展開 • 便利機能 – 各操作手順をできるだけ減らすための最適化 • よく使うリンク集 – UI情報の保持 • 文字数/行数制限 – 通知の最適化 • タイトル側でLIONデータを使うためのコンポーネント – コンバータやランタイムの提供 • おまけ – 自動翻訳、AI…? 55
  56. 56. まとめ • 世界各地域へ面白いゲームを届けるためのローカライズ作業 – 様々な手作業や課題が存在 – モバイルアプリの運用も合わさると更に複雑化 – 高品質・効率的に行う必要 • 各手作業・課題を克服するために – ローカライズ支援ツール「LION」を開発中 – 各課題解消のための機能を提供 • LIONを使ってローカライズの品質向上・効率化を実現した上で 56
  57. 57. まとめ • 世界各地域へ面白いゲームを届けるためのローカライズ作業 – 様々な手作業や課題が存在 – モバイルアプリの運用も合わさると更に複雑化 – 高品質・効率的に行う必要 • 各手作業・課題を克服するために – ローカライズ支援ツール「LION」を開発中 – 各課題解消のための機能を提供 • LIONを使ってローカライズの品質向上・効率化を実現した上で 57 面白いゲームを世界に発信して 世界中のお客様をデライトしていきます!
  58. 58. ご静聴ありがとうございました

×