- Изменено
스파인 4.0 강제 업데이트
리소스 작업자가 스파인을 사용하려면 강제로 업데이트를 시켜 4.0으로 업데이트가 됐다고 합니다.
그래서 유니티도 .4.0으로 업데이트 후 사용중인데 3.8 버전에서 만든 리소스들이 에러가 납니다.
이렇게 강제 업데이트가 될 때마다 모든 리소스들을 다 찾아서 넣어줘야하는건가요?
강제업데이트를 막거나 상위 버전에서 하위 버전을 사용할 수 있도록 하면 안되나요 ?
「최신」을 선택되고 있으면, 항상 최신의 버전이 제공됩니다. 아마 그 자원 제작자쪽은 이쪽을 선택되고 있었기 때문, 자동적으로 업데이트되어버린 것이라고 생각합니다. 버전을 고정하고 싶을 경우는 Spine Luncher 화면이나 설정 화면 안(속)에 있는 버전 설정으로, 「최신x.x」를 선택해 주세요. (예를 들면, 「최신3.8」등)
If you have selected "Latest", you will always be provided with the latest version. Probably the creator of the resource had selected this option, so it was automatically updated. If you want to fix the Spine version, please select "Latest x.x" in the version setting box in the Spine Luncher or in the settings. (For example, "Latest 3.8.")
강제 업데이트는 설정을 항상 최신 버전을 사용하도록 설정을 해두었기 때문에 일어나는 일이니
Misaki님이 적어주신 내용을 참고하여 버전을 고정하시는 게 좋습니다.
다만 언젠가 4.0으로 넘어갈 여지가 있다면 되도록 빨리 넘어가시는 걸 권장드립니다.
3.8에서 4.0으로 넘어갈 때 하위호환성이 없는 이유는 하위호환성이 유지되지 않을만큼의 대형 업데이트가 있었기 때문입니다.
(이러한 대형 업데이트는 주기적으로 있어왔습니다)
저희 팀에서도 비슷한 이슈를 겪었고 3.7에서 4.0으로 업데이트를 하기로 결정했습니다.
기존 작업물(.skel.byte 파일)들은 CLI 툴을 제작하여 3.7에서 4.0으로 변환하는 과정을 거쳐 일괄처리했고 문제 없이 작동했습니다.
이하는 툴에 사용한 Windows Batch 파일의 코드입니다.
버전 차이나 폴더 구조 차이 등은 있어서 그대로 활용하는 건 어렵겠지만 이런 툴을 만들었구나 하는 참고용도로만 봐주셨으면 좋겠습니다.
set SPINE_DIR=C:\Program Files\Spine
set UNITY_DIR=C:\path\to\game-unity
set OLD_VERSION=3.7.94
set NEW_VERSION=4.0.64b
for /r %UNITY_DIR%\Assets\Contents\ %%i in (*.skel.bytes) do (
rename %%i %%~ni
)
for /r %UNITY_DIR%\Assets\Contents\ %%i in (*.skel) do (
"%SPINE_DIR%\spine" -u %OLD_VERSION% -i %%i -o %%~dpni.spine -r
"%SPINE_DIR%\spine" -u %NEW_VERSION% -i %%~dpni.spine -o %%~dpi -e %UNITY_DIR%\Tools\binary.json
del %%~dpni.spine
del %%i
)