본문 바로가기
스터디 열기

완성본과 재료 내려받기

막혔다면 완성본을 새 폴더에 풀어 같은 동작을 해 보세요. 내 작업과 어디가 다른지 비교합니다. 게임 단계별 ZIP은 독립된 프로젝트라 앞 단계에 덮어쓸 필요가 없습니다.

1. 내려받기 목록

내려받을 파일들어 있는 것연결되는 절여는 법
01-profile-card.zip프로필 카드1장 3절HTML 열기
02-profile-3d.zip3D 자기소개 세 판2장 2절·2장 3절HTML·인터넷
02-product-page.zip제주상점 한라봉·GLB 2개2장 4절·2장 5절Vite 실행
03-game-assets.zip모델 2개·소리 3개·출처3장 2절프로젝트에 추가
03-game-step1.zip1단계 월드·캐릭터 배치3장 4절Vite 실행
03-game-step2.zip2단계 조작·걷기·충돌3장 4절Vite 실행
03-game-step3.zip3단계 감귤 획득·점수3장 5절Vite 실행
03-game-step4.zip4단계 시작·종료·다시하기3장 5절Vite 실행
03-game-step5.zip5단계 음악·효과음·음소거3장 5절Vite 실행
03-game-final.zip최종판·로딩·터치·출처·달리기·최고 기록3장 6절Vite 실행

1단계는 서 있는 모습, 2단계부터는 이동을 비교합니다. 4단계부터 시작 버튼을 눌러 플레이합니다.

2. 압축을 푼 뒤 열기

2.1 프로필 카드와 3D 자기소개

index.html을 Chrome이나 Edge로 엽니다. 프로필 카드는 licat-200.png를 옆에 두면 인터넷 없이 열립니다. 공개할 때는 실습용 lycat@example.com을 내 공개용 주소로 바꾸세요.

3D 자기소개는 그림·스타일·실행 코드를 HTML 안에 담았습니다. CDN을 읽으므로 인터넷이 필요합니다.

3D 자기소개 파일비교할 부분
index.html도형 4종·재질 4종·마우스와 터치 드래그
index-stars.html별 파티클 추가
index-cdnjs.htmlcdnjs 본체와 파일 안의 드래그 코드

채팅의 jsDelivr·Import Map 성공 사례는 2장 2절에 있습니다.

3D 자기소개 기본판을 열면 라이캣 카드 위에 입체적인 정육면체와 도형·재질 선택 버튼이 보입니다.

구·금속을 골라 드래그하고 회전 멈추기를 눌러 보세요. 움직임 줄이기 설정에서는 회전 시작하기로 켭니다.

2.2 상품 페이지와 게임

Code 탭 → Local → Open folder…로 package.json·package-lock.json·index.html이 있는 폴더를 엽니다.

이 폴더의 README.md와 package.json을 읽고 완성본을 실행해줘.
Node가 필요한 버전에 맞는지 먼저 확인하고, 없으면 설치 방법을 안내해줘.
package-lock.json에 맞춰 npm ci로 설치한 뒤 개발 화면을 열어줘.
내가 브라우저에서 열 정확한 주소와 확인할 동작을 알려줘.

직접 실행한다면 그 폴더의 터미널에 입력합니다.

npm ci
npm run dev

출력된 HTTP 주소를 엽니다. 이 프로젝트의 index.html은 더블클릭으로 열지 않습니다.

제주상점 한라봉: 드래그·두 빛깔 전환·담아 보기를 확인합니다. 가격과 구성은 예시이며 결제 없이 안내만 나옵니다.

상품 완성본에서는 왼쪽 한라봉 뷰어와 오른쪽 상품 설명이 나란히 보입니다.

상품 ZIP의 scripts/는 모델 재생성 도구, .github/는 GitHub Pages 대안용입니다. 평소 실행에는 필요 없습니다.

라이캣의 귤밭 산책: 방향키·WASD로 60초 안에 떠 있는 감귤 10개를 모읍니다. 나무의 작은 귤은 배경입니다. 최종판은 Shift 달리기와 같은 브라우저의 최고 기록도 지원합니다.

게임 최종판에서는 귤밭의 라이캣과 떠 있는 감귤, 모은 수와 남은 시간이 함께 표시됩니다.

