目次

  1. 概要
  2. JavaScript → Python
  3. Python → JavaScript

概要

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)