Apophysisスクリプトメモ その8 動画:全てのTransformを回す

 もう少し複雑な動きをさせてみましょう。奇数番号のTransformを反時計周りに、偶数番号のTransformを時計周りに回したときの動画を作成するスクリプトを作ります。 あと下見をする為にプレヴュー画面を選べるようにもしておきたいですね。 レンダリングの設定、出力の設定のところは変わりません。


{ Filename : 110422.aposcript }
with Flame do
{… 途中省略}
fType := 'bmp'; //拡張子
Prv := 0; // プレビューを表示する→0 、ファイルを出力する→1
if not InputQuery('MovieScript', 'プレビューを表示する→0 、ファイルを出力する→1', Prv) then exit;
if not((Prv = 0) or (Prv = 1)) then exit;


 "Prv :=0;"からの3行は変数"Prv"にプレヴューを表示するか、ファイルを出力するか選択するインプットボックスを表示します。キャンセルが押されたとき、または0か1以外の値が入力されたときにはスクリプトの実行を終了します。"if ~"の文はPrvの値が0又は1である場合は次に進み、そうでない場合は"exit"を実行するという意味です。"or"は論理演算子の中の論理和というもので左の値と右の値のどちらかが"True"であれば"True"を返し、両方とも"False"であれば"False"を返します。
 ループの部分も書き換えます。


for i := 0 to Pcts - 1 do
begin
    for j :=0 to Transforms - 1 do
    begin
       SetActiveTransform(j);
       if j mod 2 = 0 then
          Rotate(360 / Pcts);
       else
          Rotate(-360 / Pcts);
    end;

    if Prv = 0 then
    begin
       Preview;
       if Stopped then
       begin
          UpdateFlame := False;
          exit;
       end;
    end;
    else
    begin
       Renderer.Filename := fPath + fName + Format('_%.3d', [i]) + '.' + fType;
       SetRenderBounds;
       Render
    end;
end;

UpdateFlame := False;



 条件判断文とループが入れ子になってわけがわからなくなってきましたね。まずは初めて出てきたコマンド、"Transforms"は今現在のフレームにTransformが何個あるか数えるコマンド、そして"else"の後には、"if文で"False"だった場合に実行する命令を入れます。"mod"は左の整数を右の整数で割った余りを返します。

では順番に見ていきましょう。
"for i := 0 ~"
まずループに入るところ。"for"文で"i"に0を入れて"Pcts"回繰り返します。
" for j :=0 ~"
続いてもう一個"for"文を入れ子にして入れています。この中はTransformの数だけ繰り返します。そして、Transform 1から順番に回転させていきます。"j"を2で割った余りが0だった場合、つまり"j"が偶数(Transform の番号が奇数)である場合はTransformを反時計回りに回し、余りが1だった場合、つまり"j"が奇数(Transform の番号が偶数)である場合はTransformを時計回りに回します。
" if Prv = 0 ~"
次の"if"文で"Prv"が0の場合はプレビューを表示します。プレビュー中は×が押されたときに終了できるようにトラップをかけておきます。×が押されたときにフレームを更新せずにスクリプトの実行を終了させます。
" else ~"
そうでなければ、レンダリングを実行しファイルを出力します。
110422_a

[広告] VPS


今回使ったコマンド
or
論理和。左の値と右の値のどちらかが"True"であれば"True"を返し、両方とも"False"であれば"False"を返す。
Transforms
現在のフレームにあるTransformの数

if 条件判断文 then
 実行文①
else
 実行文②

"条件判断文"が"True"ならば"実行文①"を実行し、"False"ならば"実行文②"を実行する。
mod
剰余。左の整数を右の整数で割った余り。


BACK.jpgTOP.jpgNEXT.jpg
スポンサーサイト



テーマ : グラフィック作成
ジャンル : コンピュータ

コメントの投稿

非公開コメント

リンクどもです!

あ~、こういう記事いいですね。
個人的には動画はほとんどやらないので、トランスフォーム編集時の便利スクリプトについて調べなきゃなぁと思ってたんです。
助かりますですw
プロフィール

soar13065

Author:soar13065
Apophysis使って動画等を作成しております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR