본문 바로가기

로블록스 개발 중급

로블록스 Atmosphere(분위기, 안개) 이펙트

로블록스의 게임을 제작할 때, 보다 현실적인 배경, 환경을 만들고 싶다면 Atmosphere 오브젝트를 알아 두면 좋다. Atmosphere 오브젝트는 공기중의 입자.. 안개나 황사, 저녁의 노을, 해뜰때의 장관등을 표현하고 싶을 때 사용된다. 여기서는 Atmosphere 오브젝트이 여러 속성들의 의미와 사용방법에 대해서 알아보고 실제 사용되는 예를 알아보자. 사실 커스텀하게 아주 세밀하고 조명할 수 있지만, 보통의 경우는 원하는 분위기의 속성값들을 알아두면 그때 그때 카피해서 사용해도 좋다.

구성

Atmosphere 객체의 사용은 Sky 객체와 함께 사용된다. 둘다 Lighting 서비스에 자식으로 추가되어 있어야 한다. Atmosphere 가 필요없는 경우는 Lighting 서비스에 없을 수도 있다. 사용하고 싶다면 둘다 추가하면 된다.

Atmosphere 객체의 속성들

Density (공기의 밀도)

Density 속성은 공기 중에 떠있는 입자들의 밀도를 뜻한다. 높은 밀도의 상황에서는 멀리 떨어져 있는 물체들이 흐릿하게 보이는 효과를 보여준다. Sky에는 직접적으로 영향을 미치지 못한다. 0에 가까울수록 입자가 없어서 모든 물체들이 뚜렷하게 보인다. 1에 가까울수록 짙은 안개에 가까워지다가 1이면 거의 모든것이 보이지 않게 된다.

Density = 0.35

Offset 속성

Offset 속성은 카메라와 Sky 배경 사이의 빛이 투과되는 방식을 0에서 1로 표현한다. 1에 가까울수록 빛의 투과가 떨어져서 멀리 있는 물체(산같은 거)의 실루엣이 뚜렷해지고, 0에 가까울수록 실루엣은 희미해지고 투명한 느낌을 준다.

Offset = 1

Offset과 Density는 서로 밸란스를 잘 맞춰줘야 한다. Density가 어느정도 있는 상태에서 Offset이 0에 가까우면 멀리 있는 물체가 투명해져서 SkyBox가 비쳐보이는 현상이 생길 수 있다. 이럴 때에는 Offset 값을 조금 올리면 Skybox 자체가 비쳐보이는 현상은 막을 수 있다. 반대로 너무 Offset값을 올려버리면 멀리 떨어져있는 물체임에도 불구하고 너무 눈에 띄어버리는 현상도 생길 수 있다. 

Haze (안개)

연기나 안개를 표한할 수 있다. Skybox를 덮는 효과를 낸다. 0에 가까우면 수평선 근처만, 10에 가까우면 하늘의 거의 전체를 덮어 버리는 표현을 할 수 있다.

Haze = 2.8

Color 속성

Color 속성은 미묘하게 배경 분위기를 만들기 위해서 색조(Hue)를 바꿀 수 있다. 일반적인 상황에서는 눈에 잘 드러나지 않고 안개(Density, Haze)를 많이 사용했을 때 변화를 잘 확인할 수 있다.

Color = [250, 200, 255]

Glare 속성

Glare 속성은 태양 주변의 빛에 관한 값이다. 0에 가까우면 태양은 둥근 실루엣 부분만 환하게 빛나게 되고 10에 가까울 수록 태양 주변의 빛이 점점 커지게 되어서 10이 되면 매우 넓은 범위의 태양이 된다.

Glare = 1

Glare 속성은 Haze 속성이 0일때는 변화를 알아챌 수 없다. Haze가 0 이상인 상태에서 안개의 색상을 통해서 변화를 느낄 수 있다.

Decay

Decay 속성은 태양이 비추는 반대편의 컬러의 Hue 값이다. Light 서비스의 ClockTime이나 TimeOfDay에 따라서 태양이 떠오르거나 질때의 태양 반대편의 색상값을 정의한다. Color 속성에서 태양에서 멀어질수록 점진적으로 Decay 색상값으로 바뀐다고 생각하면 된다.

Decay = [255, 90, 80]

Decay 색상은 Haze와 Glare의 값이 0이면 이것도 눈으로 확인할 수 없다. Haze와 Glare의 값 모두 0이상이라 눈으로 호가인 가능한다. 

Atmosphere 설정의 예

Lighting과 Sky 객체, Atmosphere 객체의 다양한 설정의 콤비네이션은 게임의 분위기를 결정하는데 중요한 요소이다. 개인적인 생각으로 디자인전공자가 아니라면( 설정을 통해 원하는 분위기를 만들어낼 수 있는 자신이 있다! 가 아니라면) 이미 누군가가 좋게 설정해 놓은 분위기의 설정을 따라하는 것도 나쁘지 않다. 

아래의 예를 참고해보자. 제시되지 않은 속성들의 값은 모두 디폴트값을 사용한다.

사하라 사막의 해돋이 배경

Lighting

  • OutdoorAmbient : [100, 70, 70]
  • ClockTime : 17.7

Atmosphere(child of Lighting)

  • Density 0.35
  • Color [250, 180, 120]
  • Decay [255, 0, 200]
  • Glare 1
  • Haze 2.1

Sky(child of Lighting)

  • SunAngluarSize 16

ColorCorrection(child of Lighting)

  • Contrast 2 
  • Saturation 0.2 
  • TintColor [200, 150, 220]

SunRays(child of Lighting)

  • Intensity 0.08 
  • Spread 0.75

한밤중의 바다

Lighting

  • OutdoorAmbient : [0, 160, 250]
  • ClockTime : 20

Atmosphere(child of Lighting)

  • Density 0.4
  • Color [0, 140, 200]
  • Haze 2

Sky(child of Lighting)

  • CelestialBodiesShown DarkGrey

ColorCorrection(child of Lighting)

  • Contrast 0.1
  • Saturation 0.15

Terrain(child of Workspace)

  • WaterColor [0, 140, 150] 
  • WaterTransparency 0.75

고요한 숲

Lighting

  • OutdoorAmbient : [120, 125, 100]
  • Brightness 3 
  • EnvironmentDiffuseScale 1 
  • EnvironmentSpecularScale 1 
  • OutdoorAmbient [0, 0, 0] 
  • ShadowSoftness 0.15 
  • Technology ShadowMap 
  • ClockTime 16.6

Atmosphere(child of Lighting)

  • Density 0.225 
  • Offset 1 
  • Color [40, 190, 200] 
  • Decay [50, 40, 145] 
  • Glare 0.55 
  • Haze 1

Bloom(child of Lighting)

  • Intensity 0.65 
  • Size 8 
  • Threshold 0.9

ColorCorrection(child of Lighting)

  • Contrast 0.05 
  • Saturation 0.2

DepthOfField(child of Lighting)

  • FarIntensity 0.25 
  • FocusDistance 250 
  • InFocusRadius 50 
  • NearIntensity 0.5

SunRays(child of Lighting)

  • Intensity 0.025
  • Spread 0.25