어떤 방향을 향할 수있는 사전 렌더링 된 2D 스프라이트를 어떻게 구현할 수 있습니까?


28

Clash of Clans와 같은 게임이 어떻게 군대를 렌더링하는지 인터넷 검색을 통해 런타임에 3D 모델을 2D 스프라이트 시트로 사전 렌더링하고 런타임에 2D 이미지를 렌더링하는 것으로 보입니다. 그러나 클래시 오브 클랜의 부대는 어떤 방향 으로든 대면 할 수 있습니다.

비슷한 게임에서 애니메이션의 각 프레임마다 모든 병력 유형 (18 유형이 있음)에 대한 모든 방향 (0-360도)에 대한 이미지를 만들려면 엄청난 양의 이미지 를 만들어야합니다 . 이것이 다른 개발자가하는 일이라고 상상할 수 없으므로 실제로 어떻게 할 수 있습니까?


2
그건 그렇고 당신이 말하는 기술은 "빌보드"입니다.
Weckar E.

답변:


45
  1. 일반적으로 360 개 미만의 방향이 있습니다. 일반적인 경우는 8 또는 16입니다. 애니메이션도 매우 짧습니다.

  2. 자동화는 당신의 친구입니다. Blender / 3DMax / etc 스크립트를 작성하여 목록에서 모델을로드하고 필요한 모든 프레임과 방향으로 이미지를 렌더링하십시오. 콘텐츠에 따라 이미지에 태그를 지정하고 게임에서 이미지를 지정하십시오.

  3. 빠른 액세스를 위해 모든 것을 텍스처 아틀라스 (일명 스프라이트 시트)에 담습니다.

결국, 당신은 수십 개의 아틀라스에 깔끔하게 채워진 수천 개의 스프라이트로 끝날 것입니다. 그렇게 큰 문제는 아닙니다.)

CoC에서 이미지를 찾을 수 없지만 디아블로 II는 캐릭터 애니메이션에 동일한 접근 방식을 사용했습니다. 예 : 아마존 근접 공격 :

enter image description here


4
렌더링 파워 / 시간과 스토리지 공간 및 다운로드 시간의 균형
M. Mimpen

3
"아틀라스"는 무엇입니까? 어떤 링크?
BЈовић

7
@ BЈовић "Texture Atlas"를 찾으십시오. 매우 일반적인 개념입니다.
크롬 스터, 모니카

2
블리자드 노스 개발자가이 기술에 대해 토론 할 때, 그들은 기본적으로 PC 그래픽 기능에서 어색한 순간을 처리하는 것이 이상한 스톱 갭 조치라는 결론에 도달했으며, 심지어 실제로는 그렇지 않았다는 점에 주목할 가치가 있습니다. 그만한 가치가 있습니다. 그것에 대한 인터뷰가 있었고 결국 모든 것을 다시 렌더링하는 데 많은 시간이 걸렸으므로 일반적인 결론은 훌륭한 접근 방식이 아니라는 것입니다 (그리고 다음 게임은 확실히 3D 일 것입니다).
KRyan

1
@KRyan 좋은 추가! D2의 NPC와 장비의 VAST 양 때문이라고 생각합니다. 균형이 다른 CoC 및 모바일 플랫폼의 경우.
Kromster는 Monica

8

또한이 이미지의 저해상도를 명심하십시오. 클래시 오브 클랜이 어떤 것을 사용하는지는 모르겠지만 공간을 절약하기 위해 할 수있는 일이 몇 가지 더 있습니다.

  • 부대가 표준 방향 (N, E, S, W, NE, SE, SW, NW)을 향하도록보다 자주 배치하지 않고 표준 방향에 대해서만 최적화 할 수 있습니다.

  • 일부 방향 만 사전 렌더링하는 결합 된 접근 방식을 수행 할 수 있습니다. 프레임 중에 기존 이미지와 일치하지 않는 부대를 렌더링하거나 시간이 부족한 경우 가장 가까운 이미지를 사용할 수 있습니다.

  • 저장된 프레임 수를 반으로 줄이려면 가능하면 왼쪽 / 오른쪽 대칭을 사용하십시오.

  • 걷기 및 휴식과 같은 특정 애니메이션의 우선 순위를 정해 더 많은 방향과 프레임을 저장할 수 있습니다. 그런 다음 적은 방향과 프레임을 저장하는 검의 스윙과 같은 다른 애니메이션의 우선 순위를 정합니다 (스윙의 첫 번째 프레임과 마지막 프레임에 더 많은 방향을 유지하는 것이 좋습니다).

  • 가장 가까운 이미지를 사용하여 늘려서 남은 방향을 위조 할 수 있습니다.

