kengo700のダイアリー

誰の役にも立たないと思う情報を発信するブログ

Owlboyの有志日本語化について

2Dドットアクションゲーム「Owlboy」の有志日本語化について紹介します。日本語化の方法が確立されつつあり、作業場も立ち上げたので興味がある方は有志翻訳にご参加ください。

はじめに

「Owlboy」はドット絵で描かれたグラフィックが美しい2Dアクションゲームです。2007年から開発されていたそうで、先日の11月2日についに発売されました。

発売後に日本語化が可能かどうか調べてみて、XNB形式のファイルの変換が必要そうなので諦めていたのですが、リノールさんが修正したプログラムによりXNBファイルの変換が可能となり、非公式日本語化も可能となりました。

上記ページに書かれているとおり、セリフデータの抽出がまだということだったので、私の方でセリフデータの抽出プログラムを作成してみました。

ちなみにこのゲームは下記ページに書かれているとおり、開発者により日本語ローカライズが計画されています。なので、この有志翻訳は公式版が発売されるまで我慢できない人向けのものとなります。あの「Starbound」や「Stardew Valley」でさえ、公式日本語版の発売までにかなりの時間が掛かっているので、Owlboyも早く日本語で遊びたければ有志翻訳に参加しましょう。

日本語化作業所の紹介

というわけで有志日本語化作業のために、Owlboyのセリフデータを抽出し下記スプレッドシートにまとめました。

もとのゲームデータがかなり複雑なため、抽出漏れがあるかもしれません。またメニューなどのセリフ以外の部分の日本語化方法については調査中です。

日本語化方法については、上記スプレッドシートに書かれているとおりです。

Owlboyの日本語化について

Owlboyの日本語化について、私が理解している範囲でまとめておきます。自分用のメモです。

OwlboyのゲームデータはXNB形式で保存されています。これはMicrosoftの「XNA Game Studio」というゲーム開発環境用のファイル形式のようです。この開発環境を採用しているゲームとしては「Terraria」や「Stardew Valley」があるようです。

XNBはバイナリ形式であり、そのままでは編集できません。テキスト形式に変換する必要があります。Terraria用の変換ツールは公開されていますが、そのままではOwlboyのデータを変換することはできません。このツールをOwlboyに対応させたのが、前述のリノールさんです。

このツールによりXNBファイルを編集可能なYAML形式に変換することができるので、その中身のセリフデータを翻訳して変換し直せば、日本語化が可能となります。しかしゲームデータのファイル数は1,000を越え、そこに5,000を越えるセリフがちりばめられているので、翻訳するには労力がかかり、また分担して翻訳するのが困難です。

そこで私が、このゲームデータのファイルを読み込んでセリフデータを抜き出して一つのファイルにまとめるプログラムと、翻訳したデータのファイルを利用してゲームデータを書き換えるプログラムを作成しました。

他のゲームの翻訳作業のために作成したプログラムを流用するために、ファイルはXML形式で出力し、これをEXCELで開いてGoogle スプレッドシートにコピペしています。Google スプレッドシートからXMLファイルへの変換は、Google Apps Scriptを使用しています。

まとめると、下記のような感じです。

  1. XNBファイルを変換ツールでYAMLファイルに変換
  2. YAMLファイルからセリフデータを自作プログラムで抽出し、XMLファイルに出力
  3. XMLファイルをEXCELで開き、データをGoogle スプレッドシートへコピー
  4. Google スプレッドシート上で翻訳
  5. Google Apps Scriptで翻訳データをXMLファイルに変換
  6. XMLファイルのデータを元に、自作プログラムでYAMLファイルを書き換え
  7. YAMLファイルを変換ツールでXNBファイルに変換
  8. ゲームデータを上書き

もっとプログラミングスキルがあればもっと自動化できるはずですけど、今の私にはこれが限界です。

おわりに

上の文章を見るとなんだかすごいことをしてるっぽく見えますけれど、実際やってるのは単純なファイル入出力です。

ネット上のサンプルコードをちょっと変えれば実現できる範囲です。たぶん。