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
번호 분류 제목 글쓴이 날짜 추천
338420 일반 요번에 나온 카트라이더 어비스 브금 지림 멜론차트 1위급 3 Cotori 2019-12-26 0
338419 일반 부스아바타 드럽게비싸네 4 ㅇㅇ 183.98 2019-12-26 0
338418 일반 섹스 6 ^-^.. 2019-12-26 0
338417 일반 급식들 방학 얼마 안남았네 5 tntnt 2019-12-26 0
338416 일반 높은 포복 6 Byanka 2019-12-26 0
338415 일반 전진무의탁! 6 Byanka 2019-12-26 0
338414 일반 담주부터 급식들 본격적으로 방학이네 1 설백호랑이 2019-12-26 0
338413 질문 그 VR기계 사고싶은데... 11 별별별 223.39 2019-12-26 0
338412 일반 나좀 뚜따해주센 7 츄르 2019-12-26 3
338411 일반 과몰입 3 ㅇㅇ 118.235 2019-12-26 0
338410 일반 하주콘 누가 쓰기시작한거임? 3 츄르 2019-12-26 0
338409 일반 눈밑에가 이렇게대서 2 쯔호오 2019-12-26 0
338408 일반 단기사무 보조하는데 옆자리 미친년들어옴 2 ㅇㅇ 118.218 2019-12-26 0
338407 일반 아바타 미셰 표정지으면 막 빨갛게 올라오는데 이건 머가 문제인가여 11 쯔호오 2019-12-26 0
338406 일반 님들 저 쓰거싶은 콘 생겼으니까 글좀 올려보샴 5 딜런 2019-12-26 0
338405 일반 1월 1일애 머하지 3 밍모 2019-12-26 0
338404 일반 난 조커지망생임 7 헌책 2019-12-26 0
338403 일반 나 성우지망생이야 1 Space 2019-12-26 0
338402 일반 목소리만 좋으면 성우할 수 있는거임? 4 ㅇㅇ 182.231 2019-12-26 0
338401 일반 대가리만 똑 따다 붙이는 식의 뚜따 말고 옷갈아입히는건 8 ㅇㅇ 1.241 2019-12-26 0
338400 일반 일본어 잘하는 사람만 들어오세요 19 딜런 2019-12-26 0
338399 일반 산타는 정말 없는고야? 7 으ㅡ음 2019-12-26 0
338398 일반 우리나라 성우지망생 일케만은데 왜 더빙에서 1인5역 까지나오냨ㅋㅋㅋㅋㅋㅋ 4 ㅇㅇ 118.218 2019-12-25 0
338397 일반 겜 오랜만에 키니까 좋다 2 Feti 2019-12-25 0
338396 일반 이갤에서 치워버려야하는거 1 ㅇㅇ 118.218 2019-12-25 0
338395 일반 님들 말 안들으면 전라도 섬 양식장 보내버린다 3 딜런 2019-12-25 0
338394 일반 직업 : 재벌2세 지망생 5 네로남불 2019-12-25 0
338393 일반 목소리만 좋앗으면 나도 성우지망생인데 6 어린콩 2019-12-25 0
338392 일반 보이드 클럽 넘재밌는거같음 6 OwO 2019-12-25 0
338391 일반 이 겜하면서 처음 듣는 직업 7 면요리좋아함 2019-12-25 2
338390 일반 님들 저 화본역 갔다올게요 4 미라 2019-12-25 3
338389 일반 당장 취업비자따고 가도 일본 씨벌 그좆망시스템 어케적응할려고 ㅋㅋㅋㅋㅋㅋ 3 ㅇㅇ 118.218 2019-12-25 0
338388 일반 저번에 저댄잘하는 사람봣어 2 ㅇㅇ 175.223 2019-12-25 0
338387 일반 아 양키들사이에서 쓰다듬 받는 개이쁜유우코하고싶다 1 ㅇㅇ 118.218 2019-12-25 0
338386 일반 뱔챗 찐따들 사람직업 얕보는 경향이있음 4 ㅇㅇ 223.62 2019-12-25 9
338385 일반 더러운 라무셰 4 세이렊 2019-12-25 0
338384 일반 이거 귀엽지않냐 14 tntnt 2019-12-25 0
338383 일반 이거 귀엽지않냐 tntnt 2019-12-25 0
338382 일반 2%확률로 코우메 배꼽사진 2 고무백 2019-12-25 0
338381 일반 요즘 브알을 안씀 6 네코제타 2019-12-25 0
념글 삭제글 갤러리 랭킹