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
번호 분류 제목 글쓴이 날짜 추천
399482 일반 피자도좋고 스시도좋아 7 ㅇㅇ 218.144 2020-04-19 0
399481 일반 암캐 무빙하는데 고민인게 2 반다이몰 2020-04-19 0
399480 일반 피자먹고싶다 5 ㅁㄹㄴㅌㅁㅈ 2020-04-19 0
399479 일반 브봉이 고민하는게 있어 6 반다이몰 2020-04-19 0
399478 일반 스타킹 신지마셈 21 픽스모델하지마 2020-04-19 0
399477 일반 뭐 20등신 18등신 이런것도 돈받고파는데 8 ㅁㄹㄴㅌㅁㅈ 2020-04-19 0
399476 일반 네코아바타 귀여워서 뚜따하고싶긴한데 돈주고사긴좆같음ㅋㅋ 7 SEGAMI 2020-04-19 0
399475 일반 지듣노 5 EMoTcoN_ 2020-04-19 0
399474 일반 부븡이들 안녕 4 릿삐 2020-04-19 0
399473 일반 암캐련 27 oo 125.129 2020-04-19 0
399472 일반 눈동자 작아지는 표정 있는 아바타들 뭐뭐야? 10 ㅇㅇ 220.87 2020-04-19 0
399471 일반 키스 해주는 쿄코 움짤 2 Dodge. 2020-04-19 1
399470 일반 바이브 1세대 풀트 중고가가 을마나 하나양 5 ㅇㅇ 223.62 2020-04-19 0
399469 일반 혼모노 1 픽스모델하지마 2020-04-19 0
399468 일반 skt 로딩 아직도 좀 기네 ㅇㅇ 211.211 2020-04-19 0
399467 일반 트레이너랑 눈맞은썰 4 픽스모델하지마 2020-04-19 1
399466 일반 길러조 17 oo 125.129 2020-04-19 0
399465 일반 관짝밈으로 아바타 뚜따하고싶다 ㅋㅌㅋ 2 Cotori 2020-04-19 1
399464 일반 아아 나도 브알챗 하고 싶다고!! 픽스모델하지마 2020-04-19 0
399463 일반 양키새끼들 성희롱 미쳤네 3 ㅇㅇ 125.176 2020-04-19 0
399462 일반 존나웃기네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 1 안경굿 2020-04-19 0
399461 일반 이 뚜따 왤케 음탕하냐 6 ㅇㅇ 223.38 2020-04-19 0
399460 일반 여전히 친구들없어서 한두시간하고 끈다 1 반다이몰 2020-04-19 0
399459 일반 subcom neko2.0 뚜따 할만함? 2 ㅇㅇ 14.55 2020-04-19 0
399458 일반 자지빨아주는 친구있음 좋겠다 3 ㅇㅇ 223.38 2020-04-19 0
399457 일반 사실 브알챗은 암캐의 기질을 깨우치도록 만든게 아닐까? 2 픽스모델하지마 2020-04-19 0
399456 일반 나랑 같이 클럽에서 춤 같이 출 브븡이 있서? 8 ㅇㅇ 125.176 2020-04-19 0
399455 일반 본닌쟝 어제양키랑 놀때 존엄 버림 반다이몰 2020-04-19 0
399454 일반 ㅋㅋ 어린이보호구역스피드레이서엄준식 2020-04-18 0
399453 일반 아침부터 댓글읽어드립니다 16 블프 2020-04-18 0
399452 일반 사랑 레전드 3 픽스모델하지마 2020-04-18 0
399451 일반 흑역사 대회 1등 픽스모델하지마 2020-04-18 0
399450 일반 11살 여자아이가 고추털 면도해준 썰 2 JuvenileArthritis 2020-04-18 0
399449 일반 놀러와요 섹스의숲.jpg ㅇㅇ 106.102 2020-04-18 0
399448 일반 옷바꿨는데 이전옷 본이 그대로달려있으면 과부화옴? 3 ㅇㅇ 223.38 2020-04-18 0
399447 일반 이런압타 있으면 좋겟당 1 사탕여우 2020-04-18 0
399446 일반 암캐짓이랑 건담짓 둘다하니까 무빙 연습 좆같음 10 반다이몰 2020-04-18 0
399445 일반 좋은아침 어린이보호구역스피드레이서엄준식 2020-04-18 0
399444 일반 오늘저녁에 들어가야지 4 반다이몰 2020-04-18 0
399443 일반 묵언 풀트 만나면 6 epimehyun 2020-04-18 0
념글 삭제글 갤러리 랭킹