Unity/Dev 10

[Unity][VR] 리듬 게임 모듈화

학회 프로젝트에서 VR 리듬게임 모듈화를 하기로 해서 해보겠다. 바로 ㄱ A. Sketch 모듈화란? 더보기 나도 이번에 처음 접해본 단어인데, 리듬게임을 만드려면 언제 어떤 노트를 보낼지 하나하나 다 정해야 한다. 그런데 모듈화를 하면 직접 노트를 내가 플레이하면서 찍는 것이다. 그 찍은 노트를 토대로 게임을 플레이할 수 있다. 글의 마지막 최종 결과 영상을 보면 이해가 더 잘 될것이다. VR컨트롤러를 좌우로 움직이며 노트를 찍고 플레이하는 리듬게임 모듈을 만들어볼 것이다. 대충 스케치는 다음과 같다. 더보기 요약하자면, recording이 시작되면 특정 간격(n초)마다 left/right 포인트의 시간과 거리를 list에 저장한다. 그리고 playing이 시작되면 해당 list들을 읽으며 노트가 re..

Unity/Dev 2023.06.15

[Unity][VR] 손을 모아서 오브젝트를 만들고 키우는 스킬

학회 프로젝트 중 손을 모아서 물방울을 만드는 스킬을 구현하게 됐다. (사실 쓰일지 안쓰일지 모르지만 재밌을 것 같아서 만들어봄) A. 스킬 정보 손을 모으면 물방울을 키울 수 있음. 물방울이 다 만들어지기 전에 손을 떼면 그냥 물방울은 떨어짐. 물방울을 다 만들고 손을 떼면 그 물방울은 공중에 떠있음. 공중에 떠 있는 물방울을 grab해서 사용할 수 있음. 생각보다 쉽고 간단해보였는데, 개발하면서 꽤 막히는 부분이 있었음..! B. 두 손 사이의 거리 측정 두 손의 위치는 OVRCameraRig의 Right/LeftHandAnchor로 받아온다. 아주 간단한 거리 공식을 적용해서 두 손 사이의 거리인 handDistance를 구함. handDistance를 코솔창에 출력해서 테스트해본 결과, handD..

Unity/Dev 2023.05.02

[Unity] 물방울을 뿌리면 식물이 자라는 interaction 구현하기 (3)

1편, 2편에서 물방울을 얻는 interaction을 구현했었다. 다음은 그 물방울을 새싹에 떨어뜨려 식물이 자라나게 하는 interaction이다. 먼저, 물방울을 떨어뜨리려면 grab한 물방울을 release했을 때 떨어지는 물방울이 자연스러워야 한다. 이 때는 Oculus Integration SDK에서 제공하는 Physics Grabbable을 사용해야 하는데, 자세한 건 아래 링크에서 알 수 있다. https://gycblog.tistory.com/13 [Unity][Trial&Error] 오브젝트를 grab 후 release할 때 아래로 빠르게 떨어지는 현상 먼저, Oculus Integration SDK를 사용하여 물체를 grab하는 방법은 다음 글을 참고하라. https://gycblog...

Unity/Dev 2023.01.21

[Unity] 물 속에서 grab하면 물 구체가 잡히는 interaction 구현하기 (2)

2편으로 돌아온 interaction.. 다시 말하자면 (1)물에 컨트롤러를 넣고 (2)그랩을 하면 (3)물이 잡히도록 하는 상호작용을 구현해야 한다. (1)번의 경우 1편에서 OnTriggerEnter를 사용해서 완성했기 때문에 넘어간다. (2)번의 경우에도 1편에서 다뤘지만 Player Setting이 바뀌어서 다시 한다. 1편 보기: https://gycblog.tistory.com/7 [Unity] 물 속에서 grab하면 물 구체가 잡히는 interaction 구현하기 (1) XREAL 학회에서 진행 중인 Morphai 프로젝트에서 제목의 내용의 퍼즐 구현을 맡았다. 이번에 구현하려는 interaction은 다음과 같이 개발하려고 한다. 1. 컨트롤러가 물 collider에 enter하면 물이 g..

Unity/Dev 2023.01.20

[Unity] Light Probe로 자연스러운 빛과 실시간 그림자 연출하기

자연스러운 빛과 실시간 그림자를 연출하는 것.. (처음 해보는 것이라 난관이 예상된다.) 이를 달성하려면 light probe를 사용해야 하는데, 이것에 대해 리서칭 및 공부를 해서 구현해보려고 한다. (따라서 참고하는 reference들이 괴장히 많을 것으로 예상된다. Reference는 항상 글 아래에 적어둔다.) A. Light Probe는 무엇인가? Light probe는 bake한 lighting map의 정보를 저장하여, runtime 때 이를 동적인 물체에 전달한다. 즉, scene에 light probe를 배치한 후에 light를 bake하면 그 light probe 주변의 lighting data가 미리 저장된다. 이렇게 저장된 lighting data는 runtime 때 동적인 오브젝트..

