2026-06-04

구와 캡슐 14개로 토끼 빚기

토끼를 모델링 툴 없이 코드로만 만들기로 했으니, 쓸 수 있는 건 구와 캡슐 같은 프리미티브뿐이다. components/game/Rabbit.tsx에서 열네 개쯤을 쌓아 한 마리를 조립했다.

비례부터 정했다.
머리를 몸통만큼 크게 잡은 2등신 치비 비례.
사실적인 토끼는 머리가 작지만, 귀여움은 머리가 클 때 나온다.
그 위에 분홍 속귀, 볼터치, 눈 하이라이트를 얹었다 — 이 세 개가 "살아 있는 인상"의 거의 전부였다.
빼면 곧장 무생물처럼 보였다.

문제는 얼굴이 화면에서 통째로 사라진 적이 있다는 것이다.
코드로는 눈·코·볼터치 좌표를 다 넣었는데 렌더하면 민짜 얼굴이었다.
원인은 좌표가 머리 구 안쪽에 묻혀 있던 것.
머리 구의 반지름은 0.3인데 눈 중심까지 거리가 0.253이라, 눈이 구 표면 안에 잠겨 보이지 않았다.

{/* 머리 — 반지름 0.3 */}
<mesh material={fur}><sphereGeometry args={[0.3, 24, 18]} /></mesh>
{/* 눈 — 머리 표면에 살짝 박혀 돌출되도록 z를 -0.25까지 뺀다 */}
<mesh ref={eyeL} position={[-0.115, 0.07, -0.25]} material={dark}>
  <sphereGeometry args={[0.045, 12, 12]} />
</mesh>

수치만 보면 그럴듯해서 코드를 아무리 읽어도 안 보였다.
결국 스크린샷 게이트 — 매 단계 실제 렌더를 캡처해 눈으로 확인하는 절차 — 에서야 잡혔다.
부위 좌표를 표면 바깥으로 밀어 돌출시키니 얼굴이 돌아왔다.

돌아본 토끼

3D는 숫자가 맞아도 화면이 틀릴 수 있다는 걸 새삼 배웠다.
다음 편은 이 몸통에 움직임을 입히는 이야기다.

다음 편: 절차적 애니메이션 →