音声オブジェクトについて - [[TimeSheetFormat]]関連
目次
コンテのデータ化とかぶるので現在の構成をメモ
セリフ(音声欄)テキストを オブジェクトに分解して返すメソッド?がとりあえず必要
音声オブジェクトを設計しないと当然できない。定義のないオブジェクトを作るのは不可能
音声欄は前後カットにまたがったモノとして コンテ一本をストリームとして処理すべき
1カラム分のデータは 1要素として予備配列に格納して処理
絵コンテデータ上は カラムにトレーラをもたせてデータを保存する。
ストリームのオブジェクト分解を行う為には前後要素の参照が必須
表記と処理
以下の規則による記述とする
エスケープされない単語はすべて 音声オブジェクトのうちのダイアログオブジェクトラベル(登場人物ラベル)である。
「」[]{}または "" でエスケープされた部分は一括りで音声オブジェクトひとつを初期化する。 音声オブジェクトは出現順にインデックスを作成して音声トレーラーに格納される また、出現時点でのカットを親要素として結合される。(カットをまたがる場合、親に付けて移動する) それぞれ以下のオブジェクトに対応する
""「」 | ダイアログオブジェクト |
[] | 効果音オブジェクト |
{} | 音楽オブジェクト |
ラベルを指定されないダイアログオブジェクトは、前出のラベルと引き継ぐ。
ねこ「…」「…」
ここの二つ目のセリフは みた通り ねこ のセリフとするワケだ
加えて、閉じられなかった括弧は、次の開き括弧で自動で閉じるように実装すべし
ねこ「…「…」
要するに、上の表記を認めるってこと
効果音および音楽オブジェクトは冒頭が ":"で区切られている場合、そこまでの部分を当該オブジェクトのラベルとすることができる。
[SE102:どぱぴぷぺ・ガシャーン] {BGM001: メインテーマ}
などのセリフ以外の音声オブジェクトのラベル付けに適用する。ラベルがないオブジェクトのラベルが参照された場合は、デフォルトのラベルが与えられる。
:の後方は、コンテントテキスト
デフォルトのラベル
ダイアログ | _セリフ |
効果音 | _SE |
音楽 | _BGM |
エスケープされた内容のうち、さらに抽出された注釈要素を除いてオブジェクトのコンテントテキストとして扱う
コンテントテクストは音声の代用表示に使用される。(将来的にはダイアログとか読み上げソフト等に引き渡せる鴨)
()でエスケープされた部分は、注釈要素として音声オブジェクトのサブオブジェクトとなる。 注釈要素のトレーラーは、音声オブジェクトが持ち、出現順のインデックスと注釈テキスト内の出現位置をもつ
出現位置は、音声オブジェクトのコンテントテキストの文字数で評価する。
ねこ「(注釈1)コンニチハ(注釈2)よいオテンキデスネ」
注釈1.index=0;position=0; 注釈2.index=1;position=5;
音声オブジェクト外の注釈は、直後のオブジェクトに含まれるものとする。出現位置は常に0
出現位置はユニークではない
ねこ(v.o)「おっとっと[SE(激しく):もげもげー] 」 「うひゃー(F.O)」 [SE:どひゃーん] [ずばずばー] [SE:ガシャーン] {BGM: M1 - B1}SE/BGM等はセリフ内に記述しても独立したオブジェクトとして扱う
セリフ内での位置は参考として保存されるが、親オブジェクトとして扱う事はない? (一考)
時間
それぞれの音声オブジェクトは、 親エレメントの開始時間に対するオフセットである開始時間 またその音声の継続時間をプロパティとしてもつ。 音声の継続時間と開始時間を加えた物は親オブジェクトの継続時間よりも大きい場合があるが、それはそのまま保持する。
- 初期状態では、開始時間は 出現位置 0 をカット頭にクッションをおいて0.25秒(6k)?に設定
- カットの継続時間を出現位置インデックスで均等に分割した値をそれぞれのオブジェクトの開始時間とおく この値は、仮値であって未編集ではほとんど意味をなさない。この値はユーザによる編集が期待されている。
- 編集済フラグを(データ内に)設定して被編集データを識別可能にすること
ダイアログ以外の音声オブジェクトは、コンテントテキスト(ト書き)内でも初期化可能とする。
登録順序は、ト書き<ダイアログ と定める(インデックスは、時間をあらわさないとして)
出現位置は、ト書き部分とダイアログ部分でそれぞれ別の計算をする。こちらの値は、かぶってもOK
AEでの実装メモ
テキストレイヤを使う
- テキストソースにキーを作成してキーの値としてデータボディを登録する
- パラグラフの送出タイミングを設定するキーは開き括弧の位置
- パラグラフの終了タイミングは次のキーを参照する
- 次のキーが(ソーステキストを持たない)空キーなら、直前のオブジェクトの閉じ括弧を表す。
- ソースオブジェクトが閉じ括弧をもたない場合は次のオブジェクトの開き括弧が前のオブジェクトを閉じる (間のブランクがなくなる)
- キーの値を判断してエクスプレッションで整形して表示
Powered by YukiWiki 2.1.2a / Modified by Nekomataya.