[javascript] GSAP로 구현한 예술 작품과 비주얼 엔터테인먼트

GSAP는 GreenSock Animation Platform의 약자로, 웹 애니메이션 및 인터랙티브 웹 개발에 널리 사용되는 JavaScript 라이브러리입니다. GSAP는 뛰어난 성능과 다양한 기능을 제공하여 웹사이트에 동적인 요소를 추가하고 멋진 애니메이션 효과를 구현하는 데 도움을 줍니다.

이번 포스트에서는 GSAP를 사용하여 예술 작품과 비주얼 엔터테인먼트를 구현하는 몇 가지 예시를 살펴보겠습니다. GSAP의 강력한 기능을 통해 아름다운 움직임과 시각적인 효과를 만들어내는 다양한 예술 작품을 만들어볼 수 있습니다.

1. 원형 파티클 애니메이션

GSAP를 사용하여 원형 파티클 애니메이션을 만들어보겠습니다. 예를 들어, 다중 색상의 작은 원형 파티클들이 움직이고 충돌하며 반사하는 효과를 만들어낼 수 있습니다. GSAP의 TweenMax 라이브러리를 사용하여 각 파티클의 위치, 크기 및 색상 등을 제어할 수 있습니다.

const particles = document.querySelectorAll('.particle');

particles.forEach((particle) => {
  // 움직임 및 충돌 로직 구현
  // ...

  // 애니메이션 효과 설정
  gsap.to(particle, {
    x: newX,
    y: newY,
    duration: 1,
    ease: 'power2.out',
  });
});

이 예시에서는 particle 클래스를 가진 요소들을 선택하고, 각 요소들에 대해 위치 및 크기를 제어하는 애니메이션 효과를 적용합니다. 이를 통해 파티클들이 움직이고 충돌하는 동적인 파티클 애니메이션을 구현할 수 있습니다.

2. 캔버스 그래픽 애니메이션

GSAP는 캔버스 그래픽 애니메이션을 구현하는 데에도 매우 유용합니다. 가령, 다각형의 변을 따라 움직이는 선분이나 도형을 만들어 보겠습니다. GSAP의 MotionPathPlugin을 사용하여 선분 또는 도형의 경로를 지정하고, 애니메이션 효과를 적용할 수 있습니다.

const path = 'M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80';

gsap.to('#shape', {
  motionPath: {
    path,
    align: '#svg-path',
    start: 0,
    end: 1,
    autoRotate: true,
  },
  duration: 3,
  repeat: -1,
  ease: 'power1.inOut',
});

위 예시에서는 SVG 경로를 path 변수에 저장하고, #shape 요소를 이 경로에 따라 움직이도록 설정합니다. 이를 통해 다양한 도형이나 선분을 따라 움직이는 캔버스 그래픽 애니메이션을 구현할 수 있습니다.

3. 그림자 및 색상 애니메이션

GSAP를 사용하면 그림자와 색상에도 애니메이션 효과를 적용할 수 있습니다. 예를 들어, 요소의 그림자를 부드럽게 적용하거나, 배경색이 서서히 변화하는 효과를 만들 수 있습니다.

gsap.to('.element', {
  boxShadow: '0 0 20px rgba(0, 0, 0, 0.5)',
  duration: 1,
});

gsap.to('.element', {
  backgroundColor: '#ff0000',
  duration: 2,
});

위 예시에서는 .element 클래스를 가진 요소의 그림자와 배경색에 대하여 각각 애니메이션 효과를 적용합니다. 이를 통해 요소가 부드럽게 그림자를 얻거나, 서서히 다른 색으로 변화하는 애니메이션 효과를 구현할 수 있습니다.

GSAP는 다양한 예술 작품과 비주얼 엔터테인먼트를 구현하는 데 아주 유용한 도구입니다. 수많은 애니메이션 효과와 기능을 제공하므로, 창의적인 아이디어를 구현할 때 GSAP를 사용해보는 것을 추천합니다.

참고 자료