바람에 날리는 섬: Claude Code와 함께하는 유니티(Unity) 북대서양의 섬 제작 (진행 중, 파트 2)
요약
북대서양의 가상 섬을 제작하는 과정을 다루며, 노르웨이 로포텐 데이터를 기반으로 일반화된 절차적 시스템 구축을 목표로 합니다. 개발 과정에서 Claude Code가 코딩, 셰이더 및 테스트를 지원하며, 나무, 날씨, 야생 동물 등 다양한 요소를 개선했습니다. 특히, 제작자는 노멀, 모션 벡터 등을 측정하는 엄격한 검증 과정을 거치고 있습니다.
핵심 포인트
- 프로젝트의 목표는 지형부터 식생까지 적용 가능한 일반화된 절차적 시스템 구축입니다.
- Claude Code가 코드를 작성하고 테스트하며 개발 워크플로우를 지원합니다.
- 나무, 초목, 날씨 등 여러 요소에 대한 LOD 개선과 사실적인 디테일이 추가되었습니다.
- 렌더링 시 노멀, 모션 벡터 등을 측정하는 전문적이고 엄격한 검증 과정을 거칩니다.
저는 Unity에서 차갑고 북대서양적인 섬을 만들고 있습니다. 이 장소는 해변가부터 눈 덮인 정상까지 걸어 올라갈 수 있는 곳이며, 보기 좋은 게임 옆에 놓여도 손색이 없을 만큼 멋져야 합니다. 지형은 노르웨이 로포텐(Lofoten)의 실제 고도 데이터를 약간 수정하고 재구성하여 1,000m 봉우리를 가진 4 × 5km 크기의 섬으로 만들었습니다. 이 프로젝트의 더 큰 목표는 일반화된 절차적 시스템(procedural system)이며, 이 섬은 그 테스트베드입니다. 지형 자체 외에는 거의 모든 것이 수작업으로 배치되지 않았습니다. 바위, 이끼, 식물, 숲, 심지어 새들이 모이는 장소까지 모두 섬의 높이와 물을 읽는 규칙(rules)에서 나오기 때문에 다른 섬에도 적용할 수 있습니다. 현재 진행 중인 다음 단계는 지형(침식, 빙하 계곡, 해안선, 식생) 또한 생성하는 것이며, 이 실제 섬을 기준으로 삼아 생성된 지형이 일치해야 합니다. 지금은 이런 방식으로 제작하는 것이 얼마나 멀리 갈 수 있는지 알아내고 있습니다.
어떻게 만들어지는지(현재): 제가 지시하고 판단하며, 코드의 일부를 확인하면 Claude Code가 구축합니다. 저는 분위기를 설정하고, 접근 방식과 알고리즘을 선택하며, 참고 이미지를 고르고, 눈으로 모든 변화를 검토하고, 매개변수(parameters)를 조정하는 등의 작업을 합니다. Claude는 코드를 작성하고, 셰이더(shaders)와 도구를 만들고, 자체적으로 테스트 및 벤치마킹합니다.
10일 전 첫 영상 이후 변경된 점:
- 나무: 소나무와 자작나무가 자체 트리 생성기에서 재구축되었으며, 이전보다 약간 더 사실적이고 뿌리판(root plates), 줄기에서 자라나는 가지, 텍스처 이음매 블렌딩(texture seam blending) 및 더욱 사실적인 나무껍질을 갖게 되었습니다.
- 지면: 이끼, 황무지 식물(heather), 그리고 초목이 재작업되어 더 자연스러운 모습과 음영 처리를 보여줍니다.
- 거리감: 초목과 다른 디테일의 LOD 개선; 더 긴 드로우 거리(draw distance), 레벨 간 더 나은 전환, 그리고 모든 표면이 하나의 그림자 규칙을 따르기 때문에 나무, 풀, 지면이 함께 어두워집니다.
- 하늘: 음영 처리와 모양 변화가 개선된 더 섬세한 구름과 번개를 동반하는 새로운 폭풍 날씨 유형이 추가되었습니다.
- 야생 동물: 기본적인 야생 동물 시스템이 추가되어 특정 지역에 동물들이 나타납니다. - 갈매기, 거스 무리(skeins of geese), 아이더(eiders) 뗏목, 까마귀, 그리고 잠자리 등이 있습니다.
워크플로우를 어느 정도 조정한 후, Claude가 어떻게 자신의 작업을 확인하는지 살펴보는 것이 흥미롭습니다. 왜냐하면 "나에게는 괜찮아 보여"라는 말로는 많은 것을 놓치기 때문입니다:
- 육안으로 조정하기 전에, 노멀(normals), 모션(motions), 머티리얼(materials), 라이팅(lighting) 항들을 렌더링하고 그 수치를 읽습니다. 이를 통해 지면 조명에 몇 가지 문제가 발견되었습니다. 또한 사각지대를 포착하는 여러 메커니즘을 설정했습니다.
- 변경 사항은 고정된 카메라 뷰에서 렌더링되어 프레임 시간(frame time)을 측정하며 이전과 이후가 비교됩니다. 그 후에만 유지됩니다.
- 일부 막다른 실험들은 너무 무겁거나 아티팩트(artifact)가 많다고 판단되면 향후 추가 테스트/개발을 위해 보류됩니다.
- 저는 이것을 먼저 연구(논문 및 출시된 게임에 대한 발표) 단계로 밀어붙였고, 프레임 시간이 증가할 때 GPU를 프로파일링합니다. 연구 없이 만들어진 것은 거의 없습니다 (대부분 임시 편집기, 조정 인터페이스 등).
- 이 비디오는 렌더링에서 또 다른 문제를 노출했습니다. 카메라가 움직일 때마다 게임 내 바다가 미세하게 맥동하는 것을 발견했는데, 이는 아마도 모션 벡터(motion vectors)와 관련이 있거나 잘못 계산되었기 때문일 것입니다. Claude는 이를 느린 패닝과 카메라의 움직임 예측값 사이의 차이로 측정했고, 그에 따른 수정 방안을 제시했으며, 이 수정은 잘못 구현된 모션 벡터 생성 과정이었습니다. 여전히 RTX 3090에서 1440p 해상도 기준으로 60 fps보다 훨씬 높은 프레임을 유지하며 작동하고 있으며, 더 상세한 나무, 텍스처, 그리고 더 많은 하층 식생을 렌더링함에도 불구하고 지난번보다 개선된 부분이 있습니다.
지형은 Nasjonal høydemodell DTM 1 m을 기반으로 하며, © Kartverket (CC BY 4.0)에서 수정되었습니다. 제출자: /u/imlo2 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기