hook方式とOCR方式はどう違うか — ゲーム翻訳の仕組みから選ぶ
日本語未対応のゲームを翻訳する外部ツールは、仕組みで見ると大きく2つの方式に分かれます。ゲーム内部からテキストを直接取得するhook方式と、画面を画像として読み取るOCR方式です。
どのツールを選ぶかの前に、この2つの方式が何をしているのかを知っておくと、「なぜこのゲームでは動かないのか」「自分のゲームにはどちらが向くのか」がだいたい判断できるようになります。ツールのカタログは別の記事にまとめてあるので、この記事は仕組みの話に絞ります。
hook方式は何をしているか
hook方式のツールは、ゲームのプロセスに入り込んで、テキストが画面に描画される前の文字列データを直接取得します。ゲームがフォントで文字を描く、その一歩手前を捕まえるイメージです。
取得できるのは描画前のテキストそのものなので、文字認識の誤りが原理的に発生しません。装飾フォントだろうと小さい文字だろうと、データとしては完全な文字列が取れます。精度の面では、これが理想の方式です。
代表的なツールはTextractor (VN向け) / XUnity Auto Translator (Unity向け) / LunaTranslator (VN向け、OCRモードも搭載) あたりです。
hookが刺さらない場面
問題は、この「プロセスに入り込む」がゲーム側の実装に完全に依存することです。
hookが機能するには、そのゲームのエンジンがテキストをどう保持しているかをツール側が知っている必要があります。ビジュアルノベルエンジンやUnityのように内部構造がよく研究されているフレームワークでは高確率で動きますが、AAAタイトルの独自エンジンではテキストの在り処がそもそも分からない。ゲームのアップデートで内部構造が変わると、それまで動いていたhookが突然動かなくなることもあります。
もう1つの制約がアンチチートです。プロセスのメモリを読む行為は、チートツールの手法と技術的に重なります。アンチチートが入っているゲームでhookツールを使うのは、動作面でもリスク面でも避けたいところです。
エミュレータ経由のレトロゲームや、キャプチャボード経由で映しているコンソール画面のように、そもそもPC上にゲームプロセスが無い (あるいは中身に触れない) ケースもhookの対象外です。
まとめると、hookは「刺されば完璧、刺さるかはゲーム次第」の方式です。
OCR方式は何をしているか
OCR方式のツールは、ゲームには一切触れません。画面を画像としてキャプチャして、そこに写っている文字を画像認識 (OCR) で読み取り、翻訳して表示します。
ゲーム内部に依存しないので、原理的にどのゲームでも動きます。エンジンが何であろうと、アンチチートがあろうと、エミュレータだろうとキャプチャボード経由だろうと、画面に文字が描画されてさえいれば読める。動く範囲の広さがこの方式の本質です。
私たちのPlaytoもこの方式です。画面のピクセルを読むだけで、ゲームのメモリを読むことも書き換えることもしません。配信ソフトやスクリーンショットツールと同じ立ち位置で動きます。
OCRの弱点
OCR方式の精度は、文字認識の品質で頭打ちになります。
ゲームは装飾的なフォントを多用します。背景に半透明で溶け込む字幕、飾り文字、ルビ付きのテキスト、低解像度の文字。人間には読めてもOCRには難しい表示が、ゲーム画面にはたくさんあります。hook方式なら完全な文字列が取れる場面で、OCRは1文字読み違えるかもしれない。
もう1つは動きです。画面キャプチャ→文字認識→翻訳→表示という処理の連鎖には時間がかかるので、流れる字幕や次々切り替わるダイアログでは、翻訳が追いつく前に原文が消えることがあります。リアルタイムで動く以上、速度と精度のトレードオフは常に付いて回ります。
この弱点をどこまで潰せるかがOCR系ツールの品質差になっていて、ゲーム画面向けにOCRを調整しているツールと、汎用OCRをそのまま使っているツールでは読みの安定感が変わります。
この精度の壁には次の段階もあります。OCRの代わりにVLM (画面を画像のまま理解するタイプのAIモデル) で読む方式で、文字を1文字ずつ認識するのではなく画面全体を見て読むため、装飾フォントや崩れた文字への強さは従来のOCRより一段上です。その分処理が重く、リアルタイム性とのトレードオフになります。Playtoにも画面を画像のまま読むモードがあり、精度向上に取り組んでいます。この先の計画はロードマップで公開しています。
どちらを選ぶか — 判断軸
ツールの優劣ではなく、遊びたいゲームと読みたいテキストで決まります。
| 判断軸 | hook方式が向く | OCR方式が向く |
|---|---|---|
| ゲームのエンジン | VNエンジン / Unityなど既知のもの | 独自エンジン / AAA / 不明 |
| アンチチート | 無し | 有り (メモリに触れないため) |
| 実行環境 | PC上のネイティブプロセス | エミュレータ / キャプチャボード経由もOK |
| 読みたいテキスト | 会話文・地の文が中心 | メニュー / UI / アイテム説明も含めて全部 |
| 精度の要求 | 一字一句正確に取りたい | 多少の読み違いより「どのゲームでも動く」が大事 |
遊ぶゲームがVN中心なら、hookツールをまず試す価値があります。刺されば精度は最高です。逆に、遊ぶゲームが毎回変わる人や、メニューやアイテム説明まで含めて読みたい人は、最初からOCR方式のほうがゲームごとの当たり外れに悩まされません。
併用も普通にありです。両者は干渉しないので、hookが刺さるゲームはhookで、刺さらないゲームはOCRで、と使い分けている人は多いです。
OCR方式を試すなら
OCR方式がどんな感触か試したい場合、無料で使えるツールをいくつかカタログ記事にまとめています。私たちのPlaytoもその1つに入っています。OCRと翻訳を両方ローカルAIで動かすのでオフラインで動作して、無料で試せます。仕組みの詳しい話はゲーム画面翻訳の解説ページにもあります。
hookとOCRのどちらが「正しい」かという話ではなく、ゲームとの相性の話です。仕組みが分かっていれば、動かない時に「ツールが悪い」のか「方式が合っていない」のかを切り分けられます。それがこの記事で一番伝えたかったことです。