본문 바로가기

Unity24

[C#] Boids 군집 알고리즘 공부 : 개념과 구현 방법 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Boids란?새들이 떼를 지어 다니는 행동에 대한 군집 이동 알고리즘(시뮬레이션)을 의미한다. Boids는 기본적으로 Separation(분리)-Alignoment(정렬)-Cohension(응집) 단계로 나눠진다. 1. Separation (무리를 피하는 방향으로 이동) 자신 주변의 객체들이 붐비는 것을 피하기 위해 주변 객체들에게 벗어나는 규칙 2. Alignoment (무리의 진행 방향으로 이동) 주변 객체들의 평균 방향으로 이동하는 규칙. 3. Cohesion (무리의 중심 방향으로 이동)모든 객체 사이의 평균점을 찾고 평균점을 향해 이동하는 규칙 이 규칙들이 동시에 고려되면서, 동료들과 비슷한 방향으로.. 2025. 8. 6.
[VR] Meta XR SDK Building Block 기반 멀티 만들어보기 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Meta XR SDKMeta XR SDK의 가장 좋은 점은 빌딩블록 덕분에 VR Interaction 구현이 쉬워진다는 점이다. 설치 및 빌딩 블록 사용Meta XR All-in-One SDK를 다운받은뒤, Meta- Tool에서 Building Block을 선택해서 사용할 수 있다. 이전에 Grab, Passthrough, Ray등을 사용해본 바가 있는데 오늘은 빌딩 블록을 사용해서 멀티플레이를 만들어보려고 한다. Colocation이란?코로케이션은 데이터 센터에서 기업이 자신의 서버와 기타 IT 장비를 설치, 운영할 수 있도록 공간, 전력, 냉각, 그리고 네트워크 연결을 제공하는 서비스를 의미하는데 Meta.. 2025. 8. 4.
[Normcore] Normcore와 VR Multi 테스트 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. VR 프로젝트에 적합한 멀티 플레이 SDK가 어떤건지 테스트해보고 있는 중이다. 사용 기기는 Meta Quest3이다.Normcore란? Normal에서 만든 멀티 플레이 SDK로, 다른 멀티플레이 SDK에 비해서 VR 친화성이 높은 것이 특징이다.또한 RPC 방식으로 동기화하지 않고 데이터베이스에 모든 상태를 저장하는 방식을 사용한다. 이 방식이 어떻게 가능한지 의아했는데 Normcore 에서는 Room 단위로 세션을 관리하고 실시간 데이터만 저장해두고, 마지막 인원이 퇴장하는 동시에 Room 상태를 삭제하며 모든 데이터를 삭제하는 방식으로 굴러간다. 사실 제일 궁금했던 점은 몇 명까지 지원이 되냐는 것.. 2025. 8. 3.
[Unity] 내장 함수 정리 : Vector3 & Mathf 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 매번 구글링하기도 귀찮아서 Vector 관련 함수를 정리해봤다. 찾아보지 않아도 될 정도로 익숙해지면 더 좋고! Vector Function 이름의미Vector3.zeroVector3(0,0,0)Vector3.oneVector3(1,1,1)Vector3.downVector3(0,-1,0)Vector3.rightVector3(1,0,0)Vector3.leftVector3(-1,0,0)Vector3.forwardVector3(0,0,1)Vector3.backVector3(0,0,-1)Vector3.nomalizedVector3의 magnitude를 1로 만들어 반환 (정규화)Vector3.sqrMagnitudeVec.. 2025. 7. 23.
[Shader] Bubble Shader 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 비눗방울 표현 원리 비눗방울의 특징을 생각해보면 전체적으로 투명하고 주변 물체들이 비치는(reflect) 것이다. 대신, 비치는 현상 때문에 가운데 부분은 약간 불투명한 모습을 보여주며, 전체적으로 불규칙하고 무지개를 연상시키는 색상으로 이루어져있다.요약하자면 반사(주변부를 비춤) + 무지개 색(가장자리로 갈수록 강해짐) 핵심이다. 그 밖에도 비눗방울 자체의 성질상 고정되지 않고 일렁이는 특징도 표현하고자 하려면 쉐이더 파트에서 묘사 할 수 있다. 제작 방법 생각해보기 완벽한 물리 계산을 하기 어렵다면 Texture를 사용해서 제작하는 방법도 있다.계산식이 복잡하다는 이유도 있고, 색상 계산이 따로 필요.. 2025. 6. 18.
[Photon] Photon Fusion 102 #1 씬 전환 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Photon Fusion을 기반으로 Host Server가 작동하는 것은 확인하였다.그러나 예제 그대로 사용하기 보다는 내가 원하는대로 만들고 싶기도 하고, 아무래도 네트워크 기반이다 보니기존에 만들어둔 input 함수들이 제대로 동작하지 않는 슬픈 상황이 발생했다. 글로 기록하면서 구조도 함께 살펴보며 진행하려한다. 게임 시작 및 호스팅하기 의 멤버 함수인 StatGame(StartGameArgs args)로 Fusion 네트워크가 시작된다.아래는 photon에서 복사해왔던 스크립트다. 기존에는 테스트씬에 할당되어 게임 화면 옆에 버튼이 뜨는 형식이었다. #BasicSpanwer async v.. 2025. 6. 15.
[Shader] Post Processing : Tint Effect 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. 원래 Post Processing 관련 글을 작성하고 있었는데 생각해보니 간단한걸 먼저 만들어보고 진행하는게 좋을 거 같아서 먼저 작성하게되었다. 미리보기 : 최종 결과물 생각했던 것 보다 만들기 너무 힘들었다. 엄밀히 따지자면 Tint shader 자체는 복잡하지 않은데 렌더피쳐랑 너무 오래 싸웠다... Custom Post Processing : Tint 처음 만들어보는 효과인 만큼 가장 기본적인 효과라고 할 수 있는 Tint 효과를 만들어보려고 한다. 유니티 내장 Post Processing을 살펴보면 Tint는 따로 존재하는 효과가 아니라 Bloom의 Value에 해당한다.내가 만들 Tint 효과는.. 2025. 6. 11.
[photon] Photon Fusion Host Mode 기본 세팅 1. Photon Fusion이란? Photon Fusion: Setting the Benchmark for Multiplayer games.Snapshot of Fusion Capabilities Discover the essential details of the top-tier state-sync netcode SDK designed for Unity professionals. HAVE A LOOKwww.photonengine.com 포톤 퓨전은 상태 전송 라이브러리로, Tick-기반 시뮬레이션을 지원할 뿐만 아니라 지연 보상 기능 또한 제공한다. 나의 경우 현재 진행하고 있는 개인 프로젝트가 멀티 플레이가 가능하도록 하고싶기 때문에 관심을 가지게 되었다. 서버 모드호스트 모드공유 모드 현재 진행.. 2025. 6. 5.
[자료] Shader Graph, VFX Graph 샘플 예제 大분석 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Unite Seoul 영상을 천천히 보면서 한 번 다시 정리해보고 싶은것들 중심으로 내용을 정리해본다 Vfx Graph 관련은 따로 작성하지 않았따 Shader Graph1. Default ShadersLit Shader(= PBR) Unlit Shader : 조명이 필요없는 시각 효과나 고유 오브젝트에 사용 (= 저사양 하드웨어 적합)2. Vertex Shader정점 단위 계산 : 객체의 공간적 변형, mesh 왜곡, 애니메이션 효과 등 처리 (=position) 법선(Normal) 벡터 변환텍스쳐 좌표 조작output은 Interpolator에 저장되어 Fragment Shader로 전달됨 3. Frag.. 2025. 6. 4.
[Shader] Depth Map 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. Depth Map이란?viewpoint(일반적으로 카메라)로부터 물체 표면과의 거리와 관련된 정보가 담긴 채널을 의미한다.모션 트래킹할 때 사용하는 센서들도 보통 Depth Map 옵션을 가지고 있다.일본어로는 深度マップ 이라고 하는등 결국 초첨은 '깊이' 이다. Depth Map 뜯어보기 Depth Map의 경우 유니티 자체에 예제로 있기 때문에 오늘은 작성보다는 어떻게 구성되고 작동되는지를 공부하는데 초첨을 맞췄다.우선 예제에서 복잡한 부분(체크 알고리즘)은 제외하고 Depth와 관련된 부분만 남겨서 정리하였다. Properties { } SubShader { Tags { .. 2025. 6. 3.
[Unity] ScriptableRendererFeature 작성하기 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. ScriptableRendererFeature?쉐이더를 작성하면서 ScriptableRendereFeature 부분이 길어져서 따로 작성하게 되었다. ScriptableRendererFeature는 파이프라인을 커스터마이징할 수 있게 해주는 기능이다.객체에 단순히 Material을 적용시키는게 아니라, 이미 만들어진 맵에 후처리로 shader를 적용해야할 경우 파이프라인에 추가해서 처리하는 것. 이미 만들어진 씬에 필터 같은 shader를 적용하고 싶을 때 유용하게 쓸 수 있는 기능이다. 작성 과정 세팅된 파이프라인(이 경우 URP)에 Renderer Features를 추가하기 위해서는 ScriptableR.. 2025. 6. 1.
[Unity] MediaPipe Plugin 설치 공부용으로 작성되는 페이지입니다. 틀린 부분이나 환경에 따라 오류가 발생할 수 있습니다. MediaPipe Plugin을 설치하면서 겪었던 오류만 작성해두었다.실제 설치 방법은 동영상 및 참고 자료에 작성한 URL 참고! homuler/MediaPipeUnityPlugin: Unity plugin to run MediaPipe GitHub - homuler/MediaPipeUnityPlugin: Unity plugin to run MediaPipeUnity plugin to run MediaPipe. Contribute to homuler/MediaPipeUnityPlugin development by creating an account on GitHub.github.com Bazel 설치 관련.. 2025. 5. 26.