ポンコツKNIGHT 2023/06/29 22:42

機械翻訳を使いこなして英語版ゲームをリリースする

織吾です。
先日、itch.ioという海外ゲーム配布サイトにて、自作乙女ゲームの日英版を公開しました!



その時の翻訳の手順を残しておこうと思います。

こんな人向けの記事です

  • 自作ゲームを翻訳してみたいから流れを知りたい

  • ゲーム翻訳に必要な作業やツールを知りたい

  • 機械翻訳をしているけど、自然な英訳に軌道修正するポイントを知りたい

なお、私はTOEIC900点以上レベルであり、それなりに英語に精通しております。
ただし翻訳実務経験はないのでそこはご容赦ください。

きっかけ

英語版を作ろうと思ったきっかけは、「Otomejam」という海外の短期ゲーム制作企画を知り、参加したかったからです。
https://itch.io/jam/otome-jam-2023
Twitterで知ったのですが、毎年開催されていて、二ヶ月間で乙女ゲームを作り公開するというものです。
細かいルールがいくつかありますが、体験版でもOKとのことで、去年は50作品以上の登録があったようです。海外の人に遊んでもらって感想もらえたら嬉しいなあと思って、英語版を作ることにしました。

制作ツール

Ren'pyを選びました。
はじめはティラノスクリプトでまほおしを英語版にしようと思ったのですが、翻訳版の情報が少なく実績もあまり見つからなかったので、おすすめされたRen'pyにしました。
itch.ioで配布されているビジュアルノベルの多くはRen'py製らしいので、郷に入っては郷に従えの精神で。
Ren'pyは、体感としては「先人の(日本語の)知恵があれば読むだけノベルは簡単に作れた」という感想です!Pythonわかる人はもっと色々できる。何も知らない人(私)でも簡単に作れる。


どんなゲームにするか

英語版を作るにあたり、
・既存のゲームを翻訳してリリース
・短編の新作を作り翻訳を同梱してリリース
この2点のうちどちらにするか迷いました。
結果的に新作短編を選びました。

この短編は、GW中にシナリオを高速で書き終え立ち絵も終わらせ、ティラノスクリプトで一旦先月リリースしました。
なぜRen'pyじゃないのかというと、その月のオンラインイベント合わせで配布したかったので、慣れてるツールでまず作り終えてしまいました。
まあこの時点でシナリオ画像音楽顔差分など一通り素材が揃っていて作りやすい状態にできたので、6月に入り、本格的にRen'pyを触り始めました。

ゲームとしては、選択肢はあるけどフラグを使わない、スチルもない、おまけページもないというすごくシンプルなノベルゲームになりました。

ちなみに、今回配布先に選んだ海外ゲーム配布サイトitch.ioは、体験版(Demo)もたくさん公開されているので、試しに体験版を翻訳してリリースしてみる、も全然ありだと思います。(私のゲームは短編ばかりで、体験版自体がない・・)

翻訳までの手順

さて、素材が揃った状態で、Ren'pyに組み込みつつ、並行して英語に翻訳していくか!
…と思っていたのですが、予定を変えて、組み終わってから最後に翻訳することにしました。
理由として、Ren'pyで翻訳データを作る場合、「セリフ一行ずつ」を英語に置き換える形で組んでいくからです。
シナリオだけ書き出したものも用意していましたが、組み込みの間で改行や言葉の微修正をする可能性もあるため、日本語版が完成してから翻訳の方が無駄が少ないだろうと判断しました。
そのため、手順としては以下になりました。

1.Ren'pyのUIや定義など整える
2.素材を入れて日本語のシナリオでスクリプトを組み込み完成させる
3.Ren'pyランチャーの台詞書き出し機能でシナリオだけ書き出す
4.機械翻訳を利用してシナリオを翻訳、修正
5.Ren'pyランチャーの翻訳作成機能で英語版スクリプトファイルを生成
6.英語版スクリプトファイルに英語訳を転記する
7.デバッグ後、ビルド(パッケージング)
8.itch.io(海外ゲーム配布サイト)に登録

