プラグイン仕様

「プラグイン仕様」の編集履歴(バックアップ)一覧はこちら

プラグイン仕様 - (2011/03/10 (木) 02:45:53) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*はじめに ここでは、UTAUのプラグイン機能の詳細な仕様を記述します。 調査に使用したUTAUのバージョンは0.2.76です。 インストール方法や、作成されたプラグイン一覧などは、 [[プラグイン]]のページを参照して下さい。 また、今のところアナウンスされていないエントリの説明も含みます。 そのため、不確定な情報も混じっています。ご了承下さい。 まだまだ未完成ですので、どなたか追記お願いします。 #contents_line *基本情報 **プラグインの形式 プラグインには、最低この二つのファイルが必要です。 plugin.txt    設定ファイル [実行ファイル] プラグイン本体 実行ファイルは、コマンドライン引数を取れる形式である必要があります。 また、install.txtというファイルを用意すると、 プラグインのインストールが容易になります。 これ以外にも、別のファイルを含んでいても構いません。 例 : readme.txt ***plugin.txtの形式 plugin.txtには、以下のように記述します。 ---- name=プラグインテスト execute=test.exe ---- nameには、プラグインの名称を書きます。これはメニューに反映されます。 executeには、実行ファイルの名称を書きます。 ***install.txtの形式 install.txtは、プラグインのインストール時のみに使われる特別なファイルです。 適切に用意しておけば、プラグインをzip形式で圧縮したファイルを、 UTAUにドラッグアンドドロップするだけで、 自動的にインストール出来るようになります。 無くてもプラグイン自体の機能には影響ありません。 プラグインの場合、install.txtには、以下のような内容を記述します。 ---- type=editplugin folder=bar contentsdir=foo description=せつめい ---- type : プラグインの場合はeditpluginと書きます。 folder : plugins以下に作られるフォルダ名。省略不可。 contentsdir : 展開するフォルダ名。省略するとfolderと同じになります。 description : 省略可能。プラグインの説明を一行で書きます。 ***フォルダ構成 install.txtを使う場合、次のような形式で配布する必要があります。 ---- 何か.uar  ├install.txt  └foo (フォルダ)   ├plugin.txt   ├[実行ファイル]   └その他のファイル(あれば) ---- uarというのは、UTAUインストールアーカイブ専用の拡張子で、 実体はzipで圧縮したものの拡張子を変更したものです。 拡張子はzipのままでもインストール出来ます。 fooと書かれた部分には、install.txtの contentsdir(無ければfolder)に書いたフォルダ名を書いて下さい。 install.txtを使わない場合は、 手動でpluginsフォルダ下に置くなどして、 インストールしなければなりません。 install.txtに上の項目のように記述した場合、 インストール後はこうなります。 ---- UTAUインストールフォルダ ├utau.exe ├plugins │ └bar │  ├ plugin.txt │  ├ [実行ファイル] │  └その他のファイル(あれば) └他UTAU関連ファイル ---- **データ入出力方法 ***入力 UTAU本体は、選択範囲の情報を一時ファイルに出力して、 プラグインのコマンドライン引数にそのファイル名を渡します。 プラグインは、そのファイルを読み込むことで、 音符の情報を取得して下さい。 ***出力 プラグインは、選択範囲の情報を編集後、 結果を入力の一時ファイルに上書きして下さい。 *データ形式 UTAUから渡される一時ファイルは、 複数のセッションという単位からなるテキスト形式です。 文字コードはShiftJIS、改行はCR+LFです。 セッション内には、音符の細かい情報を格納する、 エントリと呼ばれるものがあります。 **セッション [#●]から次の[#●]の直前まで間のことを指します。 基本的には、セッション一つが音符一つに対応します。 セッションにはいくつかの種類があり、それぞれ役割が異なります。 ***[#SETTING] 一時ファイルの先頭にあるセッションで、基本的な設定が書いてあります。 読み取り専用で、ここを変更しても本体側の情報は何も変更されません。 出力の際は、省略してもかまいません。 ***[#数字] 選択範囲の情報が格納されたセッションです。 このセッションは、省略できません。 例外として、プラグイン操作自体をキャンセルする場合は、 全てのセッションを省略することが出来ます。 また、セクションの数字には意味は無く、 格納順序通りに本体の選択範囲に適用されます。 ***[#PREV],[#NEXT] [#PREV]は、選択範囲の直前の音符データが格納されます。 [#NEXT]には、選択範囲の直後のデータが入ります。 前後に音符が無ければ、このセクションはありません。 出力の際は、省略してもかまいませんし、 省略しなければ、情報が反映されます。 ***[#INSERT],[#DELETE] 出力の際に使うことの出来る専用セッションです。 [#INSERT]は、その位置に音符を追加します。 [#DELETE]は、その位置にあった音符を削除します。 なお、どちらも数字セッションのある位置を基準にしか働きません。 例えば、[#PREV]の直前に[#INSERT]を書いても、 音符は[#PREV]の直後に入ります。 **エントリ エントリは出力の際は省略することも出来、その場合UTAU側では、 そのエントリに変更が無かったものとして解釈されます。 従って、変更のない音符はセッションのヘッダのみを返すことが出来ます。 [#INSERT]で挿入したセッションのエントリを省略した場合、 エントリのデフォルト値が入ります。 この値は、音符のデフォルトとして設定されている値とは別です。 独自のエントリを定義することも出来ます。 エントリ名=値という書式で、定義したいセッション内に記述します。 エントリ名は、半角$から始まり、 改行や半角のスペースと/を含まない限り自由です。 ***必ず存在するエントリ ****Length 音符の長さ 書式 : Length=整数 定義域 : 1~7680 単位 : Ticks(四分音符=480) 上限を超えた値を指定しても、Ver0.2.76ではちゃんと読み込んでくれますが、 古いバージョンでは音符が動かせなくなることがあります。 また、マウスドラッグでの入力上限も7680です(下限は15)。 ****Lyric 詞 書式 : Lyric=文字列 定義域 : 例外を除く全ての文字列 例外として、改行、セクション名、エントリ名+「=」を含んだ詞は指定できません。 例えば、「あ [#INSERT]」、「あ PreUtterance=」、「あ $foo=bar」 のようなものです(流石に書く人は居ないと思いますが……)。 ****NoteNum 音階番号 書式 : NoteNum=整数 定義域 : 24~107 単位 : ノートナンバー(MIDIと同じ) C1=24で、半音ごとに一つ値が上がります。 108(C8)以上を指定すると、ノートが画面に表示できなくなり、 120(C9)以上を指定するとプロパティが開けなくなります。 23以下を指定すると、合成時にエラーが出ます。 ****PreUtterance 先行発声 書式 : PreUtterance=小数 定義域 : 原音の範囲内である限り制限なし? 単位 : ミリ秒 エントリ自体は必ず存在しますが、値が空白の事があります。 ***省略される可能性のあるエントリ ピッチに関するエントリとフラグも省略されることはありますが、 量が多いので後述します。 ****VoiceOverlap オーバーラップ 書式 : VoiceOverlap=小数 定義域 : 原音の範囲内である限り制限なし? 単位 : ミリ秒 ****Intensity 音の強さ 書式 : Intensity=整数 定義域 : 0~200 音量のピークが、200のとき0db、100のとき-6db付近になるようにします。 どの程度厳密に合わせるかは、Pフラグで指定します。 ****Moduration モジュレーション 書式 : Modulation=整数 定義域 : -100~200 単位 : パーセント ****StartPoint STP 書式 : StartPoint=小数 定義域 : 原音の範囲内である限り制限なし? 単位 : ミリ秒 ****Envelope エンベロープ 書式1 : Envelope=p1,p2,p3,v1,v2,v3,v4 書式2 : Envelope=p1,p2,p3,v1,v2,v3,v4,%,p4,p5,v5 (どちらの書式も、p,vともに正整数) 定義域 : pは音符の範囲内で他の値と矛盾しなければ制限なし? vは0~200 単位 : pはミリ秒、vはパーセント Ver0.2.35までのバージョンでは、書式1のみが有効です。 また、Ver0.2.36以降のバージョンで書式1を指定しても、 Ver0.2.35以前と完全に同じ動作にはなりません。 値を空白にすると0が入ります。 ****Tempo テンポ 書式 : Tempo=小数 定義域 : 10~512 単位 : BPM(Beats Per Minute) このセクション以降の音符のテンポを設定します。 ****$direct 直接出力 書式 : $direct=真偽値 定義域 : TrueまたはFalse resampler(ツール2)で加工をせずに出力します。 wavtool(ツール1)での加工は行われますので、 エンベロープ、先行発声などは反映されます。 ***ピッチ(Mode1) ****PBType ピッチベンドのタイプ 書式 : PBType=値 定義域 : 5もしくはOldData 通常は5を指定して下さい。 OldDataは、かなり初期のUTAUで使われていたピッチベンドタイプです。 ****Piches ピッチ数列 書式1 : Piches=整数,整数,整数… 書式2 : Pitches=整数,整数,整数… 定義域 : -2048~2047 単位 : cent UTAUのバージョンによってどちらの書式もあり得ます。 プラグイン側からの出力はどちらの書式でも変わりません。 省略された部分は全て0として処理されます。 ***ピッチ(Mode2) ポルタメントの点の上限は50です。 これに応じて、PBW、PBY、PBMの値の数の上限も決まります。 この部分のエントリの詳細は、 公式からの情報が見つからなかったので、 著者の完全な推測となります。 Mode2からMode1に戻した場合でも、 これらエントリの値は全て保存されます。 Renderボタンを押さない限り、 Mode1のピッチ情報も変わりません。 ****PBS ピッチ曲線の最初の点 書式 : PBS=整数;小数 定義域 : -200~200; 単位 : ミリ秒;10cent 最初の点の、音符の始点からの相対座標。 一つ目の値は時間位置、二つ目の値はピッチシフト値を表します。 区切りが「;」であるのに注意して下さい。 ****PBW ピッチポイント間隔 書式 : PBW=小数,小数,小数,… 定義域 : 音符の終点を超えない限り制限なし? 単位 : ミリ秒 最も左のポイント間隔の値から始まります。 ****PBY 最初の点を除くピッチポイントのシフト値 書式 : PBY=小数,小数,小数,… 定義域 : -204.8~204.7 単位 : 10cent 最初の点を除く全ての点のピッチシフト値。 省略されている部分は全て0として扱われます。 左から二番目の点の値から順に始まります。 点が最初と最後の二つしか無ければ、エントリは省略されます。 ****PBM ピッチ曲線の形 書式 : PBM=文字,文字,文字,… 定義域 : 指定なし、s、r、jのいずれか 各点の間のピッチ曲線の形を左から順に指定します。 曲線:指定なし 直線:s R型:r J型:j 省略されている部分は、全て曲線として扱われます。 全て曲線の場合、エントリ自体が省略されることがあります。 ****VBC ビブラート 書式 : VBC=整数,整数,整数,小数,小数,小数,小数,任意 定義域 : 0~100,64~512,5~200,0~100,0~100,0~100,0~100,任意 単位 : パーセント,ミリ秒,cent,パーセント,パーセント,パーセント,パーセント,なし Lengthに対する長さ,周期,深さ,入,出,位相,高さ,未使用 の順で格納されています。 ***Flags プロパティのflags + BRE + NoFormantFilter 書式 : Flags=文字列 以下に書いてあるフラグの中には、 公式にアナウンスされていないものも含みます。 フラグのそれぞれの効果の説明は、[[音のプロパティ]]を参照してください。 数字指定ありの物は、定義域を書いてあります。 全てアルファベット順です。 ****b フォルマント修正を通さないBRE 定義域 : 0~100 ****B BRE 定義域 : 0~100 ****N NoFormantFilter 数字指定なし。 ****c ローパスフィルタ1(フォルマント修正前) 定義域 : 0~100 ****C ローパスフィルタ1 定義域 : 0~100 ****D ローパスフィルタ2 定義域 : 0~100 ****E ローパスフィルタ3 定義域 : 0~100 ****F フォルマント修正適用周波数帯域設定(ピッチ基準) 定義域 : 0~不明 ****g 簡易ジェンダーファクター 定義域 : -100~100 ****G 周波数表再作成 数字指定なし。 ****h ローパスフィルタ4(BRE以外) 定義域 : 0~100 ****H ローパスフィルタ4 定義域 : 0~100 ****L フォルマント修正適用周波数帯域設定(周波数基準) 定義域 : 0~不明(130以下だと思われる) ****P ピークコンプレッサの強さ 定義域 : 0~100 ****R TIPSエンジン用パラメータファイル再作成 数字指定なし。 ****t 音程を10cent単位でシフト 定義域 : 不明 ****T 周波数表をテキストで出力 数字指定なし。 ****W ロボット声生成 数字指定なし。 公式ではまだアナウンスされていないと思われるフラグ。 ****Y 伸縮範囲のBRE 定義域 : 0~100 *参考リンク -プラグインの仕様 http://utau2008.blog47.fc2.com/blog-entry-10.html -install.txtの形式 http://utau2008.blog47.fc2.com/blog-entry-379.html -飴屋/菖蒲氏のVC++による実装サンプル http://utau2008.web.fc2.com/utauplugin.zip -Others欄について http://utau2008.blog47.fc2.com/blog-entry-207.html -独自エントリの作成 http://utau2008.blog47.fc2.com/blog-entry-213.html -ピッチの定義域 http://utau2008.blog47.fc2.com/blog-entry-141.html -エンベロープ1 http://utau2008.blog47.fc2.com/blog-entry-221.html -エンベロープ2 http://utau2008.blog47.fc2.com/blog-entry-221.html -エンベロープとポルタメント http://utau2008.blog47.fc2.com/blog-entry-256.html -フラグ このWikiの[[音のプロパティ]] ここに無い情報は独自調査です。 #comment() 統計: &counter() 本日: &counter(today) 昨日: &counter(yesterday)

表示オプション

横に並べて表示:
変化行の前後のみ表示: