見出し画像

なぜ今、中華フォントゲーム問題が起こっているのか?

この記事を執筆している2024年現在、いまだに中華フォントがゲームに出現する問題が起こっています。
この問題は日本語の文字コードの歴史にも関わることではあります。単純であるとも言えるし、奥が深いとも言えます。
端的にいえば誰かの考慮不足が原因のはずです。
その答えの一部がこの技術記事に書かれています。

この記事はText mesh Proと呼ばれる技術で、使用する文字をFont Atlasと呼ばれるテクスチャに画像として書き込むための文字リストを示している記事です。この記事では、難しい漢字を含めほぼ全ての日本語を表示できるようにする、という記事です。
妙ですね?なぜデフォルトで全ての文字を含んでいないのでしょうか。


このFont Atras化を行うツールがFont Asset Creatorです。現在のUnityでは標準でText Mesh Proと一緒に同梱されています。ここのスクリーンショットで示したCharacter Setの内容が今回の話の中心です。

Unity付属のFont Asset Creator

ここでFont Atras化を行う範囲を開発者が決めなければいけません。あなたは母国語以外の文字に詳しいですか?答えはほとんどの人がNoのはずです。その作業を非母国語話者が行うのです。

中華フォントゲーム問題を引き起こすタイトルは大方Noto Sansというフォントを採用しています。このフォントは日本語を含めた多くの言語の正しい文字を含んでいます。このフォントを採用するだけで中華フォントを日本語に表示してしまう問題を解決できてしまうはずでした。ところが、この問題は解決されていません。

現段階でサンプルは少ないですが、奇妙なことに直接関係のない別のデベロッパーのゲームタイトルで全く同じ問題が引き起こされていました。

どういう動作かというと、ゲーム中に使われている文字より狭い範囲の日本語をFont Atras化を行い、残りを繁体中文(中国語)にフォールバックしていました。
制作順としては繁体中文でFont Atlas化を行い、その残りの文字について日本語フォントからFont Atlas化を行ったとすれば辻褄は合います。
つまり、正しいフォントがそこにあるにもかかわらず、我々がよく見る『直』の文字が中華フォントとして表示されます。これはリソースを節約するための実装であると思われます。
この現代にいたってなお、この問題を抱えたゲームが作られているのです。今のPCは十分なリソースを使え、フォント自身が抱える諸問題が解消されているのにもかかわらず。

では、どうすればいいか。
正規の手段ではデベロッパーに修正を求めることです。先のサイトで紹介されているjapanese_full.txtの全ての文字を対象にしてくださいと。それが一番でしょう。

ですが我々はそれが待ちきれません。自分で対処する技術力もあります。であれば、自分で修正してしまえば良いではありませんか。

このNoteマガジンはそういった意思を原動力として運営しています。



Text Mesh Proは2017年頃に追加された、比較的新しい機能です。2017年以前には別の問題がそのときの中華フォントゲーム問題をゲームに起こしていました。この内容は他の記事として取り上げられればと思います。

今回は今起こっている中華フォントとゲームにまつわる問題がどうして起こっているかを紹介しました。ではまた、次の記事で。

この記事が気に入ったらサポートをしてみませんか?