2018. 10. 22. 10:41ㆍ포트폴리오
CharacterSystem
1. 캐릭터 상태기계 설계를 하였습니다.
(상태 변환 예 : Stand -> Run, Run -> Jump, Jump -> Jump)
2. 캐릭터 서있기, 이동, 점프(2단 가능), 경공 상태를 구현하였습니다. (키보드, 안드로이드 컨트롤러)
3. 성능을 위해 따로 캐릭터에서 아래 방향으로 Map Picking은 사용하지 않고 CharacterController에 중력적용을 구현하였습니다.
4. 네비게이션을 길찾기 이동을 구현하였습니다.
5. 맵 오브젝트 중에 올라탈 수 있는 것을 구현하였습니다.
6. 아이템 장착시 캐릭터 능력치에 적용될 수 있도록 설계하였습니다.
7. 전투쪽으로 계속 구현 예정입니다.
(이 상태기계를 이용하여 전투 및 공격1공격2공격3, 달리다 공격, 기절, 빙결, 화상 상태등 구현 가능합니다.)
8. 캐릭터들의 위치와 회전은 멀티스레드를 사용할 수 있습니다. (유니티 잡 시스템 적용)
잡 시스템을 이용할 수 있는 오브젝트의 최대 수를 1024로 잡아두고
그 이상으로 추가 될 경우는 잡 시스템을 이용하지 않으면 됩니다.
(어차피 한 화면에 렌더링 되는 개체수가 너무 많아지면 성능에 문제가 생기므로
게임 개발시 100~300 개체 수를 염두해두고 개발
1024는 최대값이므로 개발 후반에 수치를 낮춰서 최적화)
맵 상에서 움직이는 캐릭터, 몬스터와 이펙트등 Transform을 가지고 있는 모든 오브젝트의
위치, 회전 계산은 CPU가 분할 처리합니다.
(잡시스템을 사용하는 게임 오브젝트 추가/삭제가 가능하도록 설계)
UISystem
1. UI패널 스택 자료구조를 이용하여 열기 및 뒤로가기를 구현하였습니다.
(->스택에 넣어야 할 패널과 그렇지 않은 패널 구분 필요, 순서만 관리하며 실제 그래픽은 스택처럼 쌓지 않아야 함.)
2. 메시지 박스는 큐 자료구조를 이용하여 1초 후 다음 메시지 박스가 보이도록 하였습니다.
3. 설계를 UI아티스트가 패널 프리팹을 수정하기 편리하도록 하였습니다.
4. 모든 UI패널에는 공통 애니메이션이 적용되고 특수한 경우 따로 설정하여 사용하도록 하였습니다.
5. 콘텐츠 추가/삭제/관리가 편리하도록 설계하였습니다.
6. 제일 앞에 보이는 UI외에 블러 처리를 하였습니다.
7. 모든 게임 오브젝트는 재사용 대기 시간을 설정하여 대기 시간 안에
재사용 하지 않으면 파괴되어 효율적인 메모리 관리를 할 수 있도록 하였습니다.
8. 수정/관리 편이성을 위해 UI패널들 공통요소인 상단 패널을 분리하여 공통으로 사용하도록 하였습니다.
9. RectTransform을 설정하여 멀티 해상도를 적용하였습니다.
DataSystem
1. 기존 UGUI 컴포넌트와 에디터를 상속 받아 로컬라이징 시스템을 추가하였습니다.
2. 엑셀 테이블을 로드/메모리 해제를 어디에서든 할 수 있도록 설계하였습니다.
(현재 예제로 로컬라이즈 테이블과 아이템 테이블이 있습니다.)
3. 에디터에서 실시간으로 테이블에 읽어져있는 메모리를 사용하여 문자열을 변환할 수 있습니다.
MapSystem
1. 맵은 아티스트가 만듭니다.
2. 포탈을 이용한 맵 전환에 대해 구현하였습니다.
3. 캐릭터 이동, 점프, 카메라, UI컨트롤러를 심플하게 구현하였습니다. (애셋스토어 기능 포함)
캐릭터 및 전투구현
1. 캐릭터 상태기계를 구현하였습니다.
2. 기본 이동, 공격 및 스킬3가지를 구현하였습니다.
3. 장비를 습득하고 장착합니다.
4. 간단한 몬스터AI가 적용됩니다.
언리얼 엔진으로 제작해 본 영상입니다.
절대강좌 유니티5 수업내용입니다.
'포트폴리오' 카테고리의 다른 글
2022~2023 포트폴리오 (0) | 2022.05.17 |
---|---|
㈜팡게임 (0) | 2016.11.15 |
㈜아레 스튜디오 (0) | 2016.07.19 |
㈜넥스트 퓨처랩 (0) | 2016.07.15 |
DOGMA-G ENTERTAINMENT (0) | 2016.07.14 |