본문 바로가기
다이어리/내일배움 개발일지

게임개발캠프 - 개인과제(B) 4일차

by E.Clone 2024. 1. 23.

과정명 : 내일배움캠프 Unity 게임개발 3기

전체진행도 : 22일차

부분진행도 : Chapter3.1 - 4일차

작성일자 : 2024.01.23(화)

개발일지 목록 : 클릭


1. 진행중인 과정에 대해

Unity를 사용하여, 캐릭터 외형과 이름선택을 하여 필드에서 돌아다닐 수 있도록 하는 개인과제 프로젝트를 진행중이다.

제출기한이 오늘까지인데, 1차제출인 13시까지 밤을 새서 만들어 제출하고, 피곤해서 꾸벅꾸벅 졸면서 오후를 보내고, 추가 보수를 하여 21시에 다시 제출하였다.

개발 초기에 스크립트 간 설계를 제대로 하지 않아 현재 시점에서는 보수가 크게 필요한 상황이라는 점, 특히 플레이어의 데이터가 여러 곳에 산재해 있어 이를 모아 하나의 클래스 객체화 하는 것이 남은 과제이다. 시간을 들여서 보수를 할 수 있을 것 같은데, 내일부터 할 팀 프로젝트는 아무래도 개인프로젝트에서 이어지지 않는다는 소문이 있어 추가 작업을 할 것 같지는 않다.

2. 오늘 학습에 대해

개발 중 이슈에 대해서는 리포지토리의 README.md에 모두 작성하였다. 그 내용은 아래와 같다.

필수 요구사항

  1. 캐릭터 만들기
    • 입문 강의 중 사용했던 스프라이트 사용
  2. 캐릭터 이동 및 바라보기
    • InputSystem 사용
  3. 스테이지 만들기
    • 타일맵 사용
  4. 카메라가 캐릭터를 따라가기
    • 카메라 오브젝트를 Player의 하위 오브젝트로 넣음.
    • 스무스한 카메라 구현은 현재 방식으로 어려움, 이후 CameraPivot 오브젝트를 Player의 하위 오브젝트로 넣어 MainCamera가 정해진 규칙대로 CameraPivot을 따라가도록 하여 개선 가능
  5. 캐릭터 애니메이션
    • 현재 준비된 두 캐릭터에 대해 각각 idle상태, walk상태에 대한 애니메이션 마련
    • Animator의 파라미터로 int CharacterNum을 주어, 캐릭터의 외형을 선택 시 해당 CharacterNum 를 설정하고 그에 맞는 애니메이션을 Layers에서 선택하여 재생하려고 하였으나, 잘 작동하지 않아 한 개의 레이어에 두 캐릭터 외형에 대한 애니메이션을 모두 넣음. 캐릭터 외형 증가에 따라 애니메이터 동작 업데이트의 확장성 매우 낮음.
  6. 시작 시 이름 입력
    • 2~10자 이내로 이름 입력 가능
    • 캐릭터의 머리 위에 이름 반영
  7. 시작 시 캐릭터 선택
    • 두 종류의 캐릭터 마련, 캐릭터 종류가 늘어날 때마다 애니메이션을 추가해야함. 현재 애니메이터 구조로는 다수의 캐릭터 지원 어려움

선택 요구사항(달성)

  1. 시간 표시
    • TMP와 LegacyText 어느쪽을 사용하더라도 시간 표시가 반영되도록 스크립팅
  2. 인게임 캐릭터 재선택

개선 할 점

  • 타일 맵 분리 작업 : 현재 장식과 BackDesign이랑 같이 그려진 상태, 장식 타일만을 배치할 Decorate 타일맵 오브젝트 생성으로 개선 필요
  • 텍스트 폰트 단일화 : TMP에는 나눔글씨체를 사용하지 못하고 있음, Legacy로 바꾸던가 TMP용 폰트파일을 만들던가(시간 오래걸림) 해서 서체 단일화 필요.
  • 현재 산재한 플레이어 정보들을 모아 하나의 클래스 객체로 관리하기
  • 위와 동시에 스크립트도 정리하기
  • TMP와 LegacyText 어느쪽이라도 텍스트가 반영되도록 하는 전용 유틸 메서드 작성
  • Image와 SpriteRenderer 어느쪽이라도 스프라이트가 반영되도록 하는 전용 유틸 메서드 작성

해야 할 일

  • Player의 클래스화
  • NPC와 Player의 클래스 리스트 관리
  • 선택과제 2번 : 인게임 이름 바꾸기(새로운 캔버스 또는 패널을 만들어야 할 듯)
  • 선택과제 3번 : 참석 인원 UI(NPC/Player의 리스트 관리 마련 후 가능)
  • 선택과제 5번 : NPC 대화(NPC 마련부터 해야함)

개발이슈

  • 입문 강의를 소화하고 개인과제까지 하는 데에 너무 적은 시간이 부여됨. 강의시청을 도중 중단하고, 1일 이내의 시간을 개인과제에 할애하여 필수 요구사항만을 우선 구현.
    • 개인과제를 급하게 만들었기 때문에 강의에서 배운 내용을 적용하지 못한 부분이나 플레이어 데이터의 관리 등 여러 부분에서 결함이 많음.
  • TextMeshPro에서 새로운 폰트 적용이 번거로움. 한글 폰트를 새로 작성하고 적용하려 했으나 생성에 시간이 너무 오래 걸려 보류.

3. 과제에 대해

  • 진행중인 과정에 대해 상기한대로, 추가적인 프로젝트 보수는 없을 것 같다. 내일부터 새로 주어지는 팀 과제에 착수.
  • 주어진 유니티 강의를 50%가량 소화하지 못했다. 해당 강의를 다시 보며 공부해야 할 것 같다. 디자인패턴에 대해 신경을 쓴 내용이라 필수적으로 알아야 할 스킬들이다.

4. 참고자료

  • 없음

5. GPT4 문답

  • 없음
반응형