'AEScript'タグを含むエントリ

Processing to After Effects

つい先日、JavaScriptに移植された事で話題になったグラフィカルなプログラミング言語Processing。なんとこれとAEを連携させようという動きも出てきました

Processing to After Effects

現在のところは、Processing側で作り出した動きの位置・スケール・角度などのプロパティをtxtファイルに書き出し、それをスクリプトを利用してAEのレイヤーに適用する、という事しかできないようですが、作者のSaintEfanさん曰く、”最終的にはProcessingからダイレクトにAEにオブジェクトを渡したい”とのこと。

mographの方にスレッドが立っているので、興味のある方や開発に協力したいという人は、こちらに書き込みして見てはいかがでしょう。

Processing to AE – ::: mograph :::

イージーイーズを更に使いやすくする”Ease and Wizz”

ease-and-wizzAEでスムーズなアニメーションをさせたいときに用いるイージーイーズ。これを更に使いやすくするAEスクリプトが公開されました。

Ease and Wizz : An After Effects palette for smooooth easing

このスクリプトを適応すると、始め2つのキーフレーム間の移動を”Expo”, “Circ”, “Quint”, “Quart”, “Quad”, “Sine”, “Back”, “Bounce”, “Elastic”という9種類のイーズ方法で動かすようなエクスプレッションを追加することができます。手動でやるのに比べると変化の多様性は損なわれてしまいますが、決まった動かし方をしたいだけならずっと楽に行うことができるようになりますし、自分独自のイーズ方法を追加するのも簡単にできそう。また、ドッキングパネルの1つとして使用できるようになっているので、AEのデフォルト機能のように楽に使えそうですね。

インストールの仕方などは、チュートリアルビデオが用意されているので、それを見て戴ければすぐわかると思います。

なお、始めの2つのキーフレームにしかエクスプレッションが適用されないという問題もあるのですが、複数のイージーイーズを1つのレイヤーに適応させたい場合はトランスフォームというエフェクトをかけて、そこに用いれば回避できるのではないかと思います。

残念ながらこのスクリプトはCS3以降でしか使えないのですが、非常に有用なスクリプトだと思うので是非試してみて下さい!

[AE Script] maxVolume

maxValue_cap

最後にちょっと追記しました(2008.03.23)

音と同期させてパラメーターを操作したいと思い、maltaannon.comさんのSmart Volume Meterというチュートリアルを参考にしていたのですが、この方法だとvolumeの最大値を探すために毎回ややこしい計算をしなければならず、レンダリング時間が長くなってしまう気がしたので、単純にvolumeの最大値を探す部分だけを切り出してスクリプトにしてみました。

maxVolume

使用方法は、音楽ファイルから「右クリック > Keyframe Assistant > Comvert Audio to Keyframes」で作り出したAudioAmplitudeレイヤーの適当なチャンネル(Both channelsなど)を選択した状態でこのスクリプトを実行するだけ。そうすると、その中から音量の最大値を探索して、alert表示してくれるので、あとはチュートリアル通りに

linear(effect(”Both Channels”)(1), 0, maxValueの値, 0, 100);

などというエクスプレッション値を持つスライダーを作成すれば、範囲を0~100に拡張することができます。

とりあえず、この用途のためだけに書いたので、他のプロパティに対してこのスクリプトを実行した時の挙動など全く考慮していないのですが、もし何か他の使い道がありそうだったら、もうちょっと一般的に使えるように改良してみようと思います。

この他のニュースを読む »

[Memo] AE Scriptをパネルに追加する方法

現在、「スクリプトを実行」にCtrl+Qというショートカットを与えて作業をしているものの、その選択すら面倒くさくなってきたので、自分用にスクリプトランチャーを作成中。

どうやら周りのAEユーザーの方は、DemoPalette.jsxというAEに最初から同梱されているスクリプトを改良して使っている方が多いようなので、私もそのやり方で試しているのですが、何故かパス&スクリプト名はあってるのに、起動してくれないスクリプトがあったり、何故か文字コードをUTF-8からShift_JISに変更してみたら動いたりとか、よくわからない挙動をして大変困っております。

また、通常のDemoPaletteは他のスクリプト同様、孤立したプレートとして作成されるのですが、CS3から他の時間制御や文字と同様にパレットメニューに追加できるようになったらしいので、そのやり方をメモっておきます。
通常のプレートは

