2010-05-18

日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette)

英語版のAfterEffects用に作成されたスクリプトは非英語版のAfterEffectsで正常に動作しないことがありますが、それがエフェクト名に起因している場合は比較的簡単に修正が可能です。今回、特に便利なスクリプトについて修正例を2つご紹介します。

(1)Skydome

aescript.comにてSkydomeというスクリプトが公開されていて、このスクリプトを使えばちょうどTrapcode Horizonのように画像を天球にマッピングすることができます。



Skydomeのスクリプト自体は、aescript.comのSkydomeのページから入手してください。今回はversion1.01についての修正箇所を記載しているので、今後バージョンアップされた場合はこの記事の内容がそのまま使えなくなる可能性がありますので、ご注意ください。

ダウンロードしてきた”skydome_v1.01.jsx”を念のためにバックアップした上で、お好きなテキストエディタ(できれば行数が表示されるもの)で開いてください。そして以下の箇所を修正していきます。

121~161行目

				//add effects to this layer
				//4-Color Gradient
				tFXGrp = checkers("Effects");
				t4ColGrad = tFXGrp.addProperty("4色グラデーション");
				t4ColGrad.property("カラー2").setValue([0,0,1]);
				t4ColGrad.property("カラー4").setValue([0,1,0]);
				t4ColGrad.property("不透明度").setValue(25);
 
				//Checkerboard
				tChk1 = tFXGrp.addProperty("チェッカーボード");
				tChk1.property("アンカーポイント").setValue([0,0]);
				tChk1.property("グリッドサイズ").setValue(3);
				tChk1.property("幅").setValue(skyDomeComp.width/50);
				tChk1.property("高さ").setValue(skyDomeComp.width/50);
				tChk1.property("不透明度").setValue(25);
				tChk1.property("描画モード").setValue(5);//add
 
				//Checkerboard 2
				tChk1 = tFXGrp.addProperty("チェッカーボード");
				tChk1.name = "チェッカーボード 2";
				tChk1.property("アンカーポイント").setValue([0,0]);
				tChk1.property("グリッドサイズ").setValue(3);
				tChk1.property("幅").setValue(skyDomeComp.width/25);
				tChk1.property("高さ").setValue(skyDomeComp.width/25);
				tChk1.property("カラー").setValue([1,0,0]);
				tChk1.property("不透明度").setValue(25);
				tChk1.property("描画モード").setValue(5);//add
 
				//Grid
				tGrid = tFXGrp.addProperty("グリッド");
				tGrid.property("アンカー").setValue([0,0]);
				tGrid.property("グリッドサイズ").setValue(3);
				tGrid.property("幅").setValue(skyDomeComp.width/50);
				tGrid.property("高さ").setValue(skyDomeComp.width/50);
				tGrid.property("ボーダー").setValue(skyDomeComp.width/800);
				tGrid.property("描画モード").setValue(5); //add


206~210行目

				//add the Transform effect
				tFXGrp = tAdj("Effects");
				tTrans = tFXGrp.addProperty("トランスフォーム");
				tTrans.property("縦横比を固定").setValue(0);
				tTrans.property("スケールの幅").setValue(-100);


219~221行目

				tUseOC = skyFX.addProperty("チェックボックス制御");
				tUseOC.name = "use Optics Compensation";
				tUseOC.property("チェックボックス").setValue(useOpComp);


243行目

				tExprString = 'tUseOpticsCompensation=effect("use Optics Compensation")("チェックボックス");\ntCamLayer=thisComp.layer("' + tActiveCam.name +'");\nadj=tCamLayer.cameraOption.zoom;\n';


