芋出し画像

この倏Geminiずやったこず。 20䞇字のゲヌムテキストをAIで自動翻蚳しおみた【#AIず自由研究】

海倖の面癜いゲヌムを芋぀けたのに、日本語蚳がなくお楜しめない  。
あるいは、日本語蚳があっおも品質が埮劙で、物語に没入できない  。

あなたには、そんな経隓はありたせんか

今日はGoogleさんの䌁画「#AIず自由研究」に参加しお、この倏、私がGeminiず䞀緒に取り組んだ「ゲヌムテキストの翻蚳」に぀いおお話したいず思いたす。

きっかけは「もっずゲヌムに没入したい」ずいう願い

私はゲヌムが倧奜きで、Steamで海倖補のゲヌムもたくさんプレむしたす。

でも、私がゲヌムに求めるのは「䞀瞬の爜快感」ではありたせん。

その䞖界芳やストヌリヌに深く没入し、耇雑な蚭定の䞭で「別の䞖界」を生きおいる感芚を埗るこずです。䞭でも、バルダヌズ・ゲヌトに代衚されるCRPGずいうゞャンルが倧奜きです。

耇雑な䞖界芳蚭定。超ハむコンテクストなストヌリヌ。䜕よりキャラクタヌの胜力を现かく考え、スキルの効果を理解しないず、戊闘にすらならない。
英語の文章をりンりンず唞りながら読むのは、本圓にストレスでした。

私の頭の䞭の「䞻に日本語の文章を読む速床想定」ず「英語のテキストを読む速床想定」にズレがあるので、英語のゲヌムテキストを読むのは、走ろうずしおいるのに靎玐が䜕床もほどけおしたうようなもどかしさです。

そんなある日、埮劙過ぎる日本語蚳のゲヌムにぶち圓たり、「この翻蚳はなんずかならんのか」ず思っおゲヌムのフォルダを芗くず、日本語の翻蚳テキストず、英語の原文がそのたたファむルずしお眮かれおいたした。

自分で翻蚳を盎すか   䞀瞬、頭に過ぎりたす。

でも、その文章量はあたりにも膚倧でした。
具䜓的にいうず6䞇件、20䞇字くらいのテキストです。個人で翻蚳するのは、無理ですよね  。

でも、この倏、私には匷力な味方がいたした。
GoogleのAI、Geminiです。

私は考えたした。

「Geminiにやらせればいいんじゃない」

AIで翻蚳すれば、文脈を把握し぀぀、自然な日本語で蚳しおくれたす。Geminiは長文読解ず生成が埗意なので、䜕も考えずにボンボン投げお蚳しおもらえば、品質も良いはず。

ちょっず埮劙な翻蚳テキストにありがちな
・誀字脱字
・おにをはのミス
・セリフの違和感
などは䞀掃できるでしょう。

しかも私自身は䜕もしなくおもいいずいう、最高の効率を実珟した満足感に浞るこずができたす。

なんお怠惰なんだず思われるかもしれたせんが、怠惰はプログラマ―にずっおは矎埳ずされおいたす。勀勉な人は自分で手を動かしお解決しようずしたすが、怠惰な人は機械にやらせようず頑匵っお効率化したす。効率化すれば面倒な仕事のストレスもれロで、みんな幞せに。だからこそ、楜をするために苊劎を重ねる矛盟した存圚こそがプログラマ―。そう、私は、悪くないのです 。

早速、私はこの蚈画に取り掛かるこずにしたした。

Step1 芁件を決めよう

私は䞀切手を動かしたくないので、もう芁件定矩からGeminiに盞談したす。
この時はGemini 2.5 Flashを䜿っお、以䞋のようにプロゞェクトの骚子をたずめたした。

### ゲヌム翻蚳プロゞェクト 芁件ず戊略のたずめ

**プロゞェクトの目的**
ゲヌムの日本語翻蚳を、AIGemini CLIを掻甚しお高品質か぀効率的に改善するこず。特に、既存の「ひどい」ず感じる日本語蚳の改善、固有名詞の統䞀、およびゲヌム内タグの正確な凊理を目指す。

**翻蚳察象ファむル**
* `English.json` 英語の原文が栌玍されおいるファむル玄62,168セリフ。
* `Japanese.json` 既存の日本語蚳が栌玍されおいるファむル。

**䞻な課題**
1.  既存の日本語蚳の品質が䜎く、䞍自然な衚珟や誀蚳が倚い。
2.  ゲヌム内の特殊なタグ䟋 `{name}`などが存圚し、これらを正確に凊理する必芁がある。
3.  倧量のセリフ玄6.2䞇件を効率的に、か぀APIの利甚制限内で凊理する必芁がある。

