'2026/08/10'에 해당되는 글 1건

  1. 09:50:21 오브젝트 텐션 익스프레션

키프레임 있을때 포지션 A - B

===================================

// 키프레임이 2개 이상 있을 때만 작동
if (numKeys > 0){
  n = nearestKey(time).index;
  if (key(n).time > time) n--;
  
  if (n > 0){
    t = time - key(n).time;
    // 탄성 그래프 설정 값
    freq = 3.0;     // 출렁이는 속도 (높을수록 빠르게 진동)
    amplitude = 0.1; // 튕기는 크기 (0.1 = 마지막 이동 속도의 10% 만큼 더 튕김)
    decay = 6.0;     // 멈추는 속도 (높을수록 빨리 멈춤)
    
    // 마지막 키프레임 도달 직전의 이동 속도 계산
    v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
    
    // 탄성 공식 적용
    value + v * amplitude * Math.sin(freq * t * 2 * Math.PI) / Math.exp(decay * t);
  } else {
    value;
  }
} else {
  value;
}

========================================================

키프레임 없을때, 포지션에 바로 익스프레션 걸기

// 시작값과 최종 목적지 설정 (X축은 현재 값 유지, Y축만 조절)
startPos = [value[0], 1300]; 
endPos = [value[0], 0];

// 이동에 걸리는 시간 (초 단위)
duration = 0.4; 

t = time - inPoint;

if (t < duration){
  // 지정된 시간 동안 startPos에서 endPos로 일직선 이동
  ease(t, 0, duration, startPos, endPos);
} else {
  // 목적지에 도달한 후 탄성 시작
  t2 = t - duration;
  freq = 3.0;       // 출렁이는 속도
  amplitude = 120;  // 0보다 최대 몇 픽셀이나 더 위로 올라갈지 결정 (- 방향으로 작동)
  decay = 6.0;      // 멈추는 속도
  
  // Y축에만 위아래 진동(Math.cos)을 줍니다.
  yOffset = amplitude * Math.cos(freq * t2 * 2 * Math.PI) / Math.exp(decay * t2);
  
  // 튕기는 모션이 위(-Y 방향)로 먼저 뻗도록 보정
  endPos - [0, yOffset];
}

'■꿀팁 > 에펙 익스프레션' 카테고리의 다른 글

에펙 자동 자막바 익스프레션  (0) 2023.04.13
에펙반복 익스프레션  (0) 2019.03.13
Posted by In4Graphic
이전버튼 1 이전버튼