職場のオジサンが日常会話で悪魔合体って単語を使っててビックリした
それが私です 一般ワードだったのか…?
実はサマナーなのかもしれないね
ちまちまやってるゲ制ごっこの進捗報告。→前回
ここ1ヶ月ぐらいはずっとダイアログ実装の練習をしてました。
やっぱり商業のゲームさんはすごい
ここまでめんどくさい要素を当然のように入れられるなんて

実際に作ったもの。文章は適当。
結構それらしくないですか?どうどう?
マップが前回から全く成長してないのは気にしないで…
ただ文字を出すだけなら簡単なんですけど、
1. オブジェクトを調べるとウィンドウとともに表示される
2. 一文字ずつ表示されるタイプライター効果 ←これをON/OFFできるようにする
3. 文字の表示途中に文字送りボタンを押すと全文表示される
4. 文字色を自由に変えられるようにする (強調箇所、システムメッセージは色を付けたいので)
5. 好きな箇所で改行できるようにする
これを全部盛りするとなると結構大変でした。
色々検索し、大半の部分はhttps://michaelvandiest.com/advanced-dialogue-box/ を参考にさせてもらいました。どっかの国の知らん人、ありがとう…
ウィンドウ部分はhttps://qiita.com/2dgames_jp/items/945d410b75722b368f94#draw-gui%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88 をそのまま使用(変数部分だけ変えました)。日本の知らん人、ありがとう…
Qiita記事の方は、enum定義→switch文で状態遷移をガチガチにやってるようです。自分はそこまで厳密な構造にはしなかったのですが(手抜き)、最終的にはこの記事のように立ち絵や背景画像も表示したいので、マネッコさせてもらうかも。
文字の表示途中に文字送りボタンを押すと全文表示されるようにする方法はどうにか素人改造で実装。分かりづらいですが上のGIFの3文目「次の街は海の傍に~」の途中でやってます。せっかちなんで…。マジのせっかちさんのために、文字送り自体をOFFにする仕様も作りました。上のgifでは2回目に調べた時は文字送りがOFFになっています。
ちなみに私はOPTIONで設定できる場合はどのゲームでも問答無用で最速全文表示にしています。
そのため、この文字送り仕様をちまちまコーディングしてる時も、内心 (これ要る…?) ってなってました。
要るんだよ。私は自販機でコーラ買わないけど買う人もいるだろ。そゆことですよ。ON/OFFできりゃ誰からも文句でないしなっ(ヌッ)
ただ、好きな箇所で改行できるようにする方法が上の記事になく、検索してもビックリするほど見つからないという…。
ググって出てきた大半の情報は英語圏のものだったんですけど、英語圏の人って文章をいい所で区切りたいな~って思わないんですかね。ほとんどの情報が自動改行 (1行の文字数が一定以上になったら勝手に折り返す仕様) でした。
ということで、どっかの国の知らん人のコードにあった、文字色変更のための修飾子部分を魔改造して、「この修飾子が前についている文字は1行下に行く」ようにしました。以下の画像の*1が改行修飾子です。これでなんとか折り返してください…へこへこ…

実際のテキスト。文字化けかな?
というか!仮にもゲームエンジンならこんなの標準装備であるべきだから!
富〇住建ぐらいなんでもかんでも標準装備にしなさい
疲れた~。暫くはグラフィック周りを練って遊びます…。
GMS2で使える日本語フォントはホントに少ない。
今回使わせて頂いたのは「マルモニカ」というカワイイpixelフォントです。
>JIS第1水準漢字2965字、第2水準漢字3390字を完全収録!
>印刷標準字体1022字にも対応しています。(booth説明書き文字)
なんだあっ
しかもゲームに使える特殊な文字もあったりします。

今回の練習(上のGIF)でも、LBボタンの文字を使わせてもらいました。
もうちょっと大きく表示したいんですけど、なぜかGMS2だと24point単位でしかピクセルパーフェクト表示ができないという…。どないする?