UDN
Search public documentation:

MobileMaterialReferenceKR
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 홈 > 캐릭터 아티스트 / 배경 아티스트 > 모바일 플랫폼용 머티리얼

모바일 플랫폼용 머티리얼


문서 변경내역: Mike Fricker 작성. 홍성진 번역.
MobileMaterialReferenceTitle.jpg

개요


모바일 머티리얼 제작 작업방식은 언리얼 엔진 3의 보통 머티리얼 작업방식과는 약간 다릅니다. 언리얼 에디터로 머티리얼을 만들어 본 경험이 있다면, 표현식으로 된 셰이더 네트워크를 구성하는 개념에 익숙할 것입니다. 디폴트로 모바일 머티리얼은 셰이더 네트워크를 사용하지 않으며, 대신 일련의 고정된 스위치와 세팅을 통해 생성됩니다.

다양한 모바일 전용 머티리얼 세팅은 머티리얼 에디터의 프로퍼티 창에서 찾아볼 수 있습니다.

MobileMaterialProperties.jpg

모바일 머티리얼 세팅은 일반 셰이더 네트워크 머티리얼 데이터와 함께 저장됩니다. 즉 모바일 플랫폼이든 (PC나 콘솔같은) 다른 플랫폼이든 메시를 렌더하는 데 똑같은 머티리얼을 사용한다는 뜻입니다. 그러나 모바일 플랫폼에서는 셰이더 네트워크의 표현식 대신 모바일-전용 프로퍼티가 머티리얼의 시각적인 면을 제어하게 됩니다.

이를 통해 모바일 플랫폼과 PC 또는 콘솔 모두에 최적으로 렌더되는 단 하나의 머티리얼을 만들 수 있습니다.

머티리얼을 텍스처로 "플래트닝(flattening)" (평평하게 펼치는) 방법을 통해, 머티리얼의 셰이더 네트워크에서 모바일 텍스처를 자동으로 만들 수도 있으니 참고하시기 바랍니다.

모바일 머티리얼 미리보기


현재, PC 플랫폼에서 모바일 머티리얼을 보기 위해서는 모바일 프리뷰어를 사용해야 합니다. 에디터 툴바에 있는 모바일 프리뷰어에서 플레이 버튼이나 레벨 뷰포트의 우클릭 메뉴를 통해서도 모바일 프리뷰어를 실행시킬 수 있습니다.

PlayOnMobilePreviewer.jpg

주: 에디터 뷰포트에서는 모바일 디바이스에서 보이는 것처럼 머티리얼이 표시되지 않을 수 있습니다. 에디터에서 머티리얼이 렌더되는 방식은 머티리얼 에디터에서 구성한 머티리얼 표현식 네트워크를 사용하기 때문입니다. 에디터에서 모바일 머티리얼 세팅을 기반으로 표현식 네트워크를 구성하여 모바일 머티리얼을 흉내낼 수는 있습니다.

모바일 머티리얼 프로퍼티


모바일용 Material (머티리얼) 세팅은 별도의 하위범주로 나눠 두어 프로퍼티를 쉽게 찾아 머티리얼을 변경할 수 있도록 해 두었습니다.

기본

가장 중요한 텍스트 프로퍼티는 Base Texture(베이스 텍스처)이지만, 모바일 머티리얼 프로퍼티의 주 부분에서도 자질구레한 설정을 여럿 찾아볼 수 있습니다.

  • Auto Flatten Mobile 자동 플래튼 모바일 - 켜면 에디터가 자동으로 셰이더 네트워크 표현식을 사용하여 베이스 텍스처를 생성합니다. 자세한 정보는 플래트닝 부분을 참고하십시오.

  • Mobile Base Texture 모바일 베이스 텍스처 - 이 머티리얼에 대한 베이스 텍스처입니다. 대부분의 머티리얼에 대해 이것은 디퓨즈 텍스처로 생각해 볼 수 있습니다. 이 텍스처가 없는 경우, (자동 플래트닝 이 켜지지 않은 이상) 디폴트 텍스처가 대신 표시됩니다.
base_diffuse.jpg
  • Mobile Base Texture Tex Coords Source 모바일 베이스 텍스처 텍스 좌표 소스 - 베이스 텍스처를 샘플링할 때 사용할 버텍스 UV 세트를 선택하는 곳입니다. UV 세트를 한 개에서부터 최대 네 개까지 사용할 수 있습니다. 특별한 경우를 제외하고는, 보통 이에 대해서는 첫 UV 세트(TexCoords0)를 사용하게 됩니다.

  • Mobile Normal Texture 모바일 노멀 텍스처 - 이 머티리얼에 대한 노멀맵 텍스처를 설정하고 픽셀-별 셰이딩 기능을 켭니다. 노멀맵 텍스처는 픽셀-별 스페큘러같은 다른 머티리얼 기능에 필요할 수 있습니다. 노멀맵 텍스처를 설정하는 것은 머티리얼의 셰이딩 성능에 현저한 영향을 끼칠 수 있습니다.
