2024年8月4日日曜日

【ウディタ】秘伝のソース①【共通処理改修】

まだウディコン期間中ですが、毎回このくらいの時期になると次の作品の準備に入っちゃうんですよね。
『レイユウサイ』公開時も、『ケルリート』公開時もそうでした。バグ修正を終えると次に向けての作業を始めています。DL数カウンタがあるので、過去の結果からなんとなく先が見えてしまうのもある。2回参加していたからなんとなくわかる。
たぶん、今作は圏内/圏外の境目あたりです。


それはさておき、制作中も公開後も苦しめられた共通処理に手を入れて、今後も使えるようにしていきたいと思います。
なにせ初版2016年のシステムばかり、そこに作品を作るたびに増改築を加えてきたのでカオスそのもの。
とりあえず、初回はセリフ表示システムの改修項目を、自分向けに書き残していきます。

【セリフ表示システム】初版2016年(処女作)
txt読み込みでセリフ表示するやつ。
バージョン付番はしていませんが、こんな感じ。イルシェラートでセリフ行数変更と、マップEv廃止をした関係で互換は結構切れています(文法は同じ)。
過去何回か整頓しているので処理そのものはある程度完成されており、コマンドの追加・整理とバックログ処理の改修くらいになりそう。
処女作・・・v1 → v2(途中でレイユウサイのものを全移植)
レイユウサイ・・・v2
ケルリート・・・v2.5
イルシェラート・・・v3

・文法について
 コマンド行+内容行1~2行 の構成は変えない(15万文字くらい書いているのにここから変えるのはしんどい)。コマンドは整理、ピクチャ関連の機能追加をしたい。現状ほとんどピクチャが扱えない。可能ならコモン呼び出しコマンドに返り値を受け取るオプションがほしい。返り値で条件分岐したい。
 あまり出番はないと思うけど、キー待ち指示文字が欲しい。ADVモード実装するなら必須。

・バックログの仕様
 つけた当時はほぼセリフ表示しか読まない想定だった関係上結構無理のある実装をしているため、全とっかえしたい。ぶっちゃけ今も状況によっては挙動が怪しいが、破壊的改修をしないと直らないのでそのままになっている。
 1セリフ読むたびに文字列操作でバックログ保存用文字列変数に挿入して、バックログを呼び出したときは保存用文字列変数の中身を読み込んで表示するようにしてあるが、これをテキスト読み込み時に全部挿入してしまいたい。表示可能範囲はセクション番号(コマンド1つで1セクション)で制御可能なはず。画面いっぱいに表示せず左右キーで爆速送り可能な仕様は継続とする。

・セリフ表示DBへの代入処理
 通常セリフの読み込み領域が0~99セクションまでだが、これを倍に増やす。(CDBの改造)
 バックログは通常セリフの後の領域を使うのは変わらず。

・コモン全体
 テキスト表示位置制御を拡張したい。上下だけでなく、任意の座標に表示できるといいな(基本システムみたくCDBに共通処理変数用のDB作ろうかな)。ADVみたく画面全体に表示する機能は搭載できるだろうか……。ADVモードフラグon/offで全体表示+txt区切りで改ページなら可能?
 コマンド処理部と入力受付・表示部を分割したい。処理が長すぎる。
 キー数がしんどいが単語リンク機能がほしい。サブはスキップ、セット切り替えキーはバックログ、ジャンプキーはオートon/off……キャラ切り替えキーに設定? ”|リンク名|”みたいな感じで書きたい。単語解説が画面の空いてるとこに出てくる。
 メニューから呼び出す回想モードを想定する。バックログ同等、セリフしか読まない仕様ならさほど難しくはないはず。
 立ち絵表示はたぶんないが、モード切替(立ち絵モードon/off?)で顔グラ指定あっても顔グラを非表示、代わりに別体のコモンを呼んで表示するようにはできそうか。とりあえず顔グラoffにするだけの機能として載せる。


ひとまずこんな感じで。
目標はセリフ表示システムで簡単なノベルゲームくらいなら作れるようにしたい。作るかは別だけど。

0 件のコメント:

コメントを投稿