Studio_Voice_Custom_List_DX.zipmod 保存・読込対応化パッケージ v1.1.1
■ はじめに
Studio_Voice_Custom_List_DX.zipmod を適用すると、通常は公開されていない音声ファイルもすべて選択できるようになりますが、このMODにはシーンの保存・読込に対応していないという制約がありました。
そこで今回、Studio のシーン保存時に拡張ボイス情報を保存し、読込時に現在の環境におけるボイス番号へ再解決して復元する、保存・読込対応化パッケージを作成しました。
※ Studio_Voice_Custom_List_DX.zipmod を適用していない環境では、本パッケージは不要です。
■ 内容物
本パッケージの内容物は3つです。
(1) StudioVoiceSceneSave.dll
Studio の通常シーン保存用の補助プラグインです。ソースコードも同梱しています。
(2) vnactor_actor_voice_ext.py
VNGE の構成ファイルである vnactor.py から新たに参照される追加の Python スクリプトです。
(3) vnactor.diff.txt
vnactor.py 内の特定の関数を、本パッケージ同梱の ‘vnactor_actor_voice_ext.py’ に定義された関数へ置き換えるために必要なパッチ記述です。
■ インストール
1. ‘StudioVoiceSceneSave.dll’ を ‘HoneySelect2\BepInEx\Plugins’ に入れる。
— VNGE で拡張ボイス情報の保存・読込も行う場合は、2. 3. も実施してください。
2. ‘HoneySelect2\BepInEx\plugins\Console\Lib\vnactor.py’ に vnactor.diff.txt を適用する。
(vnactor.diff.txt を使わずに手動でパッチを行う場合は、「■ 後説明」の項目を参照してください。)
3. ‘vnactor_actor_voice_ext.py’ を ‘HoneySelect2\BepInEx\plugins\Console\Lib’ に入れる。
■ アンインストール
1. ‘StudioVoiceSceneSave.dll’ を ‘HoneySelect2\BepInEx\Plugins’ から削除する。
— VNGE で拡張ボイス情報の保存・読込も行っていた場合は、2. 3. も実施してください。
2. ‘vnactor_actor_voice_ext.py’ を ‘HoneySelect2\BepInEx\plugins\Console\Lib’ から削除する。
3. ‘HoneySelect2\BepInEx\plugins\Console\Lib\vnactor.py’ に適用した差分を元に戻す。
■ 後説明
‘StudioVoiceSceneSave.dll’ は、Studio のシーン保存・読込そのものを置き換えるのではなく、ExtensibleSaveFormat が提供するシーン保存前・読込時のイベントに割り込んで動作します。つまり、通常の Studio のセーブ/ロード処理を妨げることなく、シーンデータ内に拡張ボイス情報もあわせて保存・復元する補助プラグインです。ユーザ側は特別な操作を意識する必要はなく、普段どおり Studio の保存・読込を行うだけで利用できます。
‘StudioVoiceSceneSave.dll’ をテストする過程で、VNGE では通常の Studio シーン保存とは別に、SceneSaveState / vnactor.py を通した独自の状態保存・復元処理が行われていることが分かりました。この経路ではキャラのボイス情報が (group, category, no) のみで保存されていたため、Studio_Voice_Custom_List_DX.zipmod による拡張ボイスリストを選択していると、再起動後やシーン再読込後に別のボイスへ化ける問題が残っていました。そこで、VNGE 側でも拡張ボイスを安定して保存・復元できるように ‘vnactor_actor_voice_ext.py’ を実装しました。
これを VNGE に適用するには、VNGE の構成ファイルである ‘HoneySelect2\BepInEx\plugins\Console\Lib\vnactor.py’ の

の行の直前に、以下の記述を挿入します。

※行頭にインデントを入れる方法が分からなかったので画像引用してます。pythonスクリプトはインデントを崩すと絶対動きませんのでお気をつけて。
vnactor.py の修正箇所はこれだけです。変更を保存したら、’vnactor.py’ と同階層に ‘vnactor_actor_voice_ext.py’ を配置してください。これにより、vnactor.py 内で使われていた Actor クラスの set_voice_lst 関数および get_voice_lst 関数の呼び出しは、外部ファイル ‘vnactor_actor_voice_ext.py’ に定義された同名関数の呼び出しへ置き換わります。try-except で記述しているため、万一外部ファイルが見つからない場合は元の関数が使われます。
この修正により、VNGE のサブシーンや連続シーンでも、拡張ボイスを番号依存ではなく実ファイル識別子ベースで復元できるようになり、Studio 再起動後でも正しいボイスが維持されるようになります。
アップロードファイル(クリックでダウンロード)
エモーションボタン
一言感想ボタン
+ボタンをクリックすることで追加することができます
×ボタンをクリックすると削除確認メッセージが表示されます
虫眼鏡マークをクリックすると同じボタンをつけられた記事の一覧が表示されます
※ボタンを押した回数はキャッシュされるため、表示が反映されるのは編集などでクリアされるか、30分ごとです