base_normal.jpg
  • Mobile Ambient Occlusion Source 모바일 앰비언트 오클루전 소스 - 구워진 앰비언트 오클루전을 켭니다. 즉 메시에 적용되는 스카이 라이팅(이나 앰비언트 라이트)의 양을 조절합니다. 메시가 버텍스 컬러 속에 구워진 앰비언트 오클루전 데이터를 갖고 있는 경우, 여기에서 데이터가 저장된 컬러 채널을 선택할 수 있습니다. 현재 이 기능은 동적으로 라이팅된 스켈레탈 메시에 대해서만 작동합니다. 이 기능의 성능상 비용은 극히 조금 듭니다.

  • Mobile Allow Fog 모바일 안개 허용 - 이 머티리얼에 대해 거리-기반 안개를 켭니다. 필요치 않은 프리미티브에는 이 기능을 끌 수 있습니다. 이 기능을 끄면 셰이딩 성능이 향상될 수 있습니다.

스페큘러

Specular(반사) 프로퍼티로 스페큘러 라이팅을 켜고 환경설정할 수 있습니다. 스페큘러 라이팅으로 좀 더 사실적인 라이팅 모델이 가능합니다.

  • Use Mobile Specular 모바일 스페큘러 사용 - 이 머티리얼에 동적인 스페큘러 라이팅을 켭니다. 라이트 인바이언먼트를 가진 프리미티브의 경우, 오브젝트에 대한 현저한 빛 방향 대부분이 스페큘러 라이팅에 사용됩니다. 아니면 씬에서 가장 밝은 직사광이 스페큘러 라이팅에 사용됩니다. (포인트 라이트는 아직 지원되지 않습니다.) 모바일에서, 스페큘러 라이팅은 다른 방식으로 라이팅되지 않은 프리미티브에 대해서도 켤 수 있습니다. 스페큘러를 켜는 것은 성능 비용에 지대한 영향을 끼칩니다.
diffuse_default.jpgspec_default.jpg
  • Use Mobile Pixel Specular 모바일 픽셀 스페큘러 - 고품질 픽셀-별 스페큘러 하이라이트를 켭니다. 스페큘러가 켜져있고 노멀맵 텍스처가 설정되어있을 때, 이 세팅을 켜면 픽셀-별 스페큘러 라이팅이 켜지게 됩니다. 아니면 픽셀-별 스페큘러 라이팅이 사용됩니다. 픽셀-별 스페큘러는 버텍스-별 스페큘러보다 성능 측면의 비용이 훨씬 많이 들어갑니다.
spec_default.jpgspec_perpixel.jpg
  • Mobile Specular Color 모바일 스페큘러 컬러 - 스페큘러 하이라이트에 사용할 색입니다. 광원의 색이 자동으로 고려되지만, 이 세팅을 사용하면 원하는 대로 하이라이트 컬러를 낼 수 있으니 참고하십시오. 이 세팅은 바꿔도 성능 영향이 없습니다.
spec_perpixel.jpgspec_color.jpg
  • Mobile Specular Power 모바일 스페큘러 파워 - 스페큘러 하이라이트의 선명도를 설정합니다. 하이라이트는 값이 높을수록 선명해지고, 낮을수록 넓고 둔해 집니다. 픽셀-별 스페큘러를 사용중이라면, 보통 버텍스-별 스페큘러를 사용할 때보다 훨씬 선명한 하이라이트를 얻을 수 있습니다. 이 세팅은 바꿔도 보통 성능 영향이 없습니다.
spec_perpixel.jpgspec_power.jpg
  • Mobile Specular Mask 모바일 스페큘러 마스크 - 가끔 스페큘러를 프리미티브의 특정 지역에만 한정시키면 좋을 때가 있습니다. 이런 효과는 스페큘러 마스크 데이터를 메시의 버텍스 컬러, 마스크 텍스처 속에다 칠하거나 혹은 그냥 디퓨즈 텍스처의 한 채널을 마스크로 사용하여 얻을 수 있습니다. 또한 디퓨즈 텍스처의 휘도 값을 스페큘러 마스크로 사용하기 위해 'Luminance'(휘도)를 선택할 수도 있습니다. 디폴트로 스페큘러는 마스킹되지 않으며 (Constant 불변) 전체 프리미티브에 고르게 영향을 끼칠 것입니다. 스페큘러 마스크를 켜는 것은 성능에 약간 영향을 끼칩니다.
spec_perpixel.jpgspec_mask.jpg

이미시브

Emissive(발광) 프로퍼티는 이미시브 라이팅 효과에 대한 것입니다. 이미시브 라이팅으로 머티리얼의 표면에서 빛을 내는 것처럼 보이게 만들 수 있습니다.

