제작자가 공개한 프로젝트를 바탕으로 정리한 시작용 설명이며, 원본 프롬프트를 그대로 옮긴 것이 아닙니다. 결과는 달라질 수 있습니다.
jared의 원본 Crazy Tanks 소스, 커밋 bf23b8878a1c24dbfb105a227a06b4faa29d42e9, 검증된 v92 게임플레이를 바탕으로 재구성한 사양입니다. 모델은 Tripo P2로, 음악과 효과음은 ElevenLabs로 생성했습니다. 공개된 소셜 게시물은 제공되지 않았습니다.
3D 탱크 게임포병전파괴 가능한 지형Three.jsTripo
프롬프트
1. 프로젝트 목표
열대 섬을 배경으로 실제 3차원으로 구현된 턴제 포병 게임 Crazy Tanks — Wild Tides를 제작합니다. 플레이어는 소형 탱크를 조준하고 바람을 읽은 뒤 위력 0부터 충전 타이밍을 맞춰 포탄으로 전장을 바꿉니다. AI와 대결하는 싱글 플레이와 로컬 패스 앤 플레이를 지원하며, 기본 모드는 탱크 3대의 난전이고 선택 사항으로 탱크 2대의 결투를 제공합니다. 마지막까지 살아남은 탱크가 승리합니다. 현재 참고 게임플레이와 스크린샷을 시각적 목표로 사용하세요.
2. 비주얼 스타일
원근 카메라와 자유롭게 회전할 수 있는 3D 지오메트리를 사용하고, 평면 스프라이트나 고정된 측면 시점은 사용하지 마세요. 햇살이 비치는 미니어처 디오라마 스타일로 제작합니다. 둥근 비취색, 코럴 오렌지색, 청보라색 탱크와 크리미한 모래, 옅은 녹색 잔디, 청록색 반사 수면, 부드러운 그림자, 옅은 대기 원근 안개를 사용하세요. 세 탱크의 서로 다른 실루엣과 각 탱크에 맞는 포신을 유지하세요. 전장 위에는 작고 둥근 크림색 상태/장갑 패널을 배치하고, 아래에는 짙은 청록색의 둥근 컨트롤 덱을 배치하세요. 금색은 기준 위력과 발사 액션을, 민트색은 실제 충전량과 아군 상태를 나타냅니다. 상단의 Tripo / Three.js 외형 전환 기능은 눈에 잘 띄게 유지하고, 기본값은 Tripo 에셋으로 설정하세요. 외형을 전환해도 매치와 물리 상태가 유지되어야 합니다. 화면 공간에 얇고 일정한 간격의 청록색 대시를 사용하고 착탄 원은 절제된 형태로 표시하세요. 조준 그래픽이 물에 반사되지는 않게 하세요.
3. 월드 및 씬
대략 260×184m 크기의 파괴 가능한 높이 필드 섬을 만들고, 일정한 해수면의 바다로 둘러싸세요. 시작 탱크는 안정적인 지형 위에 서로 멀리 떨어뜨려 배치하고, 바위, 야자수, 선인장, 수집 가능한 보급 상자를 분산 배치하세요. 더 작은 장식용 섬은 배경의 깊이감을 제공하는 용도로만 사용하며, 파괴 가능한 메인 지형을 대신해서는 안 됩니다. 폭발은 지표면을 변형하고 해수면 아래까지 파낼 수 있어야 합니다. 겹치는 평면과 깜빡임을 방지하도록 해안선 색상과 포말을 하나의 수면에 통합하세요. 렌더링되는 모든 프레임마다 월드 좌표에서 탱크 번호를 투영해 표시하세요. 전체 궤적, 탱크 시점, 오빗, 전술 오버헤드 시점을 제공하세요. 궤적 시점에서는 발사 탱크, 포물선 궤적, 예상 착탄 지점이 HUD와 컨트롤 덱 사이의 공간에 모두 들어와야 합니다. 발사 전에는 약 0.8초 동안 발사 탱크를 보여 주고, 포구에서 잠시 머문 다음 발사체를 따라가세요. 카메라를 수동으로 조작하면 시네마틱 추적을 취소합니다.
4. 에셋 목록
안정적인 모델 슬롯을 사용하고 교체 모델을 개별적으로 지정할 수 있도록 유지하세요.
- jade-body: 둥근 녹색 방패 형태의 궤도형 차체로, 플레이어의 기본 차체입니다. jade-cannon: 짙은 포신 내부와 금색 장식을 갖춘 어울리는 비취색 포신으로, 차체와 독립적으로 움직입니다.
- ember-body: 낮고 기계적인 실루엣의 코럴 오렌지색 뾰족한 장갑 차체입니다. ember-cannon: 차체에 맞는 더 긴 오렌지색 포신과 짙은 포구입니다.
- bolt-body: 각진 장갑판을 갖춘 청보라색 산업형 궤도 차체입니다. bolt-cannon: 차체에 맞는 두꺼운 파란색 포신입니다.
- shell: 짙은 테이퍼형 탄두와 시안색 포인트가 있는 황동 포탄입니다. 무기별 색조와 스케일을 적용해 재사용하세요.
- crate: 시안색 표시와 보강된 모서리를 갖춘 노란색 장갑 보급 상자입니다. 수집하면 장갑이 20 회복되며 최대치는 100입니다.
- rock: 따뜻한 색감의 둥근 사암 군집입니다. 다양한 스케일로 반복 배치하고 별도의 충돌 프록시를 사용하세요.
- palm: 휘어진 줄기와 층층이 겹친 녹색 잎을 가진 야자수입니다. 섬의 식생으로 반복 배치하세요.
- cactus: 작은 꽃 디테일이 있는 아담한 녹색 선인장입니다. 건조한 지형에 반복 배치하세요.
- islet: 옅은 바위/모래 가장자리와 둥근 잔디 지형을 가진 배경 섬입니다. 경기장 너머에 반복 배치하세요.
세 쌍의 차체/포신을 우선 배치하고, 그다음 포탄/보급 상자와 환경 소품을 배치하세요. 지형 변형, 바다, 포말, 불, 연기, 충격파, 파편, 조준 그래픽, 조명, UI, 충돌 프록시는 절차적으로 처리하세요. 서로 맞는 차체와 포신 부품은 하나의 디자인 레퍼런스와 스케일을 공유합니다. 포신 피벗은 기계적 연결부에 배치하고, 전방 축은 +X에 맞추며, 보이는 포구를 실제 발사 지점으로 사용하세요. 탱크 차체는 쿼터니언을 사용해 경사면에 맞추고, 포탑 조준은 월드 공간 방향으로 유지합니다. 원본 PBR 텍스처와 UV 심을 보존하세요. 다운로드용 전체 해상도 모델은 최적화된 게임 런타임 사본과 분리하고, 레퍼런스와 파일 출처에는 실제 생성 소스를 명시해야 합니다.
5. 게임플레이 및 피드백
생존 중인 각 탱크는 자신의 턴이 시작될 때 18m 이동할 수 있습니다. WASD와 이동 패드는 화면 기준으로 이동하며, 방향키와 조준 패드는 방위각과 고각을 조절합니다. 슬라이더로 방위각, 10~80도의 고각, 0~100의 기준 위력을 설정할 수 있습니다. 라이벌을 선택하면 해당 방향만 바라볼 뿐, 발사 궤적을 자동으로 계산해서는 안 됩니다.
청록색 궤적은 바람이 없을 때 선택한 기준 위력을 예상해 표시합니다. 충전 중에는 이 기준값과 금색 마커를 고정하세요. 포커스된 Fire 버튼에서 Fire, Space 또는 Enter를 누르고 있으면 매번 실제 위력을 0부터 시작합니다. 초당 18%포인트씩 증가시키고 100에서 유지하며, 버튼을 놓는 순간의 실제 위력으로 정확히 한 번만 발사하세요. 빠르게 탭하면 약한 탄이 발사됩니다. 기준값 ±3%포인트의 금색 구간은 시각적 피드백일 뿐이며, 자동 맞춤이나 숨겨진 보정은 없어야 합니다. 포인터 취소, 창 포커스 해제 또는 가시성 상실 시 충전을 취소하세요. 충전 중에는 이동, 목표, 조준 변경을 잠그세요. range 입력의 키보드 조작이 포탑까지 함께 회전시키지 않도록 하세요. 위력 0은 정지한 포탄이 아니라 가장 낮은 발사 속도를 의미합니다.
화살표와 눈에 보이는 바람의 흐름 줄무늬로 바람이 포탄을 미는 방향을 표시하세요. 바람의 세기와 초당 미터 단위를 표시하고, 바람 카드 클릭 시 설명을 보여 주세요. 바람이 왼쪽으로 불면 플레이어는 약간 오른쪽을 조준해야 합니다. 바람이 강하고 체공 시간이 길수록 편차가 커집니다. 바람은 한 발이 날아가는 동안 일정하게 유지되며 매 턴 변경됩니다. 플레이어의 미리보기에 자동으로 보정값을 적용하지 마세요. 지형 착탄 지점은 대략적으로만 예측하고, 미리보기에서 탱크/바위 충돌, 군집 분할, 도탄을 보장하지 마세요.
탄종 6종을 제공합니다. 무제한 HE, 아래로 떨어지는 자탄 5개로 분리되는 집속탄, 최대 폭 28m·깊이 13m의 크레이터를 만드는 Seismic, 두 번 튕기는 도탄탄, 탱크당 1발만 사용할 수 있고 최대 폭 46m·깊이 22m의 크레이터를 만드는 Cataclysm, 반경 12m의 화염 지대를 남기는 Incendiary입니다. 불은 6번의 액션 종료 시마다 8의 피해를 줍니다. 화염 지대 밖으로 이동하면 피해를 피할 수 있으며, 겹치는 지대의 피해는 중첩되지 않습니다. 바닷물이 불을 끕니다. 들어 올린 포신을 포함한 탱크 전체가 물 아래에 완전히 잠기면 즉시 제거됩니다. 실제 피해량, 장갑 감소, 지형 붕괴, 물보라, 제거 결과를 표시하세요.
여러 겹의 화염구, 확장되는 충격 링, 발광 스파크, 탄도 파편, 먼지와 연기를 사용하고 카메라 흔들림은 절제해서 적용하세요. 제공된 원본 ElevenLabs 음악과 함께 포성, 충돌, 도탄, 강한 폭발, 화염, 물보라 사운드를 사용하세요. 사운드 토글, 일시정지/재개, 안내, 리플레이, 메뉴로 돌아가기를 포함하세요. 발사체가 비행 중이거나 AI 턴이 진행되는 동안 Back to my turn을 제공하세요. 동일한 고정 스텝 시뮬레이션을 빠르게 실행하되 모든 피해, 지형, 위험 요소의 결과를 보존해야 합니다. 로컬 친구의 입력 턴은 절대 건너뛰지 마세요.
6. 기술 구현
ES 모듈과 Vite를 사용하는 Three.js, 로컬 번들 폰트, 효과음용 Web Audio, 반복 음악용 HTML audio 요소를 사용하세요. 리소스는 동일 출처에서 제공하고 정적 빌드를 지원하세요. 안티앨리어싱을 적용한 원근 렌더러와 현실적인 그림자 및 포스트프로세싱 예산을 사용하고, 임시 지오메트리/머티리얼은 적절히 dispose 처리하세요. 모델 장식과 게임플레이 충돌을 구분하세요.
렌더링과 독립적인 결정론적 물리를 유지하고, 단위는 m/s, 중력은 9.81m/s², 고정 스텝은 1/120초로 사용하세요. 지면, 물, 탱크, 바위에 대한 고속 발사체 충돌에는 연속 스윕 충돌을 사용하고, 변위된 탱크에는 폭발 충격과 중력을 적용하세요. 발사 위치는 실제 탱크별 포신 트랜스폼에서 도출하세요. 일반 재생과 고속 재생은 동일한 시뮬레이션 업데이트를 호출해야 합니다. 피해와 바람 반응은 공학적 폭발 시뮬레이터가 아닌 스타일화된 게임 규칙입니다.
중국어, 영어, 일본어, 한국어 UI를 지원하세요. 최초에는 기기 언어를 사용하되 홍콩, 마카오, 대만 및 번체 중국어 기기는 영어를 기본값으로 설정하세요. 사용자가 명시적으로 선택한 언어를 기억하고, 화면에 보이는 언어 선택기를 제공하세요. 데스크톱, 세로형 휴대폰, 짧은 가로형 화면에 대응하는 반응형 레이아웃, 스크롤 가능한 짧은 화면용 메뉴, 사용하기 편한 터치 영역, 접을 수 있는 패널을 제공하고 컨트롤이 겹치지 않게 하세요. 터치 기기에서 키보드 입력을 요구하지 마세요. 개발 전용 상태 변경 코드와 조준 헬퍼는 프로덕션에서 제외하세요.
7. 완료 기준
편집 가능한 독립형 소스 프로젝트, lockfile, npm 개발/빌드 안내, 작동하는 정적 프리뷰를 제공하세요. 크림색 상태 패널, 고정된 금색 기준 마커, 0부터 시작하는 실시간 충전, 완전한 3D 탱크/섬 표현을 포함해 현재 스크린샷과 게임플레이 영상을 일치시키세요. 최초 실행, 모델 로딩, 전체 턴 사이클, 각 탄종의 동작, 일시정지, 리플레이, 실제 승패 결과를 검증하세요. 외형 전환 후에도 상태가 유지되는지, 키보드/터치 취소 시 발사되지 않는지 확인하세요. 바람이 없는 명확한 테스트 발사에서 기준 위력으로 놓으면 기준 원 근처에 착탄해야 합니다. 반대 방향의 횡풍에서는 기준 원은 그대로 둔 채 실제 포탄이 눈에 띄게 이동해야 합니다. 30/60/144Hz 동작, 고속 충돌, 깊은 크레이터, 화염 소멸, 완전 침수 제거, 일반 재생과 고속 재생의 턴 결과 일치 여부를 점검하세요. 네 가지 언어 모두에서 데스크톱 및 좁은 화면 레이아웃을 검사하고, 브라우저 에뮬레이션과 실제 기기 테스트를 별도로 구분해 기록하세요. 로컬 빌드뿐 아니라 호스팅된 페이지와 연결된 미디어도 검증하세요.
이 프롬프트 사용법
01
적합한 도구로 시작하기
원하는 코딩 도우미나 3D 도구를 여세요. 예시에 표시된 모델을 시작점으로 삼고, 연결된 프로젝트의 설정 안내를 확인하세요.
02
바꿀 요소 하나 고르기
주제, 미술 스타일, 배경을 바꿔보세요. 카메라와 상호작용을 명확히 설명하세요. 먼저 작은 버전을 만든 다음 한 번에 하나씩 다듬으세요.
03
장면에 나만의 모델 추가하기
나만의 캐릭터나 소품이 필요하면 짧은 물체 설명이나 참고 이미지로 3D 모델을 만든 뒤 프로젝트로 가져오세요.
미리보기 작품의 권리는 각 제작자에게 있습니다. 코드나 자료를 재사용하기 전에 원본 출처와 프로젝트 라이선스를 확인하세요.