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
번호 분류 제목 글쓴이 날짜 추천
338739 일반 지금 전립선 마사지중이야 2 ㅇㅇ 106.102 2019-12-26 0
338738 일반 넷상관계는 뭔가 귀찮음 맥두 2019-12-26 0
338737 일반 또 30분 아직 안자? 4 잉두 2019-12-26 0
338736 일반 셋팅 잘아시는 분들에게 질문좀 드리겠습니다. 2 뉴비입니다잉.. 39.116 2019-12-26 0
338735 일반 놀아줘ㅠ 8 긷어 2019-12-26 0
338734 일반 인형 고치려구 바느질 하는중 6 마카룡 2019-12-26 0
338733 일반 일본인들 모이는 월드가 제일 병신인듯 1 ㅇㅇ 1.241 2019-12-26 0
338732 일반 아ㅋㅋ이새끼 못알아듣는 줄 아네 ㅇㅇ 175.223 2019-12-26 0
338731 일반 바느질로 봉제인형고치는중 마카룡 2019-12-26 0
338730 일반 놀이공원 가고싶어 5 다히캣 2019-12-26 0
338729 일반 앰생열차 출발합니다 뿌뿌~ 1 k2 59.30 2019-12-26 0
338728 일반 울지마 애드라 3 헌책 2019-12-26 0
338727 일반 ㅋㅋ 심심해서 셀프 추방 투표 4 k2 59.30 2019-12-26 0
338726 일반 30분단위로 쓰는글 2 잉두 2019-12-26 0
338725 일반 영어쓰는 사촌이 하눈 이야기 촤대한 이해하려고 하는 중 ㅇㅇ 110.70 2019-12-26 0
338724 일반 아무도 없넹... 1 긷어 2019-12-26 0
338723 일반 오늘도 평화로운 평화브갤 김한설 2019-12-26 0
338722 일반 바이브 질문 5 ddari 2019-12-26 0
338721 일반 망각의 낙엽이 져도 1 ㅇㅇ 61.79 2019-12-26 0
338720 일반 외국인들이 캣로코 뜯는건 영상 올리는데 ㅇㅅㅇ! 112.155 2019-12-26 0
338719 일반 님들 님들 2시라구 2 잉두 2019-12-26 0
338718 일반 존나심심하다진짜.. 2 꿀뚤 2019-12-26 0
338717 일반 H방 풀트 아니어도 받아주네? 3 ㅇㅇ 117.111 2019-12-26 0
338716 일반 자기 전에 노래 듣고 자 Bing 2019-12-26 0
338715 일반 굳밤 5 tntnt 2019-12-26 0
338714 일반 이왕 안잘꺼면 노라줘라 11 잉두 2019-12-26 0
338713 일반 25일 크리스마스 기념 vrchat 정모 사진 4 ㅇㅇ 117.111 2019-12-26 26
338712 일반 내 인생음악 5 ㅇㅇ 211.36 2019-12-26 5
338711 일반 왜 안잠? 6 잉두 2019-12-26 0
338710 일반 나만 새해에 현타옴? 2 solis_ 2019-12-26 0
338709 일반 님들 새해에도 VRC 하는거 아니져? 5 체스첵스 2019-12-26 0
338708 일반 친창에 미셰 제작자 신아바타 쓰는 사람이 잇네 4 계절을안고서 2019-12-26 0
338707 일반 안내원앵은 부업으로 도우미양 할듯 1 Space 2019-12-26 0
338706 일반 머야 어디갓서 4 면요리좋아함 2019-12-26 0
338705 VRC일기 부븡이 MMD방 첨 갓다 4 Bing 2019-12-26 1
338704 일반 아 고양이 홋포 살까 3 ㅇㅇ 121.180 2019-12-26 0
338703 일반 라무원 5 레레땅 2019-12-26 0
338702 일반 현타온다 22 Byanka 2019-12-26 0
338701 일반 얼리버드가 되기 위해 일찍자도록하자 11 잉두 2019-12-26 0
338700 일반 화본역 원주민새끼들이 좆같은 이유 13 qaz 211.117 2019-12-26 18
념글 삭제글 갤러리 랭킹