VRChat 마이너 갤러리 저장소

제 목
강좌/정보 월드 제작 강좌)플레이어 추적 - 제작과 원리
글쓴이
조개껍데기
추천
5
댓글
6
원본 글 주소
https://gall.dcinside.com/vr/249653
  • 2019-08-21 23:19:33
							

주의)이번 강좌는 이해하기 많이 힘들 수 있습니다.



 <- 프리팹


프리팹은 PlayerTracking.zip.png 다운 후 .png빼고 사용하자

---------무작정 따라하기------------

이러한 구조로 우선 빈 오브젝트를 만들어준다.


최상위 오브젝트에 canvas 컴포넌트를 추가, 1)Rect Transform의 모든 수치를 0으로 만들고 2)canvas컴포넌트를 비활성화 시킨다.

그 후 3)Render Mode를 Screen Space - Camera로 설정하고 놔둔다. 이 후 절대 컴포넌트를 건들이면 안된다.


하위 오브젝트에 button 컴포넌트를 추가한다. 그 후 애니메이션을 하나 추가해준다.


애니메이션 시간 표시줄 바로 아래에 우클릭하여 Add Animation Event - 그렇게 해서 생긴 흰 밥풀 클릭 - 우측의 function에서 Press()선택


애니메이터에 들어간다. 변수를 하나 추가해주고 체크. Any State와 현재 추가된 애니메이션을 연결한다. (Any State 우클릭후 make transition)

빠져 나가는 시간을 0으로. 조건은 위에 추가한 변수가 true일 때로 설정한다.


다시 하위 오브젝트로 돌아와서 button 컴포넌트의 On Click()에 위 사진과 같이 추가해준다. 수치는 상관은 없지만 저렇게 하자.


상위 오브젝트로 와서 VRC_UI shape, Animation, Box Collider 컴포넌트 추가. Animation, Box Collider 컴포넌트는 꺼두기.


디버그 모드로 들어가서 Canvas의 Plane Distance를 0으로 설정. 그 후 다시 Normal 모드로


빈 애니메이션을 하나 만들어주고 선택후 우측창에서 Debug모드로 그 후 Legacy체크. 다시 Nomral로 돌리고 Warp mode가 Loop로 돼있는지 확인하고


애니메이션 내용은 이렇게 짜준다.


아까 만들어둔 Animation 컴포넌트에 방금 만든 애니메이션을 넣어준다.


이제 다시 하위 오브젝트로 돌아가서 Button 컴포넌트에 사진 처럼 하나 더 추가해준다.


다시 다른 하위 오브젝트를 추가해준다. 이름은 pos로 했고, 이 pos오브젝트는 이제 설정한 좌표대로 플레이어를 따라다닌다. 

사진에서는 0,0,1로 했으니 플레이어의 좌표.Z + 1떨어진 상태로 따라다니는거다.


테스트 목적으로 pos밑에 구체를 하나 추가해봐서 잘 따라오는지 확인해봐라.


이제 다른 오브젝트가 이 오브젝트를 Follow Target 컴포넌트를 이용해 따라다니게 만들면 그게 플레이어를 따라다니게 만들게 된 것이다.

다만 이럴경우 로컬이기 때문에 자신만 오브젝트가 날 따라오는 것처럼 보이고 다른 사람들한테는 안보일 것이다. 이에 대한 해결 방법은

다음 강좌에 계속한다.

--------------원리-----------------


이번 강좌에서 말하는 플레이어 추적이란, 플레이어를 따라다니는 오브젝트를 만드는 것을 말한다.


아바타 제작 같은 경우 아바타의 바디에 넣어두면 같이 따라다니지만, 월드는 그럴 수가 없다.


방법을 생각해보자.


컴포넌트중 follow target 컴포넌트에 target을 비워두면 플레이어를 따라간다. 

그러나 이 방식은 월드의 방장만 따라간다는 점이 있다.

응용하여 send RPC액션을 이용해 방장을 넘겨주면 가능은 하지만 하나의 플레이어 밖에 오브젝트가 못따라간다는 단점이 있다.


그래서 canvas라는 ui컴포넌트를 이용한다. canvas는 플레이어의 카메라 좌표계를 따라다닐 수 있다.

원하는 좌표로 만들기 위해(플레이어의 상대 좌표를 0,0,0으로 만들기 위해) 모든 좌표를 0으로 설정했지만 카메라 좌표계를 따라 다니게 하면 강제적으로 수치가 고정이 된다.

따라서 0으로 전부 바꾸고 우선은 컴포넌트를 꺼둔다.


이제 하위 오브젝트의 애니메이션이 작동하여하위 오브젝트의 button컴포넌트를 작동시키고 (애니메이터 내용을 보면 무한 반복)  

이 컴포넌트에서 canvas의 크기를 조절하는 함수를 호출하여 canvas 컴포넌트를 깨운다.


그 후 상위 오브젝트의 애니메이션을 작동시킨다. 정확히는 애니메이션에서 설정한 상태로 만든다.

이 애니메이션은 canvas의 크기를 0에서 1로 고정 시켜주는 역할을 한다.


정확하진 않지만 canvas에도 충돌 판정이 있어서 box collider를 넣어주고 컴포넌트를 꺼둔다. 그럼 충돌 판정이 없어진다.


이렇게 플레이어를 따라다니는 시스템이 완성되게 된다.


