Skip to content

Animation KO

wjddusrb03 edited this page Mar 29, 2026 · 1 revision

애니메이션

DisplayAPI는 12종 이징 함수와 8종 프리셋 애니메이션을 지원하는 키프레임 기반 애니메이션 엔진을 포함합니다.

프리셋 애니메이션

펄스 (크기 맥동)

DisplayAPI.animate(display).pulse(0.8f, 1.5f, 30).loop(true).play();
//                              최소크기  최대크기  틱

회전

DisplayAPI.animate(display).spin(AnimationBuilder.Axis.Y, 40).loop(true).play();
//                                                축    틱
// 축 옵션: X, Y, Z

바운스

DisplayAPI.animate(display).bounce(0.3f, 20).loop(true).play();
//                               높이   틱

둥둥 떠다니기

DisplayAPI.animate(display).floating(0.3f, 40).loop(true).play();
//                                진폭    틱

페이드 인 (TextDisplay 전용)

DisplayAPI.animate(display).fadeIn(20).play();

페이드 아웃 (TextDisplay 전용)

DisplayAPI.animate(display).fadeOut(20).play();

커지며 등장

DisplayAPI.animate(display).growIn(1.0f, 20).play();
//                               목표크기  틱

흔들림

DisplayAPI.animate(display).shake(0.15f, 20).play();
//                              강도    틱

커스텀 키프레임 애니메이션

완전한 제어가 필요하면 키프레임 API를 사용하세요:

DisplayAPI.animate(display)
    .keyframe(Keyframe.at(0).scale(1f).translation(0, 0, 0))
    .keyframe(Keyframe.at(10).scale(1.5f).translation(0, 0.5f, 0))
    .keyframe(Keyframe.at(20).scale(1f).translation(0, 0, 0))
    .easing(Easing.EASE_IN_OUT)
    .loop(true)
    .play();

키프레임 속성

Keyframe.at(tick)                       // 틱 위치
    .scale(float)                       // 균일 크기
    .scale(x, y, z)                     // 비균일 크기
    .translation(x, y, z)              // 위치 오프셋
    .rotationX(degrees)                // X축 회전 (도)
    .rotationY(degrees)                // Y축 회전 (도)
    .rotationZ(degrees)                // Z축 회전 (도)
    .opacity(int)                       // 텍스트 투명도 (0-255)

애니메이션 제어

// play()는 DisplayAnimation 컨트롤러를 반환
DisplayAnimation anim = DisplayAPI.animate(display)
    .pulse(0.8f, 1.5f, 30)
    .loop(true)
    .play();

// 나중에 정지
anim.stop();

애니메이션 조합

같은 디스플레이에 여러 애니메이션을 동시에 실행할 수 있습니다:

SpawnedDisplay item = DisplayAPI.item(location)
    .item(new ItemStack(Material.NETHER_STAR))
    .spawn();

// 떠다니기 + 회전 동시 적용
DisplayAPI.animate(item).floating(0.3f, 40).loop(true).play();
DisplayAPI.animate(item).spin(AnimationBuilder.Axis.Y, 60).loop(true).play();

이징 함수

자세한 내용: Easing-Functions-KO - 12종 이징 곡선 설명

Clone this wiki locally