분류 전체보기(22)
-
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 -
XR Rig Body생성, 스킬 거리 최댓값 주기
이번에는 지금까지 XR Tool Kit에서 지원해주는 것만으로는 불가능한 XR용 Body를 생성하고 폭발형 스킬의 최대거리값을 설정해주는 작업을 진행 하였다. XR RIg Body(몸체) 생성 기본적으로 XRToolKit이 지원해주는 XR Rig의 구성요소를 보자면 크게나눠 "머리","컨트롤러" 두개로 나뉘어진다. 그럼 여기서 문제는 텔레포트를 통한 시스템적 이동이 아닌 VR공간안에서 플레이어가 직접 걸어다니는 이동에 관련해서 이슈가 생긴다. 왜냐하면 시스템적이동은 XR Rig전체가 같이 이동하는반면 직접적인 이동은 XR Rig는 그대로 있고 Main카메라만 이동하기 때문이다. 이 특성을 통해 생기는 이슈는 바로 Rotation즉 회전의 문제이다. 기본적으로 지금까지 채택하고 있었던 스킬Cube의 형태는..
2021.09.05 -
XR Ray Interactor, Teleportation Area를 통한 이동 시스템
이번 구현은 새로운 것이아니라 기존에 만들어 놓은 부분들을 조금씩 다듬는 것이다. 이번에 다듬은 부분은 다음과 같다. 1. cliff영역에도 정상적으로 텔레포테이션될 수있게 조정 2. XR Ray의 형태 변경과 텔레포테이션 버튼 변경, 이동범위조절. 3. cliff영역에도 iceBomb같은 설치형 스킬위치가 제대로 초기화 되도록조정 4. icebomb가 실행전 미리 타격 위치를 알려주는 로직생성 Cliff(바위)영역 텔레포테이션 지금까지는 제작된 Terrain에만 텔레포테이션이 되도록 만들어 놨다. 기본적으로 이러한 게임오브젝트에 텔레포테이션이 가능하게 만들려면 Teleportation Area 컴포넌트를 적용해야 한다. 이 컴포넌트를 적용하는 순간 부터 XR Ray Interator와 XR Contro..
2021.09.01 -
Attention(어텐션)
이번 포스팅은 seq2seq의 개선에 이어 Decoder위주로 설명을 할 것이다. 이번 장에서 완성되는 어텐션은 seq2seq처리에서 아주 강력한 기능을 보이고 있으며 그 구조도 상당히 직관적이다. 어텐션을 짧게 표현하자면 넘어오는 데이터중 필요한 정보만 "주목"시키는 기술이다. 이 말을 이해하기 위해서 천천히 구조를 파악해보도록 하자. Encoder개선 Encoder부분 Attention은 전 포스팅에 글을 올려놨지만 이번 글이 어텐션이 주제인 만큼 간단하게 짚고 넘어 가겠다. Encoder파트 attention의 주된역할은 고정길이 벡터 개선이였다. 시계열 데이터가 커지면 커질 수록 고정길이 벡터는 입력데이터를 표현하기 점점 어려워 지기 때문이다. 그렇기에 입력데이터에 따른 크기의 유동적인 조절이 필..
2021.08.17