VRChat 마이너 갤러리 저장소

제 목
강좌/정보 월드 제작 강좌)Udon 강좌 - 1 온오프 물체 만들기
글쓴이
조개껍데기
추천
11
댓글
6
원본 글 주소
https://gall.dcinside.com/vr/337377
  • 2019-12-23 18:00:09
							

현재 이 강좌는 알파 버전의 Udon을 기준으로 작성하였기에 출시 후 변경될 수 있음!


Udon이 최근에 알파 테스트가 풀렸다. 여기서 Udon이란, 기존의 VRC_Trigger을 대체하는 월드 트리거 시스템이다.

막 버튼을 누르면 뭔가 일어나고 특정 구간에 가면 뭔가 일어나는 그런거를 이젠 우동으로 만들 수 있다.


다만 기존의 VRC_Trigger와는 달리 우동은 프로그래밍적 지식이 조금 필요하다.. 

이 부분은 어려울 수 있으니 암기보단 최대한 이해하는 식으로 하자.


초보기준으로 설명하긴 했으나 어려울 수도 있다.


빨간 버튼이 있고, 앞에 거울이 있다.(SDK오류인지 거울이 에러남) 버튼을 누르면 거울을 끄게 만들게 해보자.


버튼을 누르고 Add Component를 눌러 Udon Behaviour를 추가해주자.

프로그램 소스에 아무 것도 없다. New Program을 눌러보자.

그럼 뭔가 생겼다. 눌러보면 생긴 위치가 나온다.. Open Udon Graph버튼을 눌러보자.


공허한 창이 하나 뜬다. 상단의 Scene을 누르면 다시 편집화면으로 바뀌고 Udon프로그램이 있는 물체를 선택 후 Udon Graph를 누르면 이런 우동창이 뜬다.


우측 상단에 Add Node버튼을 눌러보자.


그럼 Nodes라는 리스트가 뜨는데, 각자 좀 설명을 하자면

Events - 조건 (특정 행동들 ex:클릭, 콜라이더와 충돌, 주기적으로 업데이트등)

Special - 여러 문법 (조건문, 반복문등 프로그래밍 문법 같은)

Types - 타입 (컴포넌트)

Behaviour - 우동 컴포넌트 제어관련

System - 기본 변수들(정수,실수,부울)

UnityEngine - 유니티 내장 컴포넌트 관련?

VRCSDK3 - 구 VRCSDK 기능들 일부?


우리는 '버튼을 눌렀을 때'라는 조건을 찾아야한다. Events에 들어가보자.


여러 조건들이 나온다. 예전 VRC_Trigger에서 봤던 친숙한 것들 일 것이다.


버튼을 누른걸 감지하기 위해 Interact를 추가해주자. 귀찮으면 위에 검색창에서 찾자.


Interact노드가 추가 되었다. 이제 거울을 끄게 하기위해 뭔가를 추가해야한다. 


다시 Add Node를 누르고 GameObject.SetActive라는걸 찾아서 넣자. 그럼 위 사진 처럼 하나 더 노드가 생긴다.


Active노드에 Value를 체크하면 물체를 켜는 것이고 체크 해제시 물체를 끄는 게 될 것이다.


Interact쪽의 화살표를 누른채 Set Active쪽 화살표로 연결해보자. 연결이 된다.


문제가 있다. 지금 이 노드들은 거울은 끄는 게 아닌 버튼을 눌렀을 경우 버튼이 꺼진다.

따라서 instance쪽에 뭔가를 또 연결해야한다.



Variable GameObject를 추가하자. GameObject라는 걸 담을 수 있는 변수를 만드는 것이라 보면 된다.

(변수:무언가를 담을 수 있는 저장 공간이라고 보면 된다.)


추가하고 나서 name은 원하는대로 짓고, public을 체크해보자.

이름은 target으로 짓겠다.


public체크를 하고나면  Button의 우동 컴포넌트에 설정할 수 있는 공간이 생긴다! 

여기에 끄고 켤 물체를 추가해보자. (하이러키에서 끌어오면 된다.)


이 강좌에선 저곳에 거울을 넣을 것이다.

이제 저 target변수를 Set Active쪽의 instance쪽에 연결하기 위해 Get Variable노드를 추가해주고 연결하자.


이래도 문제가 있다.. 이 노드들의 경우 버튼을 누르면 무조건 거울이 꺼지기만 하고 켜지진 않을 것이다.


이 방법을 해결해야한다. 저기 Active노드의 value쪽에 뭔가를 연결하면 되지 않을까?


