안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.
오늘은 GPT-4, GPT-4o 활용해서 Unity에서 자연스러운 낮과 밤의 주기 구현하기를 살펴볼께요.
[오늘의 목표] GPT-4, GPT-4o 활용해서 Unity로 구현한 자연스러운 낮과 밤의 주기 구현하기
- DayLight 살펴보기
- NightLight 살펴보기
- AmbientLight 살펴보기
- SunRimLight 살펴보기
- MoonRimLight 살펴보기
- 그림자 각도 및 길이 설정
- 전체 조명과 그림자 통합하기
- 에디터에서 테스트하기
- 최적화 및 성능 고려 사항
- 결론
*Happy Harvest - 2D Sample Project에서 구현한 내용을 설명해요.
[참고] 챗gpt를 활용하여 3주만에 개발/배포한 게임
아래 링크를 통해서 다운로드해보세요.
- APP Store
https://apps.apple.com/kr/app/%EB%86%8D%EB%B6%80%EC%9D%98-%EA%BF%88/id6479183930
- Google Play
https://play.google.com/store/apps/details?id=com.intellione.farmersfirstdream&pcampaignid=web_share
MoonRimLight 살펴보기
이번 글에서는 Unity 엔진을 활용해 자연스러운 낮과 밤의 주기를 구현하는 방법을 알아보려고 해요. 특히, 다섯 번째 단계로 달의 가장자리 조명인 MoonRimLight에 대해 집중적으로 설명할게요.
MoonRimLight는 달이 떠오르거나 질 때의 가장자리 빛을 표현하는 데 사용돼요.
MoonRimLight의 역할
저녁
- 설명: 해가 지고 어둠이 찾아오면서 MoonRimLight는 서서히 밝아지기 시작해요. 이는 달이 떠오르기 시작하는 시간대를 시각적으로 표현해 줘요.
밤
- 설명: 밤 시간 동안 MoonRimLight는 밝은 파란색을 유지하며, 달의 빛을 시뮬레이션해요. 이는 게임 환경을 신비롭게 만드는데 중요한 역할을 해요.
새벽
- 설명: 새벽이 되면 MoonRimLight는 다시 어두워지면서 서서히 사라져요. 이는 달이 지고 태양이 떠오르기 직전의 시간대를 시각적으로 표현해 줘요.
Inspector 패널의 MoonRimLight 설정 내용
- Color and Gradient: Color는 현재 밝은 파란색에서 어두운 색상으로 변하는 그라디언트에 의해 시간이 지남에 따라 변화해요.
- Intensity: 밝기는 1.0로 설정되어 있어, 달빛의 밝기를 적절하게 조절해줘요.
- Radius: 내부 반경과 외부 반경이 설정되어 조명의 범위를 정의해요.
- Blending: 혼합 스타일은 'Additive'로 설정되어 있어, 조명이 더 밝게 보이는 방식으로 적용돼요.
- Shadows: 현재 그림자는 활성화되어 있어, 더 현실감 있는 환경을 만들어줘요.
- Volumetric and Normal Maps: 체적 조명과 노멀 맵 설정이 적용되어 현실감 있는 조명 효과를 제공해요.
위에서 살펴본 것과 같이 게임 내에서 달의 가장자리 빛을 자연스럽게 표현하기 위해 MoonRimLight는 시간의 흐름에 따라 색상이 변하게 설정돼요.
이 변화를 구현하기 위해 MoonRimLightGradient라는 그라디언트를 사용해요.
MoonRimLight 색상 변화 구현하기
MoonRimLight의 색상 변화는 MoonRimLightGradient를 사용해서 구현할 수 있어요. 이 그라디언트는 시간의 흐름에 따라 색상이 어떻게 변할지를 정의해요.
아래 코드는 참고로 보세요. 나중에 자연스럽게 이해가 될거예요.
public void UpdateLight(float ratio)
{
// 달 가장자리 조명 색상 업데이트
MoonRimLight.color = MoonRimLightGradient.Evaluate(ratio);
}
- ratio: 현재 시간의 비율을 나타내요. 예를 들어, 0.0은 하루의 시작을, 1.0은 하루의 끝을 의미해요.
- MoonRimLightGradient.Evaluate(ratio): 현재 시간 비율에 따라 그라디언트에서 적절한 색상을 가져와 MoonRimLight에 적용해요.
MoonRimLightGradient 설정 예시
그라디언트를 설정할 때, 저녁, 밤, 새벽 시간대에 맞는 색상 키를 추가해요. 아래는 예시 그라디언트 설정이에요:
- 0% (저녁): 어두운 파란색
- 50% (밤): 밝은 파란색
- 100% (새벽): 어두운 파란색
이렇게 설정된 그라디언트를 사용하면, 시간의 흐름에 따라 MoonRimLight의 색상이 자연스럽게 변하게 돼요.
시각적 예시
- 저녁 (0.0 ~ 0.5): MoonRimLight는 어두운 파란색에서 밝은 파란색으로 변하며, 달이 떠오르는 것을 표현해요.
- 밤 (0.5 ~ 0.83): MoonRimLight는 밝은 파란색을 유지하며, 밤의 달빛을 시뮬레이션해요.
- 새벽 (0.83 ~ 1.0): MoonRimLight는 밝은 파란색에서 다시 어두운 파란색으로 변하며, 달이 지는 것을 시각적으로 표현해요.
결론
MoonRimLight는 달이 떠오르거나 질 때의 가장자리 빛을 시각적으로 표현하는 중요한 역할을 해요. MoonRimLightGradient를 활용해 시간에 따라 색상을 변하게 설정하면, 플레이어는 더욱 몰입감 있는 환경에서 게임을 즐길 수 있어요.
다음 글에서는 그림자 각도 및 길이 설정과 다른 조명 요소들을 다루며, 더욱 완성도 높은 주기 구현 방법을 소개할게요. 기대해 주세요!
지금까지,
언제나 성장하는 인텔리원스튜디오(IntelliOneStudio)입니다.
감사합니다.
'디지털노마드' 카테고리의 다른 글
챗GPT게임개발56: Unity에서 자연스러운 낮과 밤의 주기 구현하기(7) (2) | 2024.06.30 |
---|---|
챗GPT게임개발55: Unity에서 자연스러운 낮과 밤의 주기 구현하기(6) (3) | 2024.06.27 |
챗GPT게임개발53: Unity에서 자연스러운 낮과 밤의 주기 구현하기(4) (1) | 2024.06.19 |
챗GPT게임개발52: Unity에서 자연스러운 낮과 밤의 주기 구현하기(3) (1) | 2024.06.18 |
챗GPT게임개발51: Unity에서 자연스러운 낮과 밤의 주기 구현하기(2) (3) | 2024.06.15 |