음악 비주얼라이저(Music Visualizer) 메인 메뉴를 위해 '캡슐 그림자(Capsule Shadows)' 대신 '캡슐
요약
음악 비주얼라이저 프로젝트의 메인 메뉴를 위해 '구슬(Marble)' 메타포를 활용한 시각적 구현 방법을 다룹니다. 물리적 정확성보다는 스타일라이즈된 느낌을 강조하기 위해 캡슐 그림자(Capsule Shadows) 기법과 코스틱 하이라이트, 큐브맵 반사를 조합하여 구체의 무게감과 질감을 표현했습니다.
핵심 포인트
- 구체와 평면 표면이라는 제약 조건을 활용해 캡슐 그림자(Capsule Shadows) 기법 적용
- 그림자 중심부에 따뜻한 색감을 추가하여 시각적 깊이감 부여
- 유리 질감을 위해 코스틱 하이라이트 강도 조절 및 큐브맵 반사(Low-mip) 적용
- 물리적 시뮬레이션 대신 스타일라이즈된 접근 방식을 통한 효율적인 렌더링 구현
제 파트너와 저는 1년 조금 넘게 된 시점에 사이드 프로젝트로 음악 비주얼라이저(Music Visualizer)를 만들기 시작했습니다. 그리고 단순히 몇 개의 장면(우리는 이것을 "Vibes"라고 부릅니다) 이상을 갖게 되자, 사용자가 이를 탐색할 수 있는 방법이 필요하다는 것을 깨달았습니다. 우리의 첫 번째 본능은 스크롤 뷰(Scroll View)와 각 장면을 위한 썸네일 이미지 또는 플립북 스프라이트(Flipbook Sprite)가 있는 전형적인 스크린 스페이스 캔버스(Screen Space Canvas)를 만드는 것이었습니다. 하지만 우리는 각 장면이 뛰어들 수 있는 작은 구형 세계와 같은 '구슬(Marble)' 메타포에 깊이 빠지게 되었습니다(우리는 여전히 Cocoon에서 영감을 받은 전환 효과를 구현할 계획입니다).
우리는 구슬이 매우 무게감 있고 물리적으로 느껴지기를 원했습니다. 즉, 수집하고 싶은 무언가가 되기를 바랐습니다. 그리고 저는 두 가지 핵심 제약 조건을 활용함으로써 구슬의 그림자에 꽤 멋진 셰이딩(Shading)을 할 수 있을지도 모른다는 것을 깨달았습니다:
- 구슬은 구체(Sphere)이며, 그에 따라 일반화될 수 있습니다.
- 구슬이 놓인 표면은 평면(Planar)입니다.
이는 우리가 게임 개발 라이팅(Lighting)에서 가장 오래된 트릭인 캡슐 그림자(Capsule Shadows)를 사용할 수 있음을 의미했습니다! 이것은 원을 어떤 방식으로든 쿼드(Quad) 위에 투영하는 방식이며, Mario 64 시절 Mario의 그림자가 렌더링되던 방식이기도 합니다(그저 크기가 조절되고 나타났다 사라지는 스프라이트일 뿐입니다). 다만 우리의 경우에는, 중심부로 갈수록 더 따뜻한 색감을 띠는 그림자로 쿼드를 셰이딩했습니다. 또한 구슬 자체의 색상을 추가하고, 유리의 두께가 느껴져야 하는 정도에 따라 코스틱 하이라이트(Caustic Highlight)의 강도를 조절했으며, 마지막으로 큐브맵 반사(Cubemap Reflections)의 낮은 밉맵(Low-mip)을 적용하여 구형 유리가 렌즈처럼 작동하여 주변 환경을 표면에 투영하는 방식을 대략적으로 모방했습니다(우리는 실제 유리 구체를 참고하여 이 현상을 관찰했습니다). 그런 다음, 그림자의 방향성 늘어남(Directional Stretch)은 씬(Scene) 내의 디렉셔널 라이트(Directional Light)에 의해 제어됩니다.
이 방식은 물리적으로 전혀 정확하지 않으며 어떤 종류의 빛 전달 시뮬레이션(Light Transport Simulation)을 수행하는 것도 아니지만, 스타일라이즈드(Stylized)된 접근 방식으로서 저는 이를 매우 즐기고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/Unity3D (top/week)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기