Spine CLI로 3.8 데이터를 4.2로 일괄 변환하기
Unity 프로젝트에 쌓인 Spine 3.8 데이터(.json)를 Spine 4.2 런타임에 맞게 한꺼번에 올려야 했다.
Spine CLI로 두 단계 배치를 돌렸다.
- 프로젝트 루트에서
.json을.spine프로젝트 파일로 import한다(v3.8.79). .spine이 생기면 그것을 다시.json으로 export한다(v4.2.43).
import 명령은 다음과 같다.
"C:\Program Files\Spine\spine.com" -i ./ -o .\!jsonname!.spine -r --update 3.8.79export 명령은 다음과 같다.
"C:\Program Files\Spine\spine.com" -i %~1 -m -o . -e json -u 4.2.43버전 선택
섹션 제목: “버전 선택”- import 버전: 데이터 유실을 줄이려고 프로젝트의 Spine 파일 중 가장 낮은 버전인 v3.8.79로 맞췄다.
- export 버전: 배포된 버전 중 stable인 v4.2.43을 골랐다. 당시 v4.3.35는 beta라 고르지 않았다.
마이너 업데이트용 메뉴
섹션 제목: “마이너 업데이트용 메뉴”3 → 4처럼 major 업데이트가 아니면 다시 export할 필요 없이 .json 안의 spine 버전 키 값만 바꾸면 된다. 이 경우를 위해 Unity 메뉴 항목으로 버전 키만 갱신하는 에디터 스크립트를 따로 두었다.
[MenuItem("Tools/Spine/Update JSON Version 3.8.99 to 4.2")]변환 결과는 이펙트 테스트용 컴포넌트와 테스트 씬에서 재생해 확인했다.
배치 중 만난 문제
섹션 제목: “배치 중 만난 문제”- 하나의
.spine프로젝트 파일에 skeleton이 여러 개 있고 모두 기본값으로 export 대상에 체크되어 있어,.json에 필요 없는 skeleton 정보까지 들어갔다. - skeleton 이름과 프로젝트 이름이 달라 배치 작업에서 누락되는 파일이 있었다.
- 확장자가
.JSON처럼 대문자인 파일, Spine 무료 라이선스로 작업된 파일을 따로 고쳤다. - 데이터 자체가 깨져 있는 파일도 있었다.