포동포도 2019.08.21 23:20:20
으ㅡ음 2019.08.21 23:24:45
꿀뚤 ?? - dc App 2019.08.21 23:25:22
조개껍데기 사실상 꼼수 이용한건데 udon인지 뭔지 나오면 이런짓 더이상 안해도 되길 바람 2019.08.21 23:26:52
조개껍데기 실수, 프리팹 재업 2019.08.21 23:31:41
ㅇㅇ 으윽 머리가 14.42 2019.08.21 23:41:35
번호 분류 제목 글쓴이 날짜 추천
343059 일반 마음정리할겸 미코나 만들어볼가 7 다히캣 2020-01-05 1
343058 일반 유통기한 3일 지난 요구르트 얼려놨는데 먹어도되냐 3 ㅇㅇ 2020-01-05 0
343057 일반 나 휴머노이드로 바꿔도 팔이 안굽어져 3 나루호도 2020-01-05 0
343056 일반 암컷냄새로 가득찬 갤러리군 2 ㅇㅇ 59.20 2020-01-05 0
343055 일반 이슬톡톡 먹고 취햇음 8 꿀뚤 2020-01-05 0
343054 일반 근데 검색하기도 애매한 그런게있잖아 ㅋㅋㅋ 9 ㅇㅇ 2020-01-05 0
343053 일반 이번달엔 꼭 월드만들기 도전해봐야지 8 OwO 2020-01-05 2
343052 일반 예전에는 진짜 검색 대충하면 정보 잘 나왔는데.. 8 VRChat 2020-01-05 0
343051 일반 레식 유튜브 같은거보면 우!우!우1우!우! 하면서 맞는소리 4 나루호도 2020-01-05 0
343050 일반 부스아바타 업뎃기다리는거 넘 싫다 ㅇㅇ 118.32 2020-01-05 0
343049 일반 유니티배울 뉴비구한다 23 ESFERA 2020-01-05 3
343048 일반 그냥 질문에 대답을 하지마 3 ㅇㅇ 175.223 2020-01-05 1
343047 일반 아니 이제는 아바타가 팔벌리고 안굽혀져 5 나루호도 2020-01-05 0
343046 일반 주량은 약한데 마시고는 싶어서 이슬톡톡이나 호로요이 마시는건데 19 _코니 2020-01-05 0
343045 일반 질문글을 쓰더라도 최소한 노력은하고 썻으면좋겠음 ㅋㅋ 6 ㅇㅇ 58.231 2020-01-05 8
343044 일반 존나기여워 ㅠㅠ 5 아쳐쨩 2020-01-05 0
343043 질문 아바타에 애니메이션 할당한거 다시 지우는 방법 잇어? 4 VRChat 2020-01-05 0
343042 일반 기본 쉐이더하고 큐브쉐이더가있는데 3 나루호도 2020-01-05 0
343041 일반 브이알챗 하루후기 2 컵밥 2020-01-05 0
343040 VRC일기 뉴비 일주일간 입혀본 옷들 기록 8 Bing 2020-01-05 3
343039 일반 2%조아하는애 없냐 29 마카룡 2020-01-05 0
343038 일반 고프로 허리스트랩 최대로 줄엿는데도 자꾸 헐렁거리네 6 づほ 2020-01-05 0
343037 일반 어제 놀로 써본 후기 6 커피존맛탱 2020-01-05 1
343036 일반 월드 낮 밤 바꾸는거 어케함? 4 CountLine 2020-01-05 0
343035 일반 아바타가 투명하네 빙신 유니티년이 9 나루호도 2020-01-05 0
343034 일반 레식 드론파일어디서구함? ㅇㅇ 218.52 2020-01-05 0
343033 일반 콜라좀 작작마셔라 살찌는 원인이다 3 ㅇㅇ 223.38 2020-01-05 0
343032 일반 오늘점심 나도 돈까스 만들어 먹은거 8 흐린바다 2020-01-05 0
343031 일반 풀트vs여행 5 ^-^.. 2020-01-05 0
343030 일반 가끔 퍼블릭에서 일본인 친구랑 놀고있으면 12 태호1 2020-01-05 0
343029 일반 방접속은 해결됬는데 문제가 또있음 3 나루호도 2020-01-05 0
343028 일반 이런건 무슨 쉐이더 써야해 ? 8 ㅇㅇ 121.176 2020-01-05 0
343027 일반 브갤 접는다 .. 3 멚져 2020-01-05 0
343026 일반 이슬톡톡 3병먹고 취해서 잣는데 2 Cotori 2020-01-05 0
343025 일반 이슬톡톡 호로요이 씹게이드링크인데 ㅋㅋ 8 dox 2020-01-05 0
343024 질문 t pose 초기화 해주는 플러그인 주소가 어떻게 되 ? 부스거 7 VRChat 2020-01-05 0
343023 일반 vr챗 기본 홈?이 안가짐 ㅅㅂ 5 나루호도 2020-01-05 0
343022 일반 이슬톡톡 호로요이 특 5 흐린바다 2020-01-05 0
343021 일반 오능 점심 내가 만든 치킨카레라이스! 7 Cotori 2020-01-05 1
343020 질문 이게 무슨뜻임? 8 ㅇㅇ 2020-01-05 0
념글 삭제글 갤러리 랭킹