unity(11)
-
Unity 그래픽 최적화를 위한 Batches관리
이번 포스팅은 개인적으로 프로젝트를 진행하면서 프레임률에 큰 문제를 주었던 드로우콜을 관리 하기위해 가장 유용했던 방법을 기술하기 위해 작성해보려한다. 기본적으로 Batches를 관리하기위해서는 여러가지 방법이 있지만 대표적으로는 당연히 "머터리얼을 통합한다"가 가장 대표적인 방법이다. 하지만 개발을 진행하다 보면 최대한 머터리얼의 통합을 진행하여도 왜인지 배치가 줄어들지 않는 현상을 분명히 볼 수 있을 것이다. 본인도 개인 프로젝트에서 3D에셋들은 거의 다른 곳에서 가져오는 편이라 머터리얼을 통합에는 한계가 있었고 그렇다고 에셋들을 덜 배치하는 것도 퀄리티에 문제가 있었다. 그렇기에 선택한 것이 선택적 쉐도우 관리이다. 현재 건물의 모습을 보자. 한눈에봐도 다양한 물체들이 있고 다 개별로 머터리얼을 가..
2022.07.22 -
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 스킬 확장
이번 포스팅에서는 지금까지 제작해온 스크립트들로 여러가지 스킬들을 조립하는 것을 해보겠다. 먼저 처음부터 스킬을 제작할 때 스킬1개라도 기능분리를 2~3개로 나눠주었다. 그 기준은 아래와 같이 나눠놓았다. 1.SkillManager에 들어갈 위임용 스크립트 2.스킬 발동조건 스크립트 3.데미지 트리거 스크립트 폭발타입 스킬 배리에이션 폭발타입은 조립순서가 명확하다. 기존의 만들었던 IceBomb의 로직을 그대로 가져가면 되었다. 하지만 한가지 추가할점이 있었는데 기존의 로직을 여러가지 모습으로 바꾸려면 정적으로 할당된 이펙트를 동적으로 할당해줄 필요가 있다. 그렇기에 맨처음 위임용 스크립트에 이펙트를 같이 넣어주었다. public class Bomb : MonoBehaviour { private Tran..
2022.02.22 -
Unity 스킬 피격 처리
이번엔 지금까지 만든 스킬에 트리거를 설정해 충돌판정을 제작해서 적의 Hp를 줄이는 스크립트를 짜보겠다. 이번 스크립팅의 가장 큰 쟁점은 기능분리에 초점을 잡았다. 충돌판정의 코드 자체의 내용은 어렵진않으나 앞으로 추가될 기능(피격시 넉백)을 생각하면 기능분리를 잘해놔야 다음 단계 개발에서 문제없이 작성을 할 수 있기 때문이다. Enemy 피격 처리 클래스 이번 프로젝트에서는 여러가지 스킬에서 데미지와 자신의 스킬형식에 따른 함수를 Enemy에 있는 피격처리 클래스로 메시지를 보내서 피격로직을 진행한다. 먼저 status관련 클래스이다. public class EnemyStatus : MonoBehaviour { public int hp; public int mp; public float speed; }..
2022.01.15 -
Unity GunShot Skill 생성
이번에는 3번째 스킬인 단발형 타입 GunShot스킬을 만들어 보겠다. 이번에 사용할 가장 기본이 되는 로직은 XR Grab Interactable를 이용해서 Event처리를 통해 총알을 발사 하는 것이다. 총과 총알의 기본 셋팅 위 사진은 에셋스토에서 구한 총에 기존에 만들었던 쉐이더를 적용한다음 콜라이더박스를 적용한 모습이다. 여기서 특이한 점이 콜라이더의 배치모습인데 이는 XR Ray interactor가 레이캐스트를 쏠 때 콜라이더를 감지해 Grab을 하는데 만약 총모습대로 콜라이더를 정확하게 배치를 하게 되면 실제 Grab을 하려했을 때 Ray를 맞추기 어려운 이슈가 있고 손을 총에다 대고 Ray를 쐈을 때 콜라이더 내부에서 Ray가 쏴지면 제대로 충돌판정이 일어나지 않는 이슈가 있어 이렇게 콜..
2022.01.12