인터랙션 모션 연구소

figma처럼 직관적인 Rive 빠르게 훑어보기 - 2편 본문

RIVE

figma처럼 직관적인 Rive 빠르게 훑어보기 - 2편

진aㅏ 2025. 2. 5. 22:50

1편에 이어서 오늘은 빠르게 Rive로 구현할 수 있는 가장 간단한 버튼 인터랙션을 만들어 보려고 한다.

버튼이 꺼져있을 때에는 빨간색으로 있다가, 버튼을 클릭하면 노란색으로 변하는 인터랙션이다.

1. 버튼 디자인 만들기 (Design 모드)

 

1️⃣ R 키를 눌러 사각형(Rectangle) 생성한다.
2️⃣ 오른쪽 옵션에서 "Corner" 값을 조정하여 버튼 형태로 변경한다.

3️⃣ T 키를 눌러 텍스트를 써준다.

*인스펙터 창의 Fills and Strokes 옵션에서 컬러를 변경 할 수 있다.

*align을 이용하여 아트보드의 중앙으로 정렬도 시켜주었다.

 


 

Design 탭과 Animate 탭
상태머신 창에는 타임라인을 끌어다 놓고 연결 관계를 설정해줄 수 있다.

 

2. 애니메이션 상태 설정 (Animation 모드 → State Machine)

 

우측 상단에 애니메이션 탭으로 이동하면, 기본적으로 "상태머신 구조"와 "타임라인"이 셋팅된 것을 볼 수 있다.

상태머신을 선택하면 우측에 노란 영역이 표시되고, 그안에 타임라인을 끌어다가 구조를 짤 수 있다.

타임라인을 선택하면 우측에 에프터이펙트처럼 키를 찍을 수 있는 공간이 나타난다.

 

우리는 버튼이 클릭되었을 때(on)와 클릭되지 않았을 때(off)의 두 가지 상태를 만들 것!

1️⃣ 타임라인의 이름을 "off"로 바꾼 후 버튼 컬러 키를 기존 빨간색으로 찍어준다.

2️⃣ 타임라인 하나를 더 추가하여 이름을 "on" 으로 바꾼 후 컬러 키를 노란색으로 찍어준다.

 

인스펙터 창에서 다이아몬드로 되어있는 요소는 모두 키를 찍을 수 있는 요소들이다. 키를 찍으면 타임라인에 키를 볼 수 있다.

 

이렇게 하면 상태머신 하나와 타임라인 두 개의 설정이 끝났다.

이제 두 타임라인의 관계를 상태머신에서 설정해주면 된다.


 

3. 상태머신(State Machine) 설정하기

상태머신에는 기본적으로 Entry → Timeline 구조가 셋팅되어 있다.

좀전에 기본으로 있던 타임라인에 이름을 변경했으므로 OFF 노드가 entry 에 연결되어있을 것이다.

이 뜻은 플레이를 시작하면 바로 off 노드가 실행된다는 뜻이고, 우리는 빨간 버튼만 볼 수 있을 것이다.

 

우리는 여기에 "on"상태의 타임라인을 추가하고, 클릭 시 색이 변하도록 조건을 설정할 것!

 

🔹 상태 추가 및 연결

OFF 노드는 처음부터 셋팅된 타임라인의 이름을 바꿔주었으므로 ON노드만 끌어다 놓아주자

 

우리가 만든 "on" 타임라인을 상태머신 창에 끌어다 놓은 후 OFF노드에서 ON노드로 드래그하면 화살표가 붙은 선이 연결되는 것을 볼 수 있다.

 

이제 실행버튼을 눌러보면 스테이지에 노란 버튼만 보인다. off 상태가 존재하지 않은 것처럼 보이겠지만,

사실은 실행되자마자 off 상태가 빠르게 지나가면서 바로 노란색(ON상태)이 되어버리는 것이다.
하지만, 우리가 원하는 건 "클릭 시에만" 색이 변하는 것이기 때문에 조건(condition)을 설정해주어야 한다.


 

4. 상태 조건 추가하기 (Condition 설정)

버튼이 클릭될 때만 색이 변하려면, 인풋(input)과 조건(condition)이 필요하다.

인풋을 먼저 생성해주고 조건에 인풋을 할당해줄 것이다. 천천히 따라해보자.

 

