16 외부 에셋 - kyhsa93/karda GitHub Wiki
16. 외부 에셋
풀 배틀필드(D1)는 지금 채택 목록(docs/design 10장)에 없는 분류의 에셋을 부른다. 이 장은 여기서 아무것도 확정하지 않는다. 대신 ① 무엇이 필요한지 ② 채택 조건 ③ 코드 폴백 ④ 후보 조사 작업을 적는다. 조사 결과로 채택할지는 소유자가 정한다(추가 결정 A4).
16.1 원칙 (기존 채택 규칙 10장 10.8을 그대로 따름)
- 허용 라이선스만: CC0, 퍼블릭 도메인, CC-BY 3.0/4.0, OFL 1.1, MIT, Apache-2.0, ISC. 무료여야 한다.
- 금지: 비상업(NC), 변경 금지(ND), 재배포 금지 조항, 출처 불명, 게임 추출(rip) 모델, 자체 이용약관만 있고 위 라이선스가 명시되지 않은 서비스.
- 상세 페이지에서 라이선스를 직접 확인하고 확인 날짜를
public/assets/CREDITS.md에 적는다. 검색 결과·목록 페이지의 라이선스 표시는 틀린 적이 있다(10장 사례: Freesound 검색 CC0 ↔ 상세 CC-BY 4.0). - Sketchfab은 계정 토큰 없이 받을 수 없다(#65, 소유자 결정 대기 — 추가 결정 A5). 조사는 하되 다운로드 가능 여부를 표시한다.
- 가공(
gltf-transformmeshopt·텍스처 축소, 오디오 모노 64kbps) 후 용량 예산 안. 로드 실패 시 코드 도형·합성음 폴백으로 게임이 동작. - 스타일: 단색 저폴리, 사실 사진 텍스처·만화풍(치비)·장난감 색감 제외. 로드 후 공용 머티리얼로 교체(색은 코드에서).
- 실존 장비 형상은 가상 명칭으로, 표식·국기 없음.
16.2 필요 목록과 폴백
| 분류 | 쓰는 곳 | 기본(코드 폴백) | 외부 에셋 채택 조건 | 용량 한도 (추정) | 조사 작업 |
|---|---|---|---|---|---|
| 애니메이션 보병 캐릭터 | 봇 인형 근거리 LOD(< 120m) | 코드 저폴리 인형(강체 부위 7개, 절차 애니메이션) — 보병 12.7 | 리깅 + 클립: 서기·걷기·달리기·앉기·엎드리기·조준·사격·쓰러짐 (최소 6개) / 삼각형 ≤ 2,000 / 군복 형태(치비 아님) / 스킨 메시를 인스턴싱 가능한 방식(정점 애니메이션 텍스처로 굽기 등)으로 가공할 수 있을 것 / 두 진영 색 교체 가능 | GLB + 애니메이션 ≤ 300KB | B2-15 |
| 1인칭 무기 뷰모델 | 보병 1인칭 | 코드 도형(병과별 4종) | 저폴리 소총·기관총·저격소총·로켓 발사기, 삼각형 각 ≤ 800 | 합계 ≤ 150KB | |
| 전투기 모델 | 두 진영 전투기 | 코드 모델(삼각형 약 400) — 전투기 15.10 | 서로 형상이 다른 두 기종(단발/쌍발), 삼각형 ≤ 3,000, 실존 표식 없음 | 각 ≤ 150KB | B7-10 |
| 수송 헬기 모델 | 두 진영 수송 헬기 | 연합 c_heli_rescue 외형, VPA air 변형 |
로터를 따로 돌릴 수 있게 분리 가능, 삼각형 ≤ 3,000 | 각 ≤ 150KB | B6-5 |
| VPA 공격 헬기 모델 | VPA 공격 헬기 외형 | fallbackModel의 air |
10장 채택 후보 Mi-24(duanesmind, CC-BY 4.0, Sketchfab) — #65가 풀리면 텍스처 재압축 ≤ 0.5MB로 교체(10장 M5-4 결정 그대로) | ≤ 500KB | A5 결정 후 |
| 보병 무기 소리 | 소총·기관총·저격·유탄·로켓 | 기존 기관포·폭발 클립 피치/필터 가공 + 합성 | CC0 우선, 짧은 단발 클립(연사는 단발 반복 재생) | 합계 ≤ 120KB | B2-14 |
| 탈것 소리 | 전차 엔진·궤도·주포 | 기존 터빈 합성음 저역 가공, 폭발 클립 | 루프 가능한 엔진 1, 주포 1 | 합계 ≤ 100KB | B4-10 |
| 제트 소리 | 전투기 엔진·통과음 | 기존 터빈 합성음 고역 강조 + 도플러 | 루프 1 + 통과음 1 | 합계 ≤ 80KB | B7-10 |
| 엄폐 소품 | 거점 엄폐 | 이미 채택된 Quaternius 모래주머니·막사·상자(CC0) | 추가 불필요 | 기존 113KB | — |
- 경기 하나의 지연 로드 에셋 예산: 기존 "임무 하나 ≤ 1MB"를 전장에 맞춰 ≤ 1.5MB로 개정 제안(기존 차량 GLB 약 350KB + 새 분류 최대 약 1MB). 기술 설계 9.7.
16.3 후보를 찾을 곳 (조사 시작점 — 채택 아님)
조사할 때 아래 출처부터 보되, 모든 후보는 상세 페이지에서 라이선스를 다시 확인한다.
| 출처 | 기대 | 주의 |
|---|---|---|
| Quaternius(자체 사이트·Poly Pizza) | CC0 저폴리 캐릭터·애니메이션 팩이 여럿 있다고 알려짐 | 치비·장난감풍 팩(예: Toon Shooter)은 10장에서 스타일 불일치로 제외됨 |
| Kenney | CC0 | 장난감 색감 주의(10장에서 차량 제외 사례) |
| Poly Pizza | 모델마다 CC0/CC-BY 표기 | 모델마다 라이선스가 다름, 상세 확인 |
| OpenGameArt | CC0·CC-BY 필터 가능 | GPL·CC-BY-SA는 허용 목록 밖 → 제외 |
| Freesound | CC0 소리 다수 | 검색 결과 라이선스 표시가 틀린 사례, 원본 다운로드는 로그인 필요(10장: 공개 미리듣기 mp3 사용) |
| Sketchfab | CC-BY 모델 다수 | #65(토큰), 게임 추출·재업로드 모델 섞임(10장 "쓰면 안 되는 것" 목록 참고) |
16.4 조사 작업의 산출물 (로드맵 B2-15·B6-5·B7-10 공통 완료 조건)
각 조사 작업은 다음 표를 이슈에 붙이고 끝난다. 채택·구현은 소유자 결정 뒤 별도 작업.
| 열 | 내용 |
|---|---|
| 이름·작가·URL | 상세 페이지 URL |
| 라이선스 | 상세 페이지에서 확인한 것 + 확인 날짜 |
| 다운로드 가능 여부 | 토큰 필요 여부 |
| 삼각형·원본 용량·가공 후 예상 용량 | |
| 애니메이션 클립 목록 (캐릭터) | 필요 클립 충족 여부 |
| 스타일 판정 | 현재 저폴리 단색과 섞이는지(헤드리스 스크린샷 1장) |
| 권장 | 채택 / 보류 / 제외 + 이유 |
- 후보가 조건을 만족하지 못하면 "코드 폴백 유지"가 결론이다 — 로드맵은 폴백으로 완결되므로 조사 결과가 나쁘다고 다른 작업이 막히지 않는다.