UDN
Search public documentation:

DesigningForMobileKR
English Translation
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 모바일 홈 > 모바일용 콘텐츠 디자인하기
UE3 홈 > 파티클과 이펙트 > 포그 이펙트 > 모바일용 콘텐츠 디자인하기
UE3 홈 > 캐릭터 아티스트 / 배경 아티스트 > 모바일용 콘텐츠 디자인하기

모바일용 콘텐츠 디자인하기


문서 변경내역: Josh Adams 작성. 홍성진 번역.

개요


여기서는 현 세대 모바일 하드웨어에서 잘 실행되도록 콘텐츠를 디자인하는 비법에 대해 다뤄 보겠습니다.

퍼포먼스 고려사항


  • 스켈레탈 메시
    • 캐릭터 메시는 가급적 로우 폴리를 유지해야 합니다. 인피니티 블레이드의 캐릭터는 대략 8천 폴리, 3천 버텍스 수준입니다.
    • 프레임율을 낮추는 데는 스켈레탈 메시의 버텍스 수를 가장 먼저 최적화시키는 것이 좋습니다.
    • 본(bone) 제한 디폴트는 75 입니다. 본 제한을 두면, 이 수치를 낮출 수 있습니다. (Engine.ini 파일 내 [SystemSettings] 부분의 MobileBoneCount 세팅입니다.) 이를 통해 메모리 사용량과 CPU 부하를 줄일 수 있습니다.
    • 최대 버텍스 영향력 수 디폴트는 2 입니다. 절대 수치를 늘리려면 Engine.ini 파일의 [SystemSettings]MobileBoneWeightCount 세팅으로 늘릴 수 있습니다. 이 수치를 늘리면 렌더링 속도에 영향을 끼칩니다. 1로 낮추면 (아마도 로봇 게임?) 속도가 오르는 것을 볼 수 있을 것입니다.
  • 드로 콜
    • 드로 콜 수는 매우 중요합니다. 각 머티리얼은 별개의 드로 콜로 그려지기에, 머티리얼이 넷인 메시가 하나 있을 경우, 드로 콜은 4 입니다.
    • 각 메시 역시도 별개의 드로 콜로 그려지기에, 전체적인 메시 크기가 너무 커지지 않는 선에서 메시를 결합하는 것이 좋습니다. 안그러면 표시여부 미리계산 기능으로 컬링(생략)시키기가 힘들 것입니다.
    • 모바일 디바이스에서는 표시여부 미리계산 기능이 렌더링되는 메시의 수를 줄여주기에, 치명적으로 중요합니다. 꼭 모든 레벨에 Precomputed Visibility Volume 을 필요한 만큼 추가하도록 하십시오.

레벨별 렌더링 세팅


안개 및 범프 오프셋은 WorldInfo 일부 프로퍼티로 제어됩니다. View | World Properties 에서 Mobile 부분으로 갑니다:

WorldInfo.png

안개를 켜면 먼 시야에 대한 시각 효과가 향상되겠지만, 그에 관련된 렌더링 시간이 있습니다. 그 느려지는 부분은 Fog Start에서 End 범위 내에 발생하니, 그 두 값의 범위를 꼭 맞게 하면 도움이 될 것입니다. 그 범위에 일부라도 포함된 메시는 전체 메시에 걸쳐 안개 계산이 수행되므로, (월드 공간이) 큰 메시는 주의하시기 바랍니다.

당연히 Fog Start 보다 가까운 메시에는 안개가 적용되지 않으며, Fog End 이후의 것은 최대 안개가 적용됩니다. 여기서는 Fog End 너머로 적용되는 안개 색을 제어하는 Fog Color의 Alpha가 중요합니다. (알파값 255 는 메시를 Fog Color 단색으로 만듭니다.)

안개와 유사한 것은 범프 오프셋 세팅입니다. 오프셋을 적용시키기 위해 모바일 프로퍼티에서 범프 오프셋을 켜 오프셋을 적용시킨 머티리얼은 무엇이든, Bump Offset Enabled 세팅을 체크(디폴트)해 줘야 합니다. 그러나 Bump End 보다 멀리 있는 메시에는 적용되지 않을 것입니다.

중요 차이점


  • Vertex lightmaps 버텍스 라이트맵. 현재 모바일 디바이스에서 지원되지 않습니다.
  • Gamma 감마. 하드웨어가 라이팅을 계산하는 공간에 주의를 기울이십시오. (아래 참고)
  • Toggleable lights 토글가능 라이트. 토글가능 라이트를 가진 스태틱 라이팅은 지원되지 않습니다. 다이내믹 라이트는 대부분의 상황 하에서 토글 가능합니다. 세심한 주의를 기울이지 않는 한, 정적으로 라이팅된 오브젝트에는 Force Direct Light Map (직접 라이트 맵 강제) 옵션을 거짓으로 설정하지 않는 것이 좋습니다. 모바일에서는 라이팅 부작용이 생길 수 있기 때문입니다.
  • Point Sprites 포인트 스프라이트. 모바일 플랫폼에서는 지원되나 다른 콘솔 또는 PC에서는 아직 지원되지 않습니다. 포인트 스프라이트는 파티클 관련 렌더링 퍼포먼스를 향상시킬 수 있지만, (로테이션도 없고 SubUV 도 없는 등) 여러가지 제한사항이 있습니다. 포인트 스트라이프는 캐스케이드에서 "Use Mobile Point Sprite" 프로퍼티를 설정하여 (이미터가 아닌) 파티클 시스템 단위별로 켤 수 있습니다.