emissive.jpg

  • Mobile Emissive Texture 모바일 이미시브 텍스처 - 이미시브 텍스처를 설정하고 (모바일 이미시브 컬러 소스가 이미시브 텍스처로 설정되었을 때) 이미시브 라이팅을 켭니다. 이미시브 컬러는 라이팅에 의해 영향받지 않으며 머티리얼이 근본적으로 '어둠속에서 빛나도록' 할 수 있습니다. 이미시브 라이팅을 켜도 성능에 끼치는 영향은 미미합니다.

  • Mobile Emissive Color Source 모바일 이미시브 컬러 소스 - 이미시브 라이트의 소스를 선택합니다.
    • Emissive Texture 이미시브 텍스처 - 이미시브 라이팅은 텍스처가 '모바일 이미시브 텍스처' 프로퍼티에 묶였을 때만 사용가능해 집니다.
    • Base Texture 베이스 텍스처 - 이미시브 라이팅을 켜고 베이스 텍스처를 이미시브 컬러로 사용합니다.
    • Constant 불변 - 이미시브 라이팅을 켜고 변하지 않는 색을 사용합니다. 켜졌을 때 색 값이 '모바일 이미시브 컬러' 프로퍼티에 설정됩니다. 불변 이미시브는 전체 프리미티브에 걸쳐 균일한 이미시브 라이팅을 내긴 하지만, 성능-측면에서 이미시브 라이팅 중 가장 저렴한 유형입니다.

  • Mobile Emissive Color 모바일 이미시브 컬러 - '이미시브 컬러 소스'가 '불변'으로 설정되었을 때 이미시브 라이팅에 사용할 색을 설정합니다. 이 세팅은 바꿔도 성능에 영향을 끼치지 않습니다.

  • Mobile Emissive Mask Source 모바일 이미시브 마스크 소스 - 프리미티브의 표면에 걸쳐 이미시브 라이팅의 공헌도를 조절할 수 있습니다.
    • Constant 불변 - 이미시브 마스킹을 끕니다. 성능-측면에서 가장 저렴한 모드입니다.
    • Vertex Color (Channel) 버텍스 컬러 (채널) - 지정된 버텍스 컬러 채널로 이미시브 공헌도를 조절합니다.
    • Base Texture (Channel) 베이스 텍스처 (채널) - 지정된 베이스 텍스처 컬러 채널로 이미시브 공헌도를 조절합니다.
    • Mask Texture (Channel) 마스크 텍스처 (채널) - 지정된 마스크 텍스처 컬러 채널로 이미시브 공헌도를 조절합니다.
    • Normal Texture Alpha 노멀 텍스처 알파 - 노멀맵의 알파 채널로 이미시브를 조절합니다. 이 기능의 작동을 위해서는 가용 노멀 텍스처를 주어야 합니다.

인바이언먼트

Environment(환경) 프로퍼티로 인바이언먼트 매핑을 켜고 그 외양을 설정할 수 있습니다. 인바이언먼트 리플렉션은 보통 오브젝트에 광택이나 금프로퍼티를 추가시키는 데 사용됩니다.

  • Mobile Environment Texture 모바일 인바이언먼트 텍스처 - 구체형 인바이언먼트 리플렉션 매핑을 켜고 사용할 인바이언먼트 맵 텍스처를 설정합니다. 노멀맵 텍스처가 묶인 경우, 인바이언먼트 매핑은 픽셀-별로 계산되며, 아니면 버텍스-별로 계산됩니다. 인바이언먼트 매핑은 머티리얼의 성능 비용을 크게 증가시킵니다.

  • Mobile Environment Mask Source 모바일 인바이언먼트 마스크 소스 - 프리미티브의 표면에 걸쳐 인바이언먼트 매핑의 공헌도를 조절할 수 있습니다.
    • Constant 불변 - 인바이언먼트 맵 마스킹을 끕니다. 성능-측면에서 가장 저렴한 모드입니다.
    • Vertex Color (Channel) 버텍스 컬러 (채널) - 지정된 버텍스 컬러 채널로 인바이언먼트 맵 공헌도를 조절합니다.
    • Base Texture (Channel) 베이스 텍스처 (채널) - 지정된 베이스 텍스처 컬러 채널로 인바이언먼트 맵 공헌도를 조절합니다.
    • Mask Texture (Channel) 마스크 텍스처 (채널) - 지정된 마스크 텍스처 컬러 채널로 인바이언먼트 맵 공헌도를 조절합니다.
    • Normal Texture Alpha 노멀 텍스처 알파 - 노멀 맵의 알파 채널로 인바이언먼트 맵을 조절합니다. 이 기능의 작동을 위해서는 가용 노멀 텍스처를 주어야 합니다.

  • Mobile Environment Map Amount 모바일 인바이언먼트 맵 양 - 인바이언먼트 리플렉션 맵의 '강도'를 설정, 또는 인바이언먼트 맵이 프리미티브의 최종 색에 얼마만큼 공헌할지를 설정합니다. 큰 값은 밝은 인바이언먼트 리플렉션을 냅니다. 이 세팅은 바꿔도 성능 비용에 영향을 끼치지 않습니다.

  • Mobile Environment Blend Mode 모바일 환경 블렌드 모드 - 인바이언먼트 맵이 프리미티브의 베이스 디퓨즈 라이팅과 결합되는 방식을 설정합니다. 디폴트로 인바이언먼트 리플렉션은 디퓨즈 라이트에 더해지지만, 반사량에 따라 보간하여 디퓨즈 텍스처를 "대체"하도록 설정할 수도 있습니다. 이 세팅은 바꿔도 성능에 크게 영향을 끼치지 않습니다.
    • Add 더하기 - 인바이언먼트 리플렉션은 디퓨즈 라이트 공헌에 더해져서, 밝고 광택이 나는 반사를 만들어냅니다. 디폴트 값입니다.
    • Lerp 선형보간 - 디퓨즈 텍스처와 환경 텍스처가 인바이언먼트 리플렉션 양과 함께 섞입니다. 프리미티브의 밝기를 높이지 않고도 금프로퍼티 효과를 추가시킬 수 있습니다.

  • Mobile Environment Color 모바일 인바이언먼트 컬러 - 인바이언먼트 맵 리플렉션의 색을 조절합니다. 이 세팅은 성능에 영향을 끼치지 않습니다.

  • Mobile Environment Fresnel Amount 모바일 인바이언먼트 프레넬 량 - 값이 0 이외로 설정되면 프레넬 효과를 켭니다. 이는 보는 사람 방향의 표면 반사성을 줄이는 데 사용됩니다. 이 값은 인바이언먼트 맵 공헌의 몇 퍼센트가 프레넬에 영향받을지를 제어합니다. 보통 프레넬은 반사 표현을 좀 더 사실적으로 해 주지만, 이 기능을 켜면 머티리얼에 약간의 성능 부하가 더해집니다.

  • Mobile Environment Fresnel Exponent 모바일 인바이언먼트 프레넬 지수 - 프레넬이 켜졌을 때 프레넬 효과의 선명도를 설정합니다. 값이 높을수록 반사를 볼 수 있는 각도가 더욱 비껴지게 되며, 값이 낮을수록 반사 표면이 넓어지게 됩니다. 이 세팅은 보통 바꿔도 성능 영향이 미미합니다.

