プログラミング・動画編集 備忘録

プログラミングや動画編集についての備忘録です

The Elder Scrolls: Arena の日本語化 - 1

はじまり

The Elder Scrollsの最初の作品である Arena (アリーナ) は現在、Bethesda.netランチャーから無料でインストール・プレイできる模様。
以前は無料配布されたものの、自力?でDOSBoxなどを導入する必要があったらしい??
とにかく、すぐさま遊ぶ事ができる。
だが、英語。日本語化Modなども存在しない。
であれば、画面の英語をそのまま翻訳するしかない。

やること

画像から文字にする(OCR

色々な手段が取れるが、まずOCRについては以前調べた事のある Tesseract を使うことにする。
C#から簡単に導入できて使用できるし、フォントなどを自分で登録すればきっと精度も上がるはず。

翻訳

TerrariaのModにてTooltip TranslatorなるModを作成した時は、内部にWebBrowserコントロールを埋め込んで、そのままブラウザ機能でGoogle翻訳させていたが、使えなくなっている。
個人で使うならGAS(Google Apps Script)を使う手段もあるが、この手の方法はいっぱい記事があった。
Selenium(セレニウム)も使ったことがあるし、簡単そうでC#で即導入できるので、SeleniumにてGoogle翻訳させることにする。

とりあえず最低限の機能を作成

  1. まずOCRするにあたって画像を取得する必要があるが、普通にPrint Screenして、それをフォーム側で取得する事にする。
  2. 画像を取得したら、そこからOCRして文字列に変換する、一旦この辺も手動での操作を挟む。
  3. 文字列を翻訳する。

最低限の機能で動作検証

タイトル画面

f:id:rrryutaro:20200716202754p:plain
タイトル画面

画面左がキャプチャした画像のリスト。
右上がキャプチャした画像。(表示サイズに合わせているので少し比率がおかしいがOCRする画像はPrintScreenしたもの)
その左下がOCRした文字列。(タイトル画面では何も取得できなかった)
最後に右下が翻訳した文字列。(空なので翻訳しなかった)

オープニング1

f:id:rrryutaro:20200716202952p:plain
オープニング
文字列は取得できたが、癖のある書体部分はまともに取れていない。(必要があればTesseractの学習データを作成する)
取得できている文字がまともでないので、翻訳結果も今はしょうがない。

オープニング2

f:id:rrryutaro:20200716203239p:plain
オープニング2
こちらも同様。

スタート画面

f:id:rrryutaro:20200716203341p:plain
スタート画面
こちらも文字に癖がありすぎてまともに取得できていない。

プロローグ

f:id:rrryutaro:20200716203442p:plain
プロローグ
残念ながらまったく文字が取れていない。選択しているようにスペースだったりする。

クラス選択

f:id:rrryutaro:20200716203550p:plain
クラス選択
こちらは結構認識できている。頑張れば何とかなりそう。

クラス選択質問の説明

f:id:rrryutaro:20200716203702p:plain
クラス選択質問の説明
上記同様。

クラス選択質問1

f:id:rrryutaro:20200716203803p:plain
クラス選択質問1
意外にもかなりちゃんと取れている。タブこの辺の文字が一番ゲーム上で出てきそうなので、何とかなるかもしれない。

今後

Morrowindの翻訳ツールも作成中なので、そちらが終わったら次のことを進めたい。

  1. ゲーム側のフォントをなんとかする。(Nexus Modにゲーム用のフォントを良くするModがあったので)
  2. 画像補正をかける。(2値化などして、とにかくOCRの認識精度を上げる補正)
  3. フォントの学習データを作成する。(これで癖のあるフォントは認識精度があがるはず)
  4. それでもダメなら自分で直接画像から文字認識(どうせ決められた文字だけなのでタブンできると思う)

この辺をやって、それなりに認識できれば、この手のゲーム全部で利用できるかも!?

次回

rrryutaro.hatenablog.com