변수와 조건 논리 이해하기¶
이 튜토리얼에서는 변수(Variable) 와 조건 논리(Condition Logic) 의 개념을 배우고,
이를 활용해 프로젝트 내부 흐름을 제어하는 방법을 설명합니다.
VSP의 변수 시스템은 일반적인 프로그래밍 언어와 유사하지만,
프로젝트 전반의 요소를 모두 제어할 수 있을 만큼 강력하게 확장되어 있다는 점이 가장 큰 특징입니다.
📌 1. 변수란 무엇인가?¶
변수는 숫자, 텍스트, 상태 등을 저장해두는 작은 상자입니다.
예시:
- 스트로크 횟수
- 선택지 결과
- 씬 진행 상태
- 누적 점수
- 타이머 값
일반 프로그래밍에서는 단순히 값만 저장하지만,
VSP에서는 변수로 프로젝트 전체를 제어하는 다양한 기능을 수행할 수 있습니다.
📌 2. VSP만의 강력한 변수 시스템¶
VSP의 변수는 데이터 저장 역할을 넘어서
프로젝트 내부 요소에 직접 접근하고 조작할 수 있는 통합 인터페이스입니다.
아래는 VSP에서 변수로 접근 가능한 대표 요소입니다.
🔷 기본적인 변수 (일반 프로그래밍과 동일)¶
- 숫자, 텍스트 변수
- 변수 증가/감소
- 조건 분기 (If / Else)
🔷 ✔ 확장된 변수 입력원 (VSP 전용 기능)¶
변수를 설정할 때 다음 항목에 직접 접근하여 값을 불러올 수 있습니다:
🟦 1) 난수(Random)¶
- 0~100 등 범위를 지정해 무작위 값을 생성
- 확률 기반 이벤트 구현 가능
🟪 2) 상수(Constant)¶
- 항상 동일한 값
- 계산식, 조건 비교에 활용
🟥 3) 축(Axis) 값¶
- 스트로크 장치 입력 (X0/X1 등)
- 슬라이더/스틱과 같은 UI 컨트롤 값
- Live2D 파라미터 값
장치의 움직임을 변수로 읽어 조건 발동이 가능해집니다.
🟧 4) 프로젝트 설정(Project Settings)¶
- 플레이 횟수
- 클리어 횟수
- 실패 횟수 등
프로젝트 진행도에 따라 자동 분기 연출이 가능합니다.
🟩 5) 트랙 / 미디어 정보¶
- 트랙 이름
- 현재 재생 시간
- 미디어 파일 경로·이름
- 오디오 재생 상태
특정 미디어에 따라 조건 분기를 할 수 있습니다.
🟨 6) UI 요소 상태¶
- 버튼 텍스트
- 체크박스 선택 여부
- 슬라이더 값
- UI 보이기/숨기기
변수값에 따라 UI를 실시간으로 변화시키는 고급 연출이 가능합니다.
🟫 7) Live2D 파라미터¶
- 표정·움직임 파라미터 읽기
- 특정 조건에 따라 모션 전환
즉, VSP 변수는 프로젝트 전체의 상태를 읽고 제어하는 중심 기능입니다.
프로그래밍 경험이 있다면 “전역 시스템 API”에 가깝다고 이해할 수 있습니다.
📌 3. 조건 논리란?¶
조건 논리는 변수의 값에 따라 서로 다른 동작을 선택하는 구조입니다.
예시:
StrokeCount >= 5→ 호흡 사운드 재생Choice == 2→ 다른 트랙으로 이동Random(0~100) < 30→ 30% 확률로 특별 씬 실행
📌 4. 조건 논리를 사용할 수 있는 위치¶
- 스크립트 내 If / Else
- 버튼 클릭 이벤트
- UI 표시/숨기기 제어
- 트랙 이동(Jump Track)
- Live2D 표정 제어
- 스트로크 장치 조건 감지
- 특정 높이 유지 감지 등
📌 5. 스크립트 액션 정보¶
스크립트에서 사용할 수 있는 모든 액션은 아래 문서에서 확인할 수 있습니다:
👉 자세한 스크립트 액션 설명:
스크립트
다음 섹션에서는 이 변수 시스템을 실제로 사용해
난수를 이용한 자동 분기를 만들어보겠습니다.
변수와 조건 논리: 난수를 이용한 자동 분기 만들기¶
이 튜토리얼에서는 난수(Random) 와 조건문(Condition Logic),
그리고 지역 변수(Local Variable) 를 이용해
특정 시간에 도달했을 때 자동으로 씬을 무작위로 선택하는 시스템을 구현합니다.
이전 튜토리얼에서 사용한 ‘선택지를 눌러 분기하는 방식’과 달리,
이번에는 사용자 입력 없이 자동으로 분기되는 흐름을 만듭니다.
1️⃣ 지역 변수(Local Variable) 이해하기¶
지역 변수는 해당 스크립트 내에서만 유효한 변수입니다.
✔ 특징¶
- 스크립트 실행 시 생성되고, 종료 시 사라짐
- 다른 스크립트와 충돌하지 않음
- 난수 저장, 수식 계산 등에 적합
2️⃣ 타임라인에 임시 스크립트 배치하기¶
- 좌측 스크립트 패널에서
“드래그하여 빈 스크립트 추가” 를 타임라인으로 드래그 - 원하는 위치(예: 00:10.000)에 배치
- 스크립트를 더블클릭하여 편집 화면을 엽니다

3️⃣ 지역 변수 생성하기¶
- 스크립트 편집 화면 우측의 Variables 섹션으로 이동
- + 버튼 클릭
- 변수 이름을 입력 (예:
RandomValue)

4️⃣ 난수 기반 자동 분기란?¶
특정 시간에 스크립트가 실행되면:
- 0~100 사이의 난수를 생성하고
- 난수 값에 따라 다른 씬으로 이동합니다
예:
- 30% 확률 → 특별 씬
- 70% 확률 → 일반 씬
5️⃣ 난수를 이용한 조건 분기 스크립트 구성¶
📌 1단계: 난수 생성하여 지역 변수에 저장¶
변수 RandomValue 에 0~100 사이의 난수를 대입합니다.

📌 2단계: 조건문 추가하기¶
조건:
RandomValue < 30
- 참 → 특별 씬으로 Jump
- 거짓 → 일반 씬으로 Jump

6️⃣ 전체 흐름 요약¶
- 특정 시점에 스크립트 실행
- 지역 변수 생성
- 난수 생성
- If 조건 판단
- 해당 씬으로 Jump Track
사용자 입력 없이도
자연스러운 자동 분기 구조를 만들 수 있습니다.
✨ 완성¶
이제 다음 기능을 모두 경험했습니다:
- 지역 변수 생성
- 난수(Random) 활용
- 조건문(If / Else)
- Jump Track
- 자동 분기 흐름 구성
이 로직은 게임식 연출, 랜덤 이벤트, 변칙적 흐름 구축에 매우 유용합니다.
➡️ 다음 튜토리얼¶
난수 기반 자동 분기를 완성했다면,
다음 단계에서는 이미지 연동(Images Integration) 을 배워보세요.
👉 이미지 연동