레벨업 연출

Level-Up Burst

캐릭터가 레벨업하는 순간 배너가 튕기듯 커지며 나타나고, 뒤로 빛줄기가 방사형으로 터지는 축하 연출.

다른 이름: 레벨업 배너Level-up celebration레벨업 이펙트
···
html
<div class="lustage"><div class="lurays" id="rays"></div><div class="luhero"></div><div class="lubanner" id="banner"><div class="lubig">LEVEL UP</div><div class="lusmall" id="lvl">Lv. 7 → Lv. 8</div></div></div>
css
.lustage{position:relative;width:100%;height:100%;display:grid;place-items:center;overflow:hidden}
.lurays{position:absolute;width:220%;height:220%;background:conic-gradient(from 0deg, transparent 0 10deg, color-mix(in srgb,var(--accent) 30%,transparent) 12deg, transparent 22deg, transparent 34deg, color-mix(in srgb,var(--accent) 30%,transparent) 36deg, transparent 46deg);opacity:0;transform:scale(0.4) rotate(0deg)}
.luhero{position:absolute;width:clamp(16px,7vmin,26px);height:clamp(16px,7vmin,26px);border-radius:5px;background:var(--accent-3);bottom:16%}
.lubanner{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;transform:scale(0);opacity:0}
.lubig{font:900 clamp(16px,6vmin,28px)/1 inherit;color:var(--accent-2);letter-spacing:.03em;text-shadow:0 2px 10px color-mix(in srgb,var(--accent-2) 45%,transparent)}
.lusmall{font:700 clamp(9px,3vmin,12px) monospace;color:var(--muted)}
js
const rays=document.getElementById('rays');
const banner=document.getElementById('banner');
function burst(){
  rays.style.transition='none';
  rays.style.opacity='0'; rays.style.transform='scale(0.4) rotate(0deg)';
  banner.style.transition='none';
  banner.style.transform='scale(0)'; banner.style.opacity='0';
  requestAnimationFrame(function(){
    rays.style.transition='opacity .3s ease-out, transform 2.2s linear';
    rays.style.opacity='1'; rays.style.transform='scale(1) rotate(60deg)';
    banner.style.transition='transform .55s cubic-bezier(.2,1.8,.3,1), opacity .3s ease-out';
    banner.style.transform='scale(1)'; banner.style.opacity='1';
  });
  setTimeout(function(){ rays.style.transition='opacity .6s ease-in'; rays.style.opacity='0'; }, 1600);
  setTimeout(function(){ banner.style.transition='opacity .4s ease-in, transform .4s ease-in'; banner.style.opacity='0'; banner.style.transform='scale(0.85)'; }, 1800);
}
burst();
setInterval(burst, 3200);

레벨업은 게임에서 몇 안 되는 "확실히 좋은 일이 일어났다"는 순간이라 다른 어떤 UI보다 화려하게 축하해줄 여지가 있다. 배너 텍스트는 작게 시작해 오버슈트(설정값보다 살짝 크게 튀었다가 제자리로) 애니메이션으로 나타나고, 그 뒤로 중심에서 바깥으로 뻗는 빛줄기(레이)가 방사형 conic-gradient나 회전하는 선들로 터진다.

이 연출은 피크엔드 법칙과 맞닿아 있다 — 플레이 세션 전체를 좌우하는 건 평균적인 순간이 아니라 정점(피크)의 기억이고, 레벨업처럼 짧고 강렬한 정점을 자주 만들어주면 세션 전체의 인상이 좋아진다. 그래서 레벨업 연출은 지속시간이 짧아도(1~2초) 강도는 낮추지 않는 게 일반적이다.

다만 레벨업이 너무 잦은 게임(초반 레벨링이 빠른 구간)에서는 매번 화면을 가리는 풀스크린 연출 대신 화면 구석의 작은 배지로 축소하는 등, 빈도에 따라 강도를 조절해야 한다.

언제 쓰나

경험치·레벨 시스템이 있는 RPG 전반. 레벨업이 매우 잦은 구간에서는 강도를 낮춘 축소판을 함께 준비한다.