いらにか 2024/03/06 23:16

【雑記】あっという間に2月が終わった

雑記

あっという間に2月が終わった。
何もしてなかったかというと、そうでもなくて、


シュクメルリ食べたり、
A5和牛の焼肉食べたり、
弘前にクラフトビール飲みに行ったり、
同級生と久しぶりに飲みに行ったり、
喫茶&バーで飲んだくれたり、

振り返ってみると、結構いろんなことをしていた。

ただ2月はたくさん外に出たことで、考えさせられることも多かった。
そして、プライベートな時間でパソコンを起動しなかったという事実が一番の衝撃だったかもしれない。
一応、仕事ではパソコン使うし、日常生活ではスマホとかタブレットは使っていた。
なのであまり共感はしてもらえないかもしれないが、プライベートな目的でパソコンを全く使わないというのは「ずっと一緒だったテディベアを失くしてしまったのに、他のおもちゃでも日常を過ごせてしまう。でも高度に遊ぶ習慣が消え失せた」みたいな感覚だった。

正直、スマホ(タブレット)とパソコンそんな変わらないやろという人も多いと思う。
でもパソコンは日常の様々なことのハックに使いやすいのが楽しい。

例えばCi-enのマイページにNSFW画像が表示されるのを防いだり
DLsiteの作品ページから直接ギフトページを開けるようにしたり
桃色CODEのサイトにみちくさびゅあーを直接埋め込む機能作ったり
Etc...

こういうことはスマートヒョンだけでは中々できないので、パソコンの便利さを実感する。


ちなみに私物のデスクトップパソコンはあまりにも使わなすぎたので、離れて暮らす兄に貸し出している。
なので手元にあるパソコンはSurfaceGo(初代)という開発には向かない貧弱パソコンだけ。
こうやってCi-enの記事書いたりする程度には使えるのだが、タブレットでもできるからなぁ……みたいな。


そういえば久しくノートパソコンを買っていないので、アマゾンを徘徊していたら中古のリテール品がWindows11のノートPCが大量に出ていた。
しかし、CPUをみてびっくり。



Win11が正式サポートしてない世代のCPUじゃん……


ネットでの買い物も難しくなってきているなと思った。

Mes

.NET8がリリースされたら移行しようと思っていたMes。
結構致命的な設計ミスにも悩まされていて、イチから再設計しています。
正直なところ勉強も足りてなくて、このまま再実装するのも得策じゃない気がして勉強しながら設計してはバラしてを繰り返しています。

Mesの言語自体は初期の頃からコンセプトは素晴らしいと自負しています。
「デコレーション」という概念でメタ情報を扱い、それを構造化されたデータとして簡単に扱うことができ、既存のシナリオテキストをMesに書き直すのは非常に簡単なのもコンセプトが洗練されているおかげです。

テキストシナリオをプログラムで扱いやすいように構造化されたデータとして提供することで、「【Mes】ADVで使えそうな分岐管理を試験的に組み込んでみた【試験実装】」みたいな機能も比較的スムーズに開発できました

一方で、Mesの開発で一番苦労しているのはコアライブラリの実装です。
しかも、Mes本体の解析処理ではなく、Mesを便利にするための外野のフラットレイヤーとコンフィグレイヤーと呼んでいる部分で一番苦労しています。

フラットレイヤーはMesとして解析する前に、テキストに前処理を施す層です。
脚本でよく使われる表記方法の一部をMes形式に変換したり、削除していいコメントアウト部分を消したりします。
そうすることで一般的なシナリオ記述でもMesで解析できるような工夫がされています。
置換ルールと処理を書くだけなのでフラット処理単体の実装は難しくありません。
問題はコンフィグレイヤーとの関係にあります。

Mesではヘッダーと呼ばれる記述エリアに各種設定用の変数を記述することができます。
キャラ名も省略したときのデフォルト名や、各種デコレーターの記号などMesに関する設定をMesテキスト内で設定できる仕組みです。
この仕組みはMesのヘッダー部分の解析時にコンフィグへ情報の上書き処理を行います。以降の処理では上書きされたコンフィグ情報で解析されるので、デコレーター文字などの設定書き換えも可能になっています。

フラットレイヤーはヘッダー解析よりも前の段階なので、このコンフィグ書き換えの恩恵を受けられません。
フラットレイヤーでもヘッダーの変数解析をするしかありませんが、そうするとヘッダーの役割と重複します(このような役割の重複がバグの温床になります)
そうなると、ヘッダーの変数解析はフラットレイヤーに移譲するのが正しい気がしてきますが、フラットレイヤーは必ず実行されるような仕様ではなく、ライブラリ利用者が任意に外すことができる使用になっています。
(元々がテキストの前処理をしたいケースでの拡張機能的な役割なのでこのような仕様になっています)

というわけで、フラットレイヤーの前にコンフィグレイヤーを新たに作り、コンフィグレイヤーを通過したときはヘッダー解析で変数解析をスキップできるような仕様なら効率よくできそうだなとか。
そういった再設計をしています。
特にコンフィグレイヤーはまだ仕様が固まっていないのもありますが、MesEditorのようなサードパーティツール製作者がコンフィグ設定用の機構を実装しなくても機能するような柔軟な仕組みづくりを念頭にして考えています。


まだまだ時間がかかりそうですが、ここさえ満足いく作り方ができればサードパーティツールの開発はすごく楽になるのでスキルアップも兼ねてじっくり作り込もうと思います。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索