Class Xps
汎用アニメーションタイムシートクラス
Defined in: xpsio.js.
Constructor Attributes | Constructor Name and Description |
---|---|
Xps(Layers, Length, Framerate)
object Xps(汎用アニメーションタイムシート)日本形式のタイムシート記述クラスを提供
|
Field Attributes | Field Name and Description |
---|---|
ここからオブジェクト化を検討中
|
|
Xps標準のプロパティ設定
|
|
タイムライントラックコレクション配列
|
Method Attributes | Method Name and Description |
---|---|
<static> |
Xps.compareCutIdf(tgt, dst)
パース済みのカット識別子を比較してマッチ情報を返す
シーンカットともに一致した場合のみtrueそれ以外は false
引数に秒表記部が含まれないよう調整が必要
|
deleteTL(args)
Xps.deleteTL([id])
指定idのタイムラインを削除する。1~
デフォルトの音声タイムラインとフレームコメントの削除はできない
IDを単独又は配列渡しで
XpsLayerとxpsTracks はそのうちタイムラインとして統合すべきかと思う。
|
|
duration()
継続時間をフレーム数で返す
ダイアログタイムラインの要素数で返す
初期状態でボディの存在しないシートが存在しないように注意
未記述でも空ボディのタイムラインが存在する。
エラー関連コードは排除の方向で
チェックが進んだら関数自体を廃してxpsTracks.durationの参照に切り替える
|
|
getIdentifier(opt)
カット識別子を返すオブジェクトメソッド
Xps.getIdentifier(識別オプション,)
カット識別文字列を返す
カット識別子はタイトル、制作番号、シーン、カット番号の各情報をセパレータ"_"で結合した文字列
カット番号以外の情報はデフォルトの文字列と比較して一致した場合セパレータごと省略
オプションで要素の結合状態を編集して返す
セパレータ文字列は[(__)#\[]
出力仕様をクラスメソッド互換に変更
オブジェクトメソッドを利用する場合はURIEncodeを使用しないプレーン文字列でやり取りが行われるものとする
旧: TITLE_OPUS_SCENE_CUT
新: TITLE#OPUS[subtitle]__sSCENE-cCUT(time)
基本的に’結合文字列をファイル名として使用できる’’ユーザ可読性がある’ことを前提にする
プロダクションIDとSCiは"__(二連アンダーバー)"でセパレートする
部分エンコーディング
各要素は、自身の要素のセパレータを含む場合'%'を前置して部分的にURIエンコーディングを行う
要素の文字列は識別子をファイル名等に利用する場合、ファイルシステムで使用できない文字が禁止されるが、この文字も併せて部分エンコードの対象となる。
対象文字列は、Windowsの制限文字である¥\/:*?"<>| に加えて .
|
|
<static> |
Xps.getIdentifier(myXps, opt)
Xpsオブジェクトから識別子を作成するクラスメソッド
名前を変更するか又はオブジェクトメソッドに統合
このメソッドは同名別機能のオブジェクトメソッドが存在するので厳重注意
クラスメソッドはURIencodingを行い、オブジェクトメソッドは'%'エスケープを行う
** 識別子のフレームレート拡張(予定)
(括弧)でくくられた時間情報は、カット尺であり素材継続時間ではない。
フレームレートを追加情報として補うことが可能とする
その際は以下のルールに従う
(FCT/FPS)
単独のカットに対して設定されたフレームレートは、そのカットのみで有効
基本的には、タイトルのプロパティからフレームレートを取得してそれを適用する。
識別子には、基本的にフレームレートを含める必要性はない。
タイトルのフレームレートと異なる場合のみ、識別子にフレームレートを埋め込む。
このコーディングは、pmdb実装後に行われる。2018.07.16
引数 opt
"title"#"opus"//"s-c"("time")//"line"//"stage"//"job"//"status"
'episode'(or 'product')//'cut'//'statsu'
デフォルトでは制作管理情報が付加されたフルフォーマットの識別子が戻る
|
getInfo()
XPSオブジェクトに識別情報を問い合わせる(読み出し専用)
XPS.getInfo()
引数 なし
XPSの識別情報を返す ストア内に内容の一致するタイムシートがあればその情報を返し、ない場合はオブジェクト自身の情報を作成して返す
|
|
getNormarizedStream(layer_id)
=====================================機能分割 20130221
レイヤストリームを正規化する
内部処理用
レイヤのデータ並びと同じ要素数の有効データで埋まった配列を返す
キー作成に必要な機能だが、汎用性があるので分離してXpsのメソッドに
キー作成はXPSのメソッドとして独立させる
中間値補間サインはオプションでその挙動を制御する?
タイムラインの種別によってデータが変化するのでその仕組みを組み込む
正規化されたストリーム形成は、同時にセクションの解析でもあるので、
このルーチンに組み込むか否か判断が必要
取扱タイムライン種別が"timing"限定でなくなるので、他種別の処置を設定
引数の種別を最初に判定する
引数範囲をシフトする
以下の正規化ストリーム取得関数はセクションが実装されたら不要
2016 08 の改修でセクションオブジェクトを実装するので
(少なくともタイミング向けに実装)この正規化メソッドの修正はしない
|
|
getRange(Range)
Xps.getRange(Range:[[startC,startF],[endC,endF]])
範囲内のデータをストリームで返す
xpsのメソッドに移行 2013.02.23
範囲外のデータは、ヌルストリングを返す2015.09.18
負のアドレスを許容150919
全てシートの範囲外を指定された場合は、範囲のサイズの空ストリームを返す
チェックはない(不要)空ストリームを得る場合に使用可能
開始と終了のアドレスが一致している場合は、該当セルの値を返す
第一象限と第三象限の指定は無効
|
|
getTC(mtd)
フレーム数からTCを返す
|
|
guessLink(myLayer)
Xpsオブジェクト用AE特化拡張
リンク先自動判定メソッド
Xps.guessLink(Layer)
引数 :AEレイヤオブジェクト
戻り値‘リンクID
AEのレイヤを引数で与える
戻り値はオフセット2を加えて返す。ID 0/1 は予約
0 :リンクなし リンクすべきタイムランがない
1 :特殊タイムライン タイムラインの記述はシート内にないがスチル素材として静止タイムラインを与えるべきである
2- :2以降はリンクすべきタイムラインがある。タイムラインIDは戻値から2減じて得ること
このメソッドはAEに特化しているので、AE専用拡張に編入するべき(乙女か …乙女だ)
|
|
init(Tracks, Length, Framerate)
再初期化
現状旧オブジェクトの影響でレイヤ数(==トラック数-2)で初期化されるようになっているトラック数で初期化に変更する準備中
|
|
insertTL(myId, myTimelines)
Xpsにタイムラインを挿入
データ構造変更により挿入・削除系操作はリニューアルが必要
具体的には別オブジェクトの同期操作が不用になるので、単純化した操作系に変更するナリ
引数はタイムラインオブジェクトを求める
指定がない場合は、デフォルトの新規オブジェクトを作成して挿入するように変更
Xps.insertTL(id,Timelines)
Timelines(複数可・配列渡し)
idの前方に引数のタイムラインを挿入
idが未指定・範囲外の場合、後方へ挿入
0番タイムラインの前方へは挿入不能(固定のデフォルトタイムライン)
現状ではデータを持ったままタイムラインを挿入することはできない。
必ず空のタイムラインが挿入される。
|
|
isSame(targetXps, compareFramerate)
Xps.isSame(targetXps)
引数 比較するXpsオブジェクト
シート内容比較メソッド 相互の値が同じか否か比較する関数
ユーザ名・時間等は比較しないでシート内容のみ比較する
コメント類は連続する空白をひとつにまとめて比較する
フレームレートを比較するオプションのデフォルト値はfalse
|
|
mkStage(stgName, stgLength, stgResolution, stgWidth, stgHeight, myOptions)
XPS.mkStage(stgName,stgLength,stgResolution,stgWidth,stgHeight,myOptions)
引数
stgName ステージコンポ名を文字列で(省略時はXPSデータから作成)
stagLength ステージの継続時間をフレーム数で(省略時はXPSデータから作成)
stgResolution ステージの基準解像度をdpiで(省略時は入力メディア値から取得)
stgWidth ステージ幅をmm数で(省略時はフッテージから最大値を取得)
stgHeight ステージ奥行きをmm数で(省略時はフッテージから最大値を取得)
myOptions オプション文字列
map MAP検索を行なう(デフォルト)
nomap MAP検索を行なわない
select 現在の選択アイテムをメンバーにする(デフォルトでは無視)
align[N] エレメントの強制アライメントを行なう。 [N]は数値
align0 左下
align1 下
align2 右下
align3 左
align4 中央(デフォルト)
align5 右
align6 左上
align7 上
align8 右上
つまり
6 7 8
3 4 5
0 1 2
こうです
アライメントは未実装(2009.10.23)
bg[N] 背景の取り込みオプション(BG/BOOK等のタイミングのないフッテージ全て)
bg0 BGを取り込まない
bg# #枚のBGを取り込む(1-9) 9個以上はデフォルトにしといてください 数の制限が主な用途だと思うので
bgAll あるだけ全て取り込む(デフォルト)
自動化を進める観点から主体となるオブジェクトのメソッドで組むのが最も適切っぽい
ただし、AEに特化したメソッドなのでotomeのライブラリ中で拡張を行なう
ここではコンストラクタの拡張ではなくXPSバッファの機能で実装しておく。ピクセル比率は現在"1"固定
この関数は現時点で XpsオブジェクトではなくXPSバッファの拡張である点に注意 オブジェクトのメソッドコールはできない
各引数は基本的に省略が前提なのであった 要ケーステスト(2009/10/23)
入れ替え時に不都合が発生するケースがあるのでクラスメソッドに変更(2010/11)
|
|
newTracks(trackCount, frameCount)
新規タイムライントレーラを作成
固定のダイアログタイムライン及びフレームコメントタイムラインがある。
この二つのタイムラインは、レコードの開始及び終了マーカーを兼ねるため削除できないので注意
現状で以前の引数を踏襲しているため旧のレイヤーカウントで初期化が行なわれる
トラックカウントに変更の予定
trackSpec オブジェクトで初期化に変更
|
|
<static> |
Xps.normalizeCell(myString)
セル記述を整形して比較評価用に正規化された文字列を返すクラスメソッド
戻り値は、<グループ名>-<セル番号>[-<ポストフィックス>]
A_(001)_ovl A-1-ovl
|
<static> |
Xps.parseCutIF(myIdentifier)
SCiデータ上のカット名をセパレータで分離するクラスメソッド
この場合のカット名には時間情報・ステータス等を含まないものとする
パースされたカット名は、カット、シーンの順の配列で戻す有効最大2要素
[cut,scene,
|
<static> |
Xps.parseIdentifier(myIdentifier)
データ識別子をパースして無名オブジェクトで戻す
データ判定を兼ねる
分割要素がカット番号を含まない(データ識別子でない)場合はfalseを戻す
SCi/listEntryオブジェクトとの兼ね合いを要調整20170104
asign/
オブジェクトメソッドの識別子も解釈可能にする
'//(二連スラッシュ)'を認識できなかったケースに限り'__(二連アンダーバー)'をセパレータとして認識するように変更
*"_(アンダーバー単独)"はセパレータ以外で使用するケースがあるため要注意
|
<static> |
Xps.parseProduct(productString)
プロダクト識別子をパースして返す
サブタイトルは一致比較時に比較対象から外す
引数がまたは第一要素がカラの場合はfalse
|
<static> |
Xps.parseSCi(sciString)
sci識別子をパースして返す
識別子に付属する時間情報はトランジション/継続時間ではなくカット尺のみ
補助情報は持たせない。かつ対比時に比較対象とならないものとする
カット番号情報は、ここではscene-cutの分離を行わない
比較の必要がある場合に始めて比較を行う方針でコーディングする
sciString末尾の(括弧内)は時間情報部分
(括弧)による記述が2つ以上ある場合は最初の開き括弧の前がカット識別子で、時間情報は最後の(括弧)内の情報を用いる
書式は(TC//framareteString) or (TC) フレームレートの指定のない場合はデフォルトの値で補われる
(1+12),(1+12//24FPS),(1:12//30),(01:12//30DF),(00:00:01:12//59.94)等
デフォルト値は、タイトルから取得
sciStringに時間情報が含まれないケースあり
time指定の存在しない識別子の場合"6:0"を補う
引数が与えられない場合は''とする
|
parseXps(datastream)
読み込みメソッドのXpsパーサを分離
元の読み込みメソッドは、このパーサのラッパとして残置
他フォーマットのデータパーサはライブラリに分離される。
このメソッドはXpsのパース専用になる
(将来の拡張用として必須)2013.04.06
パース成功時はオブジェクト自身を返す。
|
|
put(myAddress, myStream)
Xps.put(書込開始アドレス:[startC,startF],データストリーム)
書込開始アドレスを起点にストリームでデータ置き換え
Xpsオブジェクトメソッド
undo/redo等はUIレベルの実装なのでここでは関知しない
書込開始アドレスに負の数を与えると、書込アドレスが負の場合レンジ外となる
レンジ外データは無視される
このメソッドでは本体データとしてセパレータの",""\n"を与えることはできない(禁則事項)
リザルトとして書き込みに成功したベクトル(左上、右下)、書き換え前のデータストリーム、書き込みに成功したデータを返す
|
|
readIN(datastream)
読み込みメソッド
ラッパとして残置されるが、内部には他フォーマットの判定部分を置かない。
インポーターとして使用する場合は、更にこの外側にデータ前処理部分をおくか、
このメソッドをオーバーライドして使用すること。
戻り値として、parseXps の戻り値を返すこと。2013.04.06
|
|
reInitBody(newTimelines, newDuration)
Xps.reInitBody(newTimelines:int,newDuration:int)
Xps本体データのサイズを変更する。
元あったデータ内容は可能な限り保存
切り捨て分はなくなる。
新たに出来たレコードは、ヌルストリングデータで埋める。
セクションキャッシュはすべて無効
トラック引数の値はコメントトラックの値を含めたトラック全数
トラック状態を[dialog,timing,comment]にするためには3を与える
レイヤー数にあらず
|
|
setDuration(myDuration)
Xpsの継続時間を変更する
引数:int フレーム数
現在の値と同じ場合は何もしない
継続時間が減少する場合はシート後方から削除
増加の場合は""で初期化
0は処理失敗
|
|
<static> |
Xps.sliceReplacementLabel(myStr)
グループ記述の有る文字列を分解して要素名とグループ名を分離するXpsクラスメソッド
引数の文字列を評価してそのラベルとエントリ文字列に分解して返す
Reaplacmentトラック用
引数:セルエントリ文字列
戻値:配列[エントリ文字列,グループラベル]
グループラベルが存在しない文字列の戻値は要素数1の配列
|
<static> |
Xps.stringifyIdf(myData)
配列指定で識別子をビルドするテスト用関数
引数: [title,opus,subtitle,scene,cut,time,line,stage,job,status]
|
syncIdentifier(myIdentifier, withoutTime)
識別子の情報でカットのプロパティを上書きする
インポート時に必要な情報は識別子にすべて含まれるためそれで上書きを行う
duration は
元シートのデータを維持
新シートに合わせる
の二択となるので要注意
新規作成時にライン〜ステータス情報が欠落するのでそれは判定して補う
識別子に含まれる時間情報を同期させる場合は、引数withoutTimeにfalseを与える
初期値はtrue(時間同期なし)
|
|
time()
カット尺をフレーム数で返す
|
|
timeline(idx)
XPS.
|
|
toString()
書きだしメソッド
|
Class Detail
Xps(Layers, Length, Framerate)
object Xps(汎用アニメーションタイムシート)日本形式のタイムシート記述クラスを提供
- Parameters:
- {Number or Array or Object} Layers
- タイムライントラックのうちデフォルトのダイアログ(1)を抜いた数
- {Number} Length
- タイムシート記述継続長(フレーム数)で初期化
- {Object nas.Framerate or Number} Framerate
- フレームレート fps Xpsオブジェクトの初期化引数を拡張 第一引数はかつて「レイヤ数」であったが、これを拡張して配列を受け取れるようにする 引数がスカラの場合は、従来互換として「リプレースメントトラック数」とする 配列であった場合は、以下の順で解決を行う [リプレースメントトラック数] [ダイアログトラック数,リプレースメントトラック数] [ダイアログトラック数,リプレースメントトラック数,ジオメトリトラック数] [ダイアログトラック数,リプレースメントトラック数,ジオメトリトラック数,コンポジットトラック数] 配列長が1の場合は、特例でリプレースメントトラック数とする ダイアログトラック数は、1以上とする1以下の値が与えられた際は1として初期化される。 完全な指定を行う場合は、引数として専用の指定オブジェクトを渡す 例: { dialog:1, still:1, replacement:2, still:1, replacement:2, camera:1, replacement:2, effects:1, stage:2, sound:2 } 各プロパティの出現順位置・回数は任意 冒頭は基本的にdialigで1以上の値にすること。そうでない場合は{dialog:1}が補われる。 末尾プロパティはcommentで値1とすること 冒頭プロパティがdialogでない場合は、{dialog:1} が補われる 末尾プロパティがcommentでない場合にはデフォルトの{comment:1}が補われる
Field Detail
{this.opus = (myOpus) ? myOpus : "--";
this.title = (myTitle) ? myTitle : "noTitle";
this.subtitle = (mySubTitle) ? mySubTitle : "--";
this.scene = (myScene) ? myScene : "";
this.cut = (myCut) ? myCut : "";}
opus
ここからオブジェクト化を検討中
xMap
Xps標準のプロパティ設定
xpsTracks
タイムライントラックコレクション配列
Method Detail
<static>
Xps.compareCutIdf(tgt, dst)
パース済みのカット識別子を比較してマッチ情報を返す
シーンカットともに一致した場合のみtrueそれ以外は false
引数に秒表記部が含まれないよう調整が必要
- Parameters:
- tgt
- dst
deleteTL(args)
Xps.deleteTL([id])
指定idのタイムラインを削除する。1~
デフォルトの音声タイムラインとフレームコメントの削除はできない
IDを単独又は配列渡しで
XpsLayerとxpsTracks はそのうちタイムラインとして統合すべきかと思う。
- Parameters:
- args
{*}
duration()
継続時間をフレーム数で返す
ダイアログタイムラインの要素数で返す
初期状態でボディの存在しないシートが存在しないように注意
未記述でも空ボディのタイムラインが存在する。
エラー関連コードは排除の方向で
チェックが進んだら関数自体を廃してxpsTracks.durationの参照に切り替える
- Returns:
- {*}
{string}
getIdentifier(opt)
カット識別子を返すオブジェクトメソッド
Xps.getIdentifier(識別オプション,)
カット識別文字列を返す
カット識別子はタイトル、制作番号、シーン、カット番号の各情報をセパレータ"_"で結合した文字列
カット番号以外の情報はデフォルトの文字列と比較して一致した場合セパレータごと省略
オプションで要素の結合状態を編集して返す
セパレータ文字列は[(__)#\[]
出力仕様をクラスメソッド互換に変更
オブジェクトメソッドを利用する場合はURIEncodeを使用しないプレーン文字列でやり取りが行われるものとする
旧: TITLE_OPUS_SCENE_CUT
新: TITLE#OPUS[subtitle]__sSCENE-cCUT(time)
基本的に’結合文字列をファイル名として使用できる’’ユーザ可読性がある’ことを前提にする
プロダクションIDとSCiは"__(二連アンダーバー)"でセパレートする
部分エンコーディング
各要素は、自身の要素のセパレータを含む場合'%'を前置して部分的にURIエンコーディングを行う
要素の文字列は識別子をファイル名等に利用する場合、ファイルシステムで使用できない文字が禁止されるが、この文字も併せて部分エンコードの対象となる。
対象文字列は、Windowsの制限文字である¥\/:*?"<>| に加えて . 及びエンコード前置文字の %
(これらは関数側で記述)
TITLE"#"が禁止される
OPUS "#","[","__" が禁止される
subtitle "["."]","__"が禁止される
SCi "__","("が禁止される
options:
'full' 全ての要素を含む識別文字列で返す
TITLE#OPUS[subtitle]__sSCENE-cCUT(time)
'episode'
#OPUS[subtitle]
'cut'
#OPUS__sSCENE-cCUT
'simple'
TITLE#OPUS__sSCENE-cCUT
'complex'
TITLE#OPUS[subtitle]__sSCENE-cCUT
- Parameters:
- opt
- Returns:
- {string}
<static>
Xps.getIdentifier(myXps, opt)
Xpsオブジェクトから識別子を作成するクラスメソッド
名前を変更するか又はオブジェクトメソッドに統合
このメソッドは同名別機能のオブジェクトメソッドが存在するので厳重注意
クラスメソッドはURIencodingを行い、オブジェクトメソッドは'%'エスケープを行う
** 識別子のフレームレート拡張(予定)
(括弧)でくくられた時間情報は、カット尺であり素材継続時間ではない。
フレームレートを追加情報として補うことが可能とする
その際は以下のルールに従う
(FCT/FPS)
単独のカットに対して設定されたフレームレートは、そのカットのみで有効
基本的には、タイトルのプロパティからフレームレートを取得してそれを適用する。
識別子には、基本的にフレームレートを含める必要性はない。
タイトルのフレームレートと異なる場合のみ、識別子にフレームレートを埋め込む。
このコーディングは、pmdb実装後に行われる。2018.07.16
引数 opt
"title"#"opus"//"s-c"("time")//"line"//"stage"//"job"//"status"
'episode'(or 'product')//'cut'//'statsu'
デフォルトでは制作管理情報が付加されたフルフォーマットの識別子が戻る
- Parameters:
- myXps
- opt
{Object}
getInfo()
XPSオブジェクトに識別情報を問い合わせる(読み出し専用)
XPS.getInfo()
引数 なし
XPSの識別情報を返す ストア内に内容の一致するタイムシートがあればその情報を返し、ない場合はオブジェクト自身の情報を作成して返す
Defined in: nas_OtomeLib.js.
Defined in: nas_OtomeLib.js.
- Returns:
- {Object}
{Array}
getNormarizedStream(layer_id)
=====================================機能分割 20130221
レイヤストリームを正規化する
内部処理用
レイヤのデータ並びと同じ要素数の有効データで埋まった配列を返す
キー作成に必要な機能だが、汎用性があるので分離してXpsのメソッドに
キー作成はXPSのメソッドとして独立させる
中間値補間サインはオプションでその挙動を制御する?
タイムラインの種別によってデータが変化するのでその仕組みを組み込む
正規化されたストリーム形成は、同時にセクションの解析でもあるので、
このルーチンに組み込むか否か判断が必要
取扱タイムライン種別が"timing"限定でなくなるので、他種別の処置を設定
引数の種別を最初に判定する
引数範囲をシフトする
以下の正規化ストリーム取得関数はセクションが実装されたら不要
2016 08 の改修でセクションオブジェクトを実装するので
(少なくともタイミング向けに実装)この正規化メソッドの修正はしない
- Parameters:
- layer_id
- Returns:
- {Array}
{Array}
getRange(Range)
Xps.getRange(Range:[[startC,startF],[endC,endF]])
範囲内のデータをストリームで返す
xpsのメソッドに移行 2013.02.23
範囲外のデータは、ヌルストリングを返す2015.09.18
負のアドレスを許容150919
全てシートの範囲外を指定された場合は、範囲のサイズの空ストリームを返す
チェックはない(不要)空ストリームを得る場合に使用可能
開始と終了のアドレスが一致している場合は、該当セルの値を返す
第一象限と第三象限の指定は無効
- Parameters:
- Range
- Returns:
- {Array}
{string}
getTC(mtd)
フレーム数からTCを返す
- Parameters:
- mtd
- Returns:
- {string}
{*}
guessLink(myLayer)
Xpsオブジェクト用AE特化拡張
リンク先自動判定メソッド
Xps.guessLink(Layer)
引数 :AEレイヤオブジェクト
戻り値‘リンクID
AEのレイヤを引数で与える
戻り値はオフセット2を加えて返す。ID 0/1 は予約
0 :リンクなし リンクすべきタイムランがない
1 :特殊タイムライン タイムラインの記述はシート内にないがスチル素材として静止タイムラインを与えるべきである
2- :2以降はリンクすべきタイムラインがある。タイムラインIDは戻値から2減じて得ること
このメソッドはAEに特化しているので、AE専用拡張に編入するべき(乙女か …乙女だ)
Defined in: nas_OtomeLib.js.
Defined in: nas_OtomeLib.js.
- Parameters:
- myLayer
- Returns:
- {*}
init(Tracks, Length, Framerate)
再初期化
現状旧オブジェクトの影響でレイヤ数(==トラック数-2)で初期化されるようになっているトラック数で初期化に変更する準備中
- Parameters:
- Tracks
- Length
- Framerate
insertTL(myId, myTimelines)
Xpsにタイムラインを挿入
データ構造変更により挿入・削除系操作はリニューアルが必要
具体的には別オブジェクトの同期操作が不用になるので、単純化した操作系に変更するナリ
引数はタイムラインオブジェクトを求める
指定がない場合は、デフォルトの新規オブジェクトを作成して挿入するように変更
Xps.insertTL(id,Timelines)
Timelines(複数可・配列渡し)
idの前方に引数のタイムラインを挿入
idが未指定・範囲外の場合、後方へ挿入
0番タイムラインの前方へは挿入不能(固定のデフォルトタイムライン)
現状ではデータを持ったままタイムラインを挿入することはできない。
必ず空のタイムラインが挿入される。
- Parameters:
- {Number} myId
- 挿入点トラックid 指定idの前方に挿入される
- {Araay of XpsTimelineTrack} myTimelines
- 挿入オブジェクトまたは配列
{boolean}
isSame(targetXps, compareFramerate)
Xps.isSame(targetXps)
引数 比較するXpsオブジェクト
シート内容比較メソッド 相互の値が同じか否か比較する関数
ユーザ名・時間等は比較しないでシート内容のみ比較する
コメント類は連続する空白をひとつにまとめて比較する
フレームレートを比較するオプションのデフォルト値はfalse
- Parameters:
- targetXps
- compareFramerate
- bool
- Returns:
- {boolean}
{*}
mkStage(stgName, stgLength, stgResolution, stgWidth, stgHeight, myOptions)
XPS.mkStage(stgName,stgLength,stgResolution,stgWidth,stgHeight,myOptions)
引数
stgName ステージコンポ名を文字列で(省略時はXPSデータから作成)
stagLength ステージの継続時間をフレーム数で(省略時はXPSデータから作成)
stgResolution ステージの基準解像度をdpiで(省略時は入力メディア値から取得)
stgWidth ステージ幅をmm数で(省略時はフッテージから最大値を取得)
stgHeight ステージ奥行きをmm数で(省略時はフッテージから最大値を取得)
myOptions オプション文字列
map MAP検索を行なう(デフォルト)
nomap MAP検索を行なわない
select 現在の選択アイテムをメンバーにする(デフォルトでは無視)
align[N] エレメントの強制アライメントを行なう。 [N]は数値
align0 左下
align1 下
align2 右下
align3 左
align4 中央(デフォルト)
align5 右
align6 左上
align7 上
align8 右上
つまり
6 7 8
3 4 5
0 1 2
こうです
アライメントは未実装(2009.10.23)
bg[N] 背景の取り込みオプション(BG/BOOK等のタイミングのないフッテージ全て)
bg0 BGを取り込まない
bg# #枚のBGを取り込む(1-9) 9個以上はデフォルトにしといてください 数の制限が主な用途だと思うので
bgAll あるだけ全て取り込む(デフォルト)
自動化を進める観点から主体となるオブジェクトのメソッドで組むのが最も適切っぽい
ただし、AEに特化したメソッドなのでotomeのライブラリ中で拡張を行なう
ここではコンストラクタの拡張ではなくXPSバッファの機能で実装しておく。ピクセル比率は現在"1"固定
この関数は現時点で XpsオブジェクトではなくXPSバッファの拡張である点に注意 オブジェクトのメソッドコールはできない
各引数は基本的に省略が前提なのであった 要ケーステスト(2009/10/23)
入れ替え時に不都合が発生するケースがあるのでクラスメソッドに変更(2010/11)
Defined in: nas_OtomeLib.js.
Defined in: nas_OtomeLib.js.
- Parameters:
- stgName
- stgLength
- stgResolution
- stgWidth
- stgHeight
- myOptions
- Returns:
- {*}
{Array}
newTracks(trackCount, frameCount)
新規タイムライントレーラを作成
固定のダイアログタイムライン及びフレームコメントタイムラインがある。
この二つのタイムラインは、レコードの開始及び終了マーカーを兼ねるため削除できないので注意
現状で以前の引数を踏襲しているため旧のレイヤーカウントで初期化が行なわれる
トラックカウントに変更の予定
trackSpec オブジェクトで初期化に変更
- Parameters:
- {Number} trackCount
- {Number} frameCount
- Returns:
- {Array} タイムライントラックトレーラはプロパティトレーラを兼ねる 初期化時のみ利用 初期化時にカメラトラックを作成しない
<static>
Xps.normalizeCell(myString)
セル記述を整形して比較評価用に正規化された文字列を返すクラスメソッド
戻り値は、<グループ名>-<セル番号>[-<ポストフィックス>]
A_(001)_ovl A-1-ovl
- Parameters:
- myString
<static>
Xps.parseCutIF(myIdentifier)
SCiデータ上のカット名をセパレータで分離するクラスメソッド
この場合のカット名には時間情報・ステータス等を含まないものとする
パースされたカット名は、カット、シーンの順の配列で戻す有効最大2要素
[cut,scene,,~];//第三要素以降は分離しても使用されないことに注意
[cut,scene]
[cut]
要素数が識別子に含まれる情報の深度を示す
- Parameters:
- myIdentifier
<static>
Xps.parseIdentifier(myIdentifier)
データ識別子をパースして無名オブジェクトで戻す
データ判定を兼ねる
分割要素がカット番号を含まない(データ識別子でない)場合はfalseを戻す
SCi/listEntryオブジェクトとの兼ね合いを要調整20170104
asign/
オブジェクトメソッドの識別子も解釈可能にする
'//(二連スラッシュ)'を認識できなかったケースに限り'__(二連アンダーバー)'をセパレータとして認識するように変更
*"_(アンダーバー単独)"はセパレータ以外で使用するケースがあるため要注意
- Parameters:
- myIdentifier
<static>
Xps.parseProduct(productString)
プロダクト識別子をパースして返す
サブタイトルは一致比較時に比較対象から外す
引数がまたは第一要素がカラの場合はfalse
- Parameters:
- productString
<static>
Xps.parseSCi(sciString)
sci識別子をパースして返す
識別子に付属する時間情報はトランジション/継続時間ではなくカット尺のみ
補助情報は持たせない。かつ対比時に比較対象とならないものとする
カット番号情報は、ここではscene-cutの分離を行わない
比較の必要がある場合に始めて比較を行う方針でコーディングする
sciString末尾の(括弧内)は時間情報部分
(括弧)による記述が2つ以上ある場合は最初の開き括弧の前がカット識別子で、時間情報は最後の(括弧)内の情報を用いる
書式は(TC//framareteString) or (TC) フレームレートの指定のない場合はデフォルトの値で補われる
(1+12),(1+12//24FPS),(1:12//30),(01:12//30DF),(00:00:01:12//59.94)等
デフォルト値は、タイトルから取得
sciStringに時間情報が含まれないケースあり
time指定の存在しない識別子の場合"6:0"を補う
引数が与えられない場合は''とする
- Parameters:
- sciString
{boolean}
parseXps(datastream)
読み込みメソッドのXpsパーサを分離
元の読み込みメソッドは、このパーサのラッパとして残置
他フォーマットのデータパーサはライブラリに分離される。
このメソッドはXpsのパース専用になる
(将来の拡張用として必須)2013.04.06
パース成功時はオブジェクト自身を返す。
- Parameters:
- datastream
- Returns:
- {boolean} パーサにフラグを与えて、フレームレートが確定するまでフレーム計算を行わないように修正
{*}
put(myAddress, myStream)
Xps.put(書込開始アドレス:[startC,startF],データストリーム)
書込開始アドレスを起点にストリームでデータ置き換え
Xpsオブジェクトメソッド
undo/redo等はUIレベルの実装なのでここでは関知しない
書込開始アドレスに負の数を与えると、書込アドレスが負の場合レンジ外となる
レンジ外データは無視される
このメソッドでは本体データとしてセパレータの",""\n"を与えることはできない(禁則事項)
リザルトとして書き込みに成功したベクトル(左上、右下)、書き換え前のデータストリーム、書き込みに成功したデータを返す
- Parameters:
- myAddress
- myStream
- Returns:
- {*}
{Boolean}
readIN(datastream)
読み込みメソッド
ラッパとして残置されるが、内部には他フォーマットの判定部分を置かない。
インポーターとして使用する場合は、更にこの外側にデータ前処理部分をおくか、
このメソッドをオーバーライドして使用すること。
戻り値として、parseXps の戻り値を返すこと。2013.04.06
- Parameters:
- datastream
- Returns:
- {Boolean}
{boolean}
reInitBody(newTimelines, newDuration)
Xps.reInitBody(newTimelines:int,newDuration:int)
Xps本体データのサイズを変更する。
元あったデータ内容は可能な限り保存
切り捨て分はなくなる。
新たに出来たレコードは、ヌルストリングデータで埋める。
セクションキャッシュはすべて無効
トラック引数の値はコメントトラックの値を含めたトラック全数
トラック状態を[dialog,timing,comment]にするためには3を与える
レイヤー数にあらず
- Parameters:
- newTimelines
- newDuration
- Returns:
- {boolean}
setDuration(myDuration)
Xpsの継続時間を変更する
引数:int フレーム数
現在の値と同じ場合は何もしない
継続時間が減少する場合はシート後方から削除
増加の場合は""で初期化
0は処理失敗
- Parameters:
- myDuration
<static>
Xps.sliceReplacementLabel(myStr)
グループ記述の有る文字列を分解して要素名とグループ名を分離するXpsクラスメソッド
引数の文字列を評価してそのラベルとエントリ文字列に分解して返す
Reaplacmentトラック用
引数:セルエントリ文字列
戻値:配列[エントリ文字列,グループラベル]
グループラベルが存在しない文字列の戻値は要素数1の配列
- Parameters:
- myStr
<static>
Xps.stringifyIdf(myData)
配列指定で識別子をビルドするテスト用関数
引数: [title,opus,subtitle,scene,cut,time,line,stage,job,status]
- Parameters:
- myData
syncIdentifier(myIdentifier, withoutTime)
識別子の情報でカットのプロパティを上書きする
インポート時に必要な情報は識別子にすべて含まれるためそれで上書きを行う
duration は
元シートのデータを維持
新シートに合わせる
の二択となるので要注意
新規作成時にライン〜ステータス情報が欠落するのでそれは判定して補う
識別子に含まれる時間情報を同期させる場合は、引数withoutTimeにfalseを与える
初期値はtrue(時間同期なし)
- Parameters:
- myIdentifier
- withoutTime
{number}
time()
カット尺をフレーム数で返す
- Returns:
- {number}
{*}
timeline(idx)
XPS.のメソッドを定義
xpsTracksのメンバーをタイムラインオブジェクトとしてアクセスする抽出メソッド
- Parameters:
- idx
- Returns:
- {*}
{string}
toString()
書きだしメソッド
- Returns:
- {string}