2024년 7월 19일 금요일 개발일지 / 두 번째 캐릭터 애니메이션 작업하기

2024. 7. 19. 20:57나의 개발자 기록/본 캠프 개발 일지

2024년 7월 19일 금요일


What I did today : 두 번째

 

오늘은 두 번째 캐릭터 애니메이션 작업을 시작했습니다. 일단 Idle은 기존 캐릭터와 같이 1픽셀만 아래로 내리고 6~7 프레임에서 눈을 깜빡이는 모션을 추가했습니다. 원거리 공격 모션은 투사체가 나가는 형식이라 파어어 볼을 생성해서 둥둥 떠다니는 모습을 표현했습니다만... 약간 어색한감이 없지 않아 있습니다. 죽는 모션은 기존에 썼던 방식에서 색만 바꾼 형태로 만들었습니다.

 

 

점심을 먹은 뒤에는 원거리 공격용 모나 프리팹을 만들어 놓고 해당 애니메이션을 유니티 내에서 적용하였습니다. 애니메이션을 BaseController를 상속받아서 만들기 때문에 컨트롤러를 수정할 필요 없이 그냥 스프라이트 시트를 나열해서 만들기만 하면 되는 작업이었습니다.

 

 

그렇게 작업을 끝낸 후에는 기존에 사용하던 투사체 공격 방식이 캐릭터가 공통적으로 사용할 수 있는 환경이었기 때문에 분리 작업을 진행했습니다. 일단 최대한 수정을 적게 하기 위해서 SO 데이터에 투사체 프리팹을 추가하는 방식으로 진행했고, 기존에 String으로 구현되어 있던 부분에 stateMachine.Character.Data.projectilePrefab.name 을 추가하였습니다.

 

 

저녁을 먹고 나서 한 작업으로는 애니메이션이 공격보다 늦게 나오는 문제가 있었습니다. 계속 살펴보고 알아보니까 Idle에서 나가는 부분에 has Exit Time이 활성화가 되어 있어서 생긴 문제였더군요. 그렇게 풀고 나서 잘되나 확인해 보는데... 공격 전환이 얼추 잘 되긴 하지만, 빌드 상태에서 애니메이션이 고장 나는 문제가 생겨버렸습니다. 이 문제는 어떻게 해결할까 고민하다가... 캐릭터가 생성될 때 기존에는 Idle에 먼저 이동했으나 지금은 BuildState로 먼저 이동하니까 애니메이션도 Idle 애니메이션이 달린 BuildState를 따로 만들어서 연결하면 해결이 될 거라고 생각하고 실행해 보니 잘 작동하게 됐습니다.

 

작업이 끝난 후에는 개발일지(TIL)를 쓰며, 오늘 하루를 마무리했습니다. 오늘부터는 면접 질문 대비 문제를 1~2개씩 정리하면서 복습도하고 면접 준비도 해야 될 것 같습니다! 


면접 질문 대비 : 객체란 무엇인가요? 클래스와 어떤 연관이 있나요?

 

객체는 클래스의 인스턴스(instance)입니다. 클래스는 객체를 생성하기 위한 설계도청사진으로 볼 수 있습니다. 클래스는 속성(필드)메서드(함수)를 정의하고, 객체는 클래스의 구조를 기반으로 메모리에 할당된 실제 데이터기능을 갖습니다. 예를 들어, Car라는 클래스가 있다면, myCar라는 객체는 Car 클래스를 기반으로 생성된 하나의 실제 자동차입니다.


면접 질문 대비 : 생성자에 대해 간단하게 설명해 주세요.

 

생성자는 클래스의 인스턴스를 생성하고 초기화할 때 호출되는 특별한 메서드입니다. 생성자는 객체가 생성될 때 필요한 초기 설정을 수행합니다. C#에서 생성자는 클래스와 동일한 이름을 가지며, 반환형이 없습니다. 생성자를 통해 객체의 초기 상태를 설정할 수 있습니다.