dA-tools.com

HOME > AfterFx > expression > 実践 > オブジェクト

オブジェクト

ところで「オブジェクト」とは何だ?

JavaやJavaScriptはオブジェクト指向と呼ばれます。AfterFxのエクスプレッションもJavaScriptに準拠しているのでオブジェクト指向のScriptです。ここで言うオブジェクトとはまさに「モノ」のことで、プロパティ(属性)とメソッド(動作)を持っているという特徴があります。

iPodを例にとってみましょう。

  • iPodはオブジェクトです。
  • iPodの属性は色、製品番号、サイズ、重さなどです。
  • iPodのメソッドはスイッチ操作です。スイッチを操作して音楽を再生したり止めたりします。

AfterFxでは様々な要素を「オブジェクト」と考えます。

例えばAfterFxの「コンポジション」はオブジェクトです。名前、位置、スケール、などの属性とメソッドを持っています。
オブジェクトはその中に別のオブジェクトを含むこともあります。例えばコンポジションに含まれる「レイヤー」もオブジェクトです。「レイヤー」も名前、位置、スケール、などの属性と様々なメソッドを持っています。

ObjectModel.png

オブジェクト指向であるジャバスクリプトは、相互にメッセージを送りあうオブジェクトの集まりなのです。

メソッドと属性

この2つの基本的な違いは、

  • 属性」はオブジェクトの特徴で、「メソッド」は何かを調べて値を返す作業です。

言い換えれば

  • 「属性」は名詞で、「メソッド」は動詞です。

見た目での違いは、

  • カッコ()が有るのはメソッドで、無いのは属性です。

JavaScriptではオブジェクトの属性をプロパティと呼んでいますがAfterFxではレイヤーの属性をプロパティと呼んでいるので混乱を避けるために引数を取るとき、つまりカッコ( ) がつくときを「メソッド」、引数をとらないときを「属性」と呼び分けているようです。

実際、エクスプレッションを記述する程度では属性とメソッドの違いよりも、引数の有無を注意すれば問題無いでしょう。LinkIcon引数とは

例:

thisLayer.opacity.valueAtTime(1)

valueAtTime( )’はカッコ内に指示した値を調べてその値を返すメソッドです。この例では1秒目の不透明度の値を返します。

thisLayer.width 

width」は属性です。

見つけ方

iPodのようなものならなんとなく属性を見つけられるけどコンピュータの中にあるオブジェクトの属性やメソッドをどうやって見つけるの?それには2つの方法があります。

  1. マニュアルを見る
  2. 言語メニューを使う

詳しくは次章で!