Skip to main content
LiquidMA
Inspiring
April 19, 2018
Answered

エクスプレッションをご教授願えませんでしょうか

  • April 19, 2018
  • 1 reply
  • 584 views

お世話になります。

エクスプレッションの記述がわからずご教授願いたいのです。

やりたいことは

AとBの2つのレイヤーが絶えず移動しているとします(例えば、wiggle等で)

そのAとBの2点の間を絶えず往復するレイヤーを作りたいのです

Aの場所からBの場所へ、次にBの場所からAの場所へ、とループさせていたいのですが...

現状は

1秒掛けて移動するエクスプレッションをなんとか往復させる記述に変えれないか?試行錯誤中です

宜しくお願い致します。

    This topic has been closed for replies.
    Correct answer Mukaida

    2個のレイヤー間を往復する動作は、下記のエクスプレッションで確認しました。

    ただし、レイヤーを移動した場合の動作は検証していません。

    (レイヤーの名称は変更して下さい)

    var rp=thisComp.layer("レッド 平面 1").transform.position;

    var bp=thisComp.layer("シアン青 平面 1").transform.position;

    var tg=Math.abs(Math.sin(time*Math.PI));

    var x=linear(tg,0,1,rp[0],bp[0]);

    var y=linear(tg,0,1,rp[1],bp[1]);

    [x,y]

    <修正> 1秒間で往復する場合は、Math.PI*2 に変更して下さい。

    var rp=thisComp.layer("レッド 平面 1").transform.position;

    var bp=thisComp.layer("シアン青 平面 1").transform.position;

    var tg=Math.sin(time*Math.PI);

    linear(tg,-1,1,rp,bp);

    *下図は修正前のものです。

    1 reply

    MukaidaCommunity ExpertCorrect answer
    Community Expert
    April 20, 2018

    2個のレイヤー間を往復する動作は、下記のエクスプレッションで確認しました。

    ただし、レイヤーを移動した場合の動作は検証していません。

    (レイヤーの名称は変更して下さい)

    var rp=thisComp.layer("レッド 平面 1").transform.position;

    var bp=thisComp.layer("シアン青 平面 1").transform.position;

    var tg=Math.abs(Math.sin(time*Math.PI));

    var x=linear(tg,0,1,rp[0],bp[0]);

    var y=linear(tg,0,1,rp[1],bp[1]);

    [x,y]

    <修正> 1秒間で往復する場合は、Math.PI*2 に変更して下さい。

    var rp=thisComp.layer("レッド 平面 1").transform.position;

    var bp=thisComp.layer("シアン青 平面 1").transform.position;

    var tg=Math.sin(time*Math.PI);

    linear(tg,-1,1,rp,bp);

    *下図は修正前のものです。

    LiquidMA
    LiquidMAAuthor
    Inspiring
    April 23, 2018

    Mukaida様

    お世話になっております。

    ありがとうございます。解決できました。

    LiquidMA