Unity/Dev 2023.01.18

[Unity] UI Scripting Automation (2)

이번엔 1편에 이어 Morphai 프로젝트에서 사용하는 menu UI를 자동화해보려고 한다. 거두절미하고 바로 시작하자. Menu UI는 다음처럼 생겼다. 보시다시피 총 4개의 버튼이 있다. - Respawn: 클릭 시 리스폰 지점으로 순간이동. - Exit: 클릭 시 게임에서 나감. - Info: 클릭 시 info UI가 켜짐. - Return: 클릭 시 menu UI가 꺼짐. 여기서 공통적으로, 버튼을 누를 때는 같은 클릭 사운드가 플레이 될 것이고, 1편과 같이 UI가 켜져있는 동안에는 ControllerInteractors를 비활성화하여 UI 외의 다른 것들과 상호작용하지 못하게 한다. A. menu UI 자동화 사실 1편과 거의 똑같지만 버튼만 많은 것이니 이번엔 빨리빨리 넘기겠다. 확실이 1편..

Unity/Dev 2023.01.17

[Unity] UI Scripting Automation (1)

Morphai 이전 세션에서는 UI를 만들 때 각 버튼을 reference해주고 OnClick()등의 함수를 노가다로 할당했다. UI를 배치할 때 이런 수고스러움을 덜기 위해 노가다로 했던 모든 것들을 할 수 있는 스크립트를 만들기로 했다. 자동화를 진행할 UI는 총 두 가지이다. 1. Info UI: 해당 씬의 퍼즐에 대한 정보를 볼 수 있다. 2. Menu UI: 리스폰, 게임 나가기 등등의 버튼이 존재 일단 좀 더 버튼이 적고 간단해 보이는 Info UI부터 해보자. A. info UI 스크립팅 자동화 이전 세션 때의 info UI이다. 자동화해야하는 요소: - Start 버튼: 클릭 시 UI 비활성화, sound 플레이, 움직이지 못하는 플레이어 이동 가능. 사실 이게 끝이다..ㅎ 바로 해보자! ..

Unity/Dev 2023.01.17

[Unity] 물 속에서 grab하면 물 구체가 잡히는 interaction 구현하기 (1)

XREAL 학회에서 진행 중인 Morphai 프로젝트에서 제목의 내용의 퍼즐 구현을 맡았다. 이번에 구현하려는 interaction은 다음과 같이 개발하려고 한다. 1. 컨트롤러가 물 collider에 enter하면 물이 grab가능한 상태. 2. 물 collider에 enter한 채로 grab을 하면 deactivate되어 있던 물 구체가 activate되어 grab됨. (실제로 grab하지 않았는데 물 구체가 grab되도록 할 수 있을까..? -- 리서칭 필요) 오늘은 일단 이 두단계를 완성시키는 것이 목표, 일단 허접(?)하게 플레이어와 물 배치. 쭈구려서 테스트하기 싫기 때문에 위쪽에 배치했다. 물 cube는 collider만 부착된 상태. A. 컨트롤러가 물 cube collider에 enter..

Unity/Dev 2023.01.16

[Unity] Player Grab Interaction with Oculus Integration SDK

[Interaction Setting - InputOVR] 1. Hierarchy에 InputOVR을 추가한다. *InputOVR을 못찾겠거나 InputOVR이 있지만 비어있으면 아래 블로그 글을 참고하자. 더보기 https://gycblog.tistory.com/3 [Unity][Trial&Error] Assets에서 InputOVR이 없는 문제. Problem: Oculus Integration를 다운로드하고 import까지 했는데 InputOVR이 안보임. Solution: Oculus Integration을 재다운로드 및 import [Window > Package Manager]에서 Oculus Integration을 찾고 Re-Download 후 Import한다. 그렇다 gycblog.tist..

Unity/Dev 2023.01.16

[Unity] VR Player Controller with Oculus Integration SDK

Oculus Integration SDK를 사용하여 Unity VR Player의 기본 조작을 개발해본다. 중요 이 글의 내용은 Oculus Integration 43.0 버전을 사용한다. 더 높은 버전을 사용하면 글에서 사용된 컴포넌트들이 deprecated된 경우가 발생할 수 있다. 다른 버전의 Oculus Integration SDK를 다운받는 법 (링크 Click) https://gycblog.tistory.com/5 [기본 Setting 및 Locomotion] 1. Unity Asset Store에서 Oculus Integration을 download 및 import한다. 2. Hierarchy에 OVRPlayerController 추가한다. 3. OVRPlayerController의 OVRC..

Unity/Dev 2023.01.12