Files
SpineViewer/Spine
2025-10-02 10:32:24 +08:00
..
2025-08-20 22:42:38 +08:00
2025-10-02 10:17:12 +08:00
2025-10-02 10:32:24 +08:00
2025-05-27 15:55:10 +08:00
2025-05-27 19:10:40 +08:00
2025-10-01 23:45:01 +08:00
2025-10-02 10:23:51 +08:00
2025-08-18 01:23:31 +08:00

Spine

这个库封装了与 Spine 有关的底层功能, 下图给出主要关系.

classDiagram
direction TB

namespace Spine.SpineWrappers {
    class ISkeleton { <<Interface>> }
    class IAnimationState { <<Interface>> }
    class ISpineObjectData { <<Interface>> }
    class SpineObjectData { 
        <<Abstract>> 
        +CreateSkeleton() ISkeleton
        +CreateAnimationState() IAnimationState
    }
}

namespace Spine.Implementations.SpineWrappers.V38 {
    class Skeleton38
    class AnimationState38
    class SpineObjectData38
}

namespace Spine {
    class SpineObject {
        +ISpineObjectData Data
        +ISkeleton Skeleton
        +IAnimationState AnimationState
        +SpineObject(skelPath, atlasPath = null, version = null)
    }
}

ISpineObjectData <|.. SpineObjectData

Skeleton38 <.. SpineObjectData38
AnimationState38 <.. SpineObjectData38

ISkeleton <|.. Skeleton38
IAnimationState <|.. AnimationState38
SpineObjectData <|-- SpineObjectData38

SpineObjectData38 <.. SpineObject

classDiagram
direction LR

namespace Spine.Exporters {
    class BaseExporter {
         <<Abstract>>
         +Export(output, params spines)
    }

    class VideoExporter {
        <<Abstract>>
        +Export(output, ct, params spines)
    }

    class FrameExporter
    class FrameSequenceExporter
    class FFmpegVideoExporter
    class CustomFFmpegExporter
}

BaseExporter <|-- FrameExporter
BaseExporter <|-- VideoExporter
VideoExporter <|-- FrameSequenceExporter
VideoExporter <|-- FFmpegVideoExporter
VideoExporter <|-- CustomFFmpegExporter

如何扩展渲染支持的版本

在命名空间 Spine.Implementations.SpineWrappers 下, 增加扩展版本的子命名空间, 例如 V38.

随后实现 SpineObjectData38, 并继承自 Spine.SpineWrappers.SpineObjectData.

并在实现类上使用特性注解 [SpineImplementation(3, 8)].