AfterEffectsのエクスプレッションでは、四則演算から、色空間変換まで様々な演算ができます。
実際は、Javascriptの機能としての演算と、エクスプレッションのメソッドとしての演算の両方があるのですが、今回はその両方をしっかり説明していきたいと思います。
全て実際に動かした実行結果付きです。
四則演算
加算
足し算をします。
1 + 2; //結果:3
減算
引き算をします。
1 - 2; //結果:-1
乗算
掛け算をします。
1 * 2; //結果:2
除算
割り算をします。
1 / 2; //結果:0.5
剰余
割り算の余りを取得します。
1 % 2; //結果:1
三角関数
cos
角度(ラジアン)から余弦 (コサイン)を取得。
Math.cos(Math.PI); //結果:-1
acos
逆余弦 (アークコサイン)を角度(ラジアン)で取得。
Math.acos(-1); //結果:3.1415...
tan
角度(ラジアン)から正接(タンジェント)を取得。
Math.tan(Math.PI); //結果:0
※ 詳細な仕様はこちらをご覧ください
atan
逆正接(アークタンジェント)を角度(ラジアン)で取得。
Math.atan(0); //結果:0
atan2
点 (0, 0) から点 (x, y) までの半直線と、正の x 軸の間の平面上での角度 (ラジアン単位) を返す。
Math.atan2(0,-100); //結果:3.1415...
sin
角度(ラジアン)から正弦 (サイン) を取得。
Math.sin(Math.PI); //結果:0
※ 詳細な仕様はこちらをご覧ください
その他演算
平方根
平方根(ルート)の結果を取得。
Math.sqrt(2); //結果:1.4142...
自然対数の底のべき乗
自然対数の底のべき乗結果を取得。
Math.exp(2); //結果:7.3890...
べき乗
べき乗計算をします。以下は2の3乗の例です。
Math.pow(2, 3); //結果:8
自然対数
数値の自然対数を取得。
Math.log(2); //結果:0.6931...
絶対値
数値の絶対値を取得。
Math.abs(-1); //結果:1
小数点以下処理
四捨五入
小数点以下を四捨五入。
Math.round(5.5); //結果:6
小数点以下切り上げ
小数点以下の値を切り上げ。
Math.ceil(5.1); //結果:6
小数点以下切り捨て
小数点以下の値を切り捨て。
Math.floor(5.9); //結果:5
最大最小
最小値
引数の中で最も小さい値を返す。1と2の場合は1を返す。
Math.min(1, 2); //結果:1
最大値
引数の中で最も大きい値を返す。1と2の場合は2を返す。
Math.max(1, 2); //結果:2
定数
円周率
円周率を返す。
Math.PI; //結果:3.1415...
自然対数の底
自然対数の底≒ 2.718を返す。
Math.E; //結果:2.7182...
2を底としたeの対数
2を底としたeの対数≒1.442を返す。
Math.LOG2E; //結果:1.4426...
10を底としたeの対数
10を底としたeの対数≒0.434を返す。
Math.LOG10E; //結果:0.4342...
2の自然対数
2の自然対数≒0.693を返す。
Math.LN2; //結果:0.6931...
10の自然対数
10の自然対数≒2.302を返す。
Math.LN10; //結果:2.3025...
2の平方根
2の平方根≒1.414を返す。
Math.SQRT2; //結果:1.4142...
1/2の平方根
1/2の平方根≒0.707を返す。
Math.SQRT1_2; //結果:0.7071...
角度変換
度→ラジアン
degree(度)をradian(ラジアン)に変換します。
degreesToRadians(180); //結果:3.1415...
ラジアン→度
radian(ラジアン)をdegree(度)に変換します。
radiansToDegrees(Math.PI); //結果:180
色空間変換
RGBA→HSLA
色をRGBA空間からHSLA空間に変換します。
rgbToHsl([1, 0, 0, 0]); //結果:[0, 1, 0.5, 0]
HSLA→RGBA
色をHSLA空間からRGBA空間に変換します。
hslToRgb([0, 1, 0.5, 0]); //結果:[1, 0, 0, 0]
配列・ベクトル
配列の計算方法は以下の記事でまとめていますのでご覧ください。
AfterEffectsでレイヤー間の動きを自由に連動させたい場合、親子関係ではなく、エクスプレッションで直接計算をする場合があると思います。 その場合、配列の計算も必要になりますが、自分で計算すると少し面倒です。その為、エクスプレ[…]
まとめ
こんな計算実際に使うの?と思うようなものもたくさん出てきたと思いますが、小数点以下の処理はもちろん、平方根や、べき乗など、意外と活躍するケースがあります。
また、三角関数のsinやcosは周期性(-1~1)があるので、timeを引数に繰り返し処理などにも活用できます。また、sinやcosを併用すると、位相がずれたような表現もできます。
以下の記事のように、数学的なアプローチで処理を作成する場合は、様々な演算を使うことになると思いますので、色々とお試しください。
AfterEffectsのエクスプレッションで中心レイヤーの周りのレイヤーを回転させる場合、いくつかの方法があります。 回転プロパティを使用する回転後の座標を計算で取得する ①は回転後の座標がわからないので計算に利用できません[…]