디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[정보] 월드 개발에 관한 개인적인 메모

S_D__T_D갤로그로 이동합니다. 2021.08.10 20:55:37
조회 1828 추천 8 댓글 13
														

viewimage.php?id=3baf&no=24b0d769e1d32ca73deb86fa11d02831d16706cea37200d6da918d798573dc663d577a6c5b080770f9dcbe92c4127a2b6878382eb7f1418bea2fa50958


- Udon 그래프는 좆병신

수식 같은거 계산할 때 엄청나게 불편함, 그래프 넣을 공간이 너무 작음, 어차피 C로 생각해서 그래프로 그려야함, 시간적으로 미친듯이 손해임

그래도 코딩에 관해서 아예 모르는 사람들에게는 어떨지 모름

적어도 나한테는 좆병신





- Udon Sharp (U#) 쓰자

예전엔 Illegal byte 에러 쥰내게 떳었는데 요즘은 또 안 그래서 월드 개발은 이쪽이 훨씬 나음

혹시라도 Illegal byte 어쩌구 하고 뜨면 저장된 경로에 한글 있는지 확인해보자 그래도 안되면 모름





- U#쓰면 Unity C#하고 별반 차이 없음

실제 유니티에서 쓰는 형식으로 써도 크게 문제는 없음. 다만 VRC에서 지원하지 않는게 조금 있으니 그 부분은 미리 Udon에 존재하는지 아닌지 잘 알고 해야할 것





- U#으로 어케하지 씨발


솔직히 유니티로 게임 개발 같은거 좆도 해본적 없으니까 C#같은거 몰랐는데 사실 쥰내 쉽네 C 할줄 알면 솔직히 월드 개발 정도의 C#에는 활용 충분히 가능함 C로 C++로 적어도 일단 움직이드라


기초적인 막 WASD 이동, 카메라 이동, 이딴거 안 넣어도 되니까 존나 편하네


C나 C++만 알면 충분히 하겟구먼


일단 기본적으로 Unity는 이런 것을 제공함



Update (매 프레임 실행해야 하는 놈)


LateUpdate(Update에 적혀 있는 짓 다하고 실행됨. Update에서 뭔가 바꿧는데 그 바뀐걸 바탕으로 뭔 짓을 해야 되는 경우 사용)


FixedUpdate(위에는 매 프레임 마다 인데 조선컴인 새끼들은 프레임 이상할거 아님 그러면 물리엔진 병신 되니까 일정한 간격으로 무조건 불러와 주는 놈. RigidBody 이용하는 놈이면 이거 쓰는게 맞음)


OnCollisionEnter, OnCollisionStay, OnCollisionExit(어떤 새끼가 스크립트 가진놈 콜라이더에 들어 왔을 때, 안에 있을 때, 나갈 때)


OnTriggerEnter, OnTriggerStay, OnTriggetExit(어떤 새끼가 스크립트 가진놈 트리거(콜라이더 에서 트리거인지 아닌지 설정 가능)에 들어 왔을 때, 안에 있을 때, 나갈 때)


이거 말고도 많은데 솔직히 Unity 제공은 이거 말고는 거의 안쓸 듯 모르면 나중에 검색하지 머


RigidBody는 사전적인 뜻으로는 강체라는 뜻인 모양 그냥 물리법칙 같은거 적용해 주는 놈이라 생각하면 편할 듯


Unity에서 기본 제공하는 거 말고 VRC에서 제공하는 놈도 있다


VRC에서 제공하는 놈들은 Unity에서 제공하는 것과 달리, UdonBehaviour 안의 클래스 안에 있는 함수로서 작용하는 듯한 느낌적인 느낌임

그래서 U#의 경우는 무조건적으로 override를 적어 줘야 함(오버라이딩 해줘야 한다). 따라서 앞에 'public override' 라는 문구가 필수적으로 들어간다 보면 될듯


쨋든 VRC에서 제공하는 놈은 public override 적으면 바로 많이 나오기는 하는데 일단 대충 기억나는 것만 적어두자


OnPickUp 물건 집엇을때

OnPickUpUseDown 물건 집은 채로 트리거 눌렀을 때

OnPickUpUseUp 물건 집은 채로 트리거 눌렀다 땟을 때

OnSerialization 직렬화 할때

OnDeserialization 역직렬화 할때

PreSerialization이었나 이거 직렬화 하기 전에 같은거도 있엇던거 같음

직렬화 역직렬화 이지랄은 밑에 써뒀고 됐지 뭐

이거 말고도 뭐 플레이어 들어왔을때 나왔을 때 어디 앉았을 때 거기서 일어났을 때 같은거 존나 많았던거 같은데 기억 나는게 좆도 없네 그냥 영어 뜻 보면 뭔지 대충 이해가긴 하니까 넘어가고


아 위에거 자료형은 거의 다 void







- 기본적인 네트워크 동기화 형식


역할 같은게 있다고 생각하면 될 듯

처음 인스턴스(월드)를 만든 사람 -> Master (처음 만든 사람이 나가면 다른 사람에게 이전됨)

각각의 게임 오브젝트를 관리하는 사람 -> Owner (오브젝트를 줍는 행동이나 스크립트 상의 특정한 함수 등을 사용해서 이전 될 수 있음)


기본적으로 처음에 모든 게임 오브젝트의 Owner는 Master.

만약 PickUp 스크립트가 적용된 게임 오브젝트(월드 상에서 주워서 이동시킬 수 있는 경우라면) 해당 오브젝트를 줍는 순간 주운 그 사람에게 Owner가 넘어감.


위의 경우 말고도 Networking.SetOwner() 등의 함수로 스크립트 상에서 제작자가 원하는 경우에 언제든지 옮길 수 있음.


만약 Object Sync를 적용했거나, 기타 방법으로 해당 오브젝트의 이동 및 변형을(이하 트랜스폼) 모든사람에게 적용시키도록 설정한다면(이하 글로벌화 하다로 정의) 해당 트랜스폼은 Owner의 움직임을 바탕으로 나머지 사람들에게 해당 트랜스폼 데이터를 전달하는 형식을 띄게 됨.


Owner가 데이터를 전달하기 위해 데이터를 네트워크 상에 저장하는 것을 Serialization(직렬화) 라고 하고, 그 데이터를 네트워크 상에서 Owner를 제외한 다른 사람들에게 전달하는 것을 Deserialization(역직렬화)라고 함. 쥰내 어렵네 씨발 그냥 직렬화, 역직렬화라고 부르자 머였지 싶으면 여기로 돌아옴


어쨌건 Udon 그래프에도 U#에도 OnSerialization, OnDeserialization 같은 직렬화, 역직렬화를 하는 동안에 이런 짓을 하거라~ 라고 명령할 수 있는 놈이 있음. 이걸로도 네트워크 동기화 같은거 가능






- Synced 변수

네트워크 동기화를 할때, 어떠한 변수를 계속 동기화 해주도록 설정하는 방법이 있네. 그게 Synced 변수라는 놈

Udon 그래프의 경우에는 변수 추가해서 그 밑에 설정에 보면 synced 체크할 수 있는 란이 있고, U#의 경우에는 이런식으로 적어주면 됨


[UdonSynced]

자료형 변수이름


UdonSynced 옆에 괄호 열어서 모드 설정같은거도 있는데 검색하면 나오고 쓸 생각도 없으니까 그냥 알아만 두고 이렇게 하면 Owner가 가지고 있는 변수를 모두에게 동기화 해준다고 생각하면 될듯 뭐 불안하면 OnSerialization, OnDeserialization 같은걸로 직렬화 할때 값 바꾸고 역직렬화때 그 값을 모두에게 줄거야! 하면 일단 대부분 동기화 됨.








- SendCustomNetworkEvent


SendCustomNetworkEvent라는 놈이 있음. U#에선 대충 SendCustomNetworkEvent(VRC.Udon.Common.Interface.NetworkEventTarget.All, "함수이름") 정도로 사용하는 놈인데 저거 쓰면 "함수이름"에 해당하는 함수를 네트워크를 통해 모든사람에게 동시에 수행하도록 함. 생각보다 유용하긴 한데 게임 오브젝트에 적용하면 막 글로벌이던 놈이 로컬이 되고 그런 경우가 가끔 있어서 개인적으로는 꼭 필요하겠다 싶을 때만 씀.







- Object Sync, SetOwner 쥰내 느림 좆같네


진짜 SetOwner는 Owner 넘기면서 거의 0.5초 1초 이렇게 쓰는 경우도 있고 Object Sync도 존나 느려서 거의 0.5~1초의 지연이 있다고 봐도 됨. 이 Object Sync가 너무 느려서 네트워크 동기화가 어려워 지는 부분이 많음 현재까지는 Owner 한명에게 모든걸 맞기거나 해서 조금 이상하게 보여도 일단 게임을 할 수 있도록 같은 경우가 많음.








근데 갓 패치 나왔네 오진다 씨발


- Sync Method


꽤 최근인거 같은데 Udon Behaviour에 Sync Method 라는게 추가 됐음. 이게 존나 갓 패치임

모드가 Manual 하고 Continuous가 있는데 tween 하느냐 안 하느냐에 따라 나눠 써라 라는 느낌으로 쓰여졌음. tween이 뭔진 모르겠는데 이 Manual인가 하는 Sync Method가 쥰내 빠름

몇번 실험해본 결과 가끔 아바타 움직임 보다 빠르게 네트워크 동기화 해주는 경우도 있을 정도로 상당히 빠름

엄청 많은 양의 데이터를 순식간에 동기화 하거나 하는건 아무래도 불가능 하긴 한데 (어디 적혀있는 바로는 200키바 정도 였던거 같음) 역동적인 움직임이 필요한 경우에는 물리엔진의 계산은 Owner에게 전부 맞기고, 위치나 속도, 회전방향 등에 해당하는 Vector3 변수를 몇개 동기화 해서 그 변수만 동기화 해주면 대부분의 물건은 잘 될거 같긴 함.

물론 약점도 있는데 Owner가 조선컴이면 변수 동기화 해주는 Owner가 동기화 안 해주는 건지 존나 이상해지네 씨발



개인적인 메모 여기다 놓고 감

필요한 사람 있으면 보고 가든가

추천 비추천

8

고정닉 4

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
3007 설문 실제 모습일지 궁금한 미담 제조기 스타는? 운영자 25/05/05 - -
4682090 공지 VRChat 마이너 갤러리 내 저격 관련 세부 운영 25. 5. 1. [1] ㅇㅇ갤로그로 이동합니다. 25.04.29 1015 8
4546563 공지 VRChat 마이너 갤러리 운영 2025.04.10 [3] 소라껍데기갤로그로 이동합니다. 25.02.24 11374 8
4516848 공지 갤러리 정보글 시트 1.42 [9] 소라껍데기갤로그로 이동합니다. 25.02.10 13575 6
3619193 공지 번개/교류회 가이드라인 [5] 조개껍데기갤로그로 이동합니다. 24.01.14 40980 17
4384176 공지 징집 및 종신 파딱 가이드 라인 [1] 눈바로갤로그로 이동합니다. 24.12.09 13151 7
4474675 공지 노예 호출기 [39] 조개껍데기갤로그로 이동합니다. 25.01.22 25032 13
3792623 공지 번개/교류회 집합 장소 はくや갤로그로 이동합니다. 24.04.09 35871 16
3697933 공지 VRChat 마이너 갤러리 커미션 공지 [35] 눈바로갤로그로 이동합니다. 24.02.24 43802 18
4123452 공지 무선 VR 사용시 공유기 추천 목록 _백야_갤로그로 이동합니다. 24.08.27 19325 5
2964409 공지 아바타 안보이면 질문을 하지말고 이 글 보셈 (230521 내용추가) [16] 고희원갤로그로 이동합니다. 23.04.26 90646 43
2514607 공지 초임 징병 파딱을 위한 마이너 갤러리 관리 안내 초안 [22] 먀먀나나갤로그로 이동합니다. 22.12.05 93003 35
4695700 안방 근데 긁을거 다 긁어놓거 버거뿌린다고 뭐가 해결됨? ㅅㅂ갤로그로 이동합니다. 13:00 11 1
4695699 안방 침대에 하루종일 눕고싶다 비엔059갤로그로 이동합니다. 12:59 9 0
4695698 안방 갱상도 향우회 엄청큼???? 햄찌물그릇갤로그로 이동합니다. 12:59 25 4
4695697 안방 WWE일때나 부거로 해결되지 [2] 걍살면되지않을까?갤로그로 이동합니다. 12:59 34 4
4695696 안방 짤녀보지긁는중 [4] 지파이하바네로단종규탄갤로그로 이동합니다. 12:59 34 0
4695695 안방 역대완장들 모여있는 암흑의디코 [6] 새벽바람갤로그로 이동합니다. 12:58 50 1
4695694 안방 념글 또 난리네 [3] ㅇㅇ(211.234) 12:58 49 1
4695693 안방 쉬는날인데 할게없네 포장갤로그로 이동합니다. 12:58 16 0
4695692 안방 싸우지말고 서로 사랑하자! [12] ㅇㅇ갤로그로 이동합니다. 12:57 64 0
4695691 안방 ㄴ 오나홀임 [2] ㅇㅇ(14.32) 12:57 24 0
4695690 안방 마시멜로는 2.0 나오면 살까 [4] ㅇㅇ(106.101) 12:57 28 0
4695689 안방 어린이(를만드는)날 [2] 이초연갤로그로 이동합니다. 12:57 28 0
4695688 안방 짤 열심히 찍어왔는데 갤이 뜨겁네 [9] 멜구갤로그로 이동합니다. 12:57 52 0
4695687 안방 진짜 적당히 싸우셈 [8] 루아_갤로그로 이동합니다. 12:57 60 1
4695686 안방 어린이날 어린이만들기 마려운 고닉이 누구임 [4] ㅇㅇ_갤로그로 이동합니다. 12:57 33 0
4695685 안방 갤떡요약좀 [3] 우웅갤로그로 이동합니다. 12:57 37 0
4695684 안방 어린이날은 어린이가 행복한날이 아니라고..... [4] ㅇㅇ갤로그로 이동합니다. 12:56 44 0
4695683 안방 버거는시발항상먹는놈이먹는거같은기분이드는건머냐 [9] 세루루갤로그로 이동합니다. 12:56 91 1
4695682 안방 ㄴ 젖과 꿀에서 젖을 담당함 ㅇㅇ(14.32) 12:56 10 0
4695681 안방 어디 어린이 없나 [8] 무쌩겨써~갤로그로 이동합니다. 12:55 43 0
4695680 안방 암만봐도 왠만한 버X버보다 내가 더 이쁜거같음 [12] 물탄커피갤로그로 이동합니다. 12:54 84 0
4695679 안방 원론적인 비방은 자제 해주셈.. [7] ㅇㅇ갤로그로 이동합니다. 12:54 83 0
4695678 안방 징집당하면 햄버거줌 [2] 새벽바람갤로그로 이동합니다. 12:54 37 0
4695677 안방 절룡쉐이~ [2] 풀잎숲갤로그로 이동합니다. 12:54 31 0
4695676 안방 ㅁㅊ먼데먼떡밥인데 [6] 이뀨립스갤로그로 이동합니다. 12:53 65 0
4695675 안방 친구가 고로시 먹으면 [4] 새벽바람갤로그로 이동합니다. 12:53 53 1
4695674 안방 즈그 친구가 잘못해서 고로시 처먹으면 조용히좀 있지 ㅇㅇ(118.235) 12:52 52 4
4695673 안방 저거 공직자윤리법에의거해서불법아님??? [4] LilyWhite갤로그로 이동합니다. 12:52 144 9
4695672 안방 제가 다른갤에서 차단먹어본 경험상 Genshin갤로그로 이동합니다. 12:52 38 0
4695671 안방 경상도가 문제네 [6] ㅇㅇ(223.38) 12:52 105 9
4695670 안방 떡밥이고 나발이고 출근해야해 시발 ㅇㅇ갤로그로 이동합니다. 12:52 21 0
4695669 안방 본인최애가 하츠네미쿠인데 틀딱노래만듣다가 [7] newbody갤로그로 이동합니다. 12:52 42 0
4695668 안방 아니 근데 징집완장인걸 왜모르는거임❓+❓+ [3] ㅇㅔㄴ갤로그로 이동합니다. 12:52 100 9
4695667 안방 브붕이들바보임그냥 [9] snrnsepdy갤로그로 이동합니다. 12:52 46 1
4695666 안방 햄버거 먹고싶다 새벽바람갤로그로 이동합니다. 12:51 22 0
4695665 안방 아니 잘못해서 차단먹으면 그냥 [1] 이초연갤로그로 이동합니다. 12:51 39 0
4695664 안방 친구가 사진 찍어줬어 [4] 시레아갤로그로 이동합니다. 12:51 29 0
4695663 안방 다시보니까 신문고 반박한 사람 잘못없는거 같다 [18] 매장갤로그로 이동합니다. 12:51 169 9
4695662 안방 야행성 브붕이는 자러간다잇 [4] 증류쉐이갤로그로 이동합니다. 12:51 35 0
뉴스 유재석 ‘20년’ 후배 반말에 긴장된 순간...“어미 계속 빼시네?” 디시트렌드 05.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2