본문 바로가기
TIL

9.13 - 애니메이션 추출 및 게임 엔딩 씬 구현

by mazayong 2023. 9. 13.

<목차>

1. 애니메이션 추출해서 프리팹 만들기

1.1. 문제 인식

1.2. 시도한 방법

1.3. 해결 방안

1.4. 알게된 점

 

 

2. 게임 엔딩 씬 구현

2.1. 문제 인식

2.2. 시도한 방법

2.3. 해결 방안

2.4. 알게된 점

 

 

 

 

1. 애니메이션 추출해서 프리팹 만들기

 

1.1. 문제 인식

이미지를 만들어서 해당 애니메이션을 만들어야 했다.

 

1.2. 시도한 방법

사진 - 포토샵으로 조정.

유니티 - sprite slice로 자르고, 애니메이션 컨트롤러를 만드려고 했다가 감이 잘 안잡힘.

 

 

1.3. 해결 방안

사진 - 포토샵하다가 디스크 용량이 부족하다고 뜸. 여분 디스크가 없어서 컴퓨터 용량을 정리하니 해결, 지우개 기능 애용(목 없애기)

sprite 사이즈 다름 + 출력되는 위치가 다름(하나는 위쪽에 있음, 하나는 중앙에 있음)

 

1.4. 알게된 점

유니티 애니메이션 적용 : 애니메이션 컨트롤러에서 일일히 다 하는 게 아니라 blendTree라는 기능을 사용한 것을 봄, Horizontal, Vertical로 나눠서 파라미터를 적용하니 플레이어 방향을 선정하는 데 용이했음.

 

 

 

 

2. 게임 엔딩 씬 구현

 

2.1. 문제 제기

엔딩씬을 구현하기 위해 필요한 조건이다.

- 플레이어가 특정 위치에서 시작.(일정 위치까지만 출력된다. 나머지 맵들은 출력되지 않음.)

- 플레이어가 일정 위치에 도착하면 멈추면서 조작 불가 상태가 됨.

- 이 때 매니저님이 잠깐! 이라고 말풍선을 외치면서 플레이어 있는 곳까지 달려옴. (달려오는 과정에서 애니메이션 출력)

- 달려와서 정지 후 계속 말풍선과 함께 계속 대사 진행

 

2.2. 시도한 방법 && 해결 방안

플레이어를 특정 위치에서 멈추기 - 이전 게임인트로 씬에서 사용한 방법 이용.

매니저님이 외치면서 뛰어옴 - 처음에 매니저님 프리팹을 사용했는데, 특정 오브젝트 옆까지만 이동하고 계속 그 이후로 이동하지 않아짐

-> 전에는 부드럽게 도착하기 위해 lerp를 사용했지만, 빠르게 도착함을 강조하기 위해 MoveToward 이용.

-> 특정 오브젝트 / 매니저님 중 하나에 rigidbody 있는지 확인 후 매니저님 rigidbody obj 삭제.

-> 그리고 스피드를 프레임에 맞추지 않아서 Time.deltaTime도 speed에 곱해줌.

 

매니저님이 뛰어온 후, 다음 대사를 칠 때 뛰어온 직후 대사는 되지만 그 후 대사가 잘 되지 않음.

로그는 잘 받아와짐.

-> (사용한 코드 및 디버깅시 함수 라이프사이클 추가)

 

매니저님이 뛰어온 직후 치는 대사에서 음성 들리지 않는 오류 발생

->if문 넣어서 해결(코드 내용 추가 예정)

 

 

2.4. FSM 유한 상태 머신을 참조해서 최대한 효율적이게 리팩토링해야겠다...

update에 대사를 불러오는 함수가 계속 호출되는 부분을 고쳐야겠다

 

++비주얼스튜디오가 최신 유니티 대사 업데이트가 느린 경우가 있음.