2018年12月21日金曜日

ゲーム画面翻訳ツール作成中・・・その1

2020/10/09 追記:本記事が切っ掛けとなり、新たに素晴らしいツールが生まれました。
翻訳支援ツールPCOT」です。

PCOTを使用し Eschalon: Book I の会話を翻訳した様子
(DeepLとの連携も自動で行われます)

PCOTを使用すれば、簡単にワンクリックでゲーム画面を翻訳できるようになります。このツールはあらゆるゲームに対応しており、特に Eschalon: Book シリーズ、Spiderweb Software社の Avernum シリーズAvadon シリーズをプレイするには手放せないツールになるでしょう。また、自分では実現できなかった「ポップアップ画面の翻訳」や DeepL との連携も可能で、とても使いやすいツールです。

詳細は、ぬるっぽ氏のサイトを御覧ください。
「ヌルポインターストライク」
http://www.gc-net.jp/s_54/

素晴らしいツールを公開していただき、ありがとうございました。




HDDクラッシュのため本プロジェクトは停止中です。


以前から Eschalon Book シリーズの日本語化に挑戦してきましたが、残念ながらどうやっても無理そうです。でも、どうにかして Eschalon Book シリーズをやりたい。 そんな時、「剣と魔法の古典」さんのブログで「ゲーム画面翻訳ツールが便利過ぎてヤバイ!!」と言う記事を発見。 この記事によるとゲーム画面を翻訳してくれるOCRソフトがあるらしい。 すばらしい記事に感謝!

OCRソフトなので認識率が気になるところですが、実際に使ってみるとホントにヤバイ!!。 しばらくはこのツール「Capture2Text」を使ってゲームを進めて見ましたが、やはり会話やメモ・本などが多い長編のRPGだと毎回翻訳箇所を指定しなければならないのでちょっと大変です。

そこで、ゲーム画面の翻訳に特化したツールを作ることにしました。 このツールは翻訳箇所の指定が不要でワンクリックでゲーム画面を翻訳できるものです。 OCRエンジンは「Capture2Text」と同じ「tesseract-ocr エンジン」を使用することにしました。 これはオープンソースで公開されているOCRエンジンで認識率も高く使い方も簡単なので、お勧めのライブラリーです。

一応、Translation Aid for Eschalon(TA4E) って名前を付けてありますが、後で変更する予定です。 対応するゲームは Eschalon Book シリーズだけではないので・・・

会話部分を翻訳した時の画面サンプルです。

これは Eschalon Book I の会話画面

ゲームを起動した状態で、
"会話"ボタンを押すと会話部分を自動で翻訳してくれる




1.現在の仕様


今のところ、このツールではゲーム画面で、以下のことをワンクリックで行うことができます。

  1. 画面のスクリーンショット取得
  2. OCRの実行
  3. Google翻訳
  4. [オプション] 棒読みちゃんでの読み上げ 



2.対応ゲーム


現在対応しているゲームは以下のとおりです。

【お願い】GOG版の Eschalon: Book II と III には未対応ですが、EXE名を教えていただければ対応可能です。どなたか教えていただけるとうれしいです。
Eschalon: Book I は Steam, GOG 共に無料で公開されていますので、簡単に試してみることができます。

3.対応可能なゲームの条件


 このツールで翻訳できるゲームの条件は
  1. ウィンドウモードで起動できる。
  2. 翻訳する場所が固定されている。
  3. 文字が読みやすい。

このツールで翻訳できないケース
  1. 翻訳する場所が変わる、ポップアップなどの翻訳。
  2. 特殊なフォントを使用してる 。
  3. 翻訳箇所が半透明になっている。
  4. テキストのスクロールが必要なもの。

これらの条件を満たしているゲームであれば、どのようなゲームでも対応可能かと思います。しかし、実際には古いRPGが対象になるかな。


4.現状の問題点


・ウィンドウサイズの変更可能なゲームについて
このツールでは翻訳箇所を予め設定しておいた領域を翻訳します。 このため、ウィンドウサイズが変更されると、翻訳対象の領域(座標)が変わってしまうため上手く翻訳できなくなってしまいます。この場合は、領域を再度指定し直せば可能ですが、翻訳対象箇所が多い場合は結構面倒くさい事になります。 今後は、この問題に対処できる方法を考えたいのですが、まだアイディアが浮かんでいません。


5.今後の予定


今後、追加したい機能は次のとおりです。

5.1.設定機能の追加

ユーザーがゲームの追加や翻訳する領域を設定できるような仕組みを用意する。




6.使い方の例