翻訳に便利な機能・ツール

翻訳作業の紹介に入る前に、便利な機能やツールを紹介します。

  • シナリオ書き出し機能
    これがないと始まらないですね。
    日本語で作成したゲーム内の、シナリオ部分を出力する機能です。
    Ren'pyではランチャーの操作で簡単に出力することができます。
    ティラノスクリプトでは「ティラノトランスレーター」という仕組みがあるようです。
    この機能が実装されていないゲーム制作ツールの場合、ご自分のテキストエディタなどで正規表現などを使いながらテキストを抽出することになります。

  • 言語切り替え機能
    日本語で制作したスクリプトと、英語のスクリプトを用意し、コンフィグなどの設定画面で言語切り替えできるようにする機能です。
    これが実装できると、バグ修正やアップデートをするときも一つのゲームファイルを対応するだけで良いので楽です。
    Ren'pyはこの切り替え機能を付けるのも数行のスクリプト文だけでできるので、翻訳版を作るのに向いています。
    それ以外ですと、英語版フラグをつくり、一行シナリオずつif条件分岐を書いていく力業もできますが、なかなか煩雑になりそうです。

  • 言語別に画像ファイルや音楽ファイルを表示する機能
    イメージとしては、クレジットやあとがき、タイトル画面などの文字が入る画像やメッセージ枠上のボタン画像などは、日本語の時は日本語画像、英語の時は英語画像が表示できると良いですよね。音楽も、こだわるなら日本語歌詞ファイルと英語歌詞ファイルで分けるなど。
    Ren'pyでは条件分岐一文で実装できる機能です。便利。
    別のツールでも、これはif条件分岐でも実装できそうですね。表示分けしたい素材の数は少ないと思いますので。

翻訳してみよう! 1.機械翻訳を知る

では本題の翻訳の内容に入っていきます。
翻訳には、機械翻訳翻訳ツール「Deepl」を使用します。

Deepl -機械翻訳ツール-

使ったことがある方も多いと思います。
個人的に、Google翻訳よりもより賢くて自然な翻訳ができる、というイメージです。
AI学習によってその自然な翻訳を可能にしているようです。

機械翻訳を使う理由は3つです。

  • 手っ取り早い
    もちろん、自分で英作文を書くのが得意でめちゃくちゃ早い人は自作するのが良いですが、ここを読んでくださってる方は「英語とかわからん」な人もいると思います。
    分からなくても、機械翻訳に日本語を突っ込めば一文ずつきっちり英語に翻訳してくれます。ノータイムで。
    極論、機械翻訳だけでいいや大体分かればって方は、突っ込んでコピペで翻訳終了です。

  • 文法ミスがほぼない
    自分で英作文すると気になるのが文法ミス。三単元、品詞、助詞、時制、人称、スペルミス・・日本語でさえ誤字脱字するのに、英語になったらより増えそうだし、何回読んでも間違ってるかすらわからないですよね。
    機械翻訳は、基本的な文法ミスはないですし、スペルミスもありません。
    基本的、と言っているのは、詳細は後述しますが、長い文章になると文法や人称がおかしくなることがあるためです。完璧ではないです。
    けれど、一般的な長さの文章1文であれば、かなりの精度で正しい英文ができます。

  • 基本的に無料で翻訳できる
    翻訳は本来お金がかかります。ただし昨今はこれらの機械翻訳の普及によって、「ただ意味がわかればいい」レベルの翻訳は無料の機械翻訳で事足りるようになってきました。
    有料での翻訳、つまり翻訳のお仕事をされている方に有償依頼するということは、自然な英語という品質を追求することと同義です。
    逆に言うと、「完璧に自然じゃなくていい、ある程度理解できるレベルで英語に翻訳して、海外のプレイヤーにもゲームを遊んで欲しい」という目的の方や、ゲーム自体がフリーゲームである場合、無料で翻訳できる機械翻訳は、手軽さの面でもメリットがあります。
    後述していきますが、この記事では「いかに機械翻訳の結果から自然な英語に軌道修正していくか」という品質向上を自力でやりたい方向けのポイントをまとめています。

