autoCVVCの詳細な動作仕様について
コアな技術資料です.この内容を知らなくても普通にautoCVVCを利用する分には全く困りません.
小難しい話を読むと頭がパーンとなる方は読まないことをお勧めします.
基本的なデータの流れについて
GUI(autoCVVC独自)
↓
temp$$$.bat読込(preplay流用)
#プラグインの本来の機能には必要ないが,ust→batデータにする処理に必要
↓
プラグイン用キャッシュファイル読込(preplay流用)
↓
presamp.ini読込(presamp/preplay流用)
↓
原音設定データ読込(presamp/preplay流用)
・presamp併用するにチェックが付いてる場合,音源の孫フォルダ以降も読み込む.
・付いてない場合,UTAU標準の範囲のみ
↓
prefix.map読込(presamp/preplay流用)
↓
USTデータからbatデータに変換(preplay流用)
#presamp処理系がbatデータ基準のため
↓
音源側プリセットの読込(presamp/preplay流用)
↓
GUIで指定した情報をpresampのプリセット情報に反映(autoCVVC独自)
↓
ノートを変換する場合
|-エイリアスを置換・分割・解析(presamp/preplay流用)
|-最適化以外を選択した場合
||-連続音を一度単独音化(autoCVVC独自)
|-単独音化・連続音化を選択した場合
||-VC音素を削除又は単体子音に変換(autoCVVC独自)
|-語尾音源を使わない場合
||-語尾音源を休符化(autoCVVC独自)
|-oto.ini走査,エイリアス変換(presamp/preplay流用)
|-分割ノート,VC,語尾音源などセット(presamp/preplay流用)
|-語尾音源などでノート長が0になった休符の削除(presamp/preplay流用)
↓
パラメータを変換する場合
|-先行発声,オーバーラップ,stpの自動調整(presamp/preplay流用)
|-ノートの実長の割り出し(presamp/preplay流用)
↓
クロスフェードを実行する場合
|-エンベロープの調整(presamp/preplay流用)
↓
bat形式のデータをust形式に変換(autoCVVC独自)
↓
プラグイン用キャッシュにustデータ書込(autoCVVC独自)
GUI設定項目による詳細な変更内容
単独音化を指定
→presamp.iniの[ALIAS_PRIORITY],[ALIAS_PRIORITY_DIFAPPEND],[ALIAS_PRIORITY_DIFPITCH]を全て
CROSS_CV
CV
BEGIN_CV
に変更
連続音化を指定
→presamp.iniの[ALIAS_PRIORITY],[ALIAS_PRIORITY_DIFAPPEND],[ALIAS_PRIORITY_DIFPITCH]を全て
VCV
CROSS_CV
CV
BEGIN_CV
に変更
CVVC化を指定
→presamp.iniの[ALIAS_PRIORITY],[ALIAS_PRIORITY_DIFAPPEND],[ALIAS_PRIORITY_DIFPITCH]を全て
CVVC
VCV
CROSS_CV
CV
BEGIN_CV
に変更
デルタ式などで母音だけ連続音などのケースもあるため,
CVVCボタンは実質autoCVVC2.000-0.4の「CVVC優先」モードに相当.
単純なCVVC化は削除
フレーズの頭に-付単独音を使う
[ALIAS_PRIORITY],[ALIAS_PRIORITY_DIFAPPEND],[ALIAS_PRIORITY_DIFPITCH]及び,[ALIA_BEGIN_PRIORITY](内部パラメータ編集不可)から
BEGIN_CVを除去
フレーズ中の母音に*付単独音を使う
[ALIAS_PRIORITY],[ALIAS_PRIORITY_DIFAPPEND],[ALIAS_PRIORITY_DIFPITCH]及び,[ALIA_BEGIN_PRIORITY](内部パラメータ編集不可)から
CROSS_CVを除去
presamp.iniのCROSSCVやBEGINCVの指定によっては違う文字列となるが,説明が面倒なのでこういう表示にした.
語尾音源を使う
presamp.iniの[ENDFLAG]を強制的に3に.逆に使わない場合強制的に0
エイリアス置換機能を使う
使わない場合,presamp.iniの[REPLACE]の内容をa=aに変更
エイリアス分割機能を使う
presamp.iniの[SPLIT]を強制的に1に.逆に使わない場合強制的に0
VC長をVCの原音設定から取得する(旧仕様)
presamp.iniの[VCLENGTH]を強制的に1に.逆に使わない場合強制的に0
各子音の設定項目にまでは踏み込まないので,[CONSONANT]で個別に1指定は可