-
내일배움캠프 45일차 TIL - 유니티 심화 주차 팀 프로젝트 1TIL/Unity 2024. 6. 19. 21:03
[한 줄 요약]
심화 주차 팀 프로젝트를 시작하며 주제를 정하고 기초 기획을 진행하였다.
여유가 되어 플레이어 기본 제작도 진행했다.
[학습 내용]
심화 주차 팀 프로젝트
기초 기획
주제 선정
이번 주차에 주어진 주제는 "모험의 시작"이며 그 외의 부분은 거의 자유롭게 진행이 가능했다.
회의를 거쳐 최종 프로젝트 때 진행할 게임을 미리 제작해보기로 하였고, 로그라이크 게임과 방치형 게임이 후보로 나왔다. 추가 논의 끝에 방치형 게임을 선택했고, 전투 일부 부분에서 로그라이크에서 구현할 기능을 구현하기로 하였다.
와이어프레임
여러 씬을 사용하지 않고 하나의 씬에서 UI를 통해 각종 기능을 구현할 것이기 때문에, 일단 메인씬 구성만 가닥을 잡았다.
기타 결정사항
- 게임 이름은 <고블린 키우기> (임시)
- 세로형 모바일 게임
- 해상도는1080 x 2340 (FHD+)
- 레퍼런스는 메인으로 <레전드 오브 슬라임>, 서브로 <버섯커 키우기>
- 지하 던전이 배경
- 하위 층으로 내려가면서 10층 단위로 보스 조우
- 층마다 세이브 포인트
- 고블린 (+동료) vs 몬스터 1마리
- 재화는 골드(강화용)와 보석(뽑기용)
- 스탯을 올려주는 부가적인 스펙업 요소 장비 추가
파트 분배
우선 구현해야 할 사항들을 도출해보았다.
- 플레이어
- 캐릭터 제작
- 스테이트 머신
- 애니메이션
- 공격
- 사망 처리
- 스탯
- 강화
- 몬스터
- 플레이어와 동일
- 스테이지 시스템
- 레벨 디자인
- 장비 및 아이템
- 재화 시스템
- 상점 및 뽑기 시스템
- 동료 시스템
- UI 전반
- 사운드
이 중에서 첫 시작으로 플레이어 제작을 맡았다.
플레이어 캐릭터 제작
고블린 에셋
플레이어 캐릭터로 사용할 고블린 에셋을 찾아야 했다. 몬스터 에셋이 정해졌기 때문에 거기에 맞춰서 2D 픽셀 디자인으로 찾아보았다.
스테이트 머신 구현
public class PlayerStateMachine : StateMachine { public Player player { get; } public PlayerIdleState IdleState { get; } public PlayerAttackState AttackState { get; } public PlayerStateMachine(Player player) { this.player = player; IdleState = new PlayerIdleState(this); AttackState = new PlayerAttackState(this); } }
애니메이션 구현
제작된 스테이트 머신과 각 상태에 맞게 재생될 애니메이션을 구현했다.
!! 문제 발생 !!
* 내용
사용할 고블린 에셋이 가공되어 있지 않고 하나의 파일로 되어있어서 바로 사용이 곤란하였다.
* 탐색
이전에 사전캠프 때 이러한 이미지를 자르는 방법이 있었는데 생각이 나지 않아서 곤란했다. 강의를 찾아보기엔 번거로워서 구글에 검색해보았다.
* 해결
유니티 공식 문서에 슬라이스에 관한 내용이 나와있었다. 프로젝트 창에서 파일을 누르고 스프라이트 에디터를 실행시키면 있는 기능이었다.
[회고]
우선 오늘은 기획적인 부분만 진행하려고 했는데 생각보다 빠르게 프로젝트를 시작했다.
내일은 오늘 만든 플레이어 캐릭터와 다른 팀원이 만든 몬스터의 상호작용(공격 등)을 구현할 예정이다.
'TIL > Unity' 카테고리의 다른 글
내일배움캠프 47일차 TIL - 유니티 심화 주차 팀 프로젝트 3 (0) 2024.06.21 내일배움캠프 46일차 TIL - 유니티 심화 주차 팀 프로젝트 2 (0) 2024.06.20 내일배움캠프 44일차 TIL - 유니티 심화 주차 개인 과제 2 (0) 2024.06.18 내일배움캠프 43일차 TIL - 유니티 심화 주차 개인 과제 1 (0) 2024.06.17 내일배움캠프 42일차 TIL - 3D 게임 심화 개발 (0) 2024.06.14