翻訳してみよう! 2.Deeplの機能

続いてDeeplの機能を見ていきます。

Deeplの使い方は非常に簡単です。
訳したい日本語を左側に貼り付けると、右側に英語訳が出てきます。
※英語はアメリカ英語、イギリス英語選べます

おわり!?めっちゃ簡単じゃん!!

はい、基本はこれだけです。
ただし、Deeplには無料版で一度に1500字までしか翻訳できない制限があります。
ノベルゲームは短編でも5000字以上はあると思いますので、1500字以内になるように分割しながら貼り付けていくといいでしょう。

それでは機能をいくつか紹介していきます。

まずDeeplの個人的最強機能はこれです。

類語表示&変換機能!!

Deeplでは、一度変換した右側の英語は、単語やフレーズ単位でその他の表現を選べるようになっています。
これがDeeplでゲーム翻訳をする上で必須の機能になります。
この類語選択、置き換え機能はどうやらPCWeb版でしか使用できず、スマホWeb版、アプリ版ではできないので、PCweb版での使用をお勧めします。

次に、単語登録機能です。
固有名詞を下図のように登録することで、翻訳元の文章中に登録済みの単語が出てきたら、単語帳に従って意図した英単語に変換してくれるものです。

日本語の人物名や地名、食べ物の名前、常に特定の英単語で訳して欲しい言葉はここに登録しておくと良いです。

最後に、Deepl APIのご紹介です。
この機能は私は試していないので下記の記事をもとに説明します。
https://qiita.com/salt_crab/items/755cc99f63ed87a98ff3
Ren'pyの開発にて、Pythonという言語を利用してスクリプトを書くと、Deepl APIを介して訳した英文を、直接スクリプトの所定の箇所に書き込むことができます!
これで翻訳からスクリプトコピペまで一括!めちゃくちゃ時短です!
とりあえず訳して出したいというスピード重視の方は、ぜひこちらをお試しください。

翻訳してみよう! 3.Deeplで訳してみる

それでは実際に翻訳をしてみます。
私が行ったステップは以下です。

1.Deeplの左側に1500字ほどシナリオを貼り付けて右側に英語訳を表示する
2.上から一文ずつ英訳を確認し、意味が通るかチェックする
3.修正したい文章や単語を選択し、別の候補に変更する
4.意図した訳が出ない場合、和英辞書や検索などで候補を探す
5.人称をチェックし、修正する
6.次の英文を確認し、2から5を繰り返す。1500字終わったらテキストファイルに保存しておき、次のシナリオ1500字をコピーして1に戻る。

下図が、実際に翻訳したシナリオです。※トップにリンクした新作のシナリオですので、ネタバレ注意。一応。
左にDeepl直訳、右に修正後のFIX版で差分を色付けしたものです。
(VScodeのcompare機能めちゃくちゃ便利だな・・)


最後ちょっと数行切れてますが、約1500字53行のシナリオに対して、30行ほど修正を加えており、20行ほどはDeepl翻訳のまま採用しています。

意外と修正割合多い?と思われるかもしれないですね。
具体的にどこを修正したかをこの後見ていきます。

機械翻訳を修正する 1.文意が合っていない箇所

Deeplはあくまで文章を翻訳するツールであり、作者がシナリオに込めた雰囲気や前後のニュアンスは汲み取れません。癖!とかもね・・。なので、ここはこだわりだすとどこまでもこだわれてしまいますし、機械翻訳英文の品質向上の最重要ポイントでもあります。
ここをどうしても妥協できない、絶対ちゃんと訳したい!という方は、やはり有償で翻訳業の方に依頼するのがコスパがいいです。

