포스트

VRChat - 왁타로

VRChat - 왁타로

우왁굳이 봐주는 타로카드

📀 머리말


우왁굳님을 위한 ‘타로’ 조공 컨텐츠입니다.

타로 복채를 통해 보(골드)를 얻을 수 있고, 최종 목표로 3000보를 모아야 합니다.
자판기를 통해 새로운 타로 카드를 해금할 수 있는 카드팩을 비롯한 여러 아이템을 구매할 수 있습니다.

25년 01일 23일, 방송이 진행됐습니다.
여러 왁타버스 고정멤버 분들과 이세계아이돌을 포함한 버튜버 분들께서 참여해주셨습니다.

💿 참여 / 담당

본 컨텐츠는 VRChat 게임 내에서 진행되었습니다.

해당 컨텐츠에 사용된 VRChat World 내 기능 프로그래밍을 담당했습니다.
또한 방송 진행을 위한 오퍼레이팅, 기능 조작을 담당했습니다.

  • 타로 기능
    • VRCData, VRCJSON을 이용한 타로 데이터 저장 및 처리
    • 코드 기반 카드 애니메이션
  • Unity Overlay Canvas를 이용해 PC 플레이어가 확인 가능한 도감 UI 구현

💿 사용한 툴

Discord를 통해 팀원과 소통했습니다.
Figma를 통해 디자인 작업자 분의 리소스를 공유받고, 일부 수정했습니다.

📀 과정


24년 11월 01일, 프로젝트 제안을 받았습니다.

24년 11월 02일, 프로젝트 팀에 합류하였으며,
24년 12월 - 24년 1월, 약 1달 간 작업했습니다.

지난 ‘고멤 드림팀 - 배팅트레인’ 프로젝트와 ‘24 유콘展’ 프로젝트에서 VRCData (DataToken, DataDictionary/DataList), VRCJSON를 활용해보려는 시도를 해왔는데, 이번 프로젝트에서는 그 경험과 코드를 바탕으로 컨텐츠 데이터 처리 기능을 빠르게 구현했습니다.

💿 과정 : VRCDataVRCJSON의 이용

일반적으로 컨텐츠 내 필요한 데이터가 있다면, 각각 하나의 변수로 표현합니다.
다만 이런 경우 VRChat 컨텐츠 제작에 있어서 아래 두 가지 문제가 생길 수 있습니다.

  1. 변수들의 동기화 시점이 재각각이다. 때문에 특정한 한 시점에 여러 동기화 변수를 동시에 사용하는 것에 어려움이 있을 수 있다.
  2. 각 변수를 인게임에서 조작하기 위해서는, 각 변수마다 인터페이스를 만들어야 한다.

VRCDataVRCJSON을 이용하면 이런 문제를 해결할 수 있습니다.

VRCDataVRCJSON을 이용하면 모든 컨텐츠 내 데이터를 하나의 JSON 형태의 문자열로 만들어 동기화할 수 있습니다.
모든 데이터가 하나의 변수로 표현되기 때문에, 모든 데이터의 동기화 시점은 같아지고, 하나의 인터페이스를 통해 모든 데이터를 조작할 수 있습니다.

💿 과정 : VRCDataVRCJSON의 이용 (구현)

간단한 구현 예시는 아래와 같습니다.

1
public DataDictionary DataDictionary { get; protected set; } = new DataDictionary();

컨텐츠 내 필요한 모든 데이터를 모두 DataDictionarykey/value 형태로 저장하고,

1
2
[UdonSynced, FieldChangeCallback(nameof(SyncedJSON))] private string _syncedJSON = string.Empty;
public string SyncedJSON { get; set; /* ~ */ }

DataDictionaryVRCJSON을 통해 문자열로 만든 후 동기화시킬 문자열 변수를 만들어줍니다.

1
2
3
4
5
public DataList SomeData
{
    get => DataDictionary["SomeData"];
    protected set => DataDictionary["SomeData"] = value;
}

각 데이터는 이런 식으로 프로퍼티를 만들어 접근합니다.

250124_032452

문자열 변수를 Text, InputField 등을 이용하여 런타임 인게임 내에서 조작합니다.

대략적인 큰틀은 이렇고,
실제 구현에서는 JSON 처리 및 문자열 변수 동기화, 기타 부가 기능을 포함한 별도의 WJson 클래스를 만들어 분리했습니다.

📀 후기


💿 후기 : 기획

처음 프로젝트의 기획을 들었을 때, ‘아 이거 방송으로 보고 싶다’는 생각을 했습니다. 평소 왁굳님의 잔잔한 고민 상담 컨텐츠를 좋아하곤 했는데 거기에 타로, 랜덤성과 카드깡이 들어간다면 얼마나 재밌을까? 타로 카드에 들어갈 그림도 그림 작가분들을 모셔 오리지널 일러스트로 들어간다고. 당시 꽃비님과 킬제이님께 갚을 일이 있기도 했고, 기획 자체도 재밌을 것 같아서 흔쾌히 작업하겠다고 했었습니다.

그리고 그 기획대로 방송도 재밌게 나온 것 같습니다. 물론 왁굳님의 미친 입답, 해석과 적절한 타이밍에 재밌는 카드가 잘 나왔기 때문도 있겠지만 (자동 사냥으로 ‘음.. 글쎼..’ 나오는 것과, 마지막 손님이었던 놀란님의 마지막 타로 카드로 놀란님 카드가 나오는 장면은 정말 인상 깊습니다), 기획 자체도 정말 탄탄하고 좋았습니다. 꽃비님과 킬제이님께서 매번 재밌는 기획을 가져오시는데, 그 중 두 프로젝트나 함께 할 수 있어서 좋았습니다. 앞으로 시간과 기회만 있다면 더 많은 프로젝트를 함께하고 싶은데, 이제 슬슬 삶을 정리하고 새로운 시즌의 나를 맞이할 준비를 해야하기에.. 그런 마음을 아쉽지만 잠시 접어두려고 합니다.

