53 lines
4.4 KiB
Markdown
53 lines
4.4 KiB
Markdown
# 붉은 양 캐릭터
|
|
|
|
## 현재 모델: 아이보리 아기 양 (v3)
|
|
|
|
아이보리 털·베이지 얼굴·갈색 뿔/발·붉은 목도리의 4색으로 변경했다. 뿔을 약 절반 크기로 줄여 위·뒤로 옮겼고, 눈을 키우고 얼굴 아래로 모았다. 팔다리는 짧고 통통하게 변경했다. 머리 깊이는 0.96m에서 1.40m, 몸통 깊이는 0.80m에서 1.10m로 늘려 측면의 납작한 인상을 줄였다(게임 내 배율 적용 전).
|
|
|
|
- 현재 원본: `assets/characters/ivory-lamb-v3.blend`
|
|
- 재현 스크립트: `scripts/create-ivory-lamb.py`
|
|
- 게임 모델 경로는 기존 `public/characters/red-sheep.glb`를 유지한다.
|
|
- 정면 사선·측면·뒷면을 Blender에서 렌더링해 확인했고, 캐릭터 테스트 4개와 빌드가 통과했다.
|
|
|
|
아래는 초기 구현 기록이다.
|
|
|
|
승인된 4색 컨셉을 Blender MCP에서 제작했다. 모델은 약 3등신의 단순한 덩어리로 구성되며 정면은 glTF의 +Z 방향이다. 몸통·머리·양팔·양다리의 이름 있는 피벗을 사용한다. 현재 동작은 Three.js에서 관절을 회전시키는 방식이며, GLB 안에 애니메이션 클립을 저장하지 않는다.
|
|
|
|
- Blender 원본: `assets/characters/red-sheep.blend`
|
|
- 웹 모델: `public/characters/red-sheep.glb` (약 415 KiB)
|
|
- 재현 스크립트: `scripts/create-red-sheep.py` (Blender에서 실행; 별도 장면 생성)
|
|
- 게임 표시: 네 가지 기본색의 unlit 재질과 어두운 역면 외곽선
|
|
|
|
## 사용
|
|
|
|
화면 클릭 후 WASD로 이동하고 마우스로 시선을 돌린다. 기본 카메라는 캐릭터 뒤를 따라간다. ESC로 마우스를 해제하면 화면 버튼을 사용할 수 있다.
|
|
|
|
- `1`: 3초 동안 손 흔들기
|
|
- `2`: 선택한 관측 시각이 계산된 일출 전후 5분이면 해 방향을 보고 기도
|
|
- WASD 이동 입력: 감정표현 종료
|
|
- 시간 변경으로 기도 가능 구간을 벗어나면 기도 종료
|
|
- 조감 모드: 감정표현 비활성화; 돌아오면 상태 복원
|
|
|
|
기도는 천문 일출 시각 기준이며 능선·구름에 가려졌는지와 무관하다. CUSTOM 시각으로도 확인할 수 있다. 카메라의 지형 높이 보정과 보행 위치는 분리되어 있고, 미니맵 및 태양 계산은 보행자의 위치를 사용한다. 건물·구조물에 대한 카메라 충돌은 추가하지 않았다.
|
|
|
|
## 검증 (2026-10-30)
|
|
|
|
- Blender MCP에서 모델 정면·뒷면·사선 확인.
|
|
- 실제 GLB를 파싱하여 관절 동작 및 이동 종료 프레임을 테스트.
|
|
- 캐릭터 관련 테스트 4개 통과; TypeScript 및 프로덕션 빌드 통과.
|
|
- 전체 테스트 75개 중 74개 통과. 변경하지 않은 `tests/summit-walking.test.ts:40`의 정상 암반 경계 테스트 실패.
|
|
- 브라우저 시각 검증은 도구가 Windows 현재 URL을 확인하지 못해 중단됨. 게임 안에서의 최종 화면·상호작용 검증은 미완료.
|
|
# 현재 적용 모델
|
|
|
|
사용자 선택으로 둥근 v10을 복원했다. 원본은 `assets/characters/ivory-lamb-v10.blend`, 게임 파일은 `public/characters/red-sheep.glb`다. 로딩 URL의 버전 키로 이전 양털 모델의 브라우저 캐시를 구분한다. 부드러운 이동 방향 전환은 유지한다. `scripts/create-ivory-lamb.py`는 이후 양털 실험 버전이므로 현재 모델을 재생성하는 데 사용하지 않는다.
|
|
|
|
## 우산·우비·후드
|
|
|
|
- Blender MCP 생성 스크립트: `scripts/create-rain-gear.py`. v10 캐릭터 원본을 참조하며 캐릭터 GLB를 덮어쓰지 않는다.
|
|
- 원본: `assets/characters/rain-gear.blend`. 게임 파일: `public/characters/umbrella.glb`, `public/characters/raincoat.glb`.
|
|
- 비 또는 눈이 있을 때 3 우산, 4 우비를 각각 착용/해제한다. 우비를 입으면 5 후드를 올리거나 내릴 수 있다.
|
|
- 장비 상태는 감정표현과 분리된다. 걷기·인사·기도 중 유지하며, 우산을 들면 빈손으로 인사한다. 우비를 벗으면 후드는 내려가고, 맑아지면 모든 우천 장비가 해제된다.
|
|
- 우비 밑단은 캐릭터 좌표 높이 0.42에서 끝나 양털 다리와 발굽을 드러낸다. 후드는 머리 관절, 소매는 각 팔 관절을 따른다.
|
|
- 개발 확인: `/?profile&time=day&weather=rain`. DEV 날씨 선택으로 비·눈·맑음 전환을 검증한다. 실제 기상자료가 아닌 명시적인 개발용 시나리오이며 프로덕션에서는 비활성화된다.
|
|
|