var myPalette = new Window("palette", "hoge", [100,100,200,300]);
myPalette.add("statictext),[10,10,40,30], "huga");
myPalette.show();

などと生成しますが、パレットメニューに追加したい際はこれを

var myPalette = this;
myPalette.add("statictext),[10,10,40,30], "huga");

とするだけです。

新しいwndowを生成する代わりにthisを与え、また最初から表示されているためshow()と表示するための関数を実行する必要がなくなります。
ただしこのthisを用いる方法では、パレット内に他のパレットの呼出を作成することで階層構造を作り出したり、通常スクリプトを実行する時のようにファイル>スクリプト>DemoPalette.jsxなどと起動する事とエラーが出てしまうため、次のようにthisがパレットオブジェクトであるか確認する手順を踏む方法が推奨されています

function createUI(thisObj){
    if(thisObj instanceof Panel)
        var myPanel = thisObj;
    else{
        var myPanel = new Window("palette", "hoge");
        myPanel.bounds = [300,100,300+palette_width,255];
    }
    return myPanel;
}
    var myToolsPanel = createUI(this);
    myToolsPanel.add("button", [10,10,100,30],"huga");
    if(!(myToolsPanel instanceof Panel)
        myToolsPanel.show();

ちなみに、「スクリプトを実行」からこのスクリプトを実行するとtestは「undefined」みたいですね。この辺りは公式のScripting Guide(pdf)のP.7に載ってる事なので、詳しくはその辺りを参照ということで。

また、先日公開したdraw_curve.jsxを密かにバージョンアップしております。変更点は、phaseを調節するようのスライダーを追加したのと、それに伴い内部の三角関数の処理をラジアンから角度に変更。あと、微妙にUIの配置をいじったりとか、ファイル名をdrawCurve.jsxに変更したりとか、そんなところ。DLはScriptページから

AEスクリプトメモ

前エントリで公開したスクリプトは、私の生涯で2番目に作った AEスクリプトなわけですが、これを書くに当たって思ったこと・気付いたことなどを適当に書き殴ってみる。

  1. AEスクリプトを書くときは英語モードで起動させておく(エフェクト名などは英語で設定した方が何かと楽そうなので)
  2. エフェクトに値を代入したいが、なんというプロパティ名を用いればいいか分からないときは、AE上でそのエフェクトのパラメーターにエクスプレッションを適応させてみる。すると「effect.property(hoge)」と出るので、それを用いればよい。
  3. UIパネルにテキストやらエディットボックスを配置するのがくそだるい
  4. それでもUIパネルが必要な時は、パレット上にパネルを作って複数コピペすると、若干手間が減る気がする。
  5. でも、エディットボックスを使うと例外処理を書かないといけない。やっぱりUIパネルは極力簡潔に。
  6. 参考にしていたNabさんのスクリプトでは、エディットボックス一つごとにチェック用の関数を作っていたけど、どうせ似たような処理をしてるんだから一つにまとめられないものか。
  7. デバッグがだるすぎる。MeadowのJSモードで書くより、ExtendScript使った方が早いのだろうか。Emacsのキーバインド使えれば一番なんだけども
  8. どういう順番にコードを書けばいいのかわかってないので、順番がめちゃめちゃ。正直あまり人に見せたくない
  9. 命名規則なども無く、思いつきで関数名・変数名を決めているので、どうにかしたい。
  10. id:nitoyonさんのASのコードはキレイだった。真似したい。

まぁこんな所ですかね。後半は自分のダメだと思った所を書いてるだけですが(汗
今後は可読性などの事も考えてリファクタリングしつつ、位相差のパラメーターを追加したり、ヘルプを追加するなどしようと思っております。「この曲線を追加して欲しい」といったご要望がありましたら、遠慮せずにお申し出下さい。このスクリプトと関係なくとも、こんなスクリプトを作って欲しいという依頼でも結構ですし。

aescript stair また、最初に2番目に作ったスクリプトと書きましたが、1番目に作ったスクリプトもそのうち公開してみようかな、と思っております。こちらは、新規平面もしくは選択したレイヤーを螺旋状に配置する、というスクリプトです。左の図を見て貰えば、大体どんな数式なのかはわかるかと。

とりあえず、時間はかかるものの、書くことだけだったらワリと簡単にできるということはわかったので、なんか面白そうなのを思いついたら、ちょこちょこ作っては公開していこうと思います。