덴바의 노트

내일배움캠프 24일차 TIL : SpriteLibrary #2 본문

프로그래밍 노트/TIL

내일배움캠프 24일차 TIL : SpriteLibrary #2

덴바 2024. 5. 22. 22:45

 

 

오늘의 키워드

 

  • Sprite Library 상세 사용

 

사용법

 

1. 먼저 스프라이트 라이브러리 에셋을 생성합니다.

 

 

2. 라이브러리 에셋을 열면 아래와 같은 창이 뜹니다

 

 

기본적으로 Category와 Label이 존재합니다.

 

기본적으로 라이브러리 에셋을 사용하는 방법은 저는 2가지라고 봅니다.

 

애니메이션 중점

 

애니메이션을 중점으로 설계하는 경우,

 

Idle, Walk, Hit, Die 등 대상의 애니메이션 상태를

 

카테고리를 이용하여 분류합니다.

 

파츠 중점

 

파츠 중점으로 설계하는 경우,

 

캐릭터의 Head, Body, Leg, Hand 등

 

몸의 파츠를 카테고리를 이용하여 분류합니다.

 

이번에는 바로 애니메이션을 중점으로 분류를 해보겠습니다.

 

 

위 사진과 같이 카테고리를 애니메이션의 상태로 정한 후,

 

Label을 생성하고 그곳에 해당 카테고리에 맞는 스프라이트를 넣어줍니다.

 

 

그 후 오브젝트를 하나 만든 후,

 

SpriteRender와 Animator, SpriteResolver, Sprite Library 컴포넌트를 부착해줍니다.

 

그리고 방금 만든 에셋을 SpriteLibrary에 넣어줍니다.

 

 

그 후 애니메이션 클립을 녹화해줍니다.

 

녹화할 때는 애니메이션 클립에 Sprite들을 드래그하여 사용하는 것이 아닌,

 

Sprite Resolver에 Label에 있는 사진들을 눌러주면

 

Sprite Renderer의 Sprite에 적용이 되면서 

 

애니메이션 클립에 값이 저장됩니다.

 

내용을 보면 Sprite가 아닌 Sprite Resolver에서 Label의 해시값을 저장하고 있는 것을 알 수 있습니다.

 

이런식으로 애니메이션을 만들고 게임을 실행 후

 

만들어뒀던 Sprite Library Asset을 변경해보면

 

애니메이션이 오류 없이 캐릭터는 변경된 상태로 작동이 되는 것을 볼 수 있습니다.

 


 

오늘의 회고

 

솔직히 그냥 Sprite들을 각 프레임에 드래그 & 드랍하고

 

애니메이터를 하나 만든 후,

 

Animator override Controller를 사용하면 되는 것 아닌가? 하고 생각하실 수 있습니다.

 

하지만 막상 Animator override Controller와 동일한 기능이 Sprite Library에 있습니다.

 

또한 가독성 부분에서도 이미 큰 차이가 납니다.

 

Animator Override Controller는 해당 애니메이터 컨트롤러의 Clip명을 보면서

 

해당 Clip에 맞는 Clip들을 장착해주는 느낌입니다.

 

반대로 Sprite Library를 사용할 경우

 

Animation Clip에는 Label을 0~5로 넣은 것 뿐이기에

 

Sprite를 마음대로 바꿔도 문제가 없는 것입니다.

 

다음 포스팅에서는 SpriteLibrary의 상속과

 

실질적으로 Library Asset을 런타임중 바꿨을 때 일어나는 변화에 대해서

 

포스팅 해보고자 합니다.

 

감사합니다!