概要
PyAE(AESDK) の機能では実現できないものの、JavaScript を使用すると実現できるという機能が幾つか存在します。そのような場合、PyAE(Python) から JavaScript に情報を渡して、JavaScript 内で処理を行う 必要が出てきます。その場合の方法を解説します。
言語間でやりとりできるデータは文字列や数値など一般的なものに限り、フッテージアイテムやコンポジションといった AfterEffects 特有の情報のやりとりはおこなうことができません。
JavaScript → Python
AEのスクリプトエディタ側で
$.setenv("HOGE", "fuga")
こんなコードを実行して、python 側で
from JCGS import DCCTools utilSuite = DCCTools.util.suites().UtilitySuite() ret, result, err = utilSuite.AEGP_ExecuteScript(PyAE.aegp_plugin_id, '$.getenv("HOGE")'.encode('utf-8'), False) print ret print result print err
こうすると result に "fuga" が入ります。
Python → JavaScript
JavaScript のコードとして実行させます。
from JCGS import DCCTools utilSuite = DCCTools.util.suites().UtilitySuite() jscript = ''' spath = "%(path)s".split("|") ] ''' % {'path' : itemPath, } ret, result, err = utilSuite.te.AEGP_ExecuteScript(PyAE.aegp_plugin_id, jscript.encode('utf-8'), False, None, None)