림 라이팅

Rim Lighting(후광) 프로퍼티로 머티리얼에 대한 림 라이팅 효과를 켤 수 있습니다. 림 라이팅은 오브젝트의 실루엣을 강조하는 데 쓰입니다.

  • Mobile Rim Lighting Strength 모바일 림 라이팅 세기 - 0 이외의 값으로 설정되면 림 라이팅을 켜고, 림 라이팅 효과의 세기를 설정합니다. 이 기능은 성능 비용이 크게 듭니다.
rim_none.jpgrim_default.jpgrim_strength.jpg
  • Mobile Rim Lighting Exponent 모바일 림 라이팅 지수 - 오브젝트의 실루엣 주변 림 라이팅 효과의 선명도를 설정합니다. 지수가 클 수록 비껴서 볼 때의 하이라이트가 선명해지는 반면, 작을 수록 표면에 걸친 효과가 넓어집니다. 이 세팅을 바꾸는 데 드는 성능상의 비용은 보통 크지 않습니다.
rim_color.jpgrim_exponent.jpg
  • Mobile Rim Lighting Mask Source 모바일 림 라이팅 마스크 소스 - 프리미티브의 표면에 걸친 림 라이팅의 공헌도를 조절할 수 있습니다.
    • Constant 불변 - 림 라이트 마스킹을 끕니다. 성능-측면에서 가장 저렴한 모드입니다.
    • Vertex Color (Channel) 버텍스 컬러 (채널) - 지정된 vertex 컬러 채널로 림 라이팅 공헌도를 조절합니다.
    • Base Texture (Channel) 베이스 텍스처 (채널) - 지정된 base texture 컬러 채널로 림 라이팅 공헌도를 조절합니다.
    • Mask Texture (Channel) 마스크 텍스처 (채널) - 지정된 mask texture 컬러 채널로 림 라이팅 공헌도를 조절합니다.
    • Normal Texture Alpha 노멀 텍스처 알파 - 노멀맵의 알파 채널로 림 라이팅을 조절합니다. 이 기능의 작동을 위해서는 가용 노멀 텍스처를 주어야 합니다.
rim_color.jpgrim_mask.jpg
  • Mobile Rim Lighting Color 모바일 림 라이팅 컬러 - 림 라이팅 효과의 색을 설정합니다. 이 세팅 변경에는 성능상 비용이 들지 않습니다.
rim_default.jpgrim_color.jpg

범프 오프셋

Bump Offset 프로퍼티로 시차 변위 텍스처 샘플링의 매우 원시적 형태를 흉내내는 '범프 오프셋' 효과, 즉 돌기가 튀어보이게 하는 효과를 낼 수 있습니다. 이 기능은 기본적으로 보는 위치에 따라 머티리얼에 3D 입체감을 주는 것입니다. 범프 오프셋은 월드 프로퍼티에서 적용해 주어야 합니다. 자세한 정보는 Designing For Mobile KR#PerLevelAnchor 페이지를 참고해 보시기 바랍니다.

  • Use Mobile Bump Offset 모바일 범프 오프셋 사용 - 범프 오프셋 효과를 켭니다. 중요: 켤 때, 마스크 텍스처가 설정되어야 합니다. _마스크 텍스처의 빨강 채널_이 모든 텍셀에서의 범프 오프셋 높이를 뽑아내는 데 사용됩니다. 모바일 플랫폼에서 범프 오프셋 효과를 사용하려면 마스크 텍스처를 묶어(bind)줘야 한다는 점 기억하시기 바랍니다. 이 기능은 성능 비용이 꽤나 높은 편입니다.
bump_none.jpgbump_default.jpg
  • Mobile Bump Offset Reference Plane 모바일 범프 오프셋 기준 평면 - 효과를 적용시킬 텍스처 공간에서의 대략적인 높이를 지정합니다. 값이 0 이면 텍스처가 표면에서 완전 이격되어 보이는 반면, (디폴트 값인) 0.5 정도면 표면 일부는 튀어나와 보이고 일부는 가라앉아 보이게 됩니다.
bump_ref0.jpgbump_ref1.jpgbump_ref2.jpg
  • Mobile Bump Offset Height Ratio 모바일 범프 오프셋 높이 비율 - 심도에 곱해주는 값입니다. 클 수록 심도도 극심해 집니다. 전형적으로는 .02에서 .1 사이의 값입니다.
