sbdPlayer - 絵コンテデータプレイヤ
目次
絵コンテデータプレイヤ
データコンバータとストップウオッチを組み合わせたら、けっこう簡単に…
とか思ったのが運の尽き
http://www.nekomataya.info/tools/sbdConvert/sbdPlayer.html
なんとかソレナリに動いているようです。古いマシンだと画像が増えるとダメかも
このページは開発用のメモとかです。
絵コンテプレイヤを考えたら結局 のところ「ライカリールエディタ」だった
しょうが無いので作る
最終的には、 XPS・MAP のセットをはきだして AEでライカリールを作れるところまで考えておくこと
今回は、FIX PAN TU 字幕 まで とか考えたがPAN/TUは少しあとまわしに
ライカリールデータの構造図
ライカ(コンテ=ストーリーボード)オブジェクト
StoryBoard?オブジェクトにカットコレクションを加えて論理的単位を与える
- Cutの一次元配列
- Cutは、カラムコレクションである。
- 最低でも1つのカラムをもつ
- カットは以下のコレクションをもつ
- キャスト(セル) 必須
- カメラワーク 必須
- エフェクト 必須
- サウンドエフェクト 任意
- ダイアログ 任意
- BGM 任意
- トランジション 任意
カットオブジェクトのコレクションは、ストーリーボードのもつコレクションへのポインタ
再生の為にカット単位でキューを再構成する
- queueBox
- queueBoxはキューの集合 ライカリールデータをキューに分解したもの
再生前にストリーボードオブジェクトから再構成される。
queueBox本体データは、inPointでソートしたqueueオブジェクトのコレクション
- pictureTrack
- キャストとカメラワークを合成した画像キュートラック
castTracks 画像 camworkTracks カメラワーク effectTracks 効果
dialogTracks セリフトラック seTracks サウンドエフェクトトラック musicTarcks 音楽トラック
すべてのQueueは、inPointとdurationをもつ queuePoolに投入されたQueueは、順次走査されて再生期限の来た物を除外する
データは連続しても不連続でもかまわない
queueBox.getQueue(time) 与えられたtime値のキューを返す 各Queueは、["option"]として、キュー種別を持ち、それぞれ本体データが異なる。 カメラワーク等は自立性の高いオブジェクトにして、自分自身に位置やスケールの計算をさせること。
絵コンテ内部でのカメラワークの記述
(PAN →(1+0 0+0 3+0)) (T.U 120Fl-80Fl) (Q-T.U) (F.I (3+12))
こんな感じか? コメントとして()でエスケープして記述してもらって それを解釈してキー(のセット)を自動生成する。
どうせあとで手編集だけど、設定位置にキーがあればだいぶラクになる。
- {BGM}
- [SE]
- 「セリフ」
- "Dialog"
- <pageControll>
- (follow → (1+0)(0+0)(3+0)) カメラワーク
- (F.I)エフェクト/トランジション
(注釈をカメラワークおよびエフェクトの指定に使用する) オーディオ系とは別
オーディオ系は設定で ボールドを表示(コンテ撮り用)
字幕スクロールとか作るとニコニコ向き?
カメラワークおよびエフェクトをト書き内に記述する際に
(括弧)で囲むことで絵コンテプレイヤにエフェクトキューを与えることが出来る
括弧で囲まない文は単なるテキストとして処理される
PAN ← 単なるト書き
(PAN ←) ト書きと同時にPANエフェクトを生成
括弧内では冒頭にキーワードを置く 登録されたキーワード以外では括弧内の文全体が注釈として処理さる
登録されたキーワードであっても注釈としての効果は持つ
オーディオコメント内でカメラワーク指定を行っても無視
評価するキーワードとアトリビュート (そのうち増やす 一般ライブラリにする)
follow / follow-PAN / PAN =限定カメラワークオブジェクトを生成する(ベクタが反転) slide / 画面動 =限定カメラワークオブジェクトを生成する T.U / T.B =カメラワークオブジェクトを生成する F.I / F.O =限定エフェクトオブジェクトを生成する WIPE / O.L =トランジションオブジェクトを生成するプレフィクスとしての Quick(Q-) Slow(S-) Fast(F-) デフォルトの継続時間を調整する
それぞれのキーワード直後には、ベクトル指定 継続時間指定を行うことが出来る 指定方式はMAP書式に準ずる方式 および 絵コンテ用に簡略化された方式を受け入れる。
MAP書式に準ずる場合は、絵コンテの画像自体のもつ物理量(補正可能にする)を基本ジオメトリとして使用する為指定量が実際の素材と異なることがある。
つまり全然補正がなければ フレーム横幅は絵コンテの枠の幅である (22.5cm 24cm 等ではなく 66mm 8.8cm 等) 作画フレームを設定して絵コンテとの補正係数を乗せなくてはダメ
簡易記述ルール等はあとで考えれ!
カットオブジェクトのプロパティとメソッド
Cut
parent | 親StoryBoard? |
index | インデックス |
name | カット番号(文字列) |
length | カット尺 |
duration | カット継続時間 |
inPoint | ストーリーボード内でのin点 |
columns | カラムコレクション |
column(index) | メンバーカラムを返すメソッド |
キューの正式な処理手順を作成
各オブジェクトに自分の寿命をもたせてキューマネージャーが送出のみを行う 同フレームに対して複数のキューが存在するがそれはヨシ (たぶんこれでないと管理構造が複雑になって遅延が早そう? 実験するか)
キュー種別
Cut | トラック1本 |
Column | (画像/ト書き) トラック1本 現在はこれのみ |
Effect | (セリフ 効果 音響効果) |
実質はセリフを別トラックにした方が良いかも
トラックはレイヤ1以上複数 トラックごとにキューを送出 処理順は Column/Effect/Cut
エフェクトは下位構造inPoint
キューは各種キューからビルドしてキュー待ち配列を作成。
マネージャは、フレーム進行を監視してキュー待ち配列にあるキューを適切なトラックへ送出する キュー列の監視は、以下の手順で行う
キューに対して現在時刻を与えて表示すべきキューの部分配列を取得する 部分配列を現在のトラックと比較して 存在しないキューのみを送出して他のキューを廃棄 各キューに制御をまわして各自の消失判定を行う。
以下ループ
プールをおいてプールを監視することで構造を単純化する
Powered by YukiWiki 2.1.2a / Modified by Nekomataya.