Meta Avatar SDK 버전이 29 넘게 나온거 알고 계시나요?24버전과 29버전의 가장 큰 차이는 캐릭터의 비주얼 부분인데요. 좌측 사진이 Meta Avatar 1세대이고, 우측 사진이 Meta Avatar 2세대입니다.좀 더 사실적인 느낌을 보여주고 있습니다.Oculus 플랫폼 SDK를 비동기적으로 초기화Core.AsyncInitialize()Oculus 플랫폼을 초기화하는 것은 Oculus의 다양한 기능과 서비스에 접근할 수 있도록 하기 위함입니다. Oculus 서비스에는 사용자 인증, 스토어 접근, 소셜 기능, 클라우드 저장소 등이 있습니다. 사용자가 애플리케이션을 사용할 권한이 있는지 확인Entitlements.IsUserEntitledToApplication()정품 사용자만이 애플리케이션..
해당 기능은 Meta에서 개발한 내용임을 알리고 시작합니다. AutoSet 활용하기: 컴포넌트 할당 간소화 이 글을 보신 다음부터는 두번다시 컴포넌트를 수동으로 할당하지 마세요!! AutoSet을 활용하여 개발 워크플로를 더욱 원활하게 만드는 방법에 대해 소개드리겠습니다! AutoSet이란? AutoSet은 동적 Attribute 유틸리티입니다. 필드에 AutoSet 어트리뷰트를 태그하면 필요한 컴포넌트를 게임오브젝트로부터 자동으로 가져와 할당하도록 지시할 수 있습니다. 컴포넌트는 게임 오브젝트, 게임오브젝트의 자식 또는 부모에서 가져올 수 있습니다. AutoSet 주요 이점 자동 할당: 인스펙터에서 수동으로 할당하는 지루한 반복 과정을 생략할 수 있습니다. 정밀성: 수동으로 컴포넌트 할당 시 발생할 수..
Muse란? AI 기반의 Creative Tool로, 유니티를 활용한 개발 경험을 도와 플랫폼을 빠르게 제작할 수 있도록 지원하는 도구입니다. Muse의 궁극적인 목표는 Unity 에디터에서 텍스트 프롬프트나 스케치와 같은 자연 입력을 사용하여 대부분의 요소를 제작할 수 있도록 지원하는 것이라고 합니다. AI 기반 크리에이티브 툴 Unity Muse 및 Unity Sentis 소개 | Unity Blog 유니티의 최상급 품질 및 호환성 표준을 충족하는 타사 패키지인 AI 검증 솔루션도 오늘부터 Unity 에셋 스토어에서 제공됩니다. Convai, Inworld AI, Layer AI, Leonardo Ai, LMNT, Modl.ai, Polyhive, Replica Studios, Zi blog.unit..
[VContainer이란?] VContainer는 Unity를 위한 가볍고 빠른 DI(Dependency Injection) 프레임워크로, 종속성 및 개체 생성을 쉽게 관리할 수 있도록 도와줍니다. DI는 종속성의 생성 및 관리를 분리하는 프로그래밍 디자인 패턴입니다. VContainer의 주요 기능 중 하나는 성능입니다. 다른 종속성 주입 프레임워크와 달리 VContainer는 런타임이 아닌 컴파일 타임에 코드를 생성합니다. 전반적으로 VContainer는 Unity 프로젝트의 아키텍처를 단순화하고 개선하는 데 도움이 되는 강력하고 가벼운 DI 프레임워크입니다. 유니티(Unity) 인터페이스(Interface) 완전 쉽게 설명 먼저 인터페이스가 무엇인지 알고 시작해야합니다 인터페이스를 구글링하면 뭐 U..
XREAL학회란? XREAL은 메타버스에 관심이 많은 다양한 분야의 사람들이 모여 2021년 9월에 첫 발걸음을 뗀 학회로, 다양한 (메타버스)분야의 개인들에게 허브 역할을 해주는 커뮤니티입니다. XREAL은 XREAL만의 특별한 커리큘럼이 존재하는데요. XREAL 활동을 하시면 처음에는 각 그룹 분야에 최적화된 교육 세션을 통해 성장할 수 있는 기회를 얻고, 시니어 학기에는 세 그룹이 다 함께 프로젝트를 진행하는 심화 학습에 참여하게 됩니다.XREAL은 RESEARCH / DEV/ DESIGN 그룹으로 나누어, 매 학기 초에 약 40명의 새로운 기수를 모집하여 1년에 2개의 기수를 운영합니다. 1년의 활동 기간 중, 첫 번째 학기는 주니어(Junior), 두 번째 학기는 시니어(Senior) 포지션으로..
[Window] -> [Rendering] -> [Ligthing]을 선택해주자 Ligthing에서 [Enviroment]를 클릭해주면 Other Settings을 펼쳐주고 Fog를 활성화 해주면 된다 가까운곳은 잘보이지만 장소가 먼 곳은 Fog로 인해 잘 보이지 않게 된다 Fog를 사용해서 카메라에 닿지 않는 장소나 보이지 않게 하고 싶은 장소를 가리고 오브젝트등을 비활성화 하는 등 다양한 방식을 통해 최적화에 도움이 될 수 있다(고 한다 맞나?)
코딩을 하다보면 이렇게 Layer를 필요로 할 때가 있다 몬스터의 레이어 순서(번호)가 바뀔 수 있지 않냐? 그럴때마다 monsterLayer의 번호를 바꿔주긴 귀찮으니 LayerMask에 있는 Monster라는 이름의 Layer를 찾아서 번호로 바꾸어주면 된다! LayerMask는 여기서 관리할 수 있다!
https://docs.unity3d.com/kr/530/Manual/SupportedEvents.html 지원되는 이벤트 - Unity 매뉴얼 이벤트 시스템은 다수의 이벤트를 지원하며 사용자가 작성한 입력 모듈을 통해 한층 더 효율적으로 커스터마이징할 수 있습니다. docs.unity3d.com 유니티 공식 홈페이지에서 EventSystem에 들어가 있는 기능들에 대한 설명이다 EventSystem를 사용하기 위해선 상호작용할 오브젝트에 Raycast를 받을 수 있어야 한다
설명에 앞서 Netcode for GameObjects이란? Import방법 ❓Netcode for GameObjects이란? Netcode for GameObjects은 네트워킹 로직을 추상화 할 수 있도록 Unity를 위해 만들어진 High-level 네트워킹 라이브러이다 한 번에 멀티플레이어들에게 네트워킹 세션을 가로질 wlsdn629.tistory.com 위 포스팅을 참고해서 [NetCode for GameObjects] Package를 Import 하고 오셔야 합니다. Transform동기화 방법부터 Data동기화 방법까지 NetworkManager 빈 오브젝트를 하나 생성한 후 NetworkManager라고 이름을 바꿔줍니다. 그다음, NetworkManager오브젝트에 NetworkManag..
유니티 빌드없이 같은 에디터 2개 키고 실행할 수 있는 방법은 아래 깃허브 주소를 https://github.com/VeriorPies/ParrelSync.git?path=/ParrelSync Add Package from git URL...눌러주고 거기에 넣어주면 된다 이렇게 뜨면 성공이고 어떻게 사용하냐? 맨 위 상단 ParrelSync 메뉴가 생겼을 것이다 눌러주고 Clones Manager 버튼을 눌러준 다음 Create new clone을 눌러주자! 마지막 이거 눌러주면 에디터가 실행된다! 앞으로 빌드해서 힘들게 테스트하지말고 이거 사용합시다!!
❓ Profiler란? 성능 분석을 위한 도구이다. 프로그램의 시간 복잡도 및 공간 상태(Memory), 함수 호출 주기와 빈도를 알아낼 수 있다 즉, Profiler를 이용하여 어떤 이유로 프로그램의 성능에 악영향을 미쳤는지 확인할 수 있다 Profiler는 Frame의 변화를 알아볼 수 있으며, 스크립트를 실행하거나 렌더링 작업을 수행하는데 걸리는 시간 등을 볼 수 있다 종류, 작업별로 시간을 모두 분석할 수 있으며 가장 시간이 많이 소요되는 작업부터 순서대로 정렬해서 보여준다 ❓성능 분석을 왜 해야하냐? 최적화가 잘 이루어지지 않은 게임을 하면 쉽게 말해 이른바 "렉"이 심하게 걸린다 성능 분석을 통해 게임의 최적화를 도울 수 있다 ❓ Profiler를 사용하는 방법 상단 [Window] - [An..
var 키워드란? var 키워드의 기능은 자료형을 자동으로 저장하는 것이다 var 키워드는 지역변수로 사용되어야 하며, 선언과 동시에 초기화 작업을 해야한다 var 100; print("Type : "+ var.GetType()); // 결과 Type : int32 var은 컴파일러가 변수를 생성할 때, 값을 보고 타입을 추론해서 stack 영역에 지정하고 값을 삽입한다 ex) var = 5; 이면 5라는 값을 통해 Type이 int라고 추론함 따라서, int형일 경우 4byte를 stack에 할당받게된다 var a = 5; //4byte var b = 6.6f;//8byte 따라서, int형인 a에 double형인 b의 값으로 덮어쓰려고 하면, a는 4byte의 영역을 할당받았기에 8byte의 영역을 ..
IEnumerator Start() { while (true) { yield return new WaitUntil(() => IsOnJump()); yield return StartCoroutine(JumpTo()); } } private bool IsOnJump() { if (agent.isOnOffMeshLink) { OffMeshLinkData linkData = agent.currentOffMeshLinkData; //OffMeshLinkType Manula = 0, Drop = 1, Jump = 2 if (linkData.linkType == OffMeshLinkType.LinkTypeJumpAcross || linkData.linkType == OffMeshLinkType.LinkTypeDro..
위 모델의 Animation State는 Default Layer의 Idle State입니다. 걷는 애니메이션과 오브젝트를 들고 있는 애니메이션을 혼합(Mix)해서 사용하고 싶습니다. 애니메이션 State를 혼합할 때 사용하는 것이 Animation Layer입니다. Avatar Mask를 하나 생성하고 이름을 그에 맞게 변경해줍니다. 특정 오브젝트를 잡고 있는 애니메이션의 상태에서 하체의 움직임은 필요없고 상체의 움직임만 변경되길 원하므로 하체는 클릭하여 제외시켜주면 됩니다. Animator창으로 가서 Layer버튼을 누르고 + 버튼을 눌러 새로운 Layer을 만들어준 뒤 이름을 적절하게 변경해줍니다. Weight 현재 레이어와 아래 레이어의 애니메이션 비중, 1에 가까울수록 현재 레이어의 가까운 모션..