💿 후기 : 연출

24년 12월 ~ 25년 1월 동안 개인 일정이 좀 있어서 해당 프로젝트에 많은 시간을 할애하지는 못했습니다. 모든 기능이 완성된 이후, 연출적인 측면에서 좀 더 만져볼 수 있었을 것 같은데, 개인 일정을 소화하느라 기능을 완성하는 것에서 그치게 된 것이 아쉽습니다.

다른 작업자 대비 차별점을 가지기 위해서는 기능뿐만 아니라 연출 역시 잘 만들어야 할 것 같은데, 이런 부분은 정말 센스가 중요한 것 같습니다. 그런 센스를 갈고 닦기 위해서는 연출을 만드는 시도와 경험이 아무래도 중요할텐데, 매번 버그 고치고 기능 완성하는 것에만 급급해서, 연출까지 많이 시간을 투자하지 못하는 것이 아쉽습니다. 매 프로젝트 그래가지고 더 아쉽습니다.

왁타버스 트리거 작업자 분들 중, 연출적인 측면에서 뛰어난 센스를 가지신 분이 ‘킴카멘’님과 ‘메르보’님이라고 생각합니다. 특히 카멘님의 UI 기반 연출 (양치기 소년 게임, 고멤 드림팀 - 주식의 신 등), 르보님의 카메라 기반 연출 (고멤 드림팀 - 불편한 발표, 중간계 긴습 소집 등)은 볼 때 마다 ‘오오-‘ 하게 됩니다. 그런 멋진 연출 센스/감각을 가지고 위해 더 많은 경험을 해봐야겠습니다.

📀 기록


250123_231343 250123_231853 250123_232336 250123_232542 250123_232721 250123_234034 250123_235616 250124_000757 250124_001437 250124_001549 250124_003142 250124_003154 250124_004257 250124_004348 250124_004526 250124_004725 250124_004832 250124_005435 250124_005554 250124_010409 250124_010750 250124_011538 250124_011541 250124_011922 250124_012059 250124_012107 250124_012300 250124_013012 250124_014954 250124_021215 250124_021301 250124_021311 250124_021502 250124_021512 250124_021600 250124_021719 250124_021751 250124_021800 250124_022039 250124_022208 250124_022619 250124_022654 250124_022748 250124_024026 250124_025119 250124_030218 250124_030349 250124_031726 250124_032452 WakTarot_Banner WakTarot_Credit WakTarot_Profile

241106 2200 - 첫 기획 전달 받기

랜덤 타로
타로 카드 어떤 게 나오는지 랜덤

타로 봐줄 때 마다 돈 벌기
돈 벌어서 카드팩 사기

이건 아라포 같은 판넬 UI
포인트 얼마다 벌었는지, 뭘 사는지 등

22장 시작
카드팩 하나에 4장 씩 추가
스프레드 2장 기본 -> 기본 애니메이션 x 카드 배치 위치
애니메이션 카드는 뒷면으로 보이게, 클릭하면 뒤집히고, 앞면인 상태에서 한 번 더 누르면 옆에 크게 3D 오브젝트로 띄워지게
마지막으로 누른 카드가, 다시 누르면 꺼지게
정방향, 역방향도

O O
O
O O

스프레드 5장까지 잠금해제 해도, 2장 3장 4장도 뽑는 버튼 -> 아 이 고민은 이렇게만 뽑을게요 같은 느낌? (??)

카드팩을 사면 새로운 카드 잠금 해제
스프레드 3장, 4장은 한 번에 뽑는 카드 수
자동사냥덱 (스킵 용, 마법의 소라고동 같은 느낌, 10~20개 정도 되는 문장 풀 중에 하나 랜덤 나와서 그게 그냥 점괘, 감다뒤 질문 용)

카드 도감
카드 게임 같은

손님들은 기본적을 100원씩 가지고
타로가 끝나고 만족도 만큼 슬라이더로 조정해서 복채 통에 제출
10원 단위로
확정을 누르면 소지금 추가
가끔 x3 x5 피버타임
피버타임 유무는 손님들은 모르고 왁굳형만 아는

피버타임 유무, 손님 포인트, 왁굳 포인트 등은 스태프가 조정 가능하게
피버타임 때 소리와 함께 UI에 배수 표시 (3초 후 사라지는 애니메이션)

  • 자동사냥 시 10원식 차감
    보상 없음

카드 그 뒤집기 처럼 풀 쫙 깔게 한 다음에
카드 클릭하면 왁굳형 시야 기준으로 카드가 옮겨지고
카드를 뒤집고
카드를 다시 선택하면 크게 UI 띄우고

카드 PAnel 자판기 메쉬 누르면 켜지고
X 버튼 누름녀 꺼지고

카드 중앙에 놓고 로컬 플레이어 바라보게

자동 텍스트도 그냥 중앙에

카드 나올 때 점 본 카드 수 만큼 최대 양이
4장 200원

아이템 설명 오버레이 Like 비소님 방

21일 22일
자동 텍스트도 이미지로 전달받기

HEIROFLIGHTREGULAR

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.