249~260行目

					tOpComp = skyFX.addProperty("レンズ補正");
					tOpComp.property("レンズディストーションを反転").setValue(true);
					tOpComp.property("視界の方向").setValue(3);
 
					tExprString = 'tUseOpticsCompensation = effect("use Optics Compensation")("チェックボックス");\nif (tUseOpticsCompensation > 0.5) {\n\ttAdjustArray = new Array();\n\ttAdjustArray[0] = 0;\n\ttAdjustArray[10] = 0;\n\t';
					tExprString = tExprString + 'tAdjustArray[20]=0;\n\ttAdjustArray[30]=0;\n\ttAdjustArray[40]=60;\n\ttAdjustArray[50]=112;\n\ttAdjustArray[60]=129;\n\ttAdjustArray[70]=140;\n\ttAdjustArray[80]=146;\n\ttAdjustArray[90]=151.5;\n\t';
					tExprString = tExprString + 'tCamLayer=thisComp.layer("' + tActiveCam.name + '");\n\tadj=tCamLayer.cameraOption.zoom;\n\topp=thisComp.width/2;\n\tFOV=2*radiansToDegrees(Math.atan2(opp,adj));\n\t';
					tExprString = tExprString + 'FOVceil10=Math.ceil(FOV/10)*10;\n\tFOVfloor10=Math.floor(FOV/10)*10;\n\tFOVceil10=(FOVceil10>90?90:FOVceil10);\n\tFOVfloor10=(FOVfloor10>90?90:FOVfloor10);\n\t';
					tExprString = tExprString + 'if(FOVceil10==FOVfloor10){\n\t\tOpCompFOV=tAdjustArray[FOVfloor10];\n\t}else{\n\t\tamtBetween=(FOV%FOVfloor10)/10;\n\t\tOpCompFOV=tAdjustArray[FOVceil10]*amtBetween+tAdjustArray[FOVfloor10]*(1-amtBetween);\n\t}\n';
					tExprString = tExprString + '}else{\n\tOpCompFOV=0;\n}\nOpCompFOV;';
 
					tOpComp.property("視界").expression = tExprString;


修正箇所は以上です。エフェクト名とパラメタ名を日本語版のものに変更し、それにあわせてエクスプレッションで参照している部分も変更することで、正常に動作するようになります。コンポジションを選択した状態でスクリプトを動かして動作することを確認してください。万が一正常に動作しなかった場合は、ExtendScript Toolkitを使って原因の箇所を特定することもできます。

(2)Quick effects palette

Skydomeを日本語版で動作するように修正できたところで、もうひとつ使い方によっては凄く便利になるスクリプトをご紹介します。それは、aenhancers.comのフォーラム内で公開されているQuick effects paletteです。

上記フォーラム中の画像を見てわかるとおり、このパネルを使うとワンクリックでエフェクトを適用できるようになります。エフェクトを階層型のメニューから毎度選択するのは地味に大変なので、使用頻度が高いエフェクトだけでも登録しておくと非常に楽になると思います。英語版ならばエフェクト&プリセットパネルの検索窓から打ち込むこともできますが、日本語版だとかな入力に変更すること自体が面倒なこともあって、特にQuick effects paletteの効果があるのではないかと思います。

人によって使用頻度の高いエフェクトも違ってくることもあって、フォーラム中の6番目の書き込みにある”Quick_Fx_Palette_v2.zip”ではよりカスタマイズしやすいようになっています。スクリプトの最初の部分を変更することで日本語版で動作するようにし、さらに好きなエフェクトに変更することができます。以下は”ブラー(滑らか)”を適用したい場合の例です。

var But_01=["Fst Blr",			// text on button, max is 7 char
					"fx",				// fx or preset
					"ブラー(滑らか)",		//exact effect name or preset path (copy the name in effects pallette in AE)
					"ブラー",		// custom property name only for fx (if you want to modify one default property for exemple the fast blur blurriness is "0" , to modify more one property you could create a  preset)
					9];					//custom property value for fx


エフェクト名とパラメタ名を日本語版のものに変更していきます。それぞれ追加したいエフェクトの日本語名を確認してください。パラメタが初期値でもいい場合は省略することも可能です。私の場合は使用頻度の高そうなエフェクトを検討した結果、以下のようになりました。



なお、トライトーンのみ”トライトーン “(後ろに半角スペースあり)としないと動作しませんでした。トライトーンを追加されたい方はご注意を。

