![見出し画像](https://assets.st-note.com/production/uploads/images/105019205/rectangle_large_type_2_70919fbd1d4895d3aa252039e771b0f5.png?width=1200)
MGL週報 #16 - ほとんど雑記
このエントリはゲーム開発用フレームワーク「MGL」の開発記録です.MGLは次のWebサイトにて無償で公開されています.
ゴールデンなウィークをいかがお過ごしでしたでしょうか.私は遊んでいる場合ではない状況なので,ちょっとだけ遊んでいつも通りの日々を送っていました.
ちょっとだけ遊んだからという理由ではないのですが,今週はひたすら地味な作業しかしていないため雑記に近い内容になります.
MGL 1.1.5向けの進捗
先週のテキストタグ関連の作業が落ち着いたらバージョン1.1.5としてリリースする予定です.リリースまでに必要な作業とその進捗は大体次のような感じです.
MGL本体
動作確認が甘いことを除けばおおよそ完了しています.他の作業を終えた段階で,実験台こと「ぺぐそり+」にアップデートを適用して色々と確認する予定です.再整理したい部分もまだありますが,まずは目的通りに動作することを目指します.
ラスタライズフォント生成ツール(mgl-font2tex)
先週にも書いた通り,書体を複数持てるように対応した関係でバイナリフォーマットと設定ファイルに変更が入りました.この対応作業は終えているのですが,後述のメッセージコンバータとの連携部分にも変更を入れる予定です.
残りの作業はメッセージコンバータ側の作業を終えてからとなるため,進捗としては半分くらいでしょうか.
メッセージコンバータ(mgl-msgconv)
タグを解析してバイナリに出力する機能を現在進行形で実装中です.
タグの解析はMGL側にも実装されているのですが,リアルタイム性を考慮して1パスで解析するように実装したため,コンバータ側への流用が難しくなっています.タグの構文が同じであっても,単に表示用の中間表現に落とし込めれば良いMGL側と,解析したタグから更にデータを構築するコンバータ側では要求されるものが異なるためです.
また,ラスタライズフォント生成ツールとの連携方法に変更を加える予定です.これには結構前の週報に書いた問題点への対処も含まれており,上手くいけば複数言語への対応が大きく改善されるはずです.
なお,こちらは出力されるバイナリフォーマットには変更が入らない予定です.エクステンションも現バージョンのものがそのまま利用可能です.
ドキュメント作成
ラスボス.
タグの使い方の説明を書かなければならないのはもちろん,今回はフォントリソースまわりに大きな変更を加えているため,APIリファレンスもそれに併せて更新が必要となります.また,ツールの使い方も変更となる予定ですので,その部分の説明も更新しなければなりません.
多分誰も読んでいないと思いますが,各ツール類にはマニュアルページが同梱されているため,こちらの更新も必要です.英語翻訳めんどくさい……
要するに,最も重たい残作業です.が,同時に最も重要な作業でもあります.
今後欲しいと思っているテキストタグ機能
現在進めているバージョンの主目的はテキストタグ機能の下地となる仕組みを導入する事であり,実際のタグ機能は必要最低限に留めています.少々気の早い話ですが,仕組みが仕上がったらこんなの追加したいなと考えている機能もいくつか考えています.
これらの実装に着手するのはしばらく先になりますが,頭の中身をちょっとだけ表に出してみましょう.
アイコン画像の表示
ゲーム実装中に欲しくなる機能として,メッセージ中の文字の代わりにアイコン画像を表示したくなる事が多々あります.操作ガイドにコントローラのボタンを示すアイコンを表示したり,昔のファイナルファンタジーみたいにアイテム名の前にアイテムの種類を表すアイコンを表示したりなど.
今まではこれを実現するために,普段使わない文字コードの領域(大抵はASCIIコードの制御文字)にグリフを仕込んで対処してきました.これをタグで解決できたら良いなと考えています.というか,ゲーム用フレームワークを名乗るなら必須のような気もしてきました.
挿入したいアイコンの種類は作るゲームによって大きく異なるため,タグで指定する名前と実際に表示したい画像をどう関連付けるかが鍵となりそうです.例えば,決定ボタンに割り当てたボタンのグリフを表示したい場合,キーコンフィグの変更を反映させるにはデータの定義だけでは実現できません.要求に対するグリフの指定をある程度プログラム側で制御できるような仕組みが必要です.
フォントリソースクラスに対して,動作をカスタムするためのデリゲートを設定できるようにするのがストレートな解決方法でしょうか.
背景色の指定
現時点で文字色の指定は可能ですが,背景色の指定もできたら良いなと思っています.コンソールやエディタなどではお馴染みの機能ですね.
文字の後ろに何かを表示することや,その色を指定することは現時点でも難しい話ではありません.しかし,単に文字サイズに合わせた矩形をべたっと貼るだけでは見栄えが悪く,用途が限られてしまうでしょう.もしやるのなら,アイコン画像の表示と同じくプログラム側から表示方法をカスタムできるようにする必要がありそうです.
エフェクトの指定
Twitchで人のプレイを観ていて気付いたのですが,ここ最近になって文字が震えたり波打ったりする表現をよく見かけるようになった気がするんですよ.もちろんその表現は以前からありましたが,ここ最近,特にインディー系タイトルで増えた気がするんです.ゲームエンジンにそういう機能が使いやすく実装されているのか,それとも単に最近のトレンドなのかは分かりませんが,ああいうゲームならではの表現は面白い使い方ができそうですよね.
こちらでいくつかのエフェクトを用意して,それをタグから指定する方法であれば,あとはパラメータとして強度を指定するくらいで実装可能かもしれません.しかし,もし自前でエフェクトを実装できるよう対応するとなると,やはりデータの定義だけではカバーできなくなります.簡単に使えないものはあまり使われない運命にあるため,よく使いそうなものを定義しておきつつ,カスタム可能なユーザー定義領域も設けておくというのが無難なところですかね.
その他
先週のビュー数……
![](https://assets.st-note.com/img/1683502964108-eRqvdTsWik.png?width=1200)
先々週までと比べて10分の1くらいですね.3月末くらいから仕事依頼の募集をかけた関係で一時的に増えていましたが,そろそろ魔法が解けたようです.
もちろん,これは正常な値.ニッチな活動なんてこんなものですよ.
しかしまあ,ビュー数は別に良いのですが,仕事の依頼がさっぱりなのは困りものですね……