4:配列変数を使う

配列とはプログラミングの世界では頻繁に出てくる用語で、映像クリエーターの方には頭の痛い話でしょう。しかし、キモになる部分なのでしっかり頭に入れてください。
パソコンのプログラムには、データを格納しておくためのメモリ空間、つまり部屋が必要です。また、1人の人は様々な役割を担っており、そのプログラムを実行するには、1人1部屋のオフィス代わりになる部屋を与えてあげなくてはなりません。
例えば、aさんは総務の仕事をするので、コピー機やパソコンのある総務部のオフィスに入ります。また、bさんは設計の仕事するので、ワークステーションやスーパーコンピュータを操作できる部屋に入ります。それぞれの部屋にそれぞれの機能があり、それを担う人が適材適所で入るわけです。
しかし、部屋によっては、様々な部署が雑居している部屋もあります。複数の役割を持った人を入れることを配列といいます。
ですから、総務の人や設計の人を別々に呼び出したい場合は、何らかの方法で個別に指名する必要があります。

エクスプレッションの実践

位置プロパティの、X座標データを持つ「a」さん、Y座標データを持つ「b」さんを個別に呼び出し、位置プロパティの数値を表示したい場合、次のように記述します。(コンボ5)

a=transform.position[0];
b=transform.position[1];
[a,b]

img_array01

すると、位置パラメータは640,360で何も変わっていないはずです。しかもエラーは出ません。

配列の説明

では、順に説明していきましょう。
まず、最初の「a = 」というのは、「=」以降の右側の内容を「a」に代入しなさいという意味です。
次の行の b=transform.position[1]; も同じ考え方です。
ここで問題になるのは、かぎ括弧でくくられた数字の0と1の意味です。
プログラミングの世界で配列を示す数値として、数字の「0」は第1位の項目を表し、数字の「1」は第2位の項目を表します。ということで、AEの世界では、数字の「0」は「x方向」を表し、数字の「1」は「y方向」を表すことになります。(3Dのコンポジションでは、「2」が「Z方向」を表すことになります。)よってルームシェアしている「a」さんと「b」さんの2人のうち「0」が「a」さんを表し、「1」が「b」さんを表していることになります。

a=transform.position[0];
b=transform.position[1];

この式によって配列の要素を含んだ transform.position の中から数字の「0」を指定することで「x」の座標値を探し出して「a」に代入しなさいと命令しています。この場合、初期値であるセンターの数値を640を「a」に、360を「b」に代入します。(このコンボは1280×720の解像度で作成しているので、センターのポジションは640,360になります。)
一番、最後についているセミコロン「;」は、文節を切る、つまり改行するときにつけるものです。これがないとAEは、次の行もひとつの行として間違って認識してしまいエラーが出ます。よって、必ず1つの構文の最後に「;」をつけるようにしてください。

aとbは何に使う?

上記エクスプレッションでは、xが640とyが360で何も変わっていません。何の意味があるの?と思っているあなたは鋭いです。実はこのaとbには大きな役割があるのです。aとbは変数という入れ物です。この変数にはいろいろな役割を担ったモノを入れることができます。
例えば時間です。AEは動画をコンポジットするアプリケーションですから、常に時間の概念が関係します。時間とともに変化させるようなアニメーションを作成するような場合、「time」という時間を表す関数が非常に役に立ちます。では、先ほどのエクスプレッションの後ろに「+time」と打ち込んで見てください。

a=transform.position[0]+time;
b=transform.position[1]+time;
[a,b]

このエクスプレッションは、time関数により引き出した時間の数値をa、bに加算することです。カーソルを動かした分だけ、XとYの数値が増えて、画面ではカーソルを6秒のところまで動かしているので位置プロパティには初期値640、360に6が加算されて、646、366になっています。

time関数6秒後

ちょっと休憩

さぁ、これでエクスプレッションの第一歩を踏み出しました。上記の説明で a=transform.position[0] と書いている部分で、プログラムの世界では本来、 x=transform.position[0] と書きますが、「x」を使うと「x」に「x」を代入するという意味が初心者の方には分からないとの声をよく聞きますので、ここはあえて左辺にa、bを使用しています。エクスプレッションに慣れてきたら「x」や「y」を使うようにしてください。

ここまでの説明でうまくいかないという人は、文字の入力でミスを犯している可能性が高いです。つまり、エクスプレッションを使う上での文法が間違っているということです。特にエクスプレッションを入力ところは、文字が小さくて見にくいので、セミコロンをコロンで打ち間違えていたり、カンマをピリオドで打ち込んでいたりすることもあるのでしっかり見直してください。エクスプレッションを入力するときは、この入力画面を拡大するなどの配慮があってもいいと思うのですが、なかなか改善されないですね。昔からAdobeのアンケートやβテストには、ことある度に要望だしていますが、難しいんでしょうね。