*nas アニメーション一般ライブラリ
AE等のAdobe Script 環境で使用可能な関数およびプロパティをサポートします

*nasオブジェクトのプロパティ
現行のプロパティは未整理の為使用しないプロパティが多数残っています。
全てのプロパティが今後も存在する保証はありません。バージョンに御注意

**時間関連設定
	javascript版ライブラリの出発点がストップウオッチだったのでその関連プロパティが多数ありますが
	あまり気にしないでください。不要なプロパティは無視してくださいね。だはは

***ccrate
	//最少計測単位(javascriptではミリ秒固定)
	nas.ccrate = 1000 ;
***MODE
	//表示の初期モード(時計)
	nas.MODE = "clock" ;
***ClockOption
	//時計の初期モード (12時制)
	nas.ClockOption = 12 ;
***STATUS
	nas.STATUS = "stop" ;
**フレームレート
	この並びでループする　100fps 24FPS 30NDF 30DF 25FPS
***RATEs
	nas.RATEs = ["100fps","24FPS","30NDF","30DF","25FPS"];
***RATE
	nas.RATE = "24FPS" ;
**FCTインターフェース関連
***SheetLength
//タイムシート継続時間 フレーム/枚
	nas.SheetLength = 144;

**サンプル基準値
***FRATE
//サンプルフレームレート(フレーム継続時間に置き換えるか一考)
	nas.FRATE = 24;
***RESOLUTION
//サンプル解像度ppc(dpc)
	nas.RESOLUTION = 144. / 2.540 ;
***LENGTH
//サンプル基準寸法(mm)
	nas.LENGTH = 225. ;
***FRAME_L
//サンプル基準フレーム(fl)
	nas.FRAME_L=100 ;
***SCALE
//サンプル拡大比率(実数)
	nas.SCALE = 1;

**コンポジション３Ｄカメラ情報
***FOCUS_D
//レンズ焦点距離 (mm)
	nas.FOCUS_D = 50;
***FILM_W
//FILM Width (mm)
	nas.FILM_W = 36;
***FILM_H
//FILM Height(mm)
	nas.FILM_H = 24;
***IMAGE_CR
//イメージサークル直径(mm)
	nas.IMAGE_CR = function(){return Math.sqrt(Math.pow(this.FILM_W,2)+Math.pow(this.FILM_H,2))};
**コンポジション設定
***COMP_W
//comp Width (px);
	nas.COMP_W = 720;
***COMP_H
//comp Height(px);
	nas.COMP_H = 486;
***COMP_A
//comp Aspect(W/H);
	nas.COMP_A = 0.9;

***COMP_D

	nas.COMP_D = function(){return Math.sqrt(Math.pow(this.COMP_W * this.COMP_A,2)+ Math.pow(this.COMP_H,2));};
***CAMERA_D

	nas.CAMERA_D = function(){return (this.COMP_D() * this.FOCUS_D)/ this.IMAGE_CR();};


**レイヤ・フッテージ設定
//今のところキーに添付するだけの値(変換には無関係)
***SRC_W
//source Width (px);
	nas.SRC_W = 720;
***SRC_H
//source Height(px);
	nas.SRC_H = 486;
***SRC_A
//source Aspect(W/H);
	nas.SRC_A = 0.9;

**AE-Key data 出力関連の変数(初期値)
***AE_Ver
// 4.0/5.0/6.0
	nas.AE_Ver = "5.0";
***KEY_STYLE
//or "valueOnly"
	nas.KEY_STYLE = "withTime";
***KEY_TYPE
// or "Position"
	nas.KEY_TYPE = "Scale";
**その他　未整理イロイロ
//子変数 親変数から導かれる表示データ(または派生データ)
//変数名は、大文字ではじまり 後ろは小文字のみ
//フォーム上の同名のinputは極力大文字のみで表記
//RESOLUTION 派生変数 ラムダ関数試験
***Dpi()
	nas.Dpi = function(dpi){if(dpi){if(! isNaN(dpi)){this.RESOLUTION=dpi/2.540}};return this.RESOLUTION * 2.540;} ;
