VRChat 마이너 갤러리 저장소

제 목
일반 FX 애니메이터(Any State) 최적화 방법
글쓴이
고희원
추천
10
댓글
7
원본 글 주소
https://gall.dcinside.com/vr/2878486
  • 2023-03-26 01:24:49
							

어제 다운로드사이즈/텍스처메모리 최적화 방법 게시글을 올리고


FX 애니메이터의 Any State 가 프레임 드랍의 주범이라는 댓글을 달았던 갤러가 있어서


이에 관해서도 이야기를 해볼까 한다.



참고로 해당 게시글은 Unity 엔진의 기본지식이 없다는 것을 전제로 한다.


Unity 엔진의 기본지식이 있는 사람이 VRChat 아바타를 제작한다고 한다면


애초에 Any State 및 Can Transition To Self 의 기능이 무엇인지 정확히 알고 있을테니


내가 밑에서 할 말이 무엇인지 알 것이고 그렇게 했을 것이다.


그래서 글이 매우 길지만 다 중요한 내용이니 


남들한테 "님 아바타보면 랙걸리니 하이드아바타/블락할게요" 소리를 듣고 싶지 않으면 천천히 정독해주길 바란다.





우선 해당 게시글을 보기위해선 Any State와 Can transition To Self 옵션이 뭘 하는 녀석인지를 알아야된다.


Unity 공식 문서에 따르면

Any State는 말그대로 "모든 상태" 라는 뜻을 뜻하며


해당 레이어의 어떤 노드에 State 되어 있던 간에


조건(파라미터)을 바꾸면 그에 만족하는 노드로 State 되게 하는 것임.



Can Transition To Self 는 Any State에 연결된 노드의 트렌지션에서만 나오는 옵션으로


어떤 상태에 있을 때 그 상태에서 동일한 상태로 돌아갈 수 있는지의 유무를 결정함


A 상태인데 A 상태에서 다시 A 상태로 갈 수 있는지의 유무임




텍스트로 하면 이해가 안되니 


아래 사진으로 예시를 들어보겠음

(Action 이 Any State 와 Can Transition To Self 의 예시로 가장 들기 좋아 보여서 준비했으니 참고하면됨)

0cb3c919b58376b660b8f68b12d21a1d7a0198866f

- 적용 사항

/ New State 노드에는 모션이 존재하지 않고 Test 파라미터가 0일때 전이되도록 트랜지션을 설정함

/ OrangeJustice 노드에는 모션이 존재하고 Test 파라미터가 1일때 전이되고 Can Transition To Self 옵션을 활성화 해두었음

/ 둘다 Write Defaults 옵션을 활성화 해놨기에 서로 겹쳐질 일은 없음

/ 사용자 파라미터 및 액션메뉴에도 Test 파라미터를 0 혹은 1로 지정할 수 있도록 토글을 만들어 두었음


위 상태로 Test 파라미터를 1로 만들어보겠음


그러면 위 움짤처럼 캐릭터가 1프레임만 움직이고 움직이지 않음


(이상태로 Test 메뉴를 한번더 누르면 차렷으로 돌아옴)


이처럼 Can Transition to Self 옵션은 해당 노드에서 그 노드로 다시 갈 수 있는지를 확인함


메뉴로 Test 파라미터를 1로 만들었으니


Any State 는 Test 파라미터 값에 의해 계속 동작하게 되어 해당 노드로 State 될것이고


그 때문에 캐릭터는 해당 모션의 1프레임만 계속 재생하게됨 (사실상 1프레임 재생도 아님, 그저 계속 켜질뿐임)



그럼 Can Trasition To Self 옵션을 비활성화 하면 어떻게 될까?



Can Trasition To Self 을 비활성화 하게 되면 


Test 파라미터의 값이 바뀌면서 Any State 노드에서 OrangeJustice 노드로 State 가 전이되게 되고


그 이후 Can Trasition To Self 옵션이 비활성화 되어 있기에 최초 1번만 State가 바뀌게 OrangeJustice 노드의 애니메이션을 재생하게 됨



쉽게 말하면 Any State 가 해당 파라미터 조건에 맞는 노드로 State가 바뀌게 명령을 계속해서 내보내고 있기 때문에


Any State 에 연결된 노드들은 전부 Can Trasition To Self 옵션을 비활성화 해줘야함


최초의 명령만 내리고 파라미터가 변경되는 경우에만 Any State가 동작하여 명령을 수행하도록 해야함





이제 이 글을 본 갤러들은 Any State 와 Can Trasition To Self 옵션의 역할을 알게 되었으니


FX 애니메이터로 돌아와보자


밑 사진은 현재 나의 매쉬변경을 위한 레이어의 화면이다


(노드/State)

0cb3c919b58076b660b8f68b12d21a1d5daa89554465


(트랜지션)

0cb3c919b58176b660b8f68b12d21a1d645af777356c



