日本語表示の場合スプライトフォントの作成が事前に必要となります。

    GameMakerStudio_create_font

「システムにインストールされているフォントの名前指定するだけで簡単に描画できないの?」って思いますが、日本語じゃなければできるんです。

このエントリーをはてなブックマークに追加


漢字を扱う上での問題点

GameMakerLanguage(GML) では font_add 関数が使えるので

    font_add(name, size, bold, italic, first, last);

英語ならASCIIがカバーしてる32128を指定しておけばほぼ大丈夫。YoYoGames のドキュメントでも ASCII 範囲内しか載せてません。

GMS はユニコードに対応済みで、ユニコードの表現可能範囲なら日本語であろうとスワヒリ語であろうと文字表示可能なのだけど、ユニコード全体をテーブルリストに載せないのは範囲広すぎて到底カバーできないからです。

※ 試した結果、ハングルテルグ語を表示できません、フォントの問題ではなく GMS 側の問題です

    newfont = font_add( 'Arial', 24, true, true, 32, 128);

英語はこれでヨシ、日本語だとこれは無理。

漢字文化圏は必要文字数が膨大なこと、そしてユニコードが表現できる範囲は更に膨大なので、ユニコードが表現できる全文字種をプリレンダすればとても巨大な画像サイズとなります。これを GPU にテクスチャとして転送するのはテクスチャサイズ的にも非現実的なのです。

日本語の場合、漢字込みの文章では約一〇〇〇文字種以上使うとして、必要な文字コードはあっちこっちに点在しているから大雑把な範囲指定だと無駄が多すぎ、必要な文字だけを絞り込んで個別に指定します。

しかし大雑把な範囲指定しかできない現在のfont_add 関数は、事情が複雑な漢字文化圏での利用をほぼ想定していません。


    GameMakerStudio_GML_font_add

日本語表示のためには専用のFont Propertiesから、事前に利用する文字を個別に指定してスプライト化しておかなければならない事情がこの辺りに有ります。

範囲指定の具体的方法は(敬称略) 2dgames.jp ですごく丁寧な解説がされています、まずどうぞそちらをざっくり目を通してください。

次のページへ

“超”初心者用チュートリアル:記事一覧