2024年8月15日木曜日

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

ここ数日はセリフ表示システムの検討とコモン改修の準備をやってました。

・削除するコマンド
 チュートリアルスライド表示(シリーズ作のチュートリアルで画像出てくる場面で使ってた)と、背景変更コマンドを削除する。

・追加するコマンド
 ピクチャ表示コマンド。指定した画面座標にピクチャを表示する機能。文字列ピクチャにも対応する。
 ピクチャ移動コマンド。指定したピクチャ番号のピクチャを移動させる。不透明度も操作できる。
 本当はピクチャ番号を変数で指定したいけど、そもそも出番はそこまで多くないであろうこと(本当にがっつりピクチャ操作するならコモン組む)を考えると、定数指定でいいだろうということで、変数による指定は想定しないことにした。できないことはないけど非推奨ということで……。

・機能の追加
 今後の共通処理拡張を見据えて、表示や動作の制御に関わる変数を、通常/予備変数からCDBへ移す。例えば今まではセリフウィンドウを画面下部に固定するフラグを予備変数に格納していたけど、こういうものをCDBへ移すことにした。
 メリットはシステムの移植が楽になるところだけど、そもそも最新作のシステムを破壊しながら改修する開発スタイルなので、恩恵があるかどうか……。まあ変数の説明文を書けるなど、管理面でいいことあるので良しとします。面倒くさいのはアプデ時に内容をいじることになった場合、ロード後の処理で書き換えが必要になるところ。まあ通常変数もいじらないといけないから変わらんか……。
 ただ既存のフラグを移すだけでなくいくつか機能を追加することにした。
 1)セリフウィンドウの表示座標操作
   任意の画面座標にセリフウィンドウを表示できる。初期値は画面下部の値。
 2)ウィンドウサイズ変更
   縦横サイズを任意に変更できる。1)の機能で座標をいじった場合に使う。
 3)立ち絵モードフラグ
   今後の作品で立ち絵を使う場合、顔グラフィックを表示しないようにするためのフラグ。
 4)回想モードフラグ
   メニュー等からテキストを呼ぶ際、変数等操作されると危険なコマンドを無視できるようにするフラグ。
 5)ADVモードフラグ
   本文を4行以上書けるようにするモード。専用コマンドが有効になり、通常モードのセリフコマンドが無効になる。

 オーソドックスな画面下部のテキスト表示と、画面いっぱいにテキストを表示する機能を1つのシステムで動かす野望のもと、改修をしています。
 実際に出番があるかはUI設計次第だけど。

 既存のコマンドに機能追加するものとして
 1)選択肢実行時、キャンセル有効/無効の選択および有効時のテキスト指定ができるように
   『イルシェラート』でやろうとしたけどボツにした機能。
   一部の選択肢はやはりキャンセルきいたほうが楽なので搭載したい。
 2)(全般だけど)320×240以外に正式対応する
    ワイド画面で幅目いっぱいは使わないので結局等倍か2倍かの分岐だけになりそう。

・文法について
 コマンド行+内容行1~2行 の構成は、通常モードに限り変えない。
 ADVモード時、本文はコマンド行+任意の行数(表示できる範囲で)、それ以外は通常モードと同じ。

・コマンド処理数の拡張
 1つのテキストで処理可能なコマンド数を2倍に拡張。200コマンドまで実行可能にする。
 バックログは相変わらずウディタの限界まで攻められる仕様。危険な仕様なのでそのうちストッパーかけねば……。

・バックログの格納を整理する
 違法増築状態なので、処理を書き直す必要がある。指定セクションをバックログへ格納するだけのコモンを単独で起こせばいい……はず。
 テキスト読み込み時に先行格納しようと考えていたけど、バックログにはセクション情報が格納できないため制御ができず、遠回りすればできそうなアプローチはあるけど、危ない橋な気がするので渡るのはやめておくことにする。
 表示に関してはこれまでのものを踏襲する。既読セクションは現状でも取得可能なので、これを使用することで制御する。ADVモード時まだ検討中。左右キーの爆速送りのほうが好きだけど、上下スクロールのほうがらしいか……。

・検討の末一旦ボツにした案
 1)コモン呼び出しコマンドに返り値を受け取るオプション
  「できなくはないけど、返り値が必要になるような複雑な処理はコモンに投げるべき」
  ……となり一旦ボツ。
 2)キー待ち指示文字
  本文の行数拡張をすれば要らないと考えて保留。
 3)単語リンク機能
  そもそも既存の機能である程度実装できるので、単独で機能を起こすほどではない。
  キー受付については必要になってから実装でも遅くないので、一旦ボツ。


明日以降はちびちびこのシステムをいじっていきます。
とりあえず、イルシェラートのテキストがフツーに動作する程度には持っていきたい。

0 件のコメント:

コメントを投稿