***Dpc()
	nas.Dpc = function(dpc){if(dpc){if(! isNaN(dpc)){this.RESOLUTION=dpc}};return this.RESOLUTION;} ;
//FRAME_L 派生変数
***FRAMEl()
	nas.FRAMEl = function(){this.FRAME_L;};
***FRAMEr()
	nas.FRAMEr = function(){this.fl2fr(this.FRAME_L);};

**提供されるメソッド

***nas.dt2sc(z距離)
:概要:z軸距離(ピクセル)からスケールを求める。nasオブジェクトのプロパティを参照するので、必要なプロパティをあらかじめ設定しておくこと。
:戻り値:スケール float
:参照プロパティ:nas.CAMERA_D

***nas.sc2dt(スケール)
:概要:スケールからz軸距離を求める。nasオブジェクトのプロパティを参照するので、必要なプロパティをあらかじめ設定しておくこと。
:戻り値:z距離(pixels) float
:参照プロパティ:nas.CAMERA_D

***nas.fl2fr(撮影フレーム)
:概要:撮影フレームからレタス撮影フレームを求める。
:戻り値:
:参照プロパティ:

***nas.fr2fl(レタス撮影フレーム)
:概要:レタスフレームから対応する旧形式の撮影フレームを求める。
:戻り値:撮影フレーム float
:参照プロパティ:(特になし)

***nas.fl2sc(撮影フレーム)
:概要:撮影フレームから100フレームを1とした場合の被写体のスケールを求める。
:戻り値:スケール　float
:参照プロパティ:(特になし)

***nas.fr2sc(レタス撮影フレーム)
:概要:	レタス撮影フレームから100フレームを1とした場合の被写体のスケールを求める。
:戻り値:スケール　float
:参照プロパティ:

***nas.sc2fl(スケール)
:概要:スケールから撮影フレームを求める。
:戻り値:撮影フレーム float
:参照プロパティ:

***nas.sc2fr(スケール)
:概要:スケールからレタス撮影フレームを求める。
:戻り値:スケール　float
:参照プロパティ:

***nas.kac(開始寸法,終了寸法,助変数)
:概要:開始寸法・終了寸法と助変数を与えて、対応する寸法を求める。
助変数は開始寸法に対して0 / 終了寸法に対して1となり、中間の値を小数値で与える。
この助変数は、各寸法を同一の被写体がカメラからの距離の違いによって作画面での寸法差になっているものとして。
その2点間の距離を1と置いて、少数であらわしたものとします。
あっさり言えば、比の逆数です。
単位に無関係な計算なので、寸法のかわりに比率をおくと中間の比率になります。
助変数は、基本的に0から1の間ですが、条件によっては外側に結果を延長することもできます。
計算の性質上特定の数値で値が発散する場合があります。
:戻り値:助変数に対応する寸法　float
:参照プロパティ:

***nas.cak(開始寸法,終了寸法,拡大率)
:概要:開始寸法・終了寸法と任意寸法を与えて、寸法に対応する助変数を求める。
kacの逆関数です。
:戻り値:助変数(0-1) float
:参照プロパティ:

***nas.Zf(数値,桁数)
:概要:	数値を指定桁数のゼロで埋める。
:戻り値:String
:参照プロパティ:

***nas.ms2fr(ミリ秒数)
:概要:ミリ秒数から、フレーム数を求める。
もともとがストップウオッチの表示用なので、フレーム数に満たない端数は切り捨てです。
:戻り値:フレーム数　integer
:参照プロパティ:nas.FRATE

***nas.fr2ms(フレーム数)
:概要:フレーム数から、ミリ秒数を求める。
:戻り値:ミリ秒数 float
:参照プロパティ:nas.FRATE

***nas.ms2FCT(ミリ秒数,カウンタタイプ,オリジネーション[,フレームレート])
:概要:ミリ秒数から、カウンタ文字列への変換。
カウンタータイプ・オリジネーション・フレームレートを指定
アニメーション業務用のTC文字列として使用可能
:戻り値:カウンタ文字列　string
:参照プロパティ:

