After Effects CC 2017 (14.0)
After Effects CC 2017(14.0)には、新しいツールへのスクリプトアクセス、コンポジションマーカー、AMEコマンドでキュー、およびGPUアクセラレーションのオプションが追加されました。
このテキストはAdobeフォーラムの投稿を抄訳したものです。原文は以下のURLを参照してください。
https://forums.adobe.com/thread/2230567
スクリプティングによるToolsへのアクセス
新しいapp.project.toolType属性を使用して、ツールパネル内のアクティブなツールの値を取得・設定することができます。読み取り/書き込み属性で、次のいずれかの列挙型のToolType値を返すまたは受け取ります。
下記のサンプルコードは現在のツールをチェックして、もしそれがユニファイド・カメラでない場合は、ユニファイド・カメラに設定します。
// Check the current tool, then set it to Unified Camera Tool (UCT).
{
// Assume a composition is selected in the project.
var comp = app.project.activeItem;
if (comp instanceof CompItem) {
// Add a camera to the current comp. (Requirement for UCT.)
var cameraLayer = comp.layers.addCamera("Test Camera", [comp.width/2, comp.height/2]);
comp.openInViewer();
// If the currently selected tool is not one of the camera tools, set it to UCT.
if (( app.project.toolType != ToolType.Tool_CameraMaya) &&
( app.project.toolType != ToolType.Tool_CameraOrbit ) &&
( app.project.toolType != ToolType.Tool_CameraTrackXY) &&
( app.project.toolType != ToolType.Tool_CameraTrackZ))
app.project.toolType = ToolType.Tool_CameraMaya;
}
}
下記のサンプルは、新しいapp.project.toolTypeアトリビュートを使用し、プロジェクトパネル内で選択されたフッテージアイテムまたはコンポジションから360° コンポジション(環境レイヤーとカメラ)を作成します。
このスクリプトはequirectangular(訳注: 環境マップ用に正距円筒図法で展開されたパノラマ画像)フッテージVRコンポジションの作成を開始するのに役立ちます。
// Create a 360 VR comp from a footage item or comp selected in the Project panel.
var item = app.project.activeItem;
if (item != null && (item.typeName == "Footage" || item.typeName == "Composition")) {
// Create a comp with the footage.
var comp = app.project.items.addComp(item.name, item.width, item.height, item.pixelAspect, item.duration, item.frameRate);
var layers = comp.layers;
var footageLayer = layers.add(item);
//Apply the CC Environment effect and create a camera.
var effect = footageLayer.Effects.addProperty("CC Environment");
var camera = layers.addCamera("360 Camera", [item.width/2, item.height/2]);
comp.openInViewer(); app.project.toolType = ToolType.Tool_CameraMaya;
}
else {
alert("Select a single footage item or composition in the Project panel.");
}
スクリプティングによるコンポジションマーカーへのアクセス
コンポジションマーカーの作成・編集がcomp.markerPropertyアトリビュートによって可能になりました。コンポジションマーカーでのスクリプティングはレイヤーマーカーと同じ機能を有します。MarkerValue object参照
以下のサンプルコードでは、プロジェクトとコンポジションを作成し、2つの異なるプロパティをもつマーカーを作成します。
// comp.markerProperty allows you add markers to a comp.
// It has the same functionality as layer.property("Marker")
{
var currentProj = app.newProject();
var comp = currentProj.items.addComp("mycomp", 1920, 1080, 1.0, 5, 29.97);
var solidLayer = comp.layers.addSolid([1, 1, 1], "mylayer", 1920, 1080, 1.0);
var compMarker = new MarkerValue("This is a comp marker!");
compMarker.duration = 1; compMarker.url = "http://www.adobe.com/aftereffects";
var compMarker2 = new MarkerValue("Another comp marker!");
compMarker2.duration = 1;
comp.markerProperty.setValueAtTime(1, compMarker)
comp.markerProperty.setValueAtTime(3, compMarker2)
}
スクリプティングによるAME(Adobe Media Encoder)のキューへのアクセス
After Effects CC 2015.(13.8)AMEのキューで取り入れられたAMEのキューコマンドが、スクリプト経由でトリガーすることができるようになりました。これにはAdobe Media Encoder CC 2017(11.0)以降が必要になります。
新しいメソッドapp.project.renderQueue.queueInAME(render_immediately_in_AME)はAMEのキューのコマンドを呼び出します。このメソッドは論理値を渡して、AMEにレンダーアイテムをキューをするだけ(false)か、AMEが受け取ったキューのレンダリングを実行するか(true)を伝えます。
AMEがキューアイテムを受け取った際に、最近使用したエンコーディングプリセットが適用されるということに注意してください。もし render_immediately_in_AMEがtrueの場合には、エンコーディング設定を変更する機会はありません。
新しい読み込み専用の論理値アトリビュートapp.project.renderQueue.canQueueInAMEは、After Effectsのレンダーキューアイテムの中にキューされたレンダーアイテムが存在しているかどうかを示します。キューされたアイテムだけがAMEのキューに追加可能です。
以下のサンプルコードでは、レンダーキューにキューされたアイテムがあるかをチェックし、もしあればそれらをAMEのキューに追加しますが、ただちにレンダリングは開始しません。
// Scripting support for Queue in AME.
// Requires Adobe Media Encoder 11.0.
{
if (app.project.renderQueue.canQueueInAME == true)
{
// Send queued items to AME, but do not start rendering.
app.project.renderQueue.queueInAME(false);
}
else {
alert("There are no queued item in the Render Queue.");
}
}
スクリプティングによる利用可能なGPUアクセラレーションオプションへのアクセス
現在使用中のコンピューターでどのGPUアクセラレーションが利用可能かをスクリプティングを経由して取得できるようになりました。新しい読み込み専用のアトリビュート app.availableGPUAccelTypesはgpuAccelTypeの列挙型の配列を返します。
このアトリビュートを app.project.gpuAccelTypeと一緒に使用して Project Settings > Video Rendering and Effects > Useの値を設定します。
以下のサンプルコードは使用中のコンピューターで利用可能なGPUアクセラレーションをチェックし、もしMetalが使用可能であれば設定します。
// app.availableGPUAccelTypes returns GPU acceleration types available on the current system.
// You can use this to check before setting the GPU acceleration type.
{
var newType = GpuAccelType.METAL;
// Before trying to set, check which GPU acceleration types are available on the current system.
var canSet = false;
var currentOptions = app.availableGPUAccelTypes;
for (op in currentOptions) {
if (currentOptions[op] == newType)
canSet = true;
}
if (canSet) {
// Set the GPU acceleration type.
app.project.gpuAccelType = newType
}
else {
alert("Metal is not available on this OS.");
}
}