옷장을 만들기 전에 애니메이션 컨트롤러와 레이어의 구조와 다루는 법을 미리 알려줘야 수월할 것 같아서 글 하나를 할애하려고 한다.
설명의 주가 되는 것은 Animator 창, Animation 창, 애니메이션 컨트롤러, 아바타 Expression Menu와 Expression Parameter이다.
일단 아바타를 클릭하고 인스펙터 창을 보면 뭐가 많다.
우선 우리가 지금 볼 것은 VRC Avatar Descriptor다. 나머지도 이따 볼 거다.
스크롤을 내려보면 또 뭐가 많다. 대부분의 복잡한 설정은 아바타 제작자분이 심혈을 기울여 만들어놓은 값이니 자신있는 게 아니면 가급적 건들지 말고, 우리가 눈여겨볼 것은 Gesture, FX, 그리고 Menu와 Parameters이다.
인스펙터에서 이름이 들어가 있는 부분을 클릭하면 프로젝트 창이 그 파일의 집주소로 데려다 준다. 노란색으로 강조 표시까지 해줘가면서.
저 시공의 폭풍같이 생긴 것들이 애니메이션 컨트롤러인데, 각종 애니메이션들 중 어떤 게 어떻게 작동하는지가 다 들어가 있는 녀석이다.
Gesture는 손모양, FX는 표정과 각종 기능이 들어가 있다.
이 컨트롤러를 확인하고 수정하려면 하이어라키에서 아바타를 다시 선택하고, 인스펙터의 Animator를 골라서 Controller 자리에다 원하는 컨트롤러를 넣자. 맨 오른쪽의 동심원을 선택하면 리스트가 뜨는데, 거기서 검색해서 가져와도 되고, 프로젝트 창에서 드래그해서 저 이름 위에 떨궈도 된다. 우리는 FX 파일을 넣어서 그것을 가지고 놀 것이다.. 대부분의 경우 "아바타 이름_FX" 식으로 되어있다.
겸사겸사 Culling Mode는 Always Animate로 해두면 터무니없는 애니메이션 오류가 나지 않을 것이다.
이제 Animator 창을 열어보자.
혹시 이 창이 안 보인다면 위에 VRChat SDK 있는 자리 근처에 Windows를 눌러서 좌르륵 뜨는 거 아래쪽에 Animations-Animator 창을 선택해서 켜주면 된다.
애니메이터 창은 레이어와 파라미터로 이루어져 있다.
자세한 건 후술하겠지만 쉽게 요약하면 레이어는 사건의 발생, 파라미터는 그 발생조건 같은 거다.
코딩이나 수학 같은거 몰라도 전혀 문제가 없다. 이 글을 쓰는 나도 수포자 출신이다.
먼저 애니메이션 레이어다.
레이어는 Entry, Any State, Exit, 그리고 State들(주황색이랑 회색)으로 이루어진다.
Entry는 맨 처음 상태, 다시 말해 아바타를 처음 로드한 기본 상태다. Entry와 연결된 주황색 State의 상태가 기본이 된다.
Any State는 종합 터미널 같은 거다. 한 State에서 다른 State로 아무런 제약 없이 파라미터 조건만으로 움직일 수 있다.
Exit은 우리에게는 쓸모가 없으니 스킵한다.
참고로 State들의 자리는 아무 상관 없다. 그냥 보기 좋고 예쁘게 해놓는 게 좋은 거다.
State들을 이어주는 화살표들에는 애니메이션이 변경되는 시간(트랜지션 시간), 그리고 파라미터 조건 등이 저장된다.
보통 표정 같은 애니메이션은 0.1초의 트랜지션 시간이 들어가고, 단순 온/오프의 경우 0초로 하는 것이 좋다.
파라미터 지정은 Conditions에서 이루어진다. 사진에 나온 것은 "GestureRight 파라미터가 1과 같은(Equal) 경우 재생한다" 라는 의미.
주황색 화살표는 그냥 태초 상태기 때문에 해당 사항이 없다.
다음은 파라미터다.
파라미터의 쓰임새는 상술했던 것 같고, 파라미터는 Float, Int, Bool(=Boolean), Trigger의 4종류가 있다.
우리가 가장 많이 사용하는 파라미터는 Int와 Bool인데, Bool은 true/false 두가지 조건이기 때문에 단순 온/오프에 쓰이고, Int는 0과 1, 2, 3 등의 자연수로 결정되기 때문의 옷장같이 경우의 수가 3가지 이상인 경우 쓰인다.
이번엔 Animation 창을 보자. 역시 없으면 애니메이터와 마찬가지로 Windows 창에서 찾아서 불러오면 된다.
Preview 버튼을 누르면 말 그대로 애니메이션이 어떤 모습인지 프리뷰를 볼 수 있다.
빨간색 버튼을 누르면 녹화 모드가 되어, 애니메이터 아래에 있는 모든 오브젝트의 모든 변화를 다 기록해놓는다.
실시간 녹화가 아니라 프레임별로 따로 하는 거니까 서두르지 않고 느긋하게 해도 된다.
아까 애니메이션 컨트롤러의 집주소를 찾아간 것과 똑같이 해서 익스프레션 메뉴와 파라미터를 찾아가자.
파라미터는 애니메이터 창에 있는 것과 이름과 종류를 맞춰줘야 한다. Default의 수치가 맨 처음 상태가 될 것이고(Int면 숫자, Bool이면 체크 여부인데, 만일 Int 파라미터에서 디폴트를 1로 해놓으면 애니메이션 재생중인 상태로 아바타가 로드된다.), Saved가 체크되어 있으면 월드를 이동하거나 아바타를 바꿨다 껴도 상태가 디폴트로 돌아가지 않고 유지된다.
다음은 익스프레션 메뉴를 살펴보겠다. 우리가 브챗에서 데스크탑은 R키, VR은 오큘러스 기준 B나 Y를 길게 누르면 나오는 동그란 창에 나오는 거다.
Name은 이름이고, Icon은 버튼 모양이고, Type은 여러가지가 있는데, 제일 기초적인 건 Button, Toggle, 그리고 Sub Menu다.
Button은 눌렀을 때만 작동, Toggle은 누르면 해제할 때까지 지속이다. 파라미터를 지정해놔야 작동한다. 우리가 쓰는 건 거의 버튼보단 토글일 것이다.
Sub Menu는 어떤 기능이 있는 게 아니라, 다른 익스프레션 메뉴를 폴더 같은 느낌으로 안에다 넣는다. 그래서 헷갈리지 말고 파라미터는 None으로 해놓는 게 좋다.
참고로 파라미터와 메뉴 파일은 우클릭한 뒤 이렇게 해서 생성할 수 있다.
Grus(그루스)같은 일부 아바타들은 처음에 이게 공란으로 되어있어서 꾸미려면 직접 만들어 넣어야 하는 경우도 있다.
메뉴가 안 들어가면 기본 이모트가 그 자릴 차지한다.
옷장 강좌를 시작하기에 앞서 조금 부연설명만 하려고 했는데, 쓰다 보니 너무 힘들어서 본방인 옷장 편은 내일 작성하려고 한다. 내일의 내가 다 해주겠지.
'고릴라도 따라할 수 있는 VRChat 유니티 아바타 만들기 실전압축강좌' 카테고리의 다른 글
고릴라도 따라할 수 있는 VRChat 유니티 아바타 만들기 실전압축강좌 #2-2. 옷장 만들기 (2) | 2022.07.28 |
---|---|
고릴라도 따라할 수 있는 VRChat 유니티 아바타 만들기 실전압축강좌 #2-1. ON/OFF 토글 만들기 (0) | 2022.07.26 |
고릴라도 따라할 수 있는 VRChat 유니티 아바타 만들기 실전압축강좌 #1. 프로젝트 만들기부터 아바타 업로드까지 (6) | 2022.07.25 |
고릴라도 따라할 수 있는 VRChat 유니티 아바타 만들기 실전압축강좌 #0. 유니티 설치 (3) | 2022.07.25 |