본문 바로가기
디지털노마드

챗GPT게임개발54: Unity에서 자연스러운 낮과 밤의 주기 구현하기(5)

by 인텔리노마드라이프 2024. 6. 26.
728x90

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.

오늘은 GPT-4, GPT-4o 활용해서 Unity에서 자연스러운 낮과 밤의 주기 구현하기를 살펴볼께요.

[오늘의 목표] GPT-4, GPT-4o 활용해서 Unity로 구현한 자연스러운 낮과 밤의 주기 구현하기
  1. DayLight 살펴보기
  2. NightLight 살펴보기
  3. AmbientLight 살펴보기
  4. SunRimLight 살펴보기
  5. MoonRimLight 살펴보기
  6. 그림자 각도 및 길이 설정
  7. 전체 조명과 그림자 통합하기
  8. 에디터에서 테스트하기
  9. 최적화 및 성능 고려 사항
  10. 결론 

*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

 

‎농부의 꿈

‎오래된 전설이 숨겨져 있는 [농부의 꿈]목장 한구석에서 ‘비밀의 문'과 '마법 책'이 발견되었어요. [변신하는 동물들] 병아리가 합쳐져 닭이 되고, 닭이 합쳐져 고슴도치로 변신하며, 점점 더

apps.apple.com

- Google Play

https://play.google.com/store/apps/details?id=com.intellione.farmersfirstdream&pcampaignid=web_share

 

농부의 꿈 - Google Play 앱

평화로운 목장에서 신나는 동물 합치기 무료게임 (바람, 뚫어뻥, 밧줄, 무중력 등 매직 아이템 활용해 병아리를 젖소로 키워보세요.)

play.google.com

 

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)입니다.

감사합니다.

728x90