뭔가 갑자기 많아 진 것 처럼 보일텐데, 사진에 나온 숫자 순서대로 하나하나 설명하겠다.



1.먼저 Bool타입 변수를 하나 만들어준다. 이름은 switch로 했다. Bool타입은 참/거짓을 저장하는 타입이다.

외부에 노출시키진 않을거니 아까 만든 target 변수와는 달리 public은 체크하지 않는다.


2.switch변수를 하나 가져온다.


3.Unary Negation노드는 연결한 변수의 상태를 반전 시켜준다. 즉 switch변수와 연결했으므로 현재 출력에는 switch변수의 반대를 상태를 반환한다.

(switch는 bool타입 이므로 참이면 거짓, 거짓이면 참)


4.Set Variable노드를 이용해 switch변수를 Unary Negation노드에서 나온대로 설정해준다.

Set Variable노드 역시 조건 Interact와 연결되어야하므로 아까만든 active노드 옆에 연결.



완성이다. 

테스트 해보고 싶으면 Interact조건대신 mouse down조건을 써서 유니티에서 실행하여 버튼을 눌러보자.


AO1W0U7bMBT9lcrPceXYjmNX4mEbDKFJbBLQl6mqbOemyxYSlDiwqvTL9rBP2i/MpS0bTUBVB4JNU6sqqe3k3HPPPff++PZ9hi513gAafJyhtMnzY33ub9BQV5k2OYzPisxND4pJVsChX3pvPoN1KEBNlvhtQFIlI02xYtJgrhOFDSiFaUKVZLHlANRvvijrzGVlgQYz9BUNcBiJPgnQ1F/S2F/OA1SUCZwd7dceCPInfn1HAUrz8mq1NlruHC4w1zegmwXAJazhMpIZyora6cLC0T4aLB5euyorJqtlhObBLsdOprWD8/7JzZ9B77y2ZZVnJugNoap9cHu8TxafoPemyV1TwV4Bjat0HvQ+NCbP7DuYnpZfoNgzcawjG4lQMQ5Eqmunqwm4P8P1uixz0MXjAjut/CteHqy3Oq93xYXmo8XBLq0vIa8Q32pc2oTTiFMcxwYwh8hgI2yMY5JaLmlIRRS3NR5ScitxKf9LvL7KnP30j2npheN6ijxu5fitEuvsIv3x+ATcK+uySxjfLb717bD0JbguxFgSwSIpMOMiwZyEgCVQjY0kDKQNlVHywUJU7VaTRiFJEkqxNYZhzrnAKlIxVlYyH7RVCVfXxD+VGasFVSlOScwxN94KdBrFGKQWBLhSJpJ+491SRoRLmaREYTCphyxshHUkBJZJImXKjZXxzZnnKvh2pg4uoXDjo8JBpX9r9IwxIjgLMZOeIk59xs3iBwgTkoKwVoiORs/l/dxvULVVdjep2kR/CG68tvNb7NvkuAM7DddDCmnb9+Nb9our2U4utymDB7mU/C8nc6txoEXmHXfzxlde+MlaV9NjmOgFUff43+YsQhQzkoHCViqKeRJT7MvCSzmKIZVSCWU65u2Q8xX7vD2J7GRsj2NZLZK6FLeVhbZC5oqunadLccFWTD5J2M8uzZ0bxWj+Ew==


위에 문자를 복사하고 우동 노드에서 붙여넣기하면 위 사진대로 나온다.


예전 월드 강좌들과는 달리 트리거 설명은 이런식으로 최종 완성 사진을 보여주는 게 낫겠다..