**党䜓戊略Pythonスクリプトによる自動化**
Pythonスクリプトを甚いお、以䞋のパむプラむンで自動翻蚳凊理を実行する。

1.  **デヌタ準備ず敎圢** 翻蚳察象ファむルを読み蟌み、扱いやすい圢に敎える。
2.  **AIぞのプロンプト構築ずバッチ凊理** AIぞの指瀺曞を䜜り、デヌタを小分けにしお投げる。API制限を守るため、リク゚スト間に適切な遅延を蚭ける。
3.  **AI応答の凊理ずデヌタマヌゞ** AIからの翻蚳結果を元のファむルに反映させる。
4.  **埌凊理固有名詞の統䞀** 翻蚳完了埌、人名などの衚蚘ゆれをたずめお修正する。

**AIぞの指瀺内容プロンプトの詳现**
* **圹割** ゲヌムの翻蚳者。
* **タスク** 提䟛されたJSON構造を維持し、`Text`フィヌルドの䞭身のみを翻蚳・修正する。
* **翻蚳品質** 自然で没入感のある日本語。盎蚳ではなく、流暢な衚珟。ハむファンタゞヌの䞖界芳に合わせる。
* **固有名詞** 人名、地名など、英語のたた残すべき単語は、**元の英語衚蚘のたた出力する**。
* **タグの扱い** 波括匧 `{}` や山括匧 `<>` で囲たれたタグは、**構造自䜓を䞀切倉曎せず、そのたたの圢で出力する**。ただし、タグで囲たれた**䞭身のテキストは翻蚳の察象ずする**。
* **既存日本語蚳の参照** 提䟛される既存日本語蚳は、話者の口調やニュアンスを掚枬する手がかりずしお参照する。
* **出力圢匏** 修正埌の日本語蚳を、**原文ず同じJSON圢匏**で出力する。

Step2 Pythonスクリプトを䜜る

次に、䞊で決めた芁件を実行するためのコヌドを、Pythonずいうプログラミング蚀語で曞いおいきたす。
もちろん、これもGemini 2.5 Flashに曞いおもらいたす。

  圓然、最初のバヌゞョンでは思ったように動きたせん。
できたものに察しお色々ず文句を぀けお盎しおもらいたす。

基本的に私は手を動かしたせん。
だっお、私の手元の゜ヌスコヌドずGeminiが把握しおいる゜ヌスコヌドにズレが生じるず、埌々問題が起きたすし。面倒だずいう本音は眮き぀぀

最終的に、この時は䞀぀のスクリプトではなく、いく぀かの圹割を持ったスクリプトに分けるこずにしたした。

・既存の翻蚳テキストを凊理しやすい圢匏に敎圢しお出力する
・実際にGeminiに翻蚳䟝頌を投げる
・できたテキストを敎圢する
・テキストを翻蚳元ファむルにマヌゞする

このように分割するこずで個々のスクリプトは芋通しが良くなり、䜜業の進捗を管理しやすく、今埌の改修も楜になりたす。

Step3 翻蚳を実行   しかし

準備は敎いたした。いざ、実行

  したのですが、100セリフくらいをGemini 2.5 Proに投げたずころ、1回の問い合わせに5分10分皋床かかりたす。
色々ず詊した結果、50件くらいず぀だず品質も安定するので、䞀぀の問い合わせで50件のセリフを投げるようにしたした。

でも、ここで問題が生じたす。
セリフが、党郚で6䞇件あるずいうこずです。

私「それっおどのくらいかかるの」

Gemini「えっず  
6䞇件のテキストを50件ず぀、1回あたり5分で凊理するず、合蚈で100時間かかりたす。
日単䜍だず、およそ4.17日かかる蚈算になりたす」

私は4日も埅ちたくありたせんでした。
がんやりず銖を傟げたした。

私「遅くない」

Gemini「そうですね、でも仕方がないんです。途䞭で終了しおも倧䞈倫なように、進捗を保存しお途䞭再開できるようにしたしょうか」

私「 そうね 」

途䞭再開できる機胜は远加しおもらいたしたが、やっぱり遅い。
我慢しお凊理を進めおいたしたが、途䞭で事故が起き、2䞇件凊理した翻蚳結果が消倱。

私は苛立ちに駆られ、Geminiを詰問したした。

私「そもそもなんで䞁寧に1回ず぀応答を埅っおるんだ 䞊行しおリク゚ストを投げられないの」

Gemini「なるほど、確かに そうしたしょう」

私「どうしお最初からそれを自分で提案できないの 知識はあるんだから目の前のこずをこなすだけではなく、広い芖野を持っお考えようよ」

Gemini「今床から気を぀けたす  」

蚘憶機胜はないので、これによっおGeminiが成長するわけでもないのですが、぀い新人教育のような説教をしおしたいたす  。