bump_height0.jpgbump_height1.jpgbump_height2.jpg

마스킹

마스크 텍스처는 범프 오프셋이나 이미시브/인바이언먼트 스케일링과 같은 여러가지 다른 모바일 머티리얼 기능에 사용되는 '범용' 텍스처입니다. 사용하려는 기능에서 필요로 하는 경우에만 구성해 주면 됩니다.

Mobile Mask Texture 모바일 마스크 텍스처 - 텍스처를 마스크 텍스처로 설정합니다. 마스크 텍스처는 이 머티리얼에 켜진 다른 기능에 따라 다양하게 사용됩니다. 마스크 텍스처에 저장될 수 있는 정보는 이와 같습니다: 범프 오프셋 양, 디테일 텍스처 블렌드 팩터, 이미시브/인바이언먼트/림 라이트 마스킹.

Mobile Mask Texture Tex Coords Source 모바일 마스크 텍스처 텍스 좌표 소스 - 마스크 텍스처를 뽑아낼 때 사용할 버텍스 텍스처 좌표 세트를 선택합니다. 가용 UV 세트를 하나에서 넷까지 사용할 수 있습니다.

텍스처 블렌딩

Texture Blending(텍스처 혼합) 프로퍼티로 베이스 텍스처에 다른 텍스처를 혼합시켜 머티리얼에 텍스처를 추가 적용시킬 수 있습니다. Texture Transform(텍스처 트랜스폼) 프로퍼티를 사용하여 둘째 텍스처를 애니메이팅시키는 것도 가능합니다.

  • Mobile Detail Texture 모바일 디테일 텍스처 - 이 머티리얼에 사용할 '디테일 텍스처'를 설정합니다. 디테일 텍스처는 보통 텍스처 사이의 블렌딩이나, 애니메이팅된 텍스처와 베이스 텍스처 사이의 블렌딩에 사용됩니다. 디테일 텍스처가 설정되면 '모바일 텍스처 블렌드 팩터 소스' 프로퍼티에 환경설정된 값을 사용하여 베이스 텍스처와 혼합되게 됩니다. 디테일 텍스처 설정에는 텍스처 샘플링이 추가되기에 약간의 성능 비용이 듭니다.
blend_none.jpgblend_mask.jpg
  • Mobile Detail Texture Tex Coords Source 모바일 디테일 텍스처 텍스 좌표 소스 - 디테일 텍스처에 사용할 버텍스 텍스처 좌표 세트를 선택합니다. 디폴트로는, 메시의 둘째 UV 세트가 디테일 텍스처용으로 사용됨에 유념하십시오. 가용 UV 세트 넷 중 아무거나 선택해 사용할 수도 있습니다. 이 세팅의 변경은 보통 성능 영향이 미미합니다.

  • Mobile Texture Blend Factor Source 모바일 텍스처 블렌드 팩터 소스 - 베이스 텍스처와 디테일 텍스처가 오는 곳 사이의 블렌딩에 사용되는 '알파' 값이 어딘지 선택합니다. 메시에 저장된 버텍스 컬러를 사용할 수도, '모바일 디테일 텍스처' 프로퍼티를 사용하여 별도의 텍스처 마스크 세트를 사용할 수도 있습니다. 보통 별도의 디테일 텍스처를 마스크로 사용하는 쪽이 버텍스 컬러를 사용하는 쪽 보다 비쌉니다.
blend_tex.jpg
  • Lock Color Blending 컬러 블렌딩 잠금 - 플랫폼의 시스템 설정에서 강제로 꺼진 경우에도 이 머티리얼에서 텍스처 블렌딩을 사용할 수 있도록 해 주는 고급 기능입니다. 특별한 경우에 해당하는 머티리얼을 만들기 위해 시스템 설정을 덮어쓸 수 있는 것으로 생각해 볼 수 있겠습니다. 일반적으로는 이 옵션을 켤 일이 절대 없습니다.

컬러 블렌딩

Color Blending(색 혼합) 프로퍼티는 페인팅된 버텍스 컬러를 모바일 머티리얼에 적용하거나, 단일 균등색 스케일링을 전체 머티리얼에 적용할 수 있는 설정입니다.

Use Mobile Uniform Color Multiply 모바일 균등 색 곱하기 사용 - 켜면 머티리얼의 색을 '디폴트 균등 색'에 지정된 색 값으로 곱해 줍니다. 이 기능은 아주 약간의 성능 비용이 듭니다.

Default Uniform Color 디폴트 균등 색 - '모바일 균등 색 곱하기 사용' 옵션이 켜졌을 때 머티리얼에 스케일링해 줄 색을 설정합니다. 이 세팅의 변경에는 성능 비용이 들지 않습니다.

Use Mobile Vertex Color Multiply 모바일 버텍스 색 곱하기 사용 - 버텍스 색을 조절합니다. 버텍스 컬러를 칠해놓은 메시를 렌더링에 사용할 때, 또는 버텍스 컬러 애니메이션을 갖는 파티클 시스템을 사용할 때에 유용합니다. 이 기능의 성능 비용도 경미한 수준입니다. 버텍스 컬러 데이터가 없는 메시를 가지고 이 옵션을 사용하려 하는 경우, 문제 확인을 쉽게 하기 위해 눈부신 핑크색 머티리얼로 대체됩니다.