전반적으로, 우리는 초당 20 프레임, 평균 64x64 픽셀 및 픽셀 당 약 2 바이트에서 약 18 단위, 최대 8 방향, 아마도 2 초의 애니메이션을 말할 수 있습니다. 18x2x20x64x64x2 = 50MB입니다. 또한 장치의 기능과지도에 사용 된 단위 수에 따라 방향, 해상도 및 프레임 수를 조정할 수 있습니다.


2
특정 물체에 근접하여 확대하면 빌보드에서 3D 모델로 전환 할 수도 있습니다. 따라서 3d가 가까이 있고 백그라운드에서 주변을 돌고있을 때 더 빠른 2d를 사용합니다. 전환을 부드럽게 처리하는 것은 까다로울 수 있습니다.
Tim B

@TimB 고해상도를 렌더링하고 이미지를 저해상도로 사용하기 때문에 특히 좋습니다.
Peter

2

@Kromster 답변 외에도 이미지는 종종 크게 압축되며 반복되는 요소가 많은 큰 "아틀라스"이미지 (예 : 빈 배경)에서는 압축이 중요합니다. 따라서 이미지의 최종 "크기"는 개별 이미지 크기의 단순한 곱셈이 아닙니다.


5
압축은 jpeg와는 달리 GPU에서 다르게 작동합니다. 특히 Clash of Clans가 작성된 장치의 모바일 GPU는 특히 그렇습니다. en.wikipedia.org/wiki/S3_Texture_Compression 즉, 빈 배경은 텍스처 압축과 관련이 없습니다.
Peter

-2

전형적인 예를 들어 의사 3D 환경에서 2D 스프라이트를 사용한 원래 Doom을 다운로드하는 것이 좋습니다. 스프라이트는 (플레이어의 관점과 관련하여) 8 개의 향하는 방향을 가졌으며, 점점 가까워 질수록 메모리에서 약 8 개의 다른 크기를가집니다. 이것은 매우 눈에 띄었지만 게임 플레이에는 충분했습니다. Clash 또는 다른 아이소 메트릭 뷰잉 게임에서는 물론 거리를 고려할 필요가 없습니다.


다른 크기는 없었습니다. 렌더링은 필요에 따라 가장 가까운 이웃 스케일링을 위 / 아래로 순진하게 만들었습니다.
R ..

@R .. 수정 해 주셔서 감사합니다. 내가 연주한지 몇 년이 지났습니다! :)
Graham

1
죄송합니다. "어떻게 구현할 수 있습니까?"라는 질문에는 전혀 답하지 않습니다.
Kromster는 Monica

@Kromster 그래서 "어떻게 구현합니까?"라는 질문에 대해서는 고전 게임 (360 대신 8 각)에 대한 간단한 개요로 질문에 대답하지 않고 있으며, 어떻게했는지에 대해서는 언급하지 않았습니다. OP가 분명히 Clash에서 말할 수 없기 때문에 그것을 재생할 때 쉽게 볼 수 있습니까? 그리고 일반적인 경우와 아이소 메트릭 뷰의 특정 경우의 차이점에 주목 하는가? 나는 그것이 당신의 대답만큼 좋지 않다는 것을 자유롭게 인정할 것이지만, 질이 낮은 대답과 대답하지 않는 것 사이에는 차이가 있습니다.
Graham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.