尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证LUDUS — 가벼운 장난과 설렘을 즐기는 사랑 (When Love Responds)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗〈When Love Responds, 사랑의 응답〉 두 번째 작품 LUDUS의 인터랙티브 웹사이트입니다. Three.js + Vite로 제작되었으며, EROS와 완전히 분리된 독립 프로젝트입니다.
npm install
npm run dev # 로컬 개발 서버 (http://localhost:5173)
npm run build # 배포용 빌드 → dist/
npm run preview # 빌드 결과 확인
Node.js 20.19 이상이 필요합니다.
| 입력 | PC | 모바일 |
|---|---|---|
| 좌우 이동 | 마우스 이동 | 화면을 좌우로 드래그 |
| 상하 이동 | 휠 ↓ / 휠 ↑ (페이지는 스크롤되지 않음) | 오른쪽 세로 슬라이더 |
| 잡기 / 놓기 | 좌클릭 (토글) | 하단 잡기 버튼 (토글) |
처음에는 대기 화면입니다. 시작하기를 눌러야 45초 카운트다운이 시작되고 집게를 조작할 수 있습니다.
상태: 대기(idle) → 플레이(play) → 성공(won) / 실패(missed) → 대기. 결과는 한 번만 확정되고 바뀌지 않습니다.
두 번째 기회 — "Missed me!" 다음 판은 남은 시간에 따라 조용히 쉬워지고 반드시 성공으로 끝납니다.
이 판을 이긴 뒤(또는 첫 판에서 이긴 뒤, 새로고침 시) 다시 일반 난이도로 시작합니다.
ludus)를 만들고 이 폴더를 올립니다.
git init
git add .
git commit -m "LUDUS interactive site"
git branch -M main
git remote add origin https://github.com/<아이디>/ludus.git
git push -u origin main
npm run build, Output Directory dist — 그대로 두면 됩니다.)main 브랜치에 push할 때마다 자동으로 재배포됩니다.EROS 프로젝트와는 별도의 Vercel 프로젝트로 생성하세요.
public/models/ludus.glb Blender에서 내보낸 모델 (집게 + 공, 계층·피벗·재질 이름 유지)
src/config.js ★ 확률·속도·물성·성공선 높이 등 모든 조정값
src/claw.js 집게 이동, 실제 관절 기준 팔 회전, 팔-공 접촉 계산
src/ball.js 공의 메시 변형(눌림·부피 보존·젤리 흔들림) + 낙하/바운드 물리
src/game.js 잡기 판정, 4가지 결과(A–D), 미끄러짐, 성공 판정, 연속 실패 보정
src/materials.js 크롬 / 새틴 팁 / 젤 공(볼륨 셰이더 + 광택 스킨)
src/stage.js 카메라, 스튜디오 반사 환경, 조명
src/hud.js 성공선, 결과 화면(Okay, you win! / Missed me!) 연출
src/timer.js 45초 카운트다운 표시와 맥동 효과
src/input.js, touch.js 마우스 입력 / 모바일 드래그·슬라이더·잡기 버튼
tools/export_glb.py .blend → GLB 변환 스크립트 (원본 .blend는 수정하지 않음)
src/config.js)난이도
OUTCOMES — 잡힌 뒤 결과 확률 (튕겨 나감 34% / 들어 올리다 미끄러짐 30% / 성공선 근처 낙하 26% / 성공 10%)PITY — 연속 실패 시 성공 확률을 점차 올리는 규칙 (4번 실패 후부터, 최대 32%)ALIGNMENT_INFLUENCE, GRIP.centreTolerance — 중심을 얼마나 정확히 맞춰야 잡히는지HOLD — 잡힌 공이 흔들리고 처지는 정도VARIATION — 미끄러지는 높이·시간, 튕기는 속도·방향의 랜덤 범위성공
SUCCESS.lineY — 성공선 높이 (공 전체가 이 선 위로 올라가야 성공)SUCCESS.textDelay, SUCCESS.buttonDelay — 문구·버튼이 나타나는 시점공 재질
ORB.density — 전체 젤리 밀도 (낮을수록 투명)ORB.clearCore — 중심부 투명도 (높을수록 가운데가 맑음)ORB.rimGlow — 가장자리 민트·아이스블루 밝기제한시간 (TIMER, MISS)
TIMER.duration — 제한시간(초, 실제 시계 기준)TIMER.pulseFrom, TIMER.urgentFrom — 은은한 맥동(15초), 빠른 맥동(5초)이 시작되는 시점MISS.hops — 시간 초과 후 공이 놀리듯 튀는 높이(속도)와 횟수MISS.textDelay, MISS.buttonDelay — "Missed me!"와 버튼이 나타나는 시점두 번째 기회 (ASSIST)
ASSIST.tier1 — 45–31초 구간의 결과 확률ASSIST.tolerance, ASSIST.magnet — 구간별 중심 허용 오차, 공이 집게 쪽으로 굴러가는 정도ASSIST.autoAt, ASSIST.autoLiftAt, ASSIST.rescueAt, ASSIST.guaranteeBy — 자동 보조 시점움직임 / 화면
CLAW — 집게 반응 속도, 휠 감도, 이동 범위BALL — 중력, 바운드 탄성, 굴러가는 마찰PLAYFIELD — 가로 화면 / 세로(모바일) 화면의 이동 범위Blender 4.2 이상에서 모델을 수정했다면:
blender -b 재질.blend --python tools/export_glb.py -- 재질.blend public/models/ludus.glb
이 스크립트는 LUDUS 계층(집게·와이어·팔 3개·공)만 GLB로 내보내고, 웹 접촉 계산에 쓰는
팔 중심선 좌표를 collision_pts(extras)로 함께 저장합니다.