게임엔진/DOTS

2D Sprite Animation (0) - 레퍼런스 조사

tsyang 2023. 3. 19. 14:47

DOTS로 3D 애니메이션의 구현은 레퍼런스가 꽤 많다. 에셋스토어만 봐도 꽤 완성된 패키지를 팔기도 함...

 

반면 2D 애니메이션쪽은 쫌 레퍼런스가 적다. 그나마 있는애들도 Entites 1.0 적용 이전이라 내가 고쳐서 써야한다.

 

우선 초반 레퍼런스로 보기 좋은 게 있다. 유튜버 Code Monkey의  Unity ECS 애니메이션 관련 영상

 

 

https://www.youtube.com/watch?v=tvi44I_SK3w

 

대충 아래와 같은 Graphics.DrawMesh를 통해 Sprite를 그려준다.

 

 

메테리얼은 아래와 같이 4개의 이미지로 구성된 Sheet이고 ...

 

 

출처 : https://www.youtube.com/watch?v=tvi44I_SK3w 캡쳐

 

위 코드와 같이 UV좌표로 잘라서 한 프레임씩 보여주는게 핵심 원리이다.

 

결국 애니메이션 정보도 별도 컴포넌트로 분리한 다음 몇 프레임에서 몇 프레임까지가 어떤 동작인지 정의해주기만 하면 된다.

 

 

https://youtu.be/t1f8ZreCuuQ

 

그리고 그 후에 이걸 최적화해주는 영상도 있음. 

 

 

 

 

 

그러나다 유니티 포럼에서 또 좋은 레퍼런스를 찾았는데 아래의 글이다.

 

https://forum.unity.com/threads/1-million-animated-sprites-at-60-fps.811116/

 

1 MILLION animated sprites at 60 FPS

Hello everyone, today I want to show you what I've been working on the past few days, to celebrate my 100 stars(thank you:rolleyes:) on the...

forum.unity.com

 

작성자가 공개한 깃헙 설명을 보면

 

 DynamicBuffers and ComputeBuffer의 이점을 최대한 활용했다고 한다. 작성자의 다른 스레드도 있는데 

 

 

 

https://forum.unity.com/threads/200k-dynamic-animated-sprites-at-80fps.695809/

 

200k dynamic animated sprites at 80fps

Hi guys, today I finished my sprite sheet system using a custom shader, compute buffers and DrawMeshInstancedIndirect, to FAST render, a lot of object...

forum.unity.com

 

 

댓글을 보면

 

오우 무려 유니티 CTO가 괜찮다고 했다.

 

다만 컨버전 부분이 미흡했나봄

 

 

 

아무튼 연구좀 해봐야 할 것 같다.