콘텐츠로 이동

Spine CLI로 3.8 데이터를 4.2로 일괄 변환하기

Unity 프로젝트에 쌓인 Spine 3.8 데이터(.json)를 Spine 4.2 런타임에 맞게 한꺼번에 올려야 했다.

Spine CLI로 두 단계 배치를 돌렸다.

  1. 프로젝트 루트에서 .json을 .spine 프로젝트 파일로 import한다(v3.8.79).
  2. .spine이 생기면 그것을 다시 .json으로 export한다(v4.2.43).

import 명령은 다음과 같다.

"C:\Program Files\Spine\spine.com" -i ./ -o .\!jsonname!.spine -r --update 3.8.79

export 명령은 다음과 같다.

"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 무료 라이선스로 작업된 파일을 따로 고쳤다.
  • 데이터 자체가 깨져 있는 파일도 있었다.