英語翻訳対応やりました
はじめに
作ったゲームの英語対応が終わりました。
というわけで、この記事はどんな感じに翻訳作業を進めたかについてです。
対象としては、同じようにUnityでゲームを開発していて、多言語対応をやる人(技術者)向け。あと自分向け備忘録。
なお、具体的なコードや実装とかは省略してます。
規模感
↑のゲームには、だいたい2万文字の日本語が含まれています。同じような文字数のプロジェクトなら参考になるんじゃないでしょうか。*1
機能要件
大雑把には2つ。
- 開発用ビルドでは翻訳辞書は外部ファイルにもち、ランタイムで変更を反映できること
- リリースビルドでは翻訳辞書は内部ファイルにもつこと
ただし言語ごとのテクスチャ差し替えなんかはランタイムで修正は無理!なので諦めて逐一プログラマ側で対応します。*2
都合の良いアセットはない。自作の道
なお、ちょっとアセットストアを眺めたけど、要件に見合う翻訳アセットはないっぽいので自作です。
たとえばインスペクタにデータを打ち込む形式なんかだと色々やってらんない。(翻訳者さんがUnityエディタを使うのか、私が全データを打ち込むのか、いずれにせよアカン)
なんかいいのがあったらおしえてください。
翻訳者さんとの打ち合わせ
翻訳者さんが決まったら、どういう感じで進めていくのかを詰めていきます。
今回のマスターデータはExcel
翻訳辞書のマスターデータをどうするかですが、
Excelの構造
Excelの構造はこんな感じ。key
, jpn
, comment
カラムをこちらで埋めて翻訳者さんに渡す。
Excelだけだとマズいので
が、Excelをそのまま使う場合の問題として、
- 更新差分を把握しづらい
- リリースビルドでExcelファイルを読むのは効率が悪すぎる
ということで、データの流れは
- Excelから自作コンバータツールを使ってjsonに変換し、
- 開発ビルドでは外部のjsonファイルを参照、
- リリースビルドではjsonからさらにScriptableObjectに変換したものを内部で参照することにします。
図
生成されたjsonをgitで管理すれば差分が見られる。
開発用ビルドを用意する
翻訳者さんには開発用ビルドとExcelファイルを渡し、作業してもらいます。
Excelを編集してゲームを起動すれば、反映されたものを確認できるようになっています。
サイクル
翻訳者さんとのやりとりはWebで行います。使ったものは
雑多なやりとりはSlackを使いつつ、
- ExcelファイルはGitHubで共有
- 翻訳資料は
README.MD
に書く - issueを使う。質問とか要請とか。
- 特にExcelは複数人で編集しはじめると地獄を見るので、こちらから直したいところがあったらissueで変更要請を投げ、編集作業は翻訳者さんの手に一元化しました。
- 開発ビルドを更新したらGitHubのreleasesに上げる
- これが地味に便利。アップロードしたらSlackに通知が行く。
ちなみに、README.MDはこんなんになってる
ほかにはキャラ設定資料とかも書いてある。
issueはこんなん
バグ報告とか要求とか質問とかが投げつけあう。
コンバータツールこんなん
細かい話 : コマゴマとした対応
- 英語は文字数が多いため、会話ウィンドウは日本語だと2行なのを英語だと3行にしています。これに伴い文字送りの速度も日本語と英語で変えています。
- 複数形対応。日本語だと
1日前
と2日前
は{n}日前
でカバーできるんですが、英語だと{n} day ago
と{n} days ago
が必要。嫌になる。
さいごに
なんだかんだで英語はまだラク。チェックすれば変な部分とかまだ分かるかんね。*6
あとはゲームよろしくおねがいします。
追記
I'm very happy to announce that @awaywithwords3 and I translated the English version of @_enu's Magic Scroll Tactics! It's an absolutely delightful little SRPG that's out now on Steam. Jump in and give it a shot!https://t.co/Qm0MQXOJ5s
— Gavin (@GawyntheGreen) June 1, 2018
サントラのリリースです
というわけでSteamとitchでサントラをリリースしました。
SteamではDLC扱いなので本体がないと購入できませんが、itchなら単品でも購入が可能です。
新デモ動画公開です
リリースしてからずっとタスクに積んでたやつ。さすがに体験版用動画で押し通すのは分が悪いからね!
さて、動画作成はもっとがんばれる余地があって、ちゃんとスキルもった人に頼んで動画つくってもらったりとか。
あとネコマリオタイムみたいにVtuberチックな建て付けとかやってみたいんよね。なおゆっくりボイスは商業不可なのでDIYは厳しい。
新しい紹介動画ですhttps://t.co/bFWhA2vq3K#magicscrolltactics pic.twitter.com/J7MsfJPphh
— enu@Steamでリリースしました (@_enu) 2018年5月11日
【Unity】アナログスティックの入力値を8方向にスナップする
やること
アナログスティックから得られる値を、上下左右斜めの8方向のうち一番近い角度に変換する。
具体的にはこんな感じ。
(0.9, 0.1)
->(0.9055385, 0)
(-0.4, 0.5)
->(-0.4527692, 0.4527692)