16 외부 에셋 - kyhsa93/karda GitHub Wiki

16. 외부 에셋

풀 배틀필드(D1)는 지금 채택 목록(docs/design 10장)에 없는 분류의 에셋을 부른다. 이 장은 여기서 아무것도 확정하지 않는다. 대신 ① 무엇이 필요한지 ② 채택 조건 ③ 코드 폴백 ④ 후보 조사 작업을 적는다. 조사 결과로 채택할지는 소유자가 정한다(추가 결정 A4).

16.1 원칙 (기존 채택 규칙 10장 10.8을 그대로 따름)

  1. 허용 라이선스만: CC0, 퍼블릭 도메인, CC-BY 3.0/4.0, OFL 1.1, MIT, Apache-2.0, ISC. 무료여야 한다.
  2. 금지: 비상업(NC), 변경 금지(ND), 재배포 금지 조항, 출처 불명, 게임 추출(rip) 모델, 자체 이용약관만 있고 위 라이선스가 명시되지 않은 서비스.
  3. 상세 페이지에서 라이선스를 직접 확인하고 확인 날짜를 public/assets/CREDITS.md에 적는다. 검색 결과·목록 페이지의 라이선스 표시는 틀린 적이 있다(10장 사례: Freesound 검색 CC0 ↔ 상세 CC-BY 4.0).
  4. Sketchfab은 계정 토큰 없이 받을 수 없다(#65, 소유자 결정 대기 — 추가 결정 A5). 조사는 하되 다운로드 가능 여부를 표시한다.
  5. 가공(gltf-transform meshopt·텍스처 축소, 오디오 모노 64kbps) 후 용량 예산 안. 로드 실패 시 코드 도형·합성음 폴백으로 게임이 동작.
  6. 스타일: 단색 저폴리, 사실 사진 텍스처·만화풍(치비)·장난감 색감 제외. 로드 후 공용 머티리얼로 교체(색은 코드에서).
  7. 실존 장비 형상은 가상 명칭으로, 표식·국기 없음.

16.2 필요 목록과 폴백

분류 쓰는 곳 기본(코드 폴백) 외부 에셋 채택 조건 용량 한도 (추정) 조사 작업
애니메이션 보병 캐릭터 봇 인형 근거리 LOD(< 120m) 코드 저폴리 인형(강체 부위 7개, 절차 애니메이션) — 보병 12.7 리깅 + 클립: 서기·걷기·달리기·앉기·엎드리기·조준·사격·쓰러짐 (최소 6개) / 삼각형 ≤ 2,000 / 군복 형태(치비 아님) / 스킨 메시를 인스턴싱 가능한 방식(정점 애니메이션 텍스처로 굽기 등)으로 가공할 수 있을 것 / 두 진영 색 교체 가능 GLB + 애니메이션 ≤ 300KB B2-15
1인칭 무기 뷰모델 보병 1인칭 코드 도형(병과별 4종) 저폴리 소총·기관총·저격소총·로켓 발사기, 삼각형 각 ≤ 800 합계 ≤ 150KB B3-8 조사 부록(선택) 내려놓음 — 1인칭으로 안에서 보는 것은 코드로(O13)
전투기 모델 두 진영 전투기 코드 모델(삼각형 약 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장)
권장 채택 / 보류 / 제외 + 이유
  • 후보가 조건을 만족하지 못하면 "코드 폴백 유지"가 결론이다 — 로드맵은 폴백으로 완결되므로 조사 결과가 나쁘다고 다른 작업이 막히지 않는다.