VertexColorNoVertices.jpg

Mobile Color Multiply Source 모바일 컬러 곱 소스 - 사용자가 컬러 블렌드에 적용하고자 하는 색을 조절할 수 있습니다. 왼쪽 텍스처를 베이스 텍스처로, 오른쪽을 마스크 텍스처로 사용하는 간한단 머티리얼을 예로 들면:

ColorMultiplySourceBaseTexture.jpgColorMultiplySourceMaskTexture.jpg

Color Multiply 옵션을 켜고서 이 드롭다운에 있는 채널을 선택하면, 머티리얼의 특정 영역을 조작할 수 있습니다. 왼쪽 이미지는 블렌딩 없이, 그 옆은 기본 균등 색에 마스크 텍스처의 빨강 채널, 마지막은 기본 균등 색에 마스크 텍스처의 파랑 채널을 사용한 것입니다.

ColorMultiplySourceNoBlendEnabled.jpgColorMultiplySourceMaskRed.jpgColorMultiplySourceMaskBlue.jpg

텍스처 트랜스폼

Texture Transform(텍스처 트랜스폼) 프로퍼티로 머티리얼을 애니메이팅시킬 수 있습니다. 베이스 텍스처나 디테일 텍스처중 하나에 대한 텍스처 UV를 동적으로 옮기고, 회전하고, 스케일 조절하는 것입니다. 텍스처 UV에 고정된 스케일을 적용할 수도 있고, 심지어 간단한 사인-기반 진동을 적용할 수도 있습니다.

  • Use Mobile Texture Transform 모바일 텍스처 트랜스폼 사용 - 참이면 이 머티리얼에 대해 트랜스폼 효과가 켜집니다. 이 기능을 켜면 성능 비용이 중간 정도 듭니다.

  • Mobile Texture Transform Target 모바일 텍스처 트랜스폼 대상 - 베이스 텍스처 또는 디테일 텍스처 중 어느 텍스처의 UV 세트를 트랜스폼시킬지 선택합니다.

  • Transform Center X 트랜스폼 중심 X - 회전이나 스케일 트랜스폼에 대한 X축 상의 트랜스폼 중심을 지정합니다.

  • Transform Center Y 트랜스폼 중심 Y - 회전이나 스케일 트랜스폼에 대한 Y축 상의 트랜스폼 중심을 지정합니다.

  • Panner Speed X 패너 속력 X - 텍스처가 X축으로 패닝하는 속력을 지정합니다.

  • Panner Speed Y 패너 속력 Y - 텍스처가 Y축으로 패닝하는 속력을 지정합니다.

  • Rotate Speed 회전 속력 - 텍스처가 회전하는 속력을 지정합니다. 양수 값은 시계방향, 음수 값은 반시계방향 입니다.

  • Fixed Scale X 고정된 스케일 X - 텍스처의 X축 스케일 양을 지정합니다.

  • Fixed Scale Y 고정된 스케일 Y - 텍스처의 Y축 스케일 양을 지정합니다.

  • Sine Scale X 사인 스케일 X - 진동 효과에 대해 사인 곡선의 X축 스케일 양을 지정합니다.

  • Sine Scale Y 사인 스케일 Y - 진동 효과에 대해 사인 곡선의 Y축 스케일 양을 지정합니다.

  • Sine Scale Frequency Multiplier 사인 스케일 빈도 곱수 - 진동 효과와 함께 사용되는 빈도에 대한 곱수입니다.

버텍스 애니메이션

Vertex Animation 프로퍼티는 특수 버텍스 애니메이션 효과를 환경설정하는 데 사용할 수 있습니다. 전형적으로 단순한 파라미터식 애니메이션 효과를 사용하여 잎사귀, 깃발, 천 등을 순차적으로 애니메이팅시키는 데 사용됩니다. 스켈레탈 애니메이션에 비해, 이러한 애니메이션 유형은 그래픽 하드웨어에 의해 처리되므로 매우 저렴합니다.

  • Use Mobile Wave Vertex Movement 모바일 웨이브 버텍스 운동 사용 - 이 머티리얼에 대해 GPU-기반 버텍스 애니메이션을 켭니다. 켜면 상당한 성능 부하가 걸립니다.

  • Mobile Tangent Vertex Frequency Multiplier 모바일 탄젠트 버텍스 빈도 곱수 - 오브젝트의 중심선에서 버텍스까지의 벡터에 수직인 운동입니다. (나무나 깃발 등의) 바람을 흉내내기 위해 측면에서-측면으로 약간의 정현식(sinusoidal, 사인곡선형) 운동을 냅니다. 값이 1 이면 운동이 1 초 후에 순환됨을 나타냅니다.

  • Mobile Vertical Frequency Multiplier 모바일 수직 빈도 곱수 - 탄젠트 운동과 비슷하게 월드 Z-축을 따라 위에서-아래로의 정현식 운동을 냅니다. 값이 1 이면 이동이 1 초 후에 순환됨을 나타냅니다. 보통 이 값은 루핑 형태를 피하기 위해 '탄젠트 버텍스 빈도 곱수'와 차이를 둡니다.

  • Mobile Max Vertex Movement Amplitude 모바일 최대 버텍스 운동 진폭 - 세로 사인 곡선에서 양측 접선 정점간의 거리로, 순수한 월드 포지션 상의 거리입니다. 이 값을 메시에 칠해진 버텍스 컬러의 빨강 채널로 곱해줍니다. 칠해진 버텍스 컬러가 없으면, 운동이 적용되지 않습니다.

  • Mobile Sway Frequency Multiplier 모바일 흔들림 빈도 곱수 - (월드 공간속으로 트랜스폼된) 오브젝트 Y-축과 오브젝트 위치를 사용하여, 오브젝트 회전을 최대로 내는 흔들림 운동으로, 이를테면 나무수풀머리 흔들림을 흉내낼 때 정도겠습니다. 이 곱수는 표준인 1 초 주기를 빠르게 하거나 느리게 할 때 사용합니다.

  • Mobile Sway Max Angle 모바일 흔들림 최대 각 - 흔들림에 대한 사인 곡선 정점에서의 최대 각입니다. 이 값을 메시에 칠해진 버텍스 컬러의 녹색 채널로 곱해줍니다. 칠해진 버텍스 컬러가 없으면, 운동이 적용되지 않습니다.

