新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴
== o ==
ねこまたや web出張所
INDEX

トップページ
お知らせ
twitter
お道具箱
技術資料と雑談
ライブラリ
雑貨や(ダウンロード)
最近の更新
ねこまたやについて

twitter

ねこまたやのついった

企画モノ

psAxe情報ページ
自主制作アニメ
ぽこあぽこ られんたんど


あやかしあやし
エフェクトネタ帳



りまぴん
AE エクスプレッション
レンダー乙女とか
簡易版XPSリンカ
おまけギャラリ

BBS

ねこまたやBBS
開発室BBS

Language



開発室みたいなものでしたが
spamアクセスがはげしいのでページは凍結中です。
書き換えは管理人のみが可能です。
Nekomataya/2024

点滅灯 - [[AEexpression]]


差分表示


[[AEexpression]]

''回転点滅灯''


*説明
パトカーの回転灯に適用するために作成しました。

説明としては、エクスプレッション内のコメントの通りですが、こちらにも再度


指定した「周期」と「ずらし時間」で0%から100%の値を出力します。
サイン関数で制御してあるため、回転系の点滅に向いています。
回転に従って見えるライトの強さのみを計算します。
主にロング用ですがアップで困るって訳でもありません。
点滅させたいレイヤの不透明度に対して適用してください。

ライトの数は、作成時点の想定がパトライトなのでデフォルトの値は一回転につき2個です。

その場合1回転あたり2回光りますので、見た目上のサイクルは、指定したコマ数の半分に見えます。

たとえば12コマに1度光らせたい場合は、サイクル時間を24コマにするか、ライトの数を1に指定して調整してください。

1回転1つにするのと2個でゆっくり回すのは消灯時間と点灯時間の比率が変わるのであがり絵がかわります。いろいろ試してみてよいパラメータを探してください。

ちなみに4個以上にするとほとんど付きっぱなしになってしまいます。


このエクスプレッションは、出力に「メリハリ」を付けるために、
-30%以下の値は、0%に切り捨て
-80%以上の値は、100%切り上げ
にしてあります。立ち上がりに弱い光が欲しい場合は当該部分を書き直してください。

ビームの指向性パラメータは出力を係数で累乗して作ってあります。値が大きいほどフラッシュが強くなります。
2から3程度でパトカーのランプ風になります。

エクスプレッション冒頭のパラメータを書き直す代わりに レイア名をコンマで区切ったパラメータの文字列にして動作を制御することができます。
書式は、以下の通り。

第5パラメータ以降または、数字以外は無視しますので
本来のレイヤ名はパラメータの後ろにコンマで区切る等して記述してください。
	Cycle , Offset , Lt , Beam

	例:
	"36,6,2,3,パトランプ1"
	=36kサイクル 開始位置6コマずらし 2灯 ビーム係数3

こんな感じで、プロパティのタイムラインを開かずに設定を調整することができます。
パトカーがいっぱい出てくるときなどにどうぞ。


以下ソース
*ソース

 //レイア名を読み込んでパラメータに展開
 InputParams=this_layer.name.split(",");
 for (Numb=0;Numb<=InputParams.length;Numb++){
 	if (! isNaN(InputParams[Numb])){
 		switch (Numb){
 case 0:	Cycle = InputParams[0];break;
 case 1:	Offset = InputParams[1];break;
 case 2:	Lt = InputParams[2];break;
 case 3:	Beam = InputParams[3];break;
 }}}
 //初期化
 Op = 0;Ex=0;Lp=0;
 Cycle_s=Cycle*this_comp.frame_duration;
 Offset_s=Offset*this_comp.frame_duration;
 for(Counter=0 ; Counter < Lt ; Counter ++){
 	Ex = 0.25+(((time + Offset_s) % Cycle_s)/Cycle_s)+(Counter/Lt);
 	Lp= Math.sin((Ex)*Math.PI*2);
 		if (Lp < 0 ) {Lp=0}
 	Op = Op+ Math.pow(Lp,Beam)*100;
 }
 // 
 if (Op< 30){0} else {
     if (Op > 80){100} else {Op}
 }
 // end