【第54回】Unityゲームを6言語に対応!ChatGPTとCodexで中国語・韓国語・ドイツ語を追加

機械設計×ゲーム
0

前回、第53回では、PUZFLOに2分割・3分割切断機を追加しました。

組立機と切断機が揃ったことで、ワークを増やしたり、
組み合わせたりできるようになり、生産ラインの設計の幅がさらに広がりました。

設備の種類も増え、ゲームとしてできることがかなり充実してきたと思います。

そこで今回は、少し方向を変えて、海外プレイヤーにも
PUZFLOを遊んでもらうための準備を進めていきます。

今回取り組むのは、ゲームの多言語対応です。

以前、第44回では、Steam用の英語トレーラーを制作するために、
日本語と英語を切り替えられる仕組みを実装しました。

ただ、Steamには英語圏以外にも多くのプレイヤーがいます。

せっかくSteamで販売するのであれば、
できるだけ多くの国の人に遊んでもらいたいところです。

そこで今回は、ChatGPTとCodexを使って、
PUZFLOを合計6言語に対応させることにしました。

とはいえ、自分は外国語が得意なわけでも、
プログラムを書けるわけでもありません。

果たしてAIを使って、どこまで対応できるのでしょうか?


なぜ今、多言語対応をするのか?

PUZFLOは、Steamでの販売を目指して開発しているゲームです。

Steamでは日本だけでなく、さまざまな国のプレイヤーがゲームを購入できます。

しかし、ゲーム内の説明が日本語だけでは、海外のプレイヤーにとって遊びにくいゲームになってしまいます。

特にPUZFLOは、単純にワークを流すだけのゲームではありません。

設備能力や加工条件、出荷目標などを確認しながら、生産ラインを設計するゲームです。

そのため、画面に表示される情報を正しく理解できることが重要になります。

例えば、「設備能力」や「目標生産量」の意味が分からなければ、プレイヤーは何を改善すればよいのか判断できません。

そこで、Steamでの発売に向けて、言語対応をさらに進めることにしました。


今回追加するのは4言語!合計6言語へ

第44回の時点では、日本語と英語の2言語に対応していました。

今回は、そこからさらに4言語を追加します。

対応する言語は次の6種類です。

言語今回の対応
日本語既存
英語(English)既存
簡体字中国語(简体中文)新規追加
繁体字中国語(繁體中文)新規追加
韓国語(한국어)新規追加
ドイツ語(Deutsch)新規追加

中国語については、簡体字と繁体字を別々に対応させます。

同じ中国語でも使われる文字や表現が異なるため、
それぞれの翻訳を用意する必要があります。

韓国語とドイツ語についても、単純に英語を表示するのではなく、ゲーム内の文章を翻訳します。

これによって、PUZFLOを日本語・英語以外でも遊べるようにしていきます。


多言語対応って、文章を翻訳するだけではない?

最初は、

はじめ
はじめ

「ChatGPTに文章を翻訳してもらえば、すぐ終わるのでは?」

と思っていました。

しかし、実際にはそう簡単ではありません。
PUZFLOには、さまざまな場所に文章が使われています。

例えば、タイトル画面、設備の名称、設備の説明文、生産画面、
出荷場の情報、エラーメッセージ、設定画面、操作方法などです。

さらに、ゲームを進めることで表示内容が変化する部分もあります。

例えば、

「出荷場3を解放しました」

という文章です。

出荷場の番号は、ゲームの進行状況によって変わります。
このような文章まで含めて対応する必要があります。

つまり、多言語対応では、ゲーム内の文章をすべて見つけ出すことも重要になります。


まずはChatGPTと翻訳する項目を整理

今回も、いつものようにChatGPTへ相談するところから始めました。

まず考えたのが、

「どの文章を翻訳する必要があるのか?」

ということです。

自分でゲーム内の文章をすべて探すのは、かなり大変です。

そこでCodexに、Unityのコードや画面表示を調査してもらい、
翻訳が必要な文章を整理することにしました。

今回の多言語対応では、最終的に約600項目以上の文章や表示パターンを管理する規模になりました。

思っていたより、かなり多いです。

設備が増えるたびに説明文やエラーメッセージも増えていたので、
気付かないうちに翻訳対象が膨らんでいたようです。

ここまで多いと、1つずつ手作業で管理するのは現実的ではありません。
そこで、翻訳データをまとめて管理する仕組みを活用します。


翻訳データはJSONファイルで管理する

ここで登場するのが、JSON(ジェイソン)ファイルです。

名前だけ聞くと難しそうですが、かなり簡単に説明すると、
ゲームで使う文章と、その翻訳をまとめて保存しておくファイルです。

例えば、日本語の「設定」という文字を、
英語では「Settings」
ドイツ語では「Einstellungen」と
表示するように管理できます。

