vr(11)
-
Unity 그래픽 최적화를 위한 Batches관리
이번 포스팅은 개인적으로 프로젝트를 진행하면서 프레임률에 큰 문제를 주었던 드로우콜을 관리 하기위해 가장 유용했던 방법을 기술하기 위해 작성해보려한다. 기본적으로 Batches를 관리하기위해서는 여러가지 방법이 있지만 대표적으로는 당연히 "머터리얼을 통합한다"가 가장 대표적인 방법이다. 하지만 개발을 진행하다 보면 최대한 머터리얼의 통합을 진행하여도 왜인지 배치가 줄어들지 않는 현상을 분명히 볼 수 있을 것이다. 본인도 개인 프로젝트에서 3D에셋들은 거의 다른 곳에서 가져오는 편이라 머터리얼을 통합에는 한계가 있었고 그렇다고 에셋들을 덜 배치하는 것도 퀄리티에 문제가 있었다. 그렇기에 선택한 것이 선택적 쉐도우 관리이다. 현재 건물의 모습을 보자. 한눈에봐도 다양한 물체들이 있고 다 개별로 머터리얼을 가..
2022.07.22 -
XR Interaction toolKit IndexTouch 인식 이슈
이번 포스팅은 VR개발중 Hand Animation이나 XR Ray를 조정할때 CommonUsages.indexTouch를 쓰는 것이 불가능할 때 이를 해결 할 솔루션을 적을 생각이다. 자료를 찾아본 바로는 thumbTouch도 같은 방법으로 해결할 수 있을 것 같다. 먼저 XR Interaction Debugger에는 이렇기 IndexTouch의 상태가 잘 나타나는 것을 볼 수 있는데 이를 보면 하드웨어적 문제가 없다는 것을 알 수있다. 그렇다면 스크립트 상의 문제인데 몇번 시도해본 바로는 일단 CommonUsages.indexTouch는 위의 parameter를 보면 Boolean타입으로 나오는데 스크립트상에서 out의 타입을 bool로 적으면 컴파일 에러가 발생한다. 이는 유니티 문서에서 index..
2022.06.30 -
XR Interaction ToolKit Teleportation, Grab 분리
XR Interaction Toolkit에서 XRController의 컴포넌트 속성은 이렇게 된다. 여기서 우리가 지금 중점적으로 봐야하는 속성이 Select Usage이다. 왜 이 Select Usage가 문제냐면 이 속성이 Teleport시스템과 Grab시스템 두개에 적용되어서 어떠한 물체를 잡으려고 했을 때 Teleport가 동시에 발생되어 의도치않은 이동이 발생한다는 것이다. 이 문제를 해결하는 방법은 내부 시스템을 다량 분석해 Select Usage와 Teleport 스크립트, XR Grab interactable 스크립트등을 고치는 것이 있다. 하지만 위의 방법은 너무 방대해 나는 다른 방법을 사용했다. 생각해보면 나름 간단한 시스템이다. 코드를 한번 봐보자 using System.Collec..
2022.06.26 -
VR 캐주얼 FPS제작
이번 포스팅은 기존에 만들었던 프로젝트의 방향성을 확실하게 잡고자 캐주얼 fps장르로 변경한 것에 기초해 제작을 할 것입니다. 기존 프로젝트의 문제점 기존에 만들고 있던 프로젝트의 가장 큰 문제점은 바로 "전투가 정형화 되있지가 않다" 였다. 말만 언뜻 들어서는 '오히려 좋은 것 아닌가?'라고 생각할 수 있는데 이는 전투의 자유화를 의미하기도 하지만 동시에 개발의 난이도의 기하 급수적인 상승을 초래하고 전투의 긴장감을 오히려 떨어뜨릴 수 있는 요소이기도 했다. 만약 200가지의 스킬을 구현해 그 것을 독자적으로 3가지를 골라 전투를 진행한다는 것의 의미는 강력한 스킬 3가지만으로도 모든 전투를 행할 수 있다는 것도 의미하기 때문이다. 그렇기에 기존 전투시스템을 어느정도 방향성을 잡아두고 그 안에서 자신이..
2022.06.26 -
AR Foundation project
이번 2022년도 1학기 "일본학과 캡스톤 디자인"과목에서 우리팀은 AR기술을 활용한 일본어 학습 보조카드를 제작하기로 하였다. 이 팀에서 기술 담당인 나는 예전 Unity 컨퍼런스에서 본 기억이 있는 AR Foundation을 활용해 프로젝트를 진행하기로 하였다. 프로젝트의 결론부터 말하자면 완성을 할 수 있었다. 아래는 시연 영상이다. 지금부터는 위 시스템을 제작하기 까지의 과정을 기록하려고 한다. AR Foundation Unity에서 제공하는 패키지 중의 하나인 AR Foundation은 AR시스템을 쉽게 구축할 수 있는 기능을 제공한다. 이를 사용하기 위한 초기 세팅을 살펴보자. 먼저 AR Foundation의 빌드는 안드로이드 or ios로 빌드되어야 하기 때문에 먼저 플랫폼을 바꿔주어야 한다..
2022.05.21 -
Unity 스킬 피격 처리
이번엔 지금까지 만든 스킬에 트리거를 설정해 충돌판정을 제작해서 적의 Hp를 줄이는 스크립트를 짜보겠다. 이번 스크립팅의 가장 큰 쟁점은 기능분리에 초점을 잡았다. 충돌판정의 코드 자체의 내용은 어렵진않으나 앞으로 추가될 기능(피격시 넉백)을 생각하면 기능분리를 잘해놔야 다음 단계 개발에서 문제없이 작성을 할 수 있기 때문이다. Enemy 피격 처리 클래스 이번 프로젝트에서는 여러가지 스킬에서 데미지와 자신의 스킬형식에 따른 함수를 Enemy에 있는 피격처리 클래스로 메시지를 보내서 피격로직을 진행한다. 먼저 status관련 클래스이다. public class EnemyStatus : MonoBehaviour { public int hp; public int mp; public float speed; }..
2022.01.15