Skip to main content
Inspiring
March 17, 2024
Answered

選択したキーフレームにスクリプトでイーズをかけたい

  • March 17, 2024
  • 1 reply
  • 354 views

はじめまして。AEスクリプト初学者です。
選択したキーを指定することはできたのですがイーズをかける方法がわかりません。
どうかご教授いただけますと幸いです。
何卒よろしくお願いいたします。

app.project.activeItem.selectedLayers[0].selectedProperties[0].selectedKeys[0];

 

This topic has been closed for replies.
Correct answer stunning_Sunflower16B7

https://ae-scripting.docsforadobe.dev/other/keyframeease.html

によるとKeyframeEaseオブジェクトを作って、プロパティにsetTemporalEaseAtKeyで適用してあげればいいみたいです。

選択したキーフレームに当てるならこんな感じでいいかもしれません。

(function() {
    var comp = app.project.activeItem
    var layer = comp.selectedLayers[0]
    var prop = layer.selectedProperties[0]
    var keyIndex = prop.selectedKeys[0]

    var easeIn = new KeyframeEase(1, 50)
    var easeOut = new KeyframeEase(0.5, 90)

    prop.setInterpolationTypeAtKey(keyIndex,
        KeyframeInterpolationType.BEZIER,
        KeyframeInterpolationType.BEZIER);
        
    prop.setTemporalEaseAtKey(keyIndex,
        [easeIn],
        [easeOut])
})();

 KeyFrameEaseの引数はキーフレームを右クリックして出るメニューのキーフレーム速度の値みたいですので、キーフレームの左右(easeIn,easeOut)それぞれに設定してあげればよいと思います。

1 reply

Participating Frequently
March 17, 2024

https://ae-scripting.docsforadobe.dev/other/keyframeease.html

によるとKeyframeEaseオブジェクトを作って、プロパティにsetTemporalEaseAtKeyで適用してあげればいいみたいです。

選択したキーフレームに当てるならこんな感じでいいかもしれません。

(function() {
    var comp = app.project.activeItem
    var layer = comp.selectedLayers[0]
    var prop = layer.selectedProperties[0]
    var keyIndex = prop.selectedKeys[0]

    var easeIn = new KeyframeEase(1, 50)
    var easeOut = new KeyframeEase(0.5, 90)

    prop.setInterpolationTypeAtKey(keyIndex,
        KeyframeInterpolationType.BEZIER,
        KeyframeInterpolationType.BEZIER);
        
    prop.setTemporalEaseAtKey(keyIndex,
        [easeIn],
        [easeOut])
})();

 KeyFrameEaseの引数はキーフレームを右クリックして出るメニューのキーフレーム速度の値みたいですので、キーフレームの左右(easeIn,easeOut)それぞれに設定してあげればよいと思います。

Inspiring
March 17, 2024

無事動かせました!
setTemporalEaseAtKeyの引数はただの配列じゃだめだったんですね...!
ありがとうございます!!