카테고리 보관물: 개발

Unreal 안드로이드 모바일 기기에서 Emissive Color 적용되지 않는 문제 해결

개요

게임 내에 있는 물체의 모양을 보기 좋도록 여러가지 효과를 적용할 수 있습니다. Material 내에서 Emissive Color 가 적용되도록 하면 물체가 빛나는 효과(Glow)를 표현할 수 있습니다.

모바일 게임의 경우 성능이 좋은 기기에서는 정상적으로 표시됩니다. 그러나 낮은 성능을 가진 기기에서 빛나는 효과가 전혀 나타나지 않는 경우가 있습니다. 이 경우 어떻게 해결하는지 알아보도록 하겠습니다.

설정확인

일단 모바일 기기에서 Glow 효과를 나타나게 하는 설정이 선택되어 있는지 확인합니다.

Project Settings > Engine > Rendering > VR > Mobile HDR 체크

Project Settings > Engine > Rendering > Default Settings > Bloom 체크

설정 확인

디바이스 프로파일(Device Profile)

Unreal 에서는 기기별로 설정을 지정할 수 있습니다. 이 기능을 이용해서 성능이 낮은 기기에서도 Glow 효과가 나타나도록 할 수 있습니다. 디바이스 프로파일 설정에 대한 자세한 내용은 이곳을 참고하시면 됩니다.

Config\DefaultDeviceProfiles.ini 파일을 추가해서 설정할 수 있습니다. D:\your_unreal_engine_path\UE_5.3\Engine\Config\BaseDeviceProfiles.ini 파일 복사 후 DefaultDeviceProfiles.ini 로 이름 변경해서 추가합니다.

파일을 열어보면 내용이 많은데

[Android_Low DeviceProfile]
[Android_Mid DeviceProfile]
[Android_High DeviceProfile]

섹션에 +CVars=r.BloomQuality=1 을 추가한 후 저장합니다.

[Android_Low DeviceProfile]
DeviceType=Android
BaseProfileName=Android
+CVars=r.MobileContentScaleFactor=0.8
; Scalability groups, see AndroidScalability.ini
+CVars=sg.ViewDistanceQuality=0
+CVars=sg.AntiAliasingQuality=0
+CVars=sg.ShadowQuality=0
+CVars=sg.GlobalIlluminationQuality=0
+CVars=sg.ReflectionQuality=0
+CVars=sg.PostProcessQuality=0
+CVars=sg.TextureQuality=0
+CVars=sg.EffectsQuality=0
+CVars=sg.FoliageQuality=0
+CVars=r.BloomQuality=1

[Android_Mid DeviceProfile]
DeviceType=Android
BaseProfileName=Android
+CVars=r.MobileContentScaleFactor=1.0
+CVars=sg.ViewDistanceQuality=1
+CVars=sg.AntiAliasingQuality=1
+CVars=sg.ShadowQuality=1
+CVars=sg.GlobalIlluminationQuality=1
+CVars=sg.ReflectionQuality=1
+CVars=sg.PostProcessQuality=1
+CVars=sg.TextureQuality=1
+CVars=sg.EffectsQuality=1
+CVars=sg.FoliageQuality=1
+CVars=r.BloomQuality=1

[Android_High DeviceProfile]
DeviceType=Android
BaseProfileName=Android
+CVars=sg.ViewDistanceQuality=2
+CVars=sg.AntiAliasingQuality=2
+CVars=sg.ShadowQuality=2
+CVars=sg.GlobalIlluminationQuality=2
+CVars=sg.ReflectionQuality=2
+CVars=sg.PostProcessQuality=2
+CVars=sg.TextureQuality=2
+CVars=sg.EffectsQuality=2
+CVars=sg.FoliageQuality=2
+CVars=r.MobileContentScaleFactor=1.0
+CVars=r.BloomQuality=1

다시 패키징 후 안드로이드 모바일 기기에서 확인해 보면 Glow 효과가 나타나는 것을 확인할 수 있습니다.

안드로이드 기기에서 Glow 효과가 적용된 상태

Unreal UMG 해상도 고정

개요

보통 Unreal UMG(Unreal Motion Graphics UI Designer) 로 게임 화면의 UI 를 작업하게 됩니다. 기본적으로 화면 크기에 맞게 조절 됩니다. 특정한 해상도로 조정한 후 프로젝트를 다시 열면 설정이 유지되지 않는 현상이 있습니다. 해상도를 고정하는 방법을 알아보도록 하겠습니다.

ScaleBox, Size Box 사용

CanvasPanel에 UI 요소를 배치하는데 이것을 Scale Box 와 Size Box 의 자식으로 조정합니다.

ScaleBox, Size Box 자식으로 CanvasPanel 을 배치

해상도 고정

Size Box 를 선택하고 Details > Child Layout 섹션의 Width Override, Height Override 값을 원하는 해상도 값으로 입력합니다.

원하는 해상도로 변경

이렇게 하면 원하는 해상도를 기준으로 UI 작업을 진행할 수 있습니다.