今日はエクスプレッションのお話
エクスプレッションで二次元の要素を持ったプロパティの時のvalueの変化
やりたい事
補間を使って自動で処理をします。
※とりあえず一次元の場合の話をします。
linear ( 変数 , 入力最小値 , 入力最大値 , minに対する出力値 , maxに対する出力値 )
下のコードではレイヤーの不透明度をレイヤーのインポイントから1秒にかけて0~100%に変化します。
linear(time,inPoint,inPoint+1,0,100)
これに設定値のvalueを使用して変化させます。
linear(time,inPoint,inPoint+1,0,100)
赤字の0をレイヤーのトランスフォームパネルの不透明度から値を受け取りたいのでvalueを使用します。
linear(time,inPoint,inPoint+1,value,100)
に変更しました。
これは問題なく動作します。
さてここからが2次元プロパティの場合の話
プロパティが2次元の要素を持った場合、例)アンカーポイント・位置・スケールなど
この二次元の要素を持ったプロパティの場合補間のエクスプレッションはこうなります。
linear ( 変数 , 入力最小値 , 入力最大値 , minに対する出力値[Num,Num] , maxに対する出力値[Num,Num] )
例えばこんな感じです。
linear(time,inPoint,inPoint+1,[0,0],[100,100])
minに対する出力値 , maxに対する出力値が二次元になります。
てっ事で適当にvalueを入れてみる。
linear(time,inPoint,inPoint+1,[value,value],[100,100])
まずこれでやってもエラーになるだけです。
valueで扱いたい場合・・・
二次元の場合にvalueは二次元の配列になっています。
配列は
value[0] //xのvalue
value[1] //yのvalue
になります
という事ですので、正しくはこうなります。
それではコードです。
linear(time,inPoint,inPoint+1,[value[0],value[1]],[100,100]);
これが正しいコードになります。