英語版の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を使った方法をお勧めします。
書いてきました。なにか嘘ついてたらご突っ込みのほどを!:日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) | AEP Project http://bit.ly/bgPqWn
新着記事 : 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/cY8jjG
RT @AEUSERS: 新着記事 : 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/cY8jjG
RT @AEUSERS: 新着記事 : 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/cY8jjG
app.languageで言語取得して条件分岐させても良いかと。書き換える量増えるけど RT @AEUSERS 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/9Tb1Az #aejp
app.languageで言語取得して条件分岐させても良いかと。書き換える量増えるけど RT @AEUSERS 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/9Tb1Az #aejp
あとmatchNameについては以前調べた→ http://bit.ly/rMmeg RT @AEUSERS 日本語版で動かないスクリプトを動くようにする(Skydome, Quick effects palette) http://bit.ly/9Tb1Az #aejp
Skydome(画像を天球にマッピング),Quick effects palette(使用頻度の高いエフェクトをワンタッチで適用)等のスクリプトを日本語版AfterEffectsで使用する方法。 AEP Projectより。 http://j.mp/9pT0QB
こんにちわ。
スクリプトは作動したのですが、
Sky Dome Backgroundコンポの
レンズ補正のエクスプレッションがエラーになってしまいます。
もし良ければそこのエクスプレッションだけ教えていただけると助かります。
>まみさん
確認したところ、オリジナルのものから変更してる箇所は”チェックボックス”のカタカナ表記だけでした。
CS4とCS5では検証済みです。
恐らくスクリプト実行中にエクスプレッションのエラーが発生するとその後のスクリプトの処理が止まってしまうので、
スクリプト中での原因箇所を特定しないといけないように思います。
>10takumi_kashima10
お返事ありがとうございます。
お忙しいところすみません。
行2でエラー、
視界プロパティ
って出て来ちゃいます。
スクリプト自体は最後まで実行されているようなんですが。
なんでかな………。