조개껍데기 미리 작성 후 정보글 시트에는 Udon출시 후 추가 예정 2019.12.23 18:00:58
GㅡM 우동 추 2019.12.23 18:03:43
itoar 우동추 - dc App 175.223 2019.12.23 18:07:07
Byanka 우동추 - dc App 2019.12.23 19:11:24
ㅇㅇ 거울하나 껐다키는게 이렇게 불-편해짐 2019.12.23 19:16:55
ㅇㅇ 우동추 - dc App 211.246 2019.12.23 21:18:56
번호 분류 제목 글쓴이 날짜 추천
338120 일반 브갤 만화 7 ㅇㅇ 182.230 2019-12-25 13
338036 일반 크리스마스 21 다히캣 2019-12-25 11
337684 일반 월드 거울 논란 해결방법 13 으ㅡ음 2019-12-24 21
337605 일반 안내원 표정 업데이트 6 빅몬 2019-12-24 9
337461 일반 아 ㅋㅋㅋㅋ하드정리하다가 존나웃긴짤찾음 8 블프 2019-12-24 14
337435 일반 시발 갤에 남남과몰입 게이새끼들 10 ㅇㅇ 117.111 2019-12-23 14
> 강좌/정보 월드 제작 강좌)Udon 강좌 - 1 온오프 물체 만들기 6 조개껍데기 2019-12-23 11
337370 일반 재팬슈라인 접속자 비교 - feat.거울 20 ITOAR 218.158 2019-12-23 14
337174 강좌/정보 크로노스 눈물 이식하기 5 ㅇㅇ 122.252 2019-12-23 12
337131 일반 11 ㅇㅇ 175.223 2019-12-23 16
336778 일반 킹갓황 소아온... 이번 주 뼈 때리는 폭격 7 ㅇㅇ 220.122 2019-12-22 20
336697 일반 [ 24-25 일 크리스마스 파티 ? ] 형들 월드 완성했어... 40 정말모르겠다 2019-12-22 15
336302 일반 씹덕새끼들이 착각하는것 20 ㅇㅇ 223.33 2019-12-21 16
336282 강좌/정보 아래 볼 때 아바타 입 벌리는 오류 수정법 5 조개껍데기 2019-12-21 15
336173 월드소개 Happy Town 월드 많이 놀러 와주세요! 10 달콤 61.72 2019-12-21 12
336160 일반 아 시발 브알챗 사진 찍은거 내 카톡으로 보낸다는게 직장톡에 보냄ㅁ 27 Cotori 2019-12-20 17
336116 일반 아바타 강좌X - 치마, 팬티 벗기 16 ITOAR 218.158 2019-12-20 16
336086 일반 브이알챗 2년간의 여정 5 엘렝 2019-12-20 18
335915 일반 이 아바타 규약 미쳤노 ㅋㅋㅋ 14 김꽁초 2019-12-20 10
335825 일반 유우코 공유 받고싶으면 6 ㅇㅇ 223.39 2019-12-20 14
335565 일반 좆병신새끼들 유료아바타 퍼블릭까지고 몸비틀고있네ㅋㅋ 4 ㅇㅇ 223.39 2019-12-19 12
335440 일반 머-선배로서 브랄챗 개꿀팁 드림 15 ITOAR 118.42 2019-12-19 15
335428 일반 브붕이가 우웩토 싫어하는이유들 적어옴 이게 틀리면 욕쳐박으셈 3 ㅇㅇ 118.218 2019-12-19 10
335033 일반 유우코 올린 그새끼 대놓고 갤질하는것도 좆같음 8 ㅇㅇ 114.206 2019-12-18 13
335019 일반 아 시발 ㅋㅋ 진짜 존나 역겹네 17 ppp 2019-12-18 11
334954 일반 ㅋㅋ 불법 공유니 뭐니 겜자체에서 인식이 걍 없는거 같음 8 으ㅡ음 2019-12-18 21
334865 일반 흰딱들무서움 11 에페멜라 2019-12-18 17
334368 일반 자작 월드 통해서 정기적으로 VR수면 모임회를 가질 예정인데 10 ㅇㅇ 125.180 2019-12-17 10
334283 일반 포이요미 그림자 적용할때 참고해야할것. 4 _YUJIN_ 2019-12-16 12
334195 일반 어떤새끼가 내 카드로 20만원어치 해외 결제했어 15 정말모르겠다 2019-12-16 12
333260 일반 클린 브갤하는 방법 5 ㅇㅇ 180.65 2019-12-15 12
333156 일반 사용 언어로 VRC 병신구분가능 8 네로남불 2019-12-14 10
333147 일반 뉴비 교류회 종료 13 mc 2019-12-14 11
333104 일반 피시방에서 브붕이 찾았다... 9 피케 2019-12-14 11
332942 일반 늒녜 교류회 후기 10 ㅇㅇ 175.195 2019-12-14 11
332443 일반 vr챗 정모하다가 더 친해진 형들이랑 찰칵! 17 ㅇㅇ 110.70 2019-12-13 19
332437 일반 제 1회 힙합 교류회 종료 8 묵언소녀 2019-12-13 12
331816 일반 팬티 모음...jpg 9 ㅇㅇ 175.223 2019-12-12 19
331703 일반 " 야, 유우코 " 13 ㅇㅇ 223.62 2019-12-12 12
331503 일반 뉴비가 브붕쿤에게 도움 요청하는 만화 40 ㅇㅇ 119.193 2019-12-11 23
념글 삭제글 갤러리 랭킹