Udon

최근 편집일시 :


파일:다른 뜻 아이콘.svg
은(는) 여기로 연결됩니다.
일본 요리에 대한 내용은 우동 문서
우동번 문단을
우동# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.





파일:UdonLogoAlpha_gray.png
1. 개요
2. 특징
2.1. 인터페이스 종류
2.1.1. Udon Graph
2.1.2. UdonSharp
2.1.3. CyanTrigger
2.2. C#과의 차이



1. 개요[편집]


2020년 VRChat Inc.에서 가상현실 플랫폼 VRChat 전용 월드 개발을 상정하여 만들어진 비주얼 프로그래밍 언어. VRChat SDK에 포함된 개발 도구이기 때문에 SDK 라이센스를 따르며 VRChat 플랫폼 내부에서만 영리적 사용이 가능하며 그 이외의 플랫폼에서는 사용이 불가능하다.


2. 특징[편집]


유니티 엔진으로 컨텐츠를 제작하는 가상현실 플랫폼 VRChat에서의 사용을 전제로 만들어진 언어이기 때문에, 어느 정도 차이는 있지만 기본 구조가 유니티 엔진 스크립트 언어인 C\#과 유사하다. C#으로 작성한 스크립트를 Udon으로 번역 가능한 컴파일러 UdonSharp가 공식적으로 제공된다.

본래 2018년 초까지는 VRChat용 컨텐츠에도 C# 스크립트 언어가 사용 가능하였으나 이는 치명적인 보안 이슈를 일으켰고 스크립트 사용은 금지되었다. 이후 제공된 SDK 2.0은 트리거 기반의 극히 초보적인 기능만을 제공하였기에 개발 자유도가 매우 제한적이였다. 이로 인해 VRChat Inc.에서는 20년 4월, C#을 베이스로 하며 보안 이슈에서 자유로운 자체 내부 스크립트 언어를 개발하여 배포하게 된다.

이렇게 최초로 배포하게 된 Udon 인터페이스는 Udon Graph이며, 이는 코드 블럭을 생성하고 해당 블럭들을 줄로 이어 구현하는 비주얼 스크립팅의 모습을 띈다. 이러한 특성상 프로그래밍에 익숙치 않은 사람도 간단한 기능 선에서는 비교적 쉽게 구현이 가능하나, 조금만 복잡해져도 한눈에 보기 어려워지며 기존 C#에 익숙한 제작자들에게는 오히려 더 불편하다는 느낌을 주는 경우가 많았다.

이에 따라 Merlin이라는 유저가 이 불편함을 해소하기 위해 써드파티 컴파일러인 UdonSharp를 제작하였고, 22년 5월자로 해당 유저가 VRChat 팀에 합류하게 되며 해당 프로젝트 또한 VRChat 공식으로 편입되었다. 23년 10월부터는 월드 제작용 SDK 사용시 Udon Graph와 함께 기본으로 내장되어 있으므로 편한 방법을 골라 사용하면 된다.


2.1. 인터페이스 종류[편집]




2.1.1. Udon Graph[편집]


Udon Node Graph
제작
VRChat
공식 문서
#

Udon Graph로 거울 토글을 구현한 그래프
코드 블럭(노드)을 줄(누들)로 이어 구현하는 VRChat의 기본 제공 인터페이스이다.
탭으로 전체 서치, 스페이스 바로 퀵서치, 누들 드랍[1]으로 연관 노드 서치가 가능하며, B+좌클릭으로 Branch[2]를 생성하는 등 간단한 단축키를 지원한다.
자세한 사용 방법은 공식 문서를 참조.


2.1.2. UdonSharp[편집]


UdonSharp (U#)
제작
MerlinVRChat
공식 문서
#

}}}
UdonSharp로 거울 토글을 구현한 코드
C#과 유사하게 기능구현이 가능한 VRChat의 기본 제공 컴파일러이다. U#이라고도 불린다.
상술하였듯이 본래는 유저가 제작한 써드파티 컴파일러였으나 22년도 부로 편입되어 공식화되었다.


2.1.3. CyanTrigger[편집]


CyanTrigger
제작
CyanLaser[3]
공식 문서
#

CyanTrigger로 거울 토글을 구현한 컴포넌트
SDK 2.0 시절의 트리거 시스템과 유사하게 기능구현이 가능한 써드파티 컴파일러이다. GitHub
CyanLaser에서 제작하였으며, 트리거 방식이지만 Udon 기능구현상의 제한은 없다.


2.2. C#과의 차이[편집]


  • List, Stack, Queue를 비롯한 C# 표준 자료구조를 사용할 수 없음. 자료구조를 사용하고 싶다면 직접 구현해야 한다.(#1, #2)
  • 변수 자료형 일부가 추상화되어 있어 GetType() 사용에 오류가 발생할 수 있음.

파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-07 00:03:48에 나무위키 Udon 문서에서 가져왔습니다.

[1] 노드 블럭에서 줄을 끌어와 놓는 행동[2] if문과 같은 역할[3] 월드용 SDK의 기본 내장 기능중 하나인 ClientSim(구 CyanEmu)의 제작자이기도 하다. 해당 기능은 유니티에서 바로 월드 테스트를 가능하게 해준다.