귀령단/개발노트

22년 3월 8일 개발노트

문종식[지마] 2022. 3. 12. 09:36

1. 나무 배치하기

💡 이슈 : 본격적으로 나무를 Level에 배치하려 했는데, (Pine Tree 어셋 을구매하였다.) 스카이 라이트로 추측되는 푸른 빛의 ambient라이트가 나무에 전반적으로 비추어지는 것 같아서 그 원인을 찾아보려했다. 다른 나무 어셋은 정상적으로 렌더가 되는 것 같았음.

  1. 우선 Level 내의 모든 라이트를 꺼서 전체적으로 어둡게 되는지 확인을 했다. Directional Light, Skylight를 꺼도 이 푸른 빛은 계속 남아있었다. 뭔가 문제가 확실히 있었음.
  2. 유니티 같은 경우에는 ambient light만 설정할 수 있는 부분이 있어서 이와 관련된 옵션을 찾아 봤다. 언리얼 같은 경우에는 World settings의 Lightmass에 이와 관련됀 옵션들이 있었다.
  3. 위 원인은, 라이트 맵 때문이였다. Skylight와 Directional Light가 Static으로 되어있기 때문.
  4. 내가 배치한 나무같은 경우에는 dynamic이라서 영향을 안받을 줄 알았는데, 뭔가 사전설정이 되어있던 모양이다. 아니면 내가 한번 bake를 했던 모양인데,
  5. 어찌됐던 Level 내 모든 라이트를 Dynamic(Movable)로 바꿔주고, Light mass 설정에서 Calculate GI 기능을 해제해주고, 라이트를 다시 Build하면 위 문제는 해결이 됀다. 
  • 나무와 같은 식생들은 Foliage Volume System을 활용하면 엄청 효율적으로 배치할 수 있다. 사용법도 비교적 간단하고, 엄청나게 속도를 줄여줄 수 있다. 유니티 같은 경우에는 이런 부분에 있어서 아쉽다. 아마 있을 수는 있겠지만 유료어셋이겠지.

2. 환경 라이팅 - 무드 설정

개인적으로 블락킹 작업에 들어가기에 앞서서 목표하고 있는 분위기의 라이팅을 사전설정해두는 편이다. 이러면 불필요한 곳에 눈이 안가기 때문에 어느정도 효율적인 측면으로 Level을 구성할 수 있기때문.

  1. 언리얼에서 제공하는 새로운 Sky atmospheric system과 Cloud volumetric system을 활용했다.
  2. 둘 다 엄청난 기능을 탑해했다. 많이 무거워보이기는 하지만.
  3. Atmospheric System은 단순 대기의 비쥬얼적인 측면을 나타낸다. Skylight는 여전히 필요하다.
  4. Cloud volumetric system은 제어할 수 있는 부분이 많지는 않다. 원하는 비쥬얼을 그려내기 어려울 수도 있고, 무엇보다 구름이 움직이지 않는 것 같은데 이 부분은 추가적으로 리서치를 해봐야할 듯하다.
  5. Cloud Volumetric System은 material의 영향을 많이 받는다. 기본적으로 제공하는 Material 외에도, Plug-in content폴더 내에 있는 다른 Material도 활용할 수 있다.

3. Spline을 활용한 길 오브젝트 배치

  1. Spline을 활용해서 메쉬들을 배치할 수 있다. 이 또한 엄청나게 효율적인 툴;
  2. Medieval Sample 프로젝트에 있는 오브젝트를 테스트겸 불러와봤는데, Material이 제대로 적용이 되지 않았다.
  3. 확인해보니 이 오브젝트가 사용하는 Parent Material은 Runtime Virtual Texture이라는 기능을 Reference해서 사용하고 있었다.
  4. 따라서 Runtime Virtual Texture을 적용해서, 필요한 텍스처를 생성후에 Material에 재적용해줘야한다. 이 부분은 따로 Import가 되지 않기때문.

관련 튜토리얼 영상 : https://www.youtube.com/watch?v=SxQ1oOaaoT8&t=691s

  1. RVT를 사용하면 Landscape와 연동을 해서, Material에 다양한 Blending 기능 및 여러 추가 기능들을 추가시킬 수 있는 모양이다.
  2. 기능은 충분히 숙지했다. 필요한 오브젝트는 따로 만들 예정이다.

4. Landscape 관련 이슈

  1. 별 시도를 다 해봤으나 결국 다시 원점으로 돌아와서 마음을 정리했는데, Landscape의 일부분 Sculpting을 진행하려고 하니 해상도가 너무 낮아서 거의 무용지물이다. 방법을 찾아야만 했다.
    • Tiling Landscape는 내가 원하는 방식이 아니였다. 아직 사용법을 잘 모르는 것일 수도 있는데, 무엇보다 관련됀 자료가 매우 부족함.
    • landscape를 여러개로 나눠서 작업하는 방식을 선택하기로했다. 무식하지만, 그래도 이것 아니면 다른 방법은 없었다. 유료어셋으로 알아보기에는 뭔가 아쉬웠음.
    • 최적화 이슈만 없으면 가능할것이라 생각이 됐다. 반창고 대처기는 하지만, 현재 프로젝트는 전체 지형을 커버하는 open world 방식보다는 넓은 거리의 지형을 단순 보여주기 위한 부분이 크고(산과 같이), 실질적으로 플레이어가 개입하는 부분은 일부분에 불과하다.
    • 따라서 원경에 배치되는 부분은 사실 로우폴리곤으로 구성되면 됀다.
    • 그래서 현재 Landscape를 크게 9개로 나눠서 import했다. 일종의 tile 접근법과 거의 동일.
    1. 그리고 앞서 언급했던 문제를 해결하기 위해서, 플레이어가 실질적으로 움직이게 될 부분의 터레인은 고해상도로 Resample했다.
    • 지향하고자 하는 Landscape의 사이즈를 유지하고 해상도를 바꾸려면, 우선 원하는 크기의 landscape를 먼저 import하고 배치시킨 후에 resize 모드에서 관련됀 옵션을을 상향조정 후, resample하면 됀다.