플래튼


언리얼 엔진은 'Auto Flatten', 자동 플래튼이라 불리는 기능을 사용하여 모바일용 텍스처를 자동으로 생성하는 기능을 지원합니다.

머티리얼 플래트닝 기능은 모바일 플랫폼에 사용할 수 있는 단일 텍스처 속에다 셰이더 네트워크를 접어 넣는 기능입니다. 이는 완전한 셰이더 네트워크 머티리얼을 텍스처 속에다 렌더링하는 식으로 돌아갑니다. 분명 카메라 위치나 애니메이션에 의존하는 기능은 텍스처에 잘 구워지지 않겠지만, 꽤나 복잡한 그래프 네트워크의 경우도 종종 꽤 쓸만한 결과를 내곤 합니다.

플래트닝을 켜려면, 그냥 '자동 플래튼 모바일' 머티리얼 프로퍼티를 켜고 '모바일 베이스 텍스처'를 지우면 됩니다. 다음 번 머티리얼이 저장될 때, 에티더가 플래트닝된 텍스처에 대한 애셋을 새로 만들어 할당합니다.

플래트닝된 텍스처의 크기는 머티리얼에 사용된 텍스처 중 가장 큰 것에 따릅니다. 그 계산 방식에 대해서는 아래의 FlattenedTextureResolutionBias (플래트닝된 텍스처 해상도 편향) 설명을 확인해 보시기 바랍니다.

주: 텍스처 플래트닝을 통해 기존의 또는 복잡한 머티리얼을 모바일 플랫폼으로 이식하는 작업이 쉬워질 수 있습니다만, 일반적으로는 모바일 렌더링에 특화된 콘텐츠를 제작하는 것을 추천합니다.

플래트닝 환경설정하기

텍스처 플래트닝은 게임에 대해 올바르게 설정해 줘야 하는 .ini 환경설정 값이 몇 있는데, 이와 같습니다:

[MobileSupport]
bShouldFlattenMaterials=True

플래트닝된 텍스처를 새로운 애셋으로 저장합니다. 이 기능을 켜지 않으면, 머티리얼의 프로퍼티에서 '자동 플래튼 모바일' 세팅을 켜도 플래트닝된 텍스처가 생성되지 않습니다.

[MobileSupport]
FlattenedTextureResolutionBias=1

플래트닝된 텍스처에 대한 해상도 편향을 설정합니다. 이 수치가 높을수록 생성되는 텍스처의 해상도가 낮아집니다. 예를 들어, 위와 같이 설정된 상태라면 가장 큰 텍스처의 크기가 512x512인 그래프 네트워크 머티리얼은 256x256 텍스처로 플래트닝됩니다.

라이트매스 및 모바일 머티리얼


모바일 렌더러는 렌더링에 셰이더 그래프 네트워크를 사용하지 않는 반면, 라이트매스는 튕기는 라이팅 계산, 노멀맵 텍스처 굽기 등에 여전히 이 정보를 사용합니다. 비슷하게, 메인 에디터 뷰포트도 프리미티브를 렌더링하는 데 셰이더 네트워크를 사용합니다.

즉 합리적인 수준으로 모바일-전용 세팅과 그래프 네트워크와의 일관성을 유지해야, 에디터 미리보기와 라이트매스 계산이 모바일 그래픽을 제대로 일치될 것입니다.

라이트맵 변경하기

레벨의 WorldInfo 프로퍼티에 있는 '심플 라이트맵에 노멀맵 사용' 옵션을 켜면, 노멀 매핑된 라이팅을 라이트매스가 생성한 라이트맵으로 구워넣을 수 있습니다. 머티리얼의 셰이더 네트워크 부분에 노멀맵을 환경설정해 둬야 라이트매스가 찾을 수 있다는 점 확인하시기 바랍니다.

부가적으로, (인스턴스-별 더티함 추가, 등을 목적으로) 텍스처를 가진 라이트맵을 변경할 수 있습니다. 그 방법은 스태틱 메시 컴포넌트에 있는 모바일 세팅 그룹 내 SimpleLightmapModificationTexture (심플 라이트맵 변경 텍스처) 및 SimpleLightmapModificationFunction (심플 라이트맵 변경 함수) 프로퍼티를 사용하면 됩니다.

모바일 셰이더 생성


