使用说明
spine2d微型计算机
将分层PSD字符转换为 脊柱 4.2项目——骨架JSON、纹理图集和图集页面PNG——已准备好导入Spine编辑器和Unity。
目标是将角色的手动装备和导入工作从几天减少到大约一个小时。
状态
第0阶段(概念验证): PSD → 一个正确的、可导入的装备(还没有动画)。
该管道已实施并涵盖了对合成夹具的测试。它尚未在Spine编辑器/Unity中针对真正的PSD进行验证,这是下一个里程碑。动画生成、无头预览和Unity导出计划在稍后阶段进行。
它今天做什么
给定一个PSD,其层以身体部位命名(head, body/torso, arm_left, hand_right, leg_left, foot_right,…) import_psd_to_spine 工具产生:
<name>.json--Spine 4.2骨架(骨骼、插槽、默认皮肤、区域附件)<name>.atlas--libgdx/Spine纹理图谱<name>.png--打包地图集页面
关键行为:
- 多段骨架 (
root → hip → torso → chest → neck → head,四肢断了chest,双腿松开hip);缺失的中间骨骼被创建为定位的虚拟骨骼。 - 关节正确枢轴 --每块骨头在其部分的关节边缘(或明确的
<part>[pivot]标记层),而不是图像中心,因此旋转在解剖学上表现良好。 - PSD绘制顺序 保留为Spine插槽顺序。
- 结构验证 Spine 4.2阅读器强制执行的不变量与骨架的关系。
格式真实来源: reference/SkeletonJson.java (脊椎运行时间4.2)。
需求
- Python 3.11+
- 紫外线
设置
uv sync
运行测试
uv run pytest
运行MCP服务器
uv run spine2d-mcp
这将启动一个暴露单个工具的stdio MCP服务器:
import_psd_to_spine(psd_path: str, out_dir: str | None = None)
-> { project_path, atlas_path, png_paths }
将MCP客户端(例如Claude Desktop/Claude Code)指向它,然后要求它按路径导入PSD。
项目布局
src/spine2d_mcp/
server.py FastMCP server + import_psd_to_spine tool
pipeline.py PSD -> Spine project orchestration
psd/parser.py PSD -> flat layer list (+ pivot markers)
psd/conventions.py bone hierarchy, joint sides, [pivot] tag
spine/schema.py Pydantic models for Spine 4.2 JSON
spine/builder.py layers -> SpineProject
spine/writer.py SpineProject -> JSON
spine/validator.py structural validation
atlas/packer.py rectpack bin packing
atlas/writer.py .atlas text + composite PNG
reference/ SkeletonJson.java, spineboy.atlas (format references)
tests/ pytest suite (synthetic PSD fixtures)
许可证
该项目在MIT许可证下发布。
您可以使用、复制、修改、合并、发布、分发、再许可和销售副本 如果原始版权声明和许可文本 包含在软件的大部分中。
软件按“原样”提供,不提供任何形式的保证。看 许可证 获取完整的许可证文本。