(補足)
ここまで各言語版によってスクリプトからエフェクトを追加するときは記述方法が違うという前提で書きましたが、Display NameではなくMatch Nameを使うことで言語環境に関係なく指定することができます。

参考:redefinery.com: Effect Match Names Reference (AE 7.0)

本来であればこのMatch Nameを使った書き方が好ましいかと思いますが、そのエフェクトに付随するプロパティ値の指定方法が難しくなるので今回は避けました。日本語版と英語版の両方の環境を使用しているような方には、Match Nameを使った方法をお勧めします。



タグ : , , , [タグを追加する]


この記事の投稿者について:takumi_kashima

フィードバック

1 Star2 Stars3 Stars4 Stars5 Stars
(評価回数:2 , 平均:4.50)
Loading...Loading...

この記事に対する 13 の反応があります


  1. 1 鹿島巧 5月 18th, 2010 at 14:00

    書いてきました。なにか嘘ついてたらご突っ込みのほどを!:日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) | AEP Project http://bit.ly/bgPqWn

  2. 2 AEUSERS(AEP Project) 5月 18th, 2010 at 14:22

    新着記事 : 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/cY8jjG

  3. 3 Seigo Furuta 5月 18th, 2010 at 14:24

    RT @AEUSERS: 新着記事 : 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/cY8jjG

  4. 4 YSKT YMD 5月 18th, 2010 at 14:46

    RT @AEUSERS: 新着記事 : 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/cY8jjG

  5. 5 ザザムシ 5月 19th, 2010 at 11:06

    app.languageで言語取得して条件分岐させても良いかと。書き換える量増えるけど RT @AEUSERS 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/9Tb1Az #aejp

  6. 6 ザザムシ 5月 19th, 2010 at 11:06

    app.languageで言語取得して条件分岐させても良いかと。書き換える量増えるけど RT @AEUSERS 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/9Tb1Az #aejp

  7. 7 ザザムシ 5月 19th, 2010 at 11:12

    あとmatchNameについては以前調べた→ http://bit.ly/rMmeg RT @AEUSERS 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/9Tb1Az #aejp

  8. 8 りるぢ 6月 22nd, 2010 at 04:30

    Skydome(画像を天球にマッピング),Quick effects palette(使用頻度の高いエフェクトをワンタッチで適用)等のスクリプトを日本語版AfterEffectsで使用する方法。 AEP Projectより。 http://j.mp/9pT0QB

  9. 9 まみ 9月 30th, 2010 at 22:29

    こんにちわ。

    スクリプトは作動したのですが、

    Sky Dome Backgroundコンポの
    レンズ補正のエクスプレッションがエラーになってしまいます。


    もし良ければそこのエクスプレッションだけ教えていただけると助かります。

  10. 10 takumi_kashima 10月 1st, 2010 at 20:11

    >まみさん
    確認したところ、オリジナルのものから変更してる箇所は”チェックボックス”のカタカナ表記だけでした。
    CS4とCS5では検証済みです。
    恐らくスクリプト実行中にエクスプレッションのエラーが発生するとその後のスクリプトの処理が止まってしまうので、
    スクリプト中での原因箇所を特定しないといけないように思います。

  11. 11 まみ 10月 2nd, 2010 at 17:56

    >10takumi_kashima10

    お返事ありがとうございます。
    お忙しいところすみません。


    行2でエラー、
    視界プロパティ
    って出て来ちゃいます。

    スクリプト自体は最後まで実行されているようなんですが。
    なんでかな………。

  1. 1 Tweets that mention 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) | AEP Project -- Topsy.com Pingback on 5月 18th, 2010 at 23:23
  2. 2 日本語版で動かないスクリプトを動くようにする(Skydome,Quickeffectspalette) | スクリプト - After Effects - 動画編集ソフト - アプリケーション | Jishuu.net Pingback on 4月 21st, 2012 at 05:14

コメントをどうぞ!




特集