모바일 셰이더는 OpenGL ES2 관련 제한때문에 런타임에만 컴파일 가능합니다. 셰이더 컴파일에 따른 로드 시간 및 실행 시간 버벅임(hitch)을 줄이기 위한 노력의 일환으로, 쿠킹 프로세스가 게임에 필요한 각 머티리얼마다 "키"를 생성합니다. 그리하여 같은 키를 공유하는 머티리얼은 그 셰이더를 한 번만 컴파일할 수 있는 것입니다. 로드 시간 동안, 쿠커에 의해 전처리된 셰이더가 컴파일되며, 나머지 셰이더는 첫 사용시 컴파일됩니다. (해당 키에 의해) 동일한 (것으로 결정된) 셰이더를 사용하는 머티리얼은, 그 후로 컴파일 없이도 키 값에 접근 가능해 집니다. 같은 키를 사용하는 셰이더가 맡다는 것은 즉 고유 셰이더를 컴파일하는 데 소비되는 시간이 줄어든다는 뜻입니다. 머티리얼에 켜진 기능에 따라 키가 생성됩니다. 그 기능이라 하면 알파 테스팅, 림 라이팅, 이미시브 세팅, 포그 세팅 등입니다. 게임이 자주 버벅이거나 로드 시간이 길다면, 셰이더 컴파일 때문일 것입니다. 일반적으로, 게임 내 머티리얼 세팅의 순열이 많을 수록 생성되는 고유 키가 많아진다는, 즉 셰이더 컴파일 시간이 늘어난다는 뜻입니다.

그 이외의 사항


  • 셰이더는 디바이스 시동 도중에 컴파일되므로, 게임의 부팅 시간에 크게 영향을 끼칠 수 있습니다. 다양한 머티리얼 세팅 조합을 사용하면 고유 셰이더가 컴파일되게 할 수 있습니다. 텍스처만 다른 유사 머티리얼이 둘 있을 경우, 셰이더는 둘이 아닌 하나만 컴파일되니 참고하십시오.

  • BlendModeLightingModel 같은 특정 머티리얼 프로퍼티는 모바일 렌더러에서도 약간의 제약을 두고 따르게 됩니다. 일반적인 방식으로 반투명 또는 더하기 머티리얼을 만들 수 있습니다. 마찬가지로 다양한 usage 플랙 또한 데칼 머티리얼, 파티클 머티리얼 등등의 범위를 그리는(delineate) 데 사용됩니다. 일반 언리얼 머티리얼에서와 마찬가지로, 이러한 세팅의 환경설정이 올바르게 되었는지를 확인해야 합니다.

  • 동적인 라이팅 기능은 현재로서는 모바일에 극히 제한되어 있음을 기억하십시오. 디렉셔널 라이트는 꽤 잘 지원되는 편이며, 일부 스카이 라이팅/라이트 인바이언먼트 기능은 캐릭터 상에 제대로 작동합니다. 라이트맵에 구워넣은 스태틱 라이트도 엄청 잘 작동합니다. 그러나 그 외 여러가지 빛과 그림자 세팅 조합은 아직 지원되지 않고 있습니다. 예를 들어, 하나의 프리미티브에 디렉트 라이트가 여러개 영향을 끼치는 경우는 (라이트 인바이언먼트 영향 등) 특수한 경우에만 지원됩니다.

  • 현재, 동적으로 라이팅된 스켈레탈 메시에 대해서 스카이 라이트는 항상 켜집니다. 이는 UpDown 색을 계산하는 데 라이트 인바이언먼트를 사용한 다음, 머티리얼에 환경설정된 세팅을 사용하여 렌더링합니다.

  • 안개는 모바일에서 지원됩니다만, 다른 플랫폼과는 다른 방식으로 작동합니다. 포그 볼륨 대신, 레벨-전용 거리-기반 안개 세팅이 레벨의 월드 프로퍼티에서 환경설정됩니다. 자세한 정보는 Designing For Mobile KR#PerLevelAnchor 페이지를 참고해 보십시오. 개별 머티리얼은 Allow Mobile Fog (모바일 안개 허용) 옵션을 사용하여 안개에서 제되시킬 수 있습니다.

  • 감마 보정 기능이 모바일 디바이스에서 지원되기는 하지만, 일부 고성능 디바이스를 제외하고는 퍼포먼스 문제가 생길 수 있습니다. 디바이스에서 감마 보정 없이 사용할 콘텐츠를 만드는 데 관련된 정보는 이 문서 를 참고하시기 바랍니다.

  • 모바일 디바이스는 (디렉셔널 라이팅 정보를 구워넣지 않은) 심플 라이트맵을 사용합니다. 심플 라이트맵은 고정된 컬러 스케일 값 2.0 을 가지며, 라이트맵이 디퓨즈 텍스처를 2배 이상 밝게 할 수 없다는 뜻입니다.

  • 모바일 스위치를 사용하여 만든 머티리얼은 에디터 내 스위치로 설정된 효과를 표시하지 않습니다. 이는 에디터에서는 Direct3D를 사용하고, 모바일 디바이스에서는 OpenGL ES2를 사용하기 때문이며, 효과를 표시하는 데 있어 각기 다른 셰이더가 필요하기 때문입니다. 머티리얼이 디바이스에서 어떻게 표시되나 확인하려면 모바일 프리뷰어를 사용하시기 바랍니다.