인풋창에서 제공하는 세가지 데이터 타입

🔹 Boolean 인풋 생성

나는 이번 예제에서 불(Boolean) 데이터를 사용하고 이름은 Click으로 변경해주었다.

Rive에서는 세가지 데이터타입을 제공하는데 그 차이는 다음과 같다.

 

인풋 타입역할특징 & 사용 예시

🔹 Boolean (불리언) true or false 상태를 가짐 - 토글(toggle) 방식의 상태 전환에 사용
- 버튼 On/Off, 스위치 활성화/비활성화 등
🔹 Trigger (트리거) 한 번만 실행되는 이벤트 - 즉시 실행되는 동작에 사용
- 클릭 시 애니메이션 재생, 버튼이 눌릴 때 특정 효과 실행
🔹 Number (넘버) 숫자 값을 가짐 (0, 1, 2...) - 연속적인 값이 필요한 경우 사용
- 슬라이더 값 조정, 프로그레스 바, 속도 조절

 

 

인풋을 만들어야 조건에 인풋을 할당할 수 있다.

 

노드끼리 양방향 조건설정을 할 수 있다.

🔹 조건(Condition) 설정

인풋을 제대로 만들었다면 + 버튼을 눌렀을 때, 우리가 만들었던 불린값이 뜰 것이다.
이렇게 조건 설정까지 마쳤다면 버튼을 한번 더 클릭했을 때 다시 빨간색으로 돌아 올 수 있도록 ON노드에서  OFF노드로도 조건을 추가해주었다.

*entry에서 off로가는 조건은 설정할 필요가 없다. 실행 시 off상태로 계속 있어야하기 때문이다.

 

1️⃣ off → on 화살표를 클릭 → Condition(조건) 탭에서 + 버튼 클릭
2️⃣ 우리가 만든 불리언 인풋 click을 추가하고, true로 설정
3️⃣ on → off 전환 조건도 동일하게 click = true로 설정

 

여기까지 작업해도 실행을 누르면 버튼이 클릭되지 않는다.

버튼을 호버만 해도 색이 변할 것인지, 클릭을 해야만 변할 것인지, 버튼을 호버하다가 영역을 벗어날 때 색이 변할 것인지 등 행동을 정해주지 않았기 때문이다. 

 


 

5. 최종 설정 – 클릭 이벤트(Listener) 추가

버튼이 실제로 클릭되었을 때 동작하도록, 리스너(Listener)를 추가해야 한다.

스테이지에서 버튼이 선택된 채로 Listensers 옆 +버튼을 누르면 자동으로 버튼이 레이어이름 rectangle로 들어온다.

*만약 아무 것도 선택되어있지 않은 상태로 리스너를 하나 만들었다면,  인스펙터 창에서 target을 따로 버튼으로 지정해주면 된다.

 

 

🔹 Rive에서 제공하는 기본 리스너 항목

Pointer Down 마우스 클릭 or 손가락 터치 (눌렀을 때)
Pointer Up 마우스 클릭 해제 or 손가락 떼기
Pointer Enter 마우스 or 손가락이 버튼 영역에 들어올 때
Pointer Exit 마우스 or 손가락이 버튼 영역에서 벗어날 때
Mouse Move 마우스 or 손가락이 영역 내에서 움직일 때
Click 클릭 시 (Pointer Down & Up 조합)

 

우리는 지금 클릭 시 색이 변하는 인터랙션을 만들고 있으므로, Pointer Down을 선택!

아래 set 에는 우리가 만들어둔 click 인풋을 넣어준다.

이제 실행 버튼을 클릭하면, 버튼을 클릭했을 때 색이 변하는 인터랙션이 정상적으로 작동한다!


 

🎬 결과: 클릭 시 색이 변하는 버튼 인터랙션 완성!

 

이제 버튼을 클릭하면 색이 변하는 간단한 인터랙션이 완성되었다.
이 방식으로 다양한 상태 전환과 모션을 추가할 수 있다.

 

오늘 간단한 예제로 하나의 인터랙션이 나오기까지 한바퀴 프로세스를 돌아보았다.

여기서 좀더 다양한 관계 조건들과 타임라인이 생겨날 뿐 큰 순서는 이런식으로 진행된다. 

 

웹 기반 인터랙션 모션 디자인 툴(Web App) RIVE가 더 궁금하면 구독!