対応しているゲームを起動し、TA4E.exe を起動します。ゲームへの接続と切断は自動で行われます。接続情報はステータスバーに表示されます。

このツールには画面の上部に6個、中段に1個のボタン、そして棒読みちゃん用のコントロールボタンがあります。 これらのボタンでゲーム画面の翻訳を行います。


①:"再翻訳"ボタン

OCRの誤認識やGoogle翻訳の精度が低い場合は、手作業で英文を修正したり、改行位置を手直しして再翻訳ボタンを押します。

②:"棒読みちゃんを使用する"チェックボックス

チェックすると翻訳された文章を読み上げます。

③:読み上げのコントロールボタン

"再生"、"一時停止"、"停止"を行うことができます。


④:各種翻訳ボタン

 "0 作成画面"ボタン

これはキャラクター作成画面の下側にあるログ表示部分を翻訳します。
ただし、キャラクター画面ではマウスのある場所の説明がログ表示部に表示されるため、このボタンを押せません。その場合は Ctrl+0(ゼロ) を押して下さい。

"1 会話"ボタン

NPCとの会話画面を翻訳します。
Ctrl+1 でも翻訳できます。

"2 手紙・メモ"ボタン

手紙、メモや書籍を翻訳します。
Ctrl+2 でも翻訳できます。

"3 クエスト"ボタン

クエストジャーナルを翻訳します。
Ctrl+3 でも翻訳できます。

"4 ダイアログ"ボタン

YESやNOボタンなどが表示されるダイアログを翻訳します。
Ctrl+4 でも翻訳できます。

"5 ゲーム・ログ"ボタン

ゲーム画面下部にあるログ表示部分を翻訳します。
Ctrl+5 でも翻訳できます。

"反転*"チェックボックス

このチェックボックスはOCRで上手く認識されない場合にチェックすると、OCRの認識精度が向上する場合があります。 このオプションはOCR実行時に画像の二値化の実行有無を変更するものです。 ただし、この機能はアスタリスク(*)が付いているボタンのみ有効となります。

"引用符除去"チェックボックス

このチェックボックスはGoogle翻訳で誤翻訳がある場合にチェックすると、翻訳精度が向上する場合があります。 この場合は、英文中の引用符("")を除去してGoogle翻訳を行います。

"用語置換" チェックボックス

チェックすると事前に登録しておいた用語で置き換えてから翻訳を行います。 固有名詞などを好みの訳にしたい時に使用します。ただし、うまく変換されない場合もあります。



7.翻訳対象画面のサンプル


赤枠で示した部分を翻訳します。


キャラクター作成画面

会話画面

手紙・メモ画面

クエスト・ジャーナル画面

ダイアログ画面

ゲーム・ログ部分


では・・・


■参考資料

「tesseract-ocr」
https://github.com/tesseract-ocr

「Tesseract (software) - Wikipedia」
https://en.wikipedia.org/wiki/Tesseract_(software)

「ゲーム画面翻訳ツールが便利過ぎてヤバイ!! - 剣と魔法の古典」
http://aow3.blog.fc2.com/blog-entry-108.html


2 件のコメント:

  1. 初めまして。

    以前、ネット上で「Eschalon: Book I」が公式で無料化という情報を知り
    やってみようかと思ったところ、日本語化が出来ない壁にぶち当たりました。
    どうにか日本語化が出来ないかを調べていく内に、Eshalon自体が欧文フォントしか
    受け付けないと知り、諦めていました。
    そんな折にこちらの記事にたどり着いたものの、HDDがクラッシュしてプロジェクトが
    凍結されていることを知り、自分でなんとか出来ないものかと四苦八苦して
    自前で翻訳支援ツールを作成するに至りました。

    仕様を策定する上でこちらの記事の情報はとても有意義だったので
    沢山参考にさせて頂きました。
    synctam様が意図した仕様かはさておき、凡そ要求仕様が満たせるツールを
    作成することが出来たので、お礼がてら報告に伺わせて頂きました。
    一応自サイトにて作成したツールを公開しておりますので
    もし宜しければ、使用感などをご報告頂けたら幸いです。

    とても有意義な記事を書いて頂き、ありがとうございました!

    返信削除
    返信
    1. おお!これは素晴らしいですね。
      早速、Eschalon: Book I で試してみましたが、まさに自分が求めていたものです。素晴らしいツールを公開していただき、ありがとうございます。

      削除

Raspberry Pi 3 Model A+ で広告ブロックサーバーを作る(その2)

前回作成した 広告ブロックサーバー の稼働状況をAmbientにアップロードするスクリプトを書いたのでメモを残しておきます。