LoginSignup
2
0

More than 5 years have passed since last update.

AEのエクスプレッションでカラーピッカーで遊ぶ。

Last updated at Posted at 2016-12-18

 AEのエクスプレッションはスクリプトと同様 ExtendScript を使用していますが、スクリプトの機能を制限しつつエクスプレッションとして扱いやすいようにカスタマイズされたものとなっています。
 例えば、割りと使い道のある propertyDepth のような属性が Property オブジェクトから削除されてるかと思えば、 $.getenv('GOPATH') のように環境変数を取得するものが残ってたりします。

 それ以外に面白いのがカラーピッカーです。スクリプトで色指定する際に重宝する $.colorPicker() ですが、エクスプレッションでも使用できます。とりあえず以下のようなエクスプレッションを組んでみました(出来るだけ短いコンポ、レイヤーで試してください)。

ColorPicker.exp
function rgbToHex( rgb ) {
  rgb = clamp( rgb, [ 0, 0, 0, 0 ], [ 1, 1, 1, 1 ] );
  var r = ~~( 255 * rgb[ 0 ] ) << 16,
    g = ~~( 255 * rgb[ 1 ] ) << 8,
    b = ~~( 255 * rgb[ 2 ] );
  return r | g | b;
}

function hexToRgb( hex ) {
  var r = ( hex >> 16 ) & 255,
    g = ( hex >> 8 ) & 255,
    b = hex & 255;
  return [ r / 255, g / 255, b / 255, 1 ];
}

var hex = $.colorPicker( rgbToHex( value ) );

if( hex ) {
  hexToRgb( hex );
} else {
  [ 0, 0, 0, 0 ];
}

pic.twitter.com/6CEKqWHeGp

— かれをばな@3日目R-18b (@kareobana) 2016年12月18日

 入力してエクスプレッションを有効化すると、エクスプレッションが評価されカラーピッカーが呼ばれます。最初に、適用したレイヤーの有効フレームの分だけ評価されるので閉じても閉じても何度も出てきます。したがって下手に長いレイヤーで実行すると痛い目にあいます。

 プロジェクト読み込み時に一回だけ評価されるだけなら、今日は運勢的にこの色を背景にするか、みたいな使い方も可能なわけですが、何せやたらと再評価されてそのたびにカラーピッカーが出て来るので今のところちょっと使いみちが思いつかないです。

おわり。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0