2014-09-30 6 views
1

나는 cocos2d-x에 많은 수의 스프라이트 시트가있는 게임을 만들고있다. 너무 많은 문자와 효과가 있으며 각 프레임은 일련의 프레임을 사용합니다. APK 파일이 400MB보다 큽니다. 그래서 그 이미지를 압축해야합니다.스프라이트 시트를 압축하는 방법은 무엇입니까?

사실 시퀀스의 각 프레임은 다른 것과 비교할 때 약간의 차이가 있습니다. 그래서 스프라이트 시트에 넣는 대신 프레임 시퀀스를 압축하는 도구가 있는지 궁금합니다. (뼈대 애니메이션은 도움이되지만 그 효과를 뼈대로 볼 수는 없습니다.)

예를 들어, 10png 파일을 포함하는 효과가 있으며 각 파일의 크기는 1MB입니다. TexturePacker를 사용하여 스프라이트 시트로 만들면 큰 png 파일 8MB와 plist 파일 100kb가 생성됩니다. 총 크기는 8.1MB입니다. 그러나 프레임 사이의 차이점을 사용하여 압축 할 수 있다면,로드하는 동안 다른 9 개의 png 파일을 재생하기 위해 1MB의 png 파일과 100kb의 9 개의 파일을 얻을 수 있습니다. 이 방법은 디스크에 1.9MB 크기 만 필요합니다. 그리고 pvrtc 형식으로 변환 할 수 있다면 런타임에 필요한 메모리를 줄일 수 있습니다.

그런데 저는 게임 로딩 중에 .bmp를 .pvr로 변환하려고합니다. pvr로 변환 할 lib가 있습니까?

감사합니다. :)

+1

: 재미와 당신은 빠르게로드하고 메모리를 적게 소비하는 품질의 손실없이 작은 파일을 얻을. 윈 - 윈 - 윈. 로딩 시간 변환은 꽤 무의미하지만 사용자를 심하게 만들뿐입니다. – LearnCocos2D

+0

맞아, @ LearnCocos2D. 그러나 우리 apk 파일은 디스크에 너무 뚱뚱하기 때문에 우리는 A 등급 만 얻었습니다. 내 상사는 S로 등급을 매길 원합니다. 그래서 디스크의 크기를 줄이려고합니다. – wayne

답변

1

pvr로 변환 할 텍스처가 많은 경우 PowerVR 도구를 www.imgtec.com에서 가져 오는 것이 좋습니다. GUI 및 CLI 변형이 함께 제공됩니다. PVRTexToolCLI는 나를 위해 일했고, 나는 거대한 전환 작업을 스크립트로 작성했다. 무료로 다운로드하고 무료로 사용하려면 사이트에 등록해야합니다.

방금 ​​테스트 했으므로 많은 형식이 pvr (bmp 및 png 포함)로 변환됩니다.

대규모 일괄 처리 작업을 수행하기 전에 몇 가지 변종을 시험해 보시기 바랍니다. PVR은 (일반적으로) 디스크가 뚱뚱하고로드가 빠르며 RAM의 다른 형식과 같습니다. RAM 요구 사항은 기본적으로 픽셀 수와 각 픽셀에 대해 인코딩하는 비트 수에 따라 결정됩니다. 사용하는 출력 형식과 비트 수에 따라 pvr을 사용하여 흥미로운 디스크 크기를 얻을 수는 있지만 손실이있을 수 있으며 보이는 아티팩트를 얻을 수 있습니다. 풀 보어로 가기로 결정하기 전에 제한된 샘플로 실험하십시오.

변환을 시작하기 전에 내가 본 첫 번째 장소는 애니메이션입니다. TP를 사용하기 때문에 중복 프레임을 감지하고 N 프레임을 텍스처의 단일 프레임에 별명을 지정할 수 있습니다. 예를 들어, 저의 디자인 팀은 5 개의 그림과 8 개의 프레임으로 모든 '걷기/자세'애니메이션을 제공합니다! plist에는 누락 된 텍스처에 대한 프레임 별칭이 포함되어 있습니다. 모든 입장에서 프레임 8은 프레임 2와 같기 때문에 텍스처에는 프레임 2 만 포함되어 있지만 plist는 인위적으로 프레임 2의 이미지를 자르는 프레임 8을 만듭니다.

다른 곳에서는 16 비트를 사용하십시오. 이렇게하면 번들 크기, 런타임의 메모리 요구 사항 및로드 속도가 유리하게됩니다. 예를 들어 투명도가없는 텍스처에는 RGBA565를, 애니메이션에는 RGBA5551을 사용하십시오. 다시 한번, 허용 가능한 렌더링을 얻는 지 확인하기 위해 몇 가지를 시도해보십시오. 이미 TP 단지 pvr.ccz하는 출력 형식을 변경 사용하고 있기 때문에

+0

감사합니다! PowerVR 도구를 사용해 보았습니다. 다른 형식을 PVR로 변환하고 싶다면 정말 도움이됩니다. 그러나 나는 TP의 결과에 여전히 만족하지 못하고있다.그래서 디스크의 크기를 크게 줄이고 싶습니다. 나는 여전히이 스프라이트 시트를 압축하려고하고 있으며 처음 사용자가 게임을 실행할 때 압축을 풀 수 있습니다. – wayne

관련 문제