イメージとしては、次のような翻訳表を用意する感じです。

日本語英語ドイツ語
設定SettingsEinstellungen
コンベアConveyorFörderband
ワークWorkpieceWerkstück

ゲーム側では、選択されている言語に合わせて、この翻訳データを読み込みます。

つまり、一度この仕組みを作ってしまえば、
新しい言語を追加するときに、ゲーム画面をすべて作り直す必要がありません。

これは第44回で日本語・英語対応を進めていたことが、今回かなり役立った部分です。


ChatGPTで翻訳し、Codexでゲームへ反映する

翻訳する文章が整理できたら、次は実際の翻訳作業です。

今回も、自分ですべての外国語を翻訳するわけではありません。

基本的な流れは、

ChatGPTで翻訳内容を検討する。
↓
Codexで翻訳データを作成・反映する。
↓
Unityで実際の表示を確認する。

ただし、ここで意識したのが、日本語をそのまま直訳しないことです。

例えば、設備名や操作ボタンの文章が長くなりすぎると、
ゲーム画面に収まらなくなる可能性があります。

また、機械設計で使われる専門用語は、
日常会話とは違った意味になることもあります。

そのため、単に翻訳するだけでなく、
ゲームの中で自然に使える表現になっているかも考えながら進めました。


意外と大変だったのが「文字の表示」

多言語対応で特に注意が必要だったのが、フォントの問題です。

フォントとは、文字を表示するためのデザインデータのことです。

日本語や英語では正常に表示できても、韓国語や中国語では、
一部の文字が正しく表示されない場合があります。

例えば、対応していない文字が、「□」のような
四角い記号になってしまうことがあります。

これでは、せっかく翻訳しても意味がありません。

PUZFLOではUnityのTextMeshProという仕組みを使って文字を表示しています。

そこで今回、追加する言語でも正しく文字を
表示できるように、フォントの対応状況を確認しました。

特に韓国語では、Malgun Gothicというフォントを補助的に使う設定も追加しました。

これによって、通常のフォントでは表示できない文字にも対応できるようにしています。

翻訳するだけではなく、翻訳した文字を正しく画面に表示することも必要だったわけです。


言語によって文字の長さが変わる問題

もう一つ気になったのが、文章の長さです。

日本語では短い言葉でも、
英語やドイツ語では長くなることがあります。

特にドイツ語は、設備名などが長くなる場合があります。

そうなると、

「ボタンから文字がはみ出す」
「説明文が途中で切れる」
「他のUIと重なる」

といった問題が発生するかもしれません。

そこで、ChatGPTとCodexを使って、翻訳内容だけでなく、
文字の表示領域についても確認していきました。

大切なのは、すべての言語で同じ画面を快適に使えることです。

ただ翻訳を追加するだけでなく、ゲームの使いやすさにも関係する作業になりました。


ゲーム内で6言語を切り替えられるようにする

翻訳データが揃ったところで、次は言語を切り替える仕組みです。

これは第44回で日本語・英語を切り替えられるようにしていたため、その仕組みを拡張しました。

設定画面の言語選択に、今回の4言語を追加します。

そして言語を選択すると、ゲームを再起動しなくても、
その場で表示が切り替わるようにしました。

さらに、一度選択した言語は保存されます。

そのため、ゲームを終了して再起動しても、
選択した言語が維持される仕組みです。

初めてゲームを起動した場合は、PCの言語設定を参考に初期言語を決め、
すでに言語を選んでいる場合は保存された設定を優先します。

こうした部分も、海外向けに販売するゲームでは大切になってきます。


翻訳漏れがないかもチェックする

ここまで対応すると、今度は別の問題が気になってきます。

それが、翻訳漏れです。

例えば、日本語では表示されている文章が、
ドイツ語だけ翻訳されていない。

あるいは、中国語の一部で文章が空欄になっている。

こうした問題が残っていると、ゲームを遊んでいる途中で
突然別の言語が表示されてしまいます。

そこでCodexを使って、各言語の翻訳データを比較しました。

特に確認したのは、翻訳項目の数が一致しているか、空欄がないか、
文章内で使っている変数や改行などが正しく維持されているか、という部分です。

今回の翻訳データでは、各言語で615項目の基本キーと
17種類の動的な表示パターンを管理する構成になりました。

こうしたチェックを行い、翻訳データの整合性を確認できました。

ただし、データ上で問題がなくても、実際のゲーム画面で読みやすいとは限りません。

最後は、Unityで表示を切り替えながら確認する必要があります。


Steamのストアページも多言語対応が必要?

ゲーム本体の多言語対応を進める中で、もう一つ考えたのがSteamストアページです。