이처럼 대부분의 사람들은 위 사진처럼


Left/Right Hand 의 레이어와 동일하게 모든 노드를 Any State와 연결해두었을 것이고


MMD 를 위해서 모든 노드의 Write Defaults 를 활성화 해두었을 것이며 (Write Defaults 에 대한 이야기도 조만간 올리겠음)


나같은 경우 Can Transition To Self 옵션을 비활성화 해두었지만 대부분은 체크가 되어있을 것이다.

(애니메이터에서 Any State 과 트랜지션 된 노드에만 해당 옵션이 나옴)



0cb3c919b58676b660b8f68b12d21a1de95eedafeb


그리고 매쉬변경을 위한 애니메이션은 위 사진처럼 대부분 1키프레임으로 동작을 하게 만들어 두엇을 것이다.



해결방법은 Any State와 연결된 모든 노드들의 Can Transition To Self 옵션을 비활성화 해두는 것이다.


위 Action 애니메이터로 예시를 들었다시피 Can Transition To Self 옵션때문에 1키프레임만 재생하게 만들어두니


1키프레임만 존재하는 애니메이션에 Can Transition To Self 옵션을 활성화 해둘 이유도 없다.


옵션을 활성화하면 계속 파라미터에 의해 해당 노드로 State 를 전이시키니 자원만 더 잡아먹는다.




그럼 일부 갤러들은 "Any State 연결을 안하면 해결되는 문제 아님?" 이라고 말할 것이다.


이 의문점은 직접 해보면 알게될 문제이지만 굳이 지금 아바타 옷 잘 바뀌는데 해볼 이유는 못 찾을거 같으니 내가 대신 해보았다.


Any State 를 연결하지 않고 메쉬를 변경하고 싶다는 사람은 밑 사진처럼 해주면된다.

(옷은 3개로 예시를 들겠다)

0cb3c919b58776b660b8f68b12d21a1dec0c56ec5c95


Any State 를 연결했을때와의 차이점은


Entry 단계에서의 상태를 정의 해줘야 하기에 Idle 애니메이션에서 각 애니메이션 노드로 연결하였고


각 애니메이션 노드에서 Exit 로 빠져줘야 애니메이션의 변경이 가능하기때문에


애니메이션에서 Exit 로 가는 트랜지션에 NotEquals 컨디션도 넣어줘야 한다


위처럼 한다면 어떻게 되는지 밑 움짤을 보자


움짤 초반에 각 애니메이션 노드의 트랜지션을 보여주면서


모든 트랜지션의 컨디션을 보여줬음


그리고 옷을 바꾸면 옷이 바로 바뀌는 것이 아닌


Idle 애니메이션 노드를 한번 거치고 바뀌게 된다


그래서 옷이 바로 바뀌지 않고 idle 옷이 잠깐 보이게 된다.




그럼 또 일부 갤러들은 "모든 노드를 다 연결하면 되지 않음?" 라고 말할 수 있는데


맞는 말이다. 모든 노드에 가정할 수 있는 모든 트랜지션과 컨디션을 다 때려박으면된다.


하지만 옷이 3개면 연결해줘야 하는 트랜지션은 2^3 인 8개 이고 옷이 4개면 2^4인 16개 이다.


이 계산법이 맞지는 않지만 아무튼 Any State 의 Can Transition To Self 옵션을 비활성화하면 될 일을 굳이 귀찮게 하고 싶지는 않다.



따라서 이 글을 본 갤러들은


다운로드사이트/텍스처메모리 최적화 방법 글과 더불어 


자신의 아바타를 더욱 쾌적하게 만들어서 많은 사람들과 즐겁게 게임하는 갤러들이 되었으면 좋겠다.


다음에는 Write Default 사용 방법으로 돌아오도록 하겠다.




3줄 요약

- FX 애니메이터의 모든 레이어에 Any State 와 연결된 모든 트랜지션의 Can Transition To Self 옵션을 꺼라

- 안끄면 계속 옷을 실행시키므로 자원을 소비하게 된다.

- 그러기 싫으면 노가다 하자.



