v0.2.9
動作の軽量化
- サーフェス画像のキャッシュにキャラクターごとの上限(推定16MiB・128件)を設け、使われていない画像から解放するようにした。画像合成の共通化と、終了・再読込時の描画資源の解放も行った
- 発話履歴で同じサムネイルを共有し、画像の読み直しを減らした。履歴更新をまとめ、閉じた履歴画面の描画処理を解放することで、履歴が増えた時の文字送りの負荷を抑えた
- 呼び出しゴーストの休止中はアニメーション・音声・ファイル監視を止め、不要な画像キャッシュを解放するようにした。復帰時は休止時間を除いて再開し、保留中のSHIORI通知・応答を処理する
- HTTPの進捗・ストリーミング通知を順番に処理し、タスクや応答データの重複保持を減らした。ウインドウモードのゴースト切り替えで、古いEscapeキー処理が残る問題も修正した
表示・配置の修正
- 発話履歴のサムネイルが透明になる不具合を修正し、
icon.rectや画像上部の切り抜き方向も修正した - 起動時にシェルが自由配置を指定していても、ゴーストごとの「画面下に固定」設定を優先するようにした
balloonoffsetの変更・解除、会話終了、再読込で、利用者がドラッグしたバルーンの移動分を保持するようにした。位置初期化・プリセット復元にも反映するdumpsurfaceで負座標を含む合成画像を書き出せるようにし、「ゼロ位置切り出し」指定時だけ負座標部分を切り落とすようにした。表示用キャッシュと分離し、極端な合成範囲の拡張も制限した
SHIORI・SakuraScript互換性
OnBalloonBreak・OnSSTPBreak・消滅キャンセルの中断位置を、タグやエスケープを含むスクリプト先頭からの文字数で通知するようにした。話者・翻訳後のスクリプト・埋め込み応答の位置も追跡する- SSTPの中断対象を再生中の会話から取得し、
nobreakの予約があっても正しい対象を通知するようにした。会話の置き換え・キャンセル時には残った予約を破棄する - SHIORIの起動・終了をNOTIFYで送り、ゴースト/SHIORI再読込時に
Reference0=reloadを渡すようにした。NOTIFYの返答では発話を開始しない - 起動時の画面情報・着せ替え一覧通知を追加した。ウインドウモードでは、その表示領域の変更を対象ゴーストへ
OnDisplayChange/OnDisplayChangeExで通知する - 着せ替えの複数変更は最後だけGET、それ以前はNOTIFYで送り、100件以上は全状態の通知にまとめるようにした。メニュー・スクリプト操作への返答も再生する
OnSurfaceChangeをNOTIFYへ修正し、キャラクターIDと画像サイズを追加した。バルーン情報には追加キャラクターの画像番号も含めるようにした- 「ウインドウ位置を初期化」でゴーストの返答を優先し、返答がない時だけ標準の位置初期化を行うようにした
Full Changelog: v0.2.8...v0.2.9
🛡️ VirusTotal Scan
- Status:
⚠️ Flagged (1 / 67 security vendors flagged as malicious) - SHA-256:
a35d00c1919f7e55f086826987e49ac5466b8a127172ed69e011ae9d553b1308 - Report: https://www.virustotal.com/gui/file/a35d00c1919f7e55f086826987e49ac5466b8a127172ed69e011ae9d553b1308