기타 공지


  • 레벨에 꼭 라이트매스 임포턴스 볼륨을 추가하도록 하십시오. 라이팅 리빌드 시간이 빨라집니다.

텍스처


  • 텍스처 스트리밍은 모바일 디바이스에서 꺼져 있습니다. 참조된 텍스처는 항상 완전히 로딩됩니다.
  • 월드 텍스처를 제작할 때, 2048x2048 까지 사용할 수는 있습니다만, 아껴 쓰시기 바랍니다.
  • 비-정사각형 압축 텍스처는 iOS 디바이스에서는 정사각형 텍스처로 변환됩니다. 이는 메모리 낭비이니, 정사각형이 아닌 텍스처는 가급적 정사각형 텍스처로 패킹하면 확장을 줄여 메모리를 절약할 수 있습니다.
    • 게임의 DefaultLightmass.ini 에서 bRepackLightAndShadowMapTextures (라이트 및 섀도우맵 텍스처 리패킹?)을 참으로 설정하면 라이트맵이 좀 더 정사각형 텍스처로 리패킹되므로 메모리를 절약할 수 있습니다.
  • 텍스처 제한(clamp)은 현재 꺼져 있습니다. 모든 텍스처는 UV가 0..1 범위 밖으로 나가면 0 미만은 0, 1 초과는 1로 제한되는 것이 아니라, 0 1 0 1 반복 처리됩니다.
  • 모바일 디바이스에서의 텍스처는 2의 승수 크기여야 합니다. 2의 승수 크기가 아닌 텍스처는 자동 변환됩니다.
  • 모바일 디바이스에서는 머티리얼 그래프 네트워크가 사용되지 않기에, 복잡한 머티리얼 그래프의 일반적인 모습을 보존하기 위해 머티리얼이 자동으로 텍스처로 플래트닝(flatten)시킬 수 있습니다. 머티리얼 플래트닝 관련 정보는 Mobile Material Reference KR#Flattening 페이지를 참고해 주시기 바랍니다.
  • 모바일 디바이스는 (디렉셔널 라이트 정보를 굽지 않은) SimpleLightmap (단순 라이트맵)을 사용합니다. 단순 라이트맵에는 컬러 스케일 값이 2.0 으로 고정되어 있는데, 라이트맵이 디퓨즈 텍스처를 2배 이상 밝게 할 수 없다는 뜻입니다.
    • World 프로퍼티 Lightmass 세팅 부분에서 "Use Normal Maps For Simple Light Maps" (단순 라이트맵에 노멀맵 사용) 옵션을 켜면, 메시의 노멀맵이 단순 라이트맵에 병합될 것입니다. 이를 통해 라이트맵 결과를 향상시킬 수 있습니다만, 텍스처를 추가로 처리해야 하기에 라이팅 빌드 시간이 더 오래 걸릴 수 있습니다.

키즈멧


모바일에 집중된 게임/레벨용 기능이 키즈멧에 여럿 추가되었습니다. 자세한 내용은 다음 페이지를 참고해 주십시오:

감마


모바일 디바이스에 감마 보정 지원이 되기는 하지만, 대부분 디바이스의 하드웨어적인 한계때문에 퍼포먼스 문제가 생길 수 있습니다. 감마 보정을 사용하지 않고서 콘텐츠를 저작할 때는 이러한 단점을 만회하기 위해 특별히 고려해야 할 것이 있습니다.

감마 보정을 끈 상태(디폴트)로, 모바일 디바이스는 라이팅을 선형 공간이 아닌 감마 공간에서 계산한다는 점입니다. 그 뒤에는 엄청난 연산상의 차이점이 있습니다만, 뜻하는 바를 미적인 관점에서 풀어보자면 라이트와 텍스처가 어두워지면 정말 어두워지고, 밝아지면 정말 밝아진다는 뜻입니다. 색의 채도가 훨씬 빨리 변한다는 뜻이기도 합니다.

  • 이에 대한 좋은 예는 인피니티 블레이드에서의 태양빛입니다. 희미한 주황색이지만, 원래는 약간 연한 복숭아색인 보스 캐릭터에게 내리쬘 때 매우 붉은 주황빛으로 변하는 것입니다. 이에 대한 반작용으로써 빛을 더욱 희미하게 만들고 그 피부를 훨씬 창백하게 하여 그저 연한 느낌만 낼 수 있도록 하였습니다.
  • 채도의 빠른 변화때문에 모바일 하드웨어에서는 라이팅을 돋보이게 하는 꼼수를 쓸 수 있습니다. 다음 스크린샷은 텍스처를 맥스에서 렌더링 아웃시킬 때 Z 페이싱 같은 꼼수를 쓴 것입니다:
ZFacing.png
  • 에픽의 제품에 사용된 꼼수라면, 색상(hue)을 시프팅(shift)하거나 거기에 색 그레디언트 맵을 적용한 다음 소프트 라이트로 설정하는 것입니다.