푸루링 2023.03.26 01:26:29
레테 나 진짜 이런걸 배우고싶엇어 근대 무슨소린지 1도모르겟다 어카지 2023.03.26 01:26:35
린도르초콜릿 굿 2023.03.26 01:27:56
냥빵빵 개추 2023.03.26 01:29:13
메메 제일 좋은건 옷장을 안넣는게 2023.03.26 01:29:45
민트쟝 모든 노드 알아서 연결해주는 에셋 있어서 난 그거쓰는중이었는데 배워갑니다.... 2023.03.26 01:29:59
조개껍데기 이거 중요함 can transition to self 엄청 무거움 2023.03.26 01:57:38
번호 분류 제목 글쓴이 날짜 추천
2890220 정보 누나가 나 브챗하는거 보고 같이 h파티 가자는데 8 ㅇㅇ 223.39 2023-03-30 14
2889019 일반 브붕이들아 28 비요뜨아님 2023-03-29 15
2888806 일반 2년전에 다니던 회사 경리누나한테 연락옴 8 새이렌 2023-03-29 10
2888552 일반 마..마야는 이제... 퇴물이라고 생각해요... 11 닉언밴 2023-03-29 12
2887897 일반 념글 움짤 딱 이거아님? 8 거미군주 2023-03-29 13
2887653 일반 vr chat 처음해보는 만화 2 .manhwa 7 펄슨 2023-03-29 14
2887092 도와줘 아이트래동공 속도가 너무빨라서 친구가 잠자리 보는거 같다는데 어떡계고침? 17 Rurid 2023-03-29 14
2886149 사진/영상 NTERNET OVERDOSE를 춰봤어요 13 나을 2023-03-28 10
2885022 일반 vrchat 처음해보는 만화.manhwa 14 펄슨 2023-03-28 15
2884758 일반 vrchat로 사라져버린 우리 클장 찾습니다 8 ㅇㅇ 2023-03-28 11
2883101 일반 아빠: 내 딸이 님 귀엽대요ㅋㅋㅋ 6 닉언밴 2023-03-27 12
2880992 일반 페이셜 고인물 움짤찾앗다...gif ㄷㄷㄷㄷ 9 라그나로크 2023-03-27 10
2880187 일반 근데 봇치밈 진짜 뇌절아닌가... 4 ㅇㅇ 124.153 2023-03-26 14
2878807 강좌 Write Defaults 의 존재와 활성화 시 이점, 쓰기 싫을때 방법 8 고희원 2023-03-26 14
> 일반 FX 애니메이터(Any State) 최적화 방법 7 고희원 2023-03-26 10
2877799 일반 "ㅅ..사람을 아프게..하..하는건 나쁘다..고 생각해요...." 9 샤니_ 2023-03-25 14
2876928 제작 [무료]간단한 귀걸이 만들어왔어 10 B0ar 2023-03-25 14
2876212 일반 가...감기는..약을 안먹어도 낫는다고 생각해요... 11 ㅇㅇ 1.219 2023-03-25 16
2876201 일반 "◼..◼◼◼ ◼◼ ◼..◼◼◼ ◼◼◼◼....." 10 ㅇㅇ 118.235 2023-03-25 12
2876121 일반 니들은 여자가 웃기다고 하면 절대 환상가지지 마라 12 ㅇㅇ 14.40 2023-03-25 12
2873939 일반 나...남자가 남자보고 좋..좋아한다느니 하는거 이해사 아...안돼요 13 ㅇㅇ 2023-03-24 13
2872311 병신 씨발년 찾았다 자수해라 29 새이렌 2023-03-23 12
2871223 일반 자기가 여갤러면 개추 ㅋㅋ 22 오피녀 2023-03-23 16
2871112 일반 19 승붕쿤 2023-03-23 14
2869328 일반 테스트 4 ㅇㅇ 223.39 2023-03-22 10
2868770 일반 코유키는 아침 11시부터 휴대폰을 본다 6 키르2 2023-03-22 22
2868749 일반 퀘프로 조커의 탄생.jpg 7 아니그러니까 2023-03-22 24
2868063 일반 브챗 1년차후기 13 ㅇㅇ 118.235 2023-03-22 31
2867039 강좌 퀘 프로 alvr안쓰고 페이셜 하는법 나옴 11 오큘퀘2 2023-03-22 18
2866504 일반 "갈채하라 - ." 20 블프 2023-03-21 34
2865989 일반 8일뉴비가 그려본 화본역 유저들 6 ㅇㅇ 112.160 2023-03-21 31
2865076 일반 오늘은 생일이에오 11 재배맨 2023-03-21 27
2864596 일반 페이셜 세부수치 조절 어디서하냐 12 아니그러니까 2023-03-21 27
2864240 일반 "하아...또 싸우는거야...? 질리지도 않나?♡" 7 ㅇㅇ 2023-03-21 39
2862602 일반 어두워 14 ㅇㅇ 223.62 2023-03-20 15
2861714 일반 7일뉴비가 그려본 화본역 유저들 10 ㅇㅇ 112.160 2023-03-20 40
2858162 이벤트 [노래자랑] 힙합안좋아한대.. 24 하앵 2023-03-19 11
2858003 강좌 뉴비도 할수있다! 수영복 들어올릴때 따라 올라갔다 내려오는 가슴 만들기 15 랸유리 2023-03-19 15
2854855 강좌 [강좌] MMD4Mecanim을 이용하여 MMD 모션을 가져오는법 8 라비와 2023-03-17 10
2854400 일반 여긴 여자들밖에 없어서 생리날이면 념글보내준다던데 13 Hanon_ 2023-03-17 15
념글 삭제글 갤러리 랭킹