私がScript書く時は、大抵Meadow(Emacs)使って、nabScripts.comのを真似しつつ書いてるのですが、テンプレートでも作っておくと楽かなーと思って適当に作ってみたので、いちおう公開。変なとことかあったら指摘していただけると助かります。try&catchとかした方がいいのかな……
template.zip
以下、ざっと説明。慣れてないとわかりにくいかもしれませんが、全体の流れとしては、
- 初期化→エラーチェック(main関数)→処理実行(template関数)
という感じです。UIパネルとか作ることはここでは想定してなかったので、その辺は今後気が向いた時に追記します。
/*
Name............
Version.........
Description.....
Support.........
Author..........
*/
Scriptの名前とか詳細とかのメモ書き
(function(){
他のスクリプトと干渉し合わないように、念のため無名関数で囲んでおく。
/*-----------------------------------------------
function initGlobals(G) // scriptの名前とかエラーとか
{
G.NAME = "template.jsx";
G.TITLE = "template";
//-----------------------------------------------------------------------------------------------------
G.NO_PROJ_ERR = {en:"Open a project first.", jp:"プロジェクトを開いて下さい."};
G.NO_COMP_ERR = {en:"Select a composition.", jp:"コンポジションを選択して下さい."};
G.NO_LAYER_ERR = {en:"Select at least one layer.", jp:"少なくとも1つのレイヤーを選択して下さい."};
}
/*-----------------------------------------------
function loc(str) // 言語(日本語or英語)
/*-----------------------------------------------
{
return app.language == Language.JAPANESE ? str["jp"] : str["en"];
}
/*-----------------------------------------------
function throwMsg(msg) // errorをalert
/*-----------------------------------------------
{
alert(loc(msg), G.TITLE);
}
初期設定とかエラー処理とか。
/*-----------------------------------------------
function template(comp)
/*-----------------------------------------------
{
// 実行するscript本体
}
ここに実行させたいscriptを記述する。関数名は適時変更
/*-----------------------------------------------
function main()
/*-----------------------------------------------
{
// プロジェクトを開いているかチェック
var proj = app.project;
if (!proj) {
throwMsg(G.NO_PROJ_ERR);
return;
}
// コンポジションを選択してるかチェック
var comp = proj.activeItem;
if (!comp || !(comp instanceof CompItem)) {
throwMsg(G.NO_COMP_ERR);
return;
}
// レイヤーを選択する必要がある場合
// レイヤーを少なくとも1つ選択してるかチェック
// if (comp.selectedLayers.length < 1){
// throwMsg(G.NO_LAYER_ERR);
// return;
// }
// メイン処理であるtemplate()関数を実行
app.beginUndoGroup(G.TITLE);
template(comp);
app.endUndoGroup();
}
main関数。プロジェクトが開かれてるか、コンポジションが選択されてるかなどをチェックした後、メイン処理をするtemplate()を実行
/*-----------------------------------------------
// Entry Point
/*-----------------------------------------------
var G = new Object();
initGlobals(G);
main();
今まで書いてきたのは全部関数宣言なので、ようやくここで実行される記述。最初にGというオブジェクトを作成した後に初期化し、main関数を実行(main関数の中からtempate()を実行)
})();
最初に書いた無明関数”(function(){”の括弧を閉じて、即実行。
Comments(2)


[...] (AE 7.0) ChromaticAberration.zip ダウンロード // 2009.09.11 修正 // LianさんのScriptテンプレートを使って書き直しました。 No TweetBacks yet. (Be the first to Tweet this post) タグ [...]
[...] Lianさんのスクリプトテンプレートを使用させて頂きました。 Download lcdeffect [...]