エクスプレッションが使えるようになってくると、次はスクリプトを書いてみたくなりますよね。
AEスクリプトを習得するには、フリーやAdobe公式のサンプルjsxを開いて、色々変えてみるのが一番上達の近道です(例えばvideocopilotのこのページ。DLできるプロジェクトファイル内にシーケンスレイヤースクリプトが入ってます)。しかし開いてみると、エクスプレッションにはない記述に面食いますよね…。
今回はエクスプレッションとスクリプト学習の橋渡し用に「これさえわかっておけばとりあえず先に進める」情報を書いていきたいと思います。
varってなに?
エクスプレッションでウィグルを使うときはこんな風に書きますね。
f = effect("スライダー制御")("スライダー")
a = effect("スライダー制御 2")("スライダー")
wiggle( f , a )
で、スクリプトを開くと、こんな記述があると思います。
var f = ○○;
var a = ○○;
fとかaのデータの入れ物を変数と言いますが、その前に付いているvarって何なんでしょうか?
これは、パソコンでいうところの拡張子みたいなもんです。varはvariable(“変数”という意味)の略で、変数の前に付けて「これは変数ですよ」と分かりやすくしているわけです。
例えばパソコンのファイルの拡張子が“jpg”なら画像、“mp4”なら映像だと分かりますよね?それと一緒です。
ちょっとややこしいのは、他の言語だとvar以外にも「文字列ならコレ、整数ならコレ」とか色々種類があるんですが、AEスクリプトだととりあえず変数にはvarを付けとけばいいんですね。どんなデータの型かはAEが勝手に判断してくれます。
「じゃあvarもいらなくね?」と思うことでしょう。その通りで、varを付けなくてもスクリプトは動きます。
がしかし、varは付けといたほうがいいです。varが無い変数は問答無用で、起動中の全スクリプトに影響する変数(グローバル変数)となります。最悪、別スクリプトの変数を書き換えてしまい動かなくなったりします…。
*別スクリプトの変数を書き換えると言っても、コードが書き変わるわけではないです。なのでスクリプトの学習中にvarをつけ忘れたからといって、買ったスクリプトが壊れてしまうことはないのでご安心ください。
*影響を限定するローカル変数にするためには、varを付けるだけでは不十分で、関数で囲む必要があります。
文末のセミコロンって何?
もう一度スクリプトを見てみましょう。
var f = ○○;
var a = ○○;
この文末のセミコロン“;”は、句点の“。”みたいなもんです。AEスクリプトでは付けるもんだと思ってましたが、調べてみたら付けない派もいるみたいですね…。まあ、付けといたほうが無難ではないでしょうか。
//ってなに?
スクリプトではこんな記述もあります。
//これらは変数です。
var f = ○○;
var a = ○○;
//の後にコメントを打つことができます。コメントは処理に影響しません。後で見直したときにわかりやすいよう、積極的に書いていきましょう。ちなみに、/*と*/で囲めば複数行のコメントができます。
以上の3つ『var』と『;』と『//』は、エクスプレッションで書いても問題ありません。ただしエクスプレッションの場合『var』と書いた変数は最終結果として使えないので、var抜きの変数か式を最後に書く必要があります。
次回に続きます。