東方Project二次創作クリッカーゲーム「ハクレイクリッカー」の開発をしている なぎさ と申します!!

今回は、このゲームを多言語対応するためにやったことをざっくりとご紹介します。ただし、初めてのゲームですし、投資するかたちになるのは怖いので、翻訳の外注はせずに、そこそこで。
私は今作で初めてSteamストアへの販売を予定しているのですが、ウィッシュリストの登録数を見てみると、日本語話者の登録数が現在のところ全体の25%未満となっています。
少なくとも英語には対応しなければ、と思って対応言語に最初から英語を入れていたのもあるのかもしれませんが……いずれにしろ、かなり大きな機会損失になっていた可能性があるわけです。
※これが東方二次創作だから多い/少ないのか、一般的なのかについては何も分かりません……詳しい方がいたらこっそり教えてください!!
というわけで多言語対応はマストだなと思ったのですが、お金はかけたくないですよね。プロに依頼したら結構まとまった金額がかかっちゃうと思いますが、初めてのゲームですし、売り上げの見通しも立たないのにそんな投資はできないです。
ということで、自力でそこそこのクオリティを目指すために、どういった落としどころにすればいいのかを考えました。
私は特に最近中華圏のゲームをプレイすることが多いような気がするのですが、日本語対応していたとしても、下記のような不満があることがあります。
もちろん翻訳が結構ガバガバでも、日本語対応してくれているだけで十分ではあるのですが、ゲームへの没入感を削ぐ可能性があるわけですし、「そこそこの」クオリティを目指すのであればこのくらいは対応したいと思いました。
どんな環境でゲームを開発するにせよ、ゲーム画面に配置したテキストを後から翻訳するのは非常に厳しい作業になってしまうと思います。
私はUnityで開発しているので、普通にUnity標準の「Localization」パッケージを導入して翻訳済みのテキストを表示できるようにはしていたのですが……これだけでは実はまだ足りませんでした。
実はテキストの切り替えができても、フォントの切り替えのことを考えていなかったんですね。
もちろんアルファベット、平仮名カタカナ、漢字、ハングル、何でも表示できるように、フォントアトラスに全部詰め込んでおけば、どの言語の文字であれ1つのフォントで表示できるようにはなります。
フォントアトラスというのは、こんな風に、その言語で使う文字を1つの画像にまとめたものになります。下記は繁体字のフォントアトラスですが、14374文字も詰め込まれています。しかしまだまだ空きはありますので、他の言語で使う文字も詰め込んじゃえばいい、と思うかもしれません。
しかし、言語が異なると同じ文字でも形が異なることがあるので、1種類のフォントだけではプレイヤーに違和感を与える可能性があります。
例として、上記のシーンの翻訳を示したいと思います。
上記は簡体字です。
そもそも全然日本語と字形が異なる漢字自体は違う文字として扱われていると思うのでいいのですが、「清」とか「給」とかは多分同じ文字扱いかと思いますので、簡体字のフォントのまま日本語で表示するとそのあたりに違和感が出ます。
逆も然りで、きっと簡体字が母語の方は日本語の字形が変だな~と感じているはずです。
上記は繁体字です。こちらは句読点をド真ん中に配置するという特徴があります。
ゲームを遊んでいて、日本語対応はされているんだけど、なんか句読点の位置がおかしいな、と感じた経験はよくある方がいらっしゃるかもしれませんが、それは繁体字のフォントのまま日本語を表示していたからです。
そういうわけで、ちゃんと言語ごとのフォントをダウンロードし、それをフォントアトラスに変換して使うことにしました。
私はAdobe Fontsから適当に見繕いましたが、完全にタダでやりたければ、有名すぎますがNoto Sansとかでいいのかなと思います。きっちり(多分プロが)ローカライズされているインディゲームは割と高確率でNoto Sansを使っている印象があります。
で、言語の切り替え時に、使用するフォントも切り替えるようにして、その対応を文字の表示部分すべてに適用するという作業が発生したわけです……結構大変でしたが、今後は最初から対応していきたいですね。
あと、漢字文化圏にいることは非常に幸運なのでそれを活かしていきたいと思いましたね。漢字の知識がそもそもあるからこそ、こういう対応もできるんじゃないかなと思いますので。
さて、多言語対応の基盤はできましたので、実際の翻訳をどうしていくのかという話になりますが……
もちろんAIを使えばいいと思います。日本語があれだけ流暢に返ってくるのですから、他の言語での出力だってだいたい問題ないはずです。
一応私は英語がある程度読めると思っていますが、日本語から英語の翻訳に関しても、結構スラングとか変わった言い回しにも対応してくれる印象です。全部を無理やり翻訳するわけではなく、無理なところは結構シンプルにしてくれたりとか。
ただそれでも個人的にいくつか課題は感じているところです。例えば、改行やタグなどを適切な位置に入れてくれないことがあります。
上記は日本語から英語への翻訳結果ですが、<strong>のタグが無視されてしまっていますね。私はとりあえずChatGPTに翻訳をさせており、「文章中に<XXX>といったタグが含まれる場合は絶対に削除せず適切な位置に入れること」と指示を出しているのですが、それでも長文の翻訳になると無視されることがあります。
(AIの仕組み的に、こういったルールを理解して守ってくれるわけではなく、あくまでも「こういった指示が出たら、こういう返答が確率的に適切だ」というアウトプットをしてくるだけなので当然ではあります)
その他にも、(東方二次創作であるがゆえにAIも学習しており、個人的にはあまり気になっていないのかもしれないですが)固有名詞のブレや、ゲーム全体のストーリーを理解することはできないので、それに応じた適切な翻訳が難しい、といった問題もあると思います。
上記のような問題を解決するためには、私は今のところ使っていないのですが、今後翻訳用のAIエージェントを作るという方法はアリだと思っています。(ここではAIエージェントの詳しい仕組みについては触れませんが)
例えば、下記のようなエージェントないしスキルを組み合わせて翻訳させたら結構いい線行くんじゃないかと思っています。
まあただ、文章量に対していくらくらいコストがかかってくるのかは懸念点ではありますね。結局お金がかかってしまうのであれば本末転倒にはなってきますし……
ただ最終的にプレイヤーがどう受け取るか、ということを気にするのであれば、もうプレイヤーに頼ってしまえばいいのではないか?という考え方もできます。需要が十分にあればコミュニティ内の有志が翻訳してくれる、というのは理に適っていると思います。
そこで私は、上でも見せましたが開発段階からオンラインのGoogleスプレッドシートに翻訳を記載し、それをAPIで読み込んで実際のゲームのテキスト表示に使うようにしています。
毎回読み込みの必要性があるとはいえ、ゲーム上で翻訳のテキストを打つ手間と比較するとそこまででもないかなと思います。必要そうなテキストは画面の開発前から全部スプシにバーっと書き出しておいて後から取捨選択できますし、共同開発しているイラストレーターさんにも入力を頼めるなど、共同作業にも適していますので。
……などと開発段階の優位性に話が逸れましたが、一番の狙いはゲームの公開後に、そのスプシをそのまま一般に公開するだけで、翻訳の修正をしてもらえることです。
原文の日本語が理解されていなかったとしても、最初からある程度解釈できるレベルの翻訳にはなっていると思うので、あとはちょっとずつ気になったところを直してもらえれば質が上がっていくんじゃないかなと思いますね。
もちろん適切に編集されているか監査する仕組みが必要で、荒らされたらバージョンを差し戻さなければならない、などの課題もあるのですが、サークルのDiscordサーバーを作っていたりするので、有志でモデレーターを募ったりとか、やりようはいくらでもありそうです。
システム面での対応をきっちりしつつ、ユーザーの力も借りて行けば、AIが台頭する今の時代であれば割とそこそこのクオリティでのローカライズは提供できるんじゃないかなと思っておりますが、いかがでしょうか?
とはいえ実際にゲームの完成まではこぎつけていないので、また公開後に実際にコミュニティ翻訳をお願いしてみて何か課題があったとか、AIエージェントを使ってみたらどうだったとか、新たな知見がありましたら共有していきたいと思いますので、よろしくお願いします!

フォローすると、開発ログや新作ゲームの公開が通知されます