ここでは、私が自分なりに実践した、文意が合わない箇所の見つけ方、直し方を紹介します。


<原文>
相変わらず女友達を作るのが下手な私。 当たり前だけど、彼氏がいると合コンの頭数に呼んではもらえない。 まぁ、さすがの私も、一応彼氏がいる身でそういう場に顔出そうとは思わないけど。

<機械翻訳>
I'm still not good at making female friends.
The most important thing to remember is that you can't get invited to a party if you have a boyfriend.
The most important thing to remember is that you can't just go out and buy a new pair of jeans and a new pair of jeans.

 →何これ!?Jeans・・・なんて???

<修正後訳>
I'm still not good at making female friends.
However, if you have a boyfriend, you won't be invited to the party.
I don't think I would want to attend a party with a boyfriend, anyway.


いやほんとに、前述しましたが機械翻訳、大体ちゃんと英文出てくるんですが、変な感じになることもあるんですよ。
意味がおかしい訳文を見つけるポイントは、ざっと読んで、「こんなシナリオ書いてないけどどういう意味なんだ!?」という箇所を見つけます。当たり前だよ・・。コツでもなんでもないじゃないか。

「もしかしたらpair of jeansってそういうアレか、彼氏を簡単に乗り換える的な慣用句?イディオムがあるのかも知れん・・」

そう思いたくもなりますが、自分が一読で理解できないイディオムは、そのまま残しておくのは危険です。
一般的な平文に直したほうが誤訳が防げて安全です。


修正後訳を見ていただくと分かる通り、シンプルに書き直しています。
事例は2文目です。



英訳を選択すると、対応する日本語訳が色付けされます。
変更したい英文をクリックすると、他の候補が出てくるので、選択します。
「The・・」を選択して「However・・」の類語を選びました。
また、「most」を選択し、「If you・・・」の類語を選びました。



右上に、「この訳し方を登録するか?」というウィンドウが出てきました。
何度も出てくる表現(キャラの口癖とか)であれば、登録しておくとDeeplが学習してくれます。


さて、Jeansがどうこう言っていた3文目ですが、これは何度か操作してもうまく訳文が出なかったので、3文目だけ抜き出して別ウィンドウのDeeplに貼りつけ直しました。

比較して見てもらうとわかりますが、日本語のシナリオも少し書き直しています。
日本語は主語や目的語が曖昧だったり省略されていても文意が伝わりますが、単体の文章で英語に訳す時、情報が足りなくて思った意味にならないことがあります。
なので、うまく訳が出ない場合は、日本語の方を優し目に変えてあげると通りやすくなります。(ここでは、「まあ、さすがの私も」という表現を削りました)

他にも、最初「one thing」だったのを「anyway」にしたりなど微修正していますが、ここはどのニュアンスの英単語をあてたいかという好みの問題です。
類語の英単語の意味がわからない場合は、選択するとDeepl下段に意味が表示されますし、お手持ちのスマホの和英辞典で調べながら進めていくのもおすすめです。

どの表現に直すべきか?これはやりながら感覚をつかんでいくしかありません。
ここで英語に慣れている方か苦手な方かで時間のかかり方が変わってくるかもしれません。
ただ、完全に自分一人で代替案の英文を書き直す必要はないです。
やっていることはあくまで、1回目で不自然だった文章を、違う類似表現を選んでいき自然な文体を探していく作業です。

慣れれば1文あたり2〜3分で修正していけますので、何度か試してみてください。
ただし、本当に英語が苦手で、この作業自体苦痛だという方は、この表現修正は諦めて、次項以降の修正作業に移りましょう。時間は有限ですし、見切りを付けるのも大事です。

機械翻訳を修正する 2.動詞を変える

前項で、文意が合わない表現や単語を変えていくと説明しましたが、動詞に着目してもう少し掘り下げてみます。


