▶▷ 노을 효과
낮과 밤이 바뀔 때 하늘도 같이 어두워져야 하는데 기존에 있는 DefaultSkybox는 잘 어두워지는 반면 다운 받은 에셋에 있는 Skybox는 어두워지지 않는 현상이 있었다.
이를 해결하기 위해 Skybox Material을 이것저것 만져보다가 노을 같은 효과를 낼 수 있는 값을 찾게 되어 해가 질 때 쯤 노을이 생기도록 만들었다.
이 값은 바로 Atmosphere Thickness이며 값이 높아질수록 붉은 색을 띄게된다.
낮과 밤을 만들 때처럼 AnimationCurve를 이용해서 구현하였다.
time이 0.6을 넘어가면 노을이 지기 시작하고 0.9가 되면 끝나도록 했다.
[Header("Skybox Settings (Procedural)")]
public AnimationCurve skyboxAtmosphereThickness; // 노을 효과 적용
[Header("---")]
public GameObject warningTxt;
private void Start()
{
// 기존 Skybox 에셋을 복제해서 사용 (원본 에셋 변경 방지)
if (RenderSettings.skybox != null)
{
RenderSettings.skybox = new Material(RenderSettings.skybox);
}
// 하루 길이에 따라 시간 증가 속도 설정 (1초에 1/dayLength 만큼 증가)
timeRate = 1.0f / dayLength;
time = startTime; // 시작 시간 초기화
}
private void Update()
{
// 시간 업데이트: 0 ~ 1 사이의 값으로 순환
time = (time + timeRate * Time.deltaTime) % 1.0f;
// 햇빛과 달빛 업데이트 (각각 0.25, 0.75의 시간 오프셋 사용)
UpdateLighting(sun, sunColor, sunIntensity, 0.25f);
UpdateLighting(moon, moonColor, moonIntensity, 0.75f);
// 환경 조명 및 반사 강도 업데이트
RenderSettings.ambientIntensity = lightingIntensityMultiplier.Evaluate(time);
RenderSettings.reflectionIntensity = reflectionIntensityMultiplier.Evaluate(time);
// Procedural Skybox 업데이트 (Material이 할당되어 있을 경우)
if (RenderSettings.skybox != null)
{
Material skyboxMat = RenderSettings.skybox;
skyboxMat.SetFloat("_AtmosphereThickness", skyboxAtmosphereThickness.Evaluate(time)); // 시간에 따른 노을 적용
}
// 경고 텍스트 표시
if (time > 0.75f && time <= 0.85f)
{
warningTxt.SetActive(true);
}
else
{
warningTxt.SetActive(false);
}
}
▶▷ 비 효과
뭔가 배경이 허전한 느낌이라 비오는 날씨를 추가하려고 생각 중이다.
파티클을 사용하면 될 것 같다고 생각 중인데 파티클 부분은 잘 다뤄보지 않아서 낯선 느낌이다.
우선 이렇게 간단히만 만들어보았고 자세한 부분은 내일 이어서 제작할 예정이다.
▶▷ 트러블 슈팅
막히는 점
1. 구현해둔 낮과 밤이 DefaultSkybox에는 적용이 되는데 다운 받은 에셋에 포함되어있는 Skybox에는 적용이 되지 않는 현상.
시도한 점
1-1. Skybox의 요소 중 하나인 Exposure 값을 낮춰 하늘을 아예 까맣게 만드는 방법 시도
1-2. Skybox를 다른 Material로 교체
해결
1. SkyBox Material 인스펙터 창에서 Shader -> Skybox를 들어가면 6slided, Paniramic, Cubemap, Procedural 이렇게 4가지가 있으며 이 중 Procedural로 설정된 Skybox에만 빛을 직접 적용할 수 있기 때문에 해당하는 리소스를 찾아서 사용해야함. (마땅한 리소스를 찾지 못해 일단은 직접 제작해서 사용)
'게임 개발 공부 기록' 카테고리의 다른 글
37일차 - Path Of Survival 팀 프로젝트 4 (0) | 2025.03.17 |
---|---|
36일차 - Path Of Survival 팀 프로젝트 3 (0) | 2025.03.14 |
34일차 - Path Of Survival 팀 프로젝트 1 (0) | 2025.03.12 |
33일차 - 직렬화, 역직렬화 (0) | 2025.03.11 |
32일차 - 3D Practice 3 (아이템 코루틴, 레이저 트랩) (0) | 2025.03.10 |