***nas.FCT2ms(カウンタ文字列)
:概要:カウンタ文字列から、ミリ秒数への変換。
:戻り値:ミリ秒数　float
:参照プロパティ:

***nas.Frm2FCT(フレーム数,カウンタタイプ,オリジネーション[,フレームレート])

:概要:フレーム数(0オリジン)から、カウンタ文字列への変換
カウンタータイプ・オリジネーション・フレームレートを指定可能
:戻り値:カウンタ文字列	String
:参照プロパティ:nas.FRATE
***nas.FCT2Frm(カウンタ文字列)
:概要:カウンタ文字列から、フレーム数(0オリジン)への変換
:戻り値:カウンタ文字列	String
:参照プロパティ:nas.FRATE


**==== 色彩関連(web用)
***nas.colorStr2Ary(カラー文字列)
:概要:	WEB色指定用の文字列を3次元の配列にして返す
:戻り値:色値	Array
:参照プロパティ:
***nas.colorAry2Str([配列])
:概要:配列で与えられたRGB値を16進文字列で返す。
:戻り値:#rrggbb形式のカラー指定 String
:参照プロパティ:

**==== 行列計算
行列は、基本的には正方行列のみを扱います。(2x2 および 3x3)
行列演算関数の行列は配列の組み合わせでなく、要素のストリーム文字列である。
たとえば、3×3の単位行列は、
unitMatrix=[
	[1,0,0],
	[0,1,0],
	[0,0,1]
];
ではなく、以下のように表現されます、

unitMatrix="1,0,0,0,1,0,0,0,1";

これは、主にpsファイルとの親和性の為の仕様です。
申し訳ありませんが配列が必要な場合は適切に変換して使用してください。

***nas.showMatrix(ラベル,行列文字列,行数,列数)
:概要:与えられた行列文字列を整形してalert()で表示する。デバッグ用
:戻り値:なし
:参照プロパティ:

***nas.mDeterminant(行列文字列)
:概要:行列式(和)を返す。
:戻り値:行列和	Number
:参照プロパティ:

***nas.multiMatrix(行列文字列1,行列文字列2)
:概要:行列積を求める。
:戻り値:行列積	String
:参照プロパティ:

***nas.mInverse(行列文字列)
:概要:	逆行列を求める。

:戻り値:逆行列	String
:参照プロパティ:

***nas.transMatrix(行列文字列)
:概要:	行列を転置する。
:戻り値:転置済行列	String
:参照プロパティ:

**==== 文字列操作(Stringクラスにオーバーライドするかも知れないので暫定)
***nas.biteCount(文字列)
:引数:任意文字列
:戻り値:文字列がシステムで占有するバイト数
:参照プロパティ:
:概要:	文字列のバイト数を返す。
***nas.biteClip(文字列,制限バイト数)
:引数:任意文字列
:戻り値:制限バイト数以下に後方をクリップした文字列
:参照プロパティ:
:概要:	文字列を指定バイト数以下にクリップ主にラベル文字を制限するために使用
***nas.incrStr(文字列)
:引数:任意文字列
:戻り値:文字列の数字部分をくり上げた数値文字列
:参照プロパティ:
:概要:	文字列の末尾の番号部分を１くり上げて返す

**システムのオブジェクトにオーバライドするメソッド
nas拡張をインストールすると既存のオブジェクトにいくつかのプロパティやメソッドを追加します。
***Date.toNASSString()
:概要:	読出専用 "yy/mm/dd hh:mm:ss" 形式を拡張
:戻り値:String
:参照プロパティ:
***Date.setNASSString("yy/mm/dd hh:mm:ss")
	; returns object
:概要:	"yy/mm/dd hh:mm:ss" 形式で日時をセットする
:戻り値:Date
:参照プロパティ:
----
あー　書きかけですが、こんなカンジ
