안뇽안뇽!
오늘도 날림 3.0강좌가 찾아왔음
아바타 3.0)기본 강좌 - VRChat 갤러리 (dcinside.com)
앰쌍오지게쉬운 2.0아바타 3.0으로 바꾸기!!!! - VRChat 갤러리 (dcinside.com)
일단 아바타 3.0에서만 가능한 기능일거라 위 두 강좌는 필수야! 이미 아바타3.0이 적용된 아바타가 있으면 상관이 없어
그리고 이 강좌는 Write Defaults를 사용하는 방식으로 진행할거야. VRChat 개발진에서 Write Defaults를 끄는걸 표준으로 삼았기 때문에 이쪽에 문제가 발생하면 Write Defaults를 사용하지 않는 방식으로 구조를 변경해야 할 수도 있어
이번에는 먼저 실 적용샷을 보여줄게
이런식으루 인게임에서 말을 하면 아바타 형태에 변화가 생기는 기능을 소개할거야
사실 이건 3.0나왔을 초기에 스펠을 외워서 특정 기능을 켜는 사람들이 있다! 라는 소문도 돌았던 거라 이미 해외에 더 멋진 강좌가 있을수도 있어
아바다 케다브라! 라고 외치면 데스건이 나간다던가...그런것도 가능하긴할거야
일단 간단한 설명.
Viseme는 쉽게 말하면 립싱크라고 이해하면 됨. VRChat은 Oculus쪽 Viseme 레퍼런스를 따른다고 하니까 관심있는 사람은 읽어봐도 좋아
Viseme Reference | Oculus Developers
VRChat 아바타 3.0 파라메터중에 Viseme라는 파라메터가 있음. 이 파라메터는 마이크를 켜고 말을 하는 즉시 수치가 바뀌기 시작하는데 0부터 14까지 변화해.
0은 묵언이고 그 이후 숫자들부터 의미를 가진다고 보면 됨
바로 이거! 아바타 3.0에서 자동으로 세팅되거나 일일히 손으로 써줘야 하는 그 부분이야
TMI는 여기까지 하고 아래부턴 적용하는 방법에 대해서 설명할거임
1. 애니메이션 생성
일단 이 예제에서는 UTS 쉐이더의 Emmision을 이용해서 헤드셋이 점차적으로 점등하는 머테리얼을 따로 준비했음
Emissive Texture 설정은 이런식으로 구성하면 저런 느낌이 나오게 되는데 포이요미쪽이 아마 더 화려한 효과를 줄 수 있을거야. 파티클같은걸 써도 좋을거고. 난 단순한것밖에 할 줄 몰라서 일단 이정도로 할거야
말을 하고 있지 않을때는 기본 머테리얼이 적용되고 말을 하기 시작하면 이 준비한 머테리얼로 자동으로 바꿔치기 해주는거지. 그럼 On Air표시판처럼 말을 하고 있을때 헤드셋이 저렇게 점등하게 되겠지?
3.0으로 옷장을 만들어보자! (Mesh On/Off 및 쉐이프키 제어) - VRChat 갤러리 (dcinside.com)
애니메이션 파일 만드는건 위에 있는 링크에서 4번 애니메이션 만들기를 참고하길바래. 여기선 어떻게 하는지 움짤로 설명들어갈거임
여기서 60프레임에 키프레임 추가해주는건 말이 끝나고 불이 너무 빨리 꺼져서 애니메이션을 길게 해본거임. 방법이 틀렸을수도 있으니 그런 부분은 감안하고 봐주거나 지적해주면 감사하겠음
일단 이렇게 말을 했을때 사용할 애니메이션이 준비가 끝났음
2. 애니메이터 및 레이어 구성
먼저 Hierarchy에서 아바타를 선택해주고 Inspector에서 Avatar Descriptor에서 FX레이어를 찾아
찾았으면 설정되어있는 Animator를 더블클릭하면 바로 애니메이터 설정창으로 이동하게 됨
여기서 파라메터를 추가할건데
Parameters를 눌러서 Int를 눌러서 새로운 파라메터를 추가해주고
이름은 Viseme로 지어주면 됨. 이 기능은 아바타 자체에 기본으로 들어가있는 파라메터를 끌어다 쓰는 것이기 때문에 아바타 파라메터를 별도로 소모하지 않아도 되서 FX Animator에만 파라메터를 생성해주면 됨
그다음 Layers로 넘어가서 +를 눌러서 Layer를 추가해주고
이름을 적당히 지어준 후 이름 옆에 있는 톱니바퀴를 눌러서 레이어 Weight를 1로 설정해줘
일단 이 강좌에서 레이어 구성은 이렇게 할거야. 응용에 따라 더 복잡해질수도 있고 단순해질수도 있어
요래 해주면 됨. 빨간색 원은 왼클릭 파란색원은 오른클릭이야
No sound에서 Speaking으로 가는 부분은 Viseme 파라메터가 0보다 클때만 바뀌도록 할거야. 그래야 말할때 맨 위 움짤처럼 헤드셋이 빛나겠지?
나같은경우는 ClothMode라는 파라메터도 같이 사용했는데 이건 옷장기능이랑 연동해서 특정 옷을 입었을때만 이 기능이 동작하도록 하기 위해서 사용한거야. 일반적으론 그냥 Viseme만 사용해도 무방해
빨간색으로 쳐져있는 부분은 필수니까 똑같이 해주면 될거야
Speaking state에서 No Sound state로 이동하는건 이런식으로 해주면되. Exit Time이라는건 애니메이션 재생이 몇 %끝났을때 해당 State에서 Exit를 허가하느냐에 대한 수치라 1을 주게 되면 애니메이션 재생이 끝나기 전까진 State의 상태가 바뀌지 않아. 아까 내가 애니메이션을 만들때 60프레임까지 유지하게 해놨던게 재생이 다 끝날때까지는 Speaking 상태가 유지된다는거야.
좀 더 자세한건 유니티 - 매뉴얼: 애니메이션 트랜지션 (unity3d.com) 해당 문서를 참고하는게 좋을거야
암튼 트렌지션까지 설정이 다 끝났으면 Speaking state를 눌러서
모션에 아까 만들었던 애니메이션을 넣어주면 됨. No Sound에는 따로 채워줄 필요가 없음 이다음 아바타를 업로드 하고 인게임에서 마이크를 켜고 말을 해보면
이런식으로 입을 여는 애니메이션과 동시에 헤드셋이 빛나게 될거야!
이건 별도 오브젝트를 띄운다던가 말하는 성조에 따라 다양한 색으로 빛나게 한다던가 응용 방법이 무궁무진하기때문에 이것저것 생각해보는것도 좋을거야