npm run build 후 npm run preview로 빌드한 결과도 봅니다. 공개할 준비는 2장 5절·3장 6절을 따릅니다.

2.3 게임 재료만 가져오기

03-game-assets.zip은 새 게임에 넣을 재료 묶음입니다. 플레이할 소스는 위의 단계별·최종판 ZIP을 받으세요.

README.md
에셋출처.md
SOUNDS-CC0.txt
public/
├── models/
│   ├── character.glb
│   └── item.glb
└── sounds/
    ├── bgm.mp3
    ├── pickup.mp3
    └── clear.mp3
파일내용원본 파일 크기
character.glbIdle·Walk가 든 교재용 라이캣722,748바이트
item.glb수집할 감귤23,132바이트
bgm.mp3반복할 배경 음악128,837바이트
pickup.mp3획득음4,912바이트
clear.mp3성공음14,525바이트

ZIP의 public을 my-game에 그대로 넣습니다. 이미 있다면 안의 폴더를 합칩니다. 에셋출처.md·SOUNDS-CC0.txt도 함께 둡니다. README.md도 같은 순서를 안내합니다.

상품·게임 완성본도 같은 public/models/·public/sounds/ 규칙입니다. 코드 주소에는 public/을 빼고 import.meta.env.BASE_URL에 models/...·sounds/...를 붙입니다.

제공 재료를 사용하면 라이캣과 감귤 모델을 불러오고 대기·걷기 동작을 비교할 수 있습니다.

이 뷰어는 최종판을 npm run dev로 실행한 주소의 /assets.html에서 엽니다. 재료 ZIP이나 기본 배포 빌드에는 없으며, 뷰어 실행 요청으로 열어도 됩니다.

3. 에셋 출처와 이용 범위

각 ZIP의 에셋출처.md와 라이선스 고지를 함께 보관하세요. 캐릭터·모델·소리는 적용 조건이 다릅니다.

대상출처이용 조건
라이캣 PNG위니브 공식 원화 축소본교재 실습용·위니브 캐릭터
character.glb위니브 라이캣 파생 모델교재 실습용·출처와 변경 기록
상품 GLB 2개·item.glb위니브 감귤 파생 모델교재 실습용·출처 보관
소리 3개직접 작성한 음표와 파형CC0 1.0
월드 소품·카드의 도형과 별코드와 Three.js 기본 도형외부 자료 없음·완성본 코드에 포함
Three.js와 추가 기능Three.js AuthorsMIT·고지 유지
ViteVite 기여자MIT·고지 유지

위니브 캐릭터·모델은 교재 실습용입니다. 캐릭터에 CC0나 별도 일반 상업 이용권이 주어진 것은 아닙니다. 상품 질감은 코드로 만들었고 소리는 외부 곡·녹음·샘플 없이 합성했습니다.

Three.js 고지는 THREE-LICENSE.txt 또는 THIRD_PARTY_LICENSES.md, Vite 고지는 VITE-LICENSE.md 또는 THIRD_PARTY_LICENSES.md에 있습니다.

내 재료로 바꾼다면 3장 2절의 선택 실습을 봅니다. 다운로드·공개·상업 이용·원본 재배포 조건을 각각 확인하고 출처 기록을 고칩니다.

CC BY는 제작자·출처 링크·라이선스와 링크·수정 여부를 조건에 맞춰 남깁니다. CC0도 인물·상표 같은 별도 권리는 확인합니다.

4. 버전과 비교 기준

내려받는 완성본의 실행 기준입니다.

항목완성본의 기준
Three.js0.186.1·CDN과 npm에 고정
Vite8.3.5·잠금 파일 포함
Node.js20.19.0 이상의 20.x 또는 22.12.0 이상
실행 환경Windows 11·Node 22.15.1·npm 10.9.2·Edge 156
화면 확인데스크톱·390px 터치 환경

Code 탭 설치와 Vite용 Node 준비는 별개입니다. 실제 휴대폰 조작은 내 공개 주소에서 확인합니다.

상품·게임 ZIP에는 node_modules·dist가 없습니다. npm ci로 설치하고 빌드하면 dist가 생깁니다.