<原文>
緑郎は、私の理想像である王子様彼氏には何も掠っていない。
<機械翻訳>
Rock has not snatched anything from my ideal image of a prince boyfriend.
<修正後訳>
Rock has not fulfilled any of my ideal images of a prince boyfriend.


理想像に掠っていない、という原文に対して、「snatched」が充てられました。
これは「掴む」という動詞なので、「理想像に合う」という意味で用いてもいいものか悩み、「fulfill」という「満たす」意味の動詞に変えました。
日本語では「理想像に掠る」は分かりそうですが、英語だとその動詞と目的語は噛み合わない、といったことがままあります。
こういう時は、より無難な動詞を選ぶか、日本語を「理想像に当てはまらない」など一般的な文章に近づくよう書き直してから翻訳にかけると、うまくいきます。
ただし、こちらもこだわりだすと時間がかかりすぎます。ほどほどにです。
あともう一つコツとしては、辞書を極力引かないということです。
(さっき和英辞典ひくと言っていたが??)

単語単語で辞書を引いていると全然進みません。英語の長文を読んでいる時にわからない単語を全部調べていたら永遠に読み終わらないのと同じです。

なので、「怪しそう」なのは「分かるもの」に変える、どうしても候補がない場合は調べる、というステップを踏むのがベストプラクティスです(言いたかっただけの言葉)

機械翻訳を修正する 3.人称代名詞の誤りを直す

機械翻訳で最低限修正したいポイントの紹介です。
これはもしかしたら、シナリオの癖に左右されるかもしれませんが、日本語は結構主語や目的語を省いても意味が通じていくので、雰囲気重視したシナリオだとガンガン省かれがちです。
これを英語に翻訳すると何が起きるかというと、誰が発言したのか、誰を指しているのかを間違います。


<原文>
「ま、スペック微妙かもしんないけど、高校時代からの彼氏持ちって、女子たちにはうざーて思われるから、気をつけてね?」
<機械翻訳>
Well, his specs may be a little subtle, but girls who've had boyfriends since high school think he's a pain in the ass, so be careful, okay?
<修正後訳>
Well, his specs may be a little thin, but if the girls know you've had a boyfriend since high school, they're going to think you're annoying, so be careful, okay?


原文がかなり口語的なので、やはり英文も人称が誤ってしまいますね。Deepl君は悪くないよ・・。
赤字部分について、機械翻訳では「高校時代からの彼氏もち=女子たち」となり「who've」になっていますが、正しくは主人公なので「you've」です。
紫文字部分では、機械翻訳では「うざーと思われる=彼」の「he」となっていますが、正しくは主人公なので「you're」となります。

例文がわかりにくいですが、その場合はもっと日本語原文に人称代名詞を省略せず書き足して分かりやすい文章にしてみたり、文章を2つに分割してみるなど単純化するとうまくいきます。

この人称代名詞が間違っていると、ストーリーの意味自体がおかしくなってしまうので、出来る限り直すようにすると良いです。
難しければ、せめて主語だけでも頑張って校正していきましょう。


難易度別 ゲーム翻訳の要点

この手順を繰り返すことで、機械翻訳の修正は完成します。お疲れ様でした!

難易度別に軽く要点をまとめてみます。

  • 絶対にニュアンスまで完璧に英訳したい方
    有償のゲーム翻訳を依頼する
  • 出来るだけ意味合いを間違えずに丁寧に英訳したい方
    機械翻訳を利用し、文章の意味合いチェック、人称代名詞チェック、不自然な動詞置き換え修正を行う。和英、英和辞書などを併用する
  • 英語が苦手なので最低限の修正だけで英訳したい方
    変な文章(シナリオと全然違う文言)チェック、人称代名詞(特に主語)チェックをし修正を行う
  • 修正の手間もかけず一発で英訳したい方
    Deepl API機能で直接スクリプトに英訳を書き込む

お疲れ様でした。みんなでゲーム翻訳して海外に公開しよう!

この記事が少しでも参考になれば幸いです。

よろしければアンケートポチって帰ってくださいね。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索