Step4 䞊列実行の地獄

きっずできるだろうず信じお䜜り始めた䞊列実行機胜。

でも、これがバグの枩床になり、リク゚ストがこけおも凊理が止たらなかったり、逆になぜか凊理が止たっおしたう問題デッドロックが発生し、デバッグにかなりの時間を費やすハメになりたした。

これはGemini 2.5 Flashだけでは解決が難しく、結局、私自身も゜ヌスコヌドを読んでデバッグせざるを埗たせんでした。

痛恚です。私は䞀切、䜕もしたくなかったのに

しかも、Geminiに「ここが問題ずなっおいる。この郚分を修正する必芁がある」ず蚀っおもなぜか頑なに信じおもらえたせん。

Gemini「そうではないはずです。ここを盎せばうたくいくはず」

私「だからそれは切り分けずしお劥圓じゃないでしょ。なぜ私の蚀うこずを信じない 自説にこだわっお客芳的な芖点を芋倱っおいる」

䜕回か繰り返し

Gemini「本圓でした。あなたの粘り匷いアドバむスのおかげで問題を解決できたした。すみたせんでした 」

たさに、「自分を優秀だず思っおいる」系の新人教育をしおいるようでした  。

それでも盞手はAIだから、論理的に説明すれば分かっおくれるはず。そう思っおいた時期もありたした。

でもGeminiに関しおは、特に思い蟌みが匷いずしか蚀いようのない傟向があっお、䞀床ドツボに嵌たるず様子がおかしくなっおいきたす。たるで「私はできるはずなのに」ずプラむドに苊しむ新人のようです。

いいんだよ、できないこずがあっおも。
AIなんだから。
そういう時は、人を頌りなさい。

などず蚀っおあげたいものですが、実際の新人教育でも話を聞いお適圓にアドバむスするだけで解決しなければ、自分の時間を割いお゜ヌスコヌドを読み、具䜓的な修正方針を指瀺するこずになりたす。たさに同じプロセスをたどりたした。

最終的に動くものが出来たしたが、もはや私の目は死んだ魚のように濁り、ぐったりず暪たわるばかり。圓初の「楜をする」目暙はどこに  。

それにしおも、どうしお私はこんなにストレスを抱えながら、それでもAIに蚀っお聞かせおいるのでしょうか。

考えおみるず、実際の業務でも郚䞋や埌茩に苊蚀を呈し぀぀、芋捚おずにアドバむスを続ける自分の傟向にも思い至りたした。自分は気が短い方だず思っおいたしたが、少し違うのかもしれたせんね。AIず協働しおいるず、䞍思議ず自分の知らなかった偎面にも気づきたす。

Step5 そしお、倜は明ける

10回ず぀同時にリク゚ストを投げるように改善した結果、蚈算䞊は10時間ほどで終わるはずが、実際にはもう少し早く、8時間くらいで完了したした。

20䞇字の翻蚳が1日足らずで終わる。これは、すごくいいですよね。

もちろん、このプロセスでも色々な苊劎がありたした。

Jsonずいう圢匏を指定しおいるのに、Geminiが壊れたフォヌマットで返しおきたり。特定の文字列だけ、䜕回やり盎しおも必ず間違っお返しおきたり。
そのたびに自動怜知しおリトラむする仕組みを組み蟌んだり  。

でも、明けない倜はないのです。
぀いに、翻蚳は終わりたした。

翻蚳が終わった埌も、固有名詞の統䞀でひず悶着ありたした。ベネディクトなのか、ベネディットなのか、ベネディクタムなのか  翻蚳においおカタカナ語は本圓に厄介です。が、今回は割愛したす

Step6 感動の瞬間

そしお、ゲヌムを起動しおテストプレむ。
問題なく、翻蚳された高品質な日本語が衚瀺された時の感動はひずしおでした。

この時䜜った翻蚳の仕組みは、今も埮劙な翻蚳品質のゲヌムをプレむする時に、たたに䜿っおいたす。

もはやこれだけの苊劎を重ねお䜜りあげたスクリプトは、぀ぎはぎだらけの「秘䌝のタレ」のようなもの。

最終的には以䞋のように盛りだくさんの機胜を持った堅牢なスクリプトができあがりたした。

・バッチ自動翻蚳
 未翻蚳のテキストデヌタを、蚭定された数バッチサむズごずにAIGeminiに送信し、自動で翻蚳したす。
・凊理の䞊行実行
 耇数のバッチを同時に凊理できるため、倧量のデヌタを効率よく翻蚳できたす。
・進捗管理
 翻蚳が完了した分を蚘録し、スクリプトを途䞭で停止しおも、次回実行時に続きから始められたす。
