有没有大佬有spine各种版本转换的工具,3.8.75破解的版本好像有限制,好多功能用不了,买正版的的价格又有点离谱。最近自己找了运行时分析了弄了不少脚本,atlas和json可以转换,但是版本转换总是一直有问题,看了之前有个大佬发的有个转换网站,好像可以转换,但是只能一次次导入,效率很低,特别是转特性的时候。分析网页源码又找不到代码,想弄个离线的纯脚本,这样方便一点,有没有大佬有类似的工具或者给个代码思路,感激不尽 ![]()
善用搜索
我搜了好多b站教程,但是很多都是要正版spine软件
在提问之前
在你准备要通过电子邮件、新闻群组或者聊天室提出技术问题前,请先做到以下事情:
1. 尝试在你准备提问的论坛的旧文章中搜索答案。
- 尝试上网搜索以找到答案。
- 尝试阅读手册以找到答案。
- 尝试阅读常见问题文件(FAQ)以找到答案。
- 尝试自己检查或试验以找到答案。
- 向你身边的强者朋友打听以找到答案。
- 如果你是程序开发者,请尝试阅读源代码以找到答案
那你为什么不在这里搜索
GitHub - wang606/SpineSkeletonDataConverter:
用于在不同格式(skel/json)和不同版本(3.5/3.6/3.7/3.8/4.0/4.1/4.2)之间转换Spine骨架数据的命令行工具。
实际上由于搜索引擎的低效,或者中文信息的匮乏,直接搜索可能无法得到正确结果,哪怕使用正则,但是,使用ai进行搜索,指定在github上或者在线服务是可以搜到的
1 个赞
你只需要下载release中的两个exe,然后跑底下这个代码
使用方式,python spine_convert.py –input input路径 –output output路径 –to_version 目标版本
支持批量处理文件夹
import argparse
import subprocess
from pathlib import Path
import shutil
def run(cmd):
print(">>", " ".join(cmd))
subprocess.check_call(cmd)
def process_folder(
src_dir: Path,
dst_dir: Path,
skel_converter: Path,
atlas_converter: Path,
target_version: str
):
dst_dir.mkdir(parents=True, exist_ok=True)
# ---- skel -> json -> json ----
for skel in src_dir.glob("*.skel"):
name = skel.stem
tmp_json = dst_dir / f"{name}__tmp.json"
out_json = dst_dir / f"{name}.json"
# skel -> source json
run([
str(skel_converter),
str(skel),
str(tmp_json)
])
# source json -> target json
run([
str(skel_converter),
str(tmp_json),
str(out_json),
"-v",
target_version
])
tmp_json.unlink(missing_ok=True)
# ---- atlas downgrade ----
for atlas in src_dir.glob("*.atlas"):
if atlas_converter.exists():
run([
str(atlas_converter),
str(atlas),
str(dst_dir)
])
else:
run([
"python",
"SpineAtlasDowngrade.py",
str(atlas),
str(dst_dir)
])
# ---- copy png ----
for png in src_dir.glob("*.png"):
shutil.copy2(png, dst_dir / png.name)
def main():
parser = argparse.ArgumentParser(
description="Recursive Spine skel+atlas downgrade tool"
)
parser.add_argument("--input", default="input", help="input root directory")
parser.add_argument("--output", default="output", help="output root directory")
parser.add_argument("--to_version", default="3.8.99", help="target spine version")
args = parser.parse_args()
input_root = Path(args.input).resolve()
output_root = Path(args.output).resolve()
skel_converter = Path("SpineSkeletonDataConverter.exe")
atlas_converter = Path("SpineAtlasDowngrade.exe")
if not skel_converter.exists():
raise FileNotFoundError("SpineSkeletonDataConverter.exe not found")
print(f"📂 Input root : {input_root}")
print(f"📂 Output root: {output_root}")
print(f"🎯 Target ver : {args.to_version}\n")
# 找到所有包含 skel 的子目录
skel_dirs = {
p.parent
for p in input_root.rglob("*.skel")
}
if not skel_dirs:
print("⚠️ No .skel files found.")
return
for src_dir in sorted(skel_dirs):
rel = src_dir.relative_to(input_root)
dst_dir = output_root / rel
print(f"\n=== Processing: {rel} ===")
process_folder(
src_dir,
dst_dir,
skel_converter,
atlas_converter,
args.to_version
)
print("\n✅ All folders processed successfully.")
if __name__ == "__main__":
main()
1 个赞