PUZFLOのゲーム内表示が6言語に対応していても、
Steamのストアページが自動的にすべて翻訳されるわけではありません。

ゲームの説明文や短い紹介文、ストアでの表示などは、別途用意する必要があります。

つまり、海外のプレイヤーにPUZFLOを知ってもらうためには、
ゲーム本体の言語対応だけでなく、
Steamストアページの言語対応も重要になります。

せっかく外国語で遊べるゲームを作っても、
ストアページを見た段階で内容が分からなければ、
興味を持ってもらいにくいかもしれません。

ここも、Steamで販売するゲームならではの作業だと感じました。


多言語対応で感じたAIゲーム開発の強み

今回の作業を振り返ると、AIを活用するメリットをかなり感じました。
自分は、英語も含めて外国語が得意なわけではありません。

当然、中国語や韓国語、ドイツ語の文章を一から翻訳することもできません。

それでも、ChatGPTとCodexを使うことで、
6言語対応の仕組みを作るところまで進められました。

もちろん、AIが作った翻訳がすべて完璧だとは限りません。

特に専門用語や自然な言い回しについては、
実際にその言語を使う人の確認が必要になる場合もあります。

ただ、プログラミングも外国語も分からない状態から、
ここまで対応できたことは、自分にとって大きな進歩です。

最初は、「AIを使えばゲームを作れるのか?」という挑戦でした。

それが今では、海外プレイヤーにも遊んでもらうことを考えながら開発する段階まで来ました。


まとめ|PUZFLOが日本語・英語を含む6言語に対応!

今回、第54回では、Steamでの販売に向けて、
PUZFLOの多言語対応に取り組みました。

以前の日本語・英語に加えて、
簡体字中国語、繁体字中国語、韓国語、ドイツ語の4言語を追加。

これによって、合計6言語に対応する仕組みを整えることができました。

今回の作業で重要だったのは、
単に文章を翻訳するだけではなかったことです。

  • 翻訳する項目を洗い出す
  • 翻訳データを管理する
  • 言語ごとのフォントを確認する
  • 画面から文字がはみ出さないか確認する
  • 翻訳漏れや表示の不具合をチェックする

こうした作業を一つずつ進める必要がありました。

特に、ゲーム内には600項目以上の文章や表示パターンがあり、
想像以上に大きな作業になりました。

それでも、ChatGPTとCodexを活用することで、
多言語対応を大きく前進させることができました。

第44回では、英語のトレーラーを作るために日本語・英語対応へ挑戦。
そして今回、第54回では、さらに4言語を追加しました。

「日本語で作った工場パズルゲーム」から
「海外のプレイヤーにも遊んでもらえる工場パズルゲーム」へ。

もちろん、翻訳の自然さや実際のプレイ環境での表示など、今後も確認していく必要はあります。

それでも、Steamでの発売に向けて、また一つ大きな準備ができました。

ゲームの面白さだけでなく、その面白さをより多くの人に伝えられるPUZFLOへ。

引き続き、ChatGPTとCodexを使いながら開発を進めていきます。

次回は「Steamデモ版」の制作に挑戦する

今回の多言語対応によって、PUZFLOは
日本語・英語を含む6言語で遊べるゲームになりました。

これで海外プレイヤーにも遊んでもらうための準備が、また一歩進みました。

ただし、ここで一つ気になることがあります。

「Steamのストアページは公開したけど、まだ誰にもゲームを遊んでもらえない。」

現在、PUZFLOはSteamで「近日登場」として公開していますが、製品版はまだ開発途中です。
せっかく興味を持ってもらえても、実際にゲームを体験してもらうことができません。

そこで次回は、Steam向けのデモ版(無料体験版)を制作することにしました。

デモ版では、製品版のすべてを遊べるようにするのではなく、

  • 出荷場1〜10までプレイ可能
  • 工場の土地は12×11マスまで
  • 使用できる設備を一部制限
  • 出荷場10をクリアすると専用画面を表示

といった形で、遊べる範囲を限定します。
ただ、ここで心配なのが、製品版への影響です。

デモ版のために機能を制限した結果、
製品版まで制限されてしまっては困ります。

さらに、セーブデータが混ざったり、
デモ版だけの設定が製品版へ反映されたりする問題も避けたいところです。

そこで今回もChatGPTとCodexを使って、
製品版の仕組みを活かしながら、デモ版だけに制限を設ける方法を考えていきます。

次回、第55回では、Steamデモ版の仕様決めから
Unityでの実装、動作確認までを紹介します。

「自分で作って、自分で遊ぶゲーム」から「実際にプレイヤーに体験してもらうゲーム」へ。

PUZFLOのSteam発売に向けて、また新しい挑戦が始まります。

コメント

タイトルとURLをコピーしました