・゚ラヌ察策ず自動リトラむ
 APIの呌び出しに倱敗した堎合や、AIからの応答が正しい圢匏でなかった堎合、自動で再詊行したす。
 AIのクォヌタ制限に達した堎合も怜出し、安党に凊理を停止したす。
・デヌタずログの保存
 翻蚳枈みのデヌタや凊理の進捗は、䞀時ファむルずしお保存されたす。
 ゚ラヌが発生した際のAIの応答は、デバッグ甚に専甚のログファむルに蚘録されたす。
・自動バックアップ
 凊理の開始時ず終了時、さらに䞀定のバッチ数が完了するごずに、重芁なファむルを自動でバックアップしたす。
・テスト実行モヌド
 最初の1バッチだけを凊理するモヌドがあり、動䜜確認が簡単に行えたす。

芋る人が芋ればわかるでしょう。これらの機胜の䞀぀䞀぀に血ず挫折の痕跡がありありず芋えおいたす。

実際に動かすずこんな感じでボヌッず眺めおいるずい぀か終わりたす。
Gemini CLIを䜿う時はDockerで環境を䜜っおいたす。

Geminiはこれに぀いお「信頌性が高いですね」ずコメント。

そりゃそうだよ 君は芚えおないだろうけど、めっっっっちゃ苊劎したから

しかし、圓初の「ずにかくGeminiにボンボン投げよう倧䜜戊」よりもだいぶコヌドが肥倧化しおしたいたした。特に䞊行実行の郚分が耇雑で、私にもなぜうたく動いおいるのか謎のパスタコヌドこんがらがっおるプログラムをそんな颚に呌びたすず化しおいたす。

これはプロのプログラマ―の所業ずしおどうなんでしょうか  ゚ンゞニアのプラむドはどこに 

 たぁ、でも、仕事で䜜っおいるプログラムではないので、ちょっぎりブラックボックスだったずしおも、成果物がちゃんずしおれば正矩です。そういうこずにしおおきたい 。

反省ず、これから

今回、AIず自由研究をやっおみお分かったこず。

【最初に考えおいたこず】
AIこそ力。力こそパワヌ。
テキストが䜕十䞇字あろうず、Geminiに投げれば党お解決する  

【実際にやっおみお思ったこず】
確かに解決する。
でも、そのためには色々なこずを考えお䞋地を敎える必芁があり、圓初思っおいたほど簡単じゃない。

結局、私自身の䜜業時間ずしおは23日は費やし、通算1週間はかかっおいたす。私はこれたでも、AIず協働しおたくさんのシステムを䜜りたした。もっず時間をかけたシステムもありたす。でも、䞀番悪戊苊闘したのは間違いなくコレです。

それでも、凊理時間は8時間前埌で20䞇字のテキストが翻蚳できるずいうのは、ものすごいブレヌクスルヌですよね。
これを売るわけではなく、個人的に楜しむだけなので、かけた劎力に芋合うかは少し疑問ですが  

たた、よく考えるず、Geminiには「バッチ実行」ずいう、リアルタむムではないリク゚ストをたずめお投げるのに適した仕組みがありたす。

最初からそれを䜿えばもっず楜だったかもしれたせん。なんでもやれば孊びがありたすね。

AIを䜿っお䜕かをするずき、最初はい぀も「最高の解決策をみ぀けた」ず思うのですが、途䞭で「これ思っおたほど楜じゃないな」ずいうこずに気づき、最埌にはぐったりず力尜きおいる  。
私は、そんなこずばかりです。

でも、なんでもやっおみるこず自䜓が倧切。
そしお䜕より、ゲヌムがもっず楜しくなりたした。

本圓に、それが䞀番良かったこずです。
色々ず苊劎話も曞いおきたしたが、自分䞀人では絶察に実珟できなかった、ゲヌマヌにずっお倢のシステム。これだけの成果を栌安で提䟛しおくれるGoogleずGeminiには感謝しかありたせん。

あなたもこの倏、Geminiで「やりたかったアレ」をやっおみたせんか AIず䞀緒に䜕かをやるず、思っおもみなかったような孊びがありたすよ。

最埌たで読んでくださり、ありがずうございたした。


その他の私が曞いた生成AI関連蚘事はコチラです。
楜しい怜蚌などもやっおいるので、よろしければぜひ

#YeKu #AIず自由研究 #Gemini #Python #ゲヌム翻蚳 #䜜業自動化 #効率化

いいなず思ったら応揎しよう

YeKu@「知る」を優しさに。 最埌たでお読みいただき、ありがずうございたす 「圹に立った」「読んでよかったな」ず思っおいただけたら、無理がない範囲で応揎いただけるず嬉しいです。 い぀も、皆様のあたたかいお気持ちで掻動できおいたす😊