会話イベントを下記動画で紹介されているDialog Systemという方法を使って作ろうとしています。
https://www.youtube.com/watch?v=rEYSi0ahC5Q
動画では各文字をsprite化?していて、順番をちゃんとしないといけないみたいなことを仰っているのですが、
これってもしかして日本語出来ないのでは?と思ったので質問させて頂きました。
わかる方いましたらよろしくお願いします!🙋♀️
会話イベントを下記動画で紹介されているDialog Systemという方法を使って作ろうとしています。
https://www.youtube.com/watch?v=rEYSi0ahC5Q
動画では各文字をsprite化?していて、順番をちゃんとしないといけないみたいなことを仰っているのですが、
これってもしかして日本語出来ないのでは?と思ったので質問させて頂きました。
わかる方いましたらよろしくお願いします!🙋♀️
可能ですが超大変です!
文字はパソコン上では数字(文字コード)が割り当てられていて
例) 大文字Aなら41、大文字Bなら42 となってます
文字画像をつくるときは文字コードの順番に配置して読み取ります。
基本的に英数字や基本的な記号は0 ~ 127番目までなのでなんとかできますが、ひらがななどは12400番目、漢字なんかもっといみわからんところにあったりします。
それらの順番などをしっていて画像を配置できれば可能ですがかなり大変です。
上記のチュートリアルのFontの読み込み部分をSpriteではなく、Fontの読み込みに変更したほうがやりやすいです。
また、読み込み方法が違くても上記のチュートリアルは問題なくできそうです。
FontはSpriteをつくって実行中に読み込まなくてもGMSのEditor上で読み込むこともできます。
日本語に対応しているFontを読み込み、ゲーム内で使うであろう文字を入力すればgms内部にフォントの画像を用意してもらえたりします。
日本語フォントの読み込みに関して表示などまでまとめてあるサイト
動画ではフォントを font_add_sprite()でglobal.font_mainというスプライトフォントを作っています。
で、そのフォントで draw_text_ext()でテキストを表示しています。
draw_textでテキスト表示するのは日本語でも同じやり方です。
問題は、日本語で使う文字全てをfont_add_spriteでスプライトフォントにするのは無理ってことです。
(限られた文字しか使わないのであれば可能です)
そこで、日本語フォントは下記の手順で作ります。
日本語フォントを作ったらあとは動画の方法でそのまま使えます。
アセットブラウザでフォントを新規作成します。
フォントエディタが開くので、
1)で日本語フォントを選択します。
2)でサイズなどを設定して、
3)をクリックします。
(1)か(2)を選びます。
(1)を選ぶとコード中に使われている文字が自動でスプライトフォントに追加されます。
(2)を選ぶと外部テキストファイルを読み込んで、そこで使われている文字が追加されます。
動画ではコード中のテキストを表示しているので、(1)を選びます。
最後に(3)のAdd Rangeをクリックします。
これで日本語のスプライトフォントができました。
このフォントを使って、以下のコードで日本語が表示されるか試してください。
(仮にフォント名はfont_jpとします)
オブジェクトのDraw(またはDraw_GUI)イベント
これが表示されれば、フォントは作れてます。このフォントをチュートリアル動画でそのまま使ってください。
丁寧な説明ありがとうございます!!
フォントに関して曖昧だったのでとても助かります。
これからもよろしくお願いします!!
書き忘れてました。
「From Code」でフォントに文字を追加する場合は、
コード中に使いたい文字を書いた後で、フォントにAdd Rangeしてください。
順序が逆になると、コード中に文字がない状態でAdd Rangeすることになり、フォントに文字が追加されませんのでご注意ください。