Read this manual in English

Spine 模型

SpineModel 组件用于把 Spine 骨骼动画在 Defold 中呈现出来.

创建 Spine Model 组件

选择一个游戏对象:

方法一 直接创建组件(右键点击 游戏对象选择 Add Component ▸ Spine Model)

方法二 先创建文件 (在 资源 浏览器中 右键点击, 在上下文菜单中选择 New... ▸ Spine Model), 再在游戏对象上 右键点击 , 选择 Add Component File).

Spine Model 属性:

除了常见的 Id, PositionRotation 属性外, 还有 Spine Model 的特有属性:

Spine scene
设置先前创建的 Spine Scene.
Blend Mode
默认混合模式是 Alpha, 想用别的可以修改这个属性.
Material
如果想要使用自定义材质显示Spine模型, 在此指定.
Default animation
设置Spine模型默认的动画.
Skin
如果模型包含皮肤的话,这里可以设置Spine模型的默认皮肤.

此时就可以在编辑器里看到Spine模型了:

编辑器中的Spine模型

混合模式

The Blend Mode property defines how the component graphics should be blended with the graphics behind it. These are the available blend modes and how they are calculated:

Alpha
Normal blending: src.a * src.rgb + (1 - src.a) * dst.rgb
Add
Brighten the background with the color values of the corresponding pixels of the component: src.rgb + dst.rgb
Multiply
Darken the background with values of the the corresponding pixels of the component: src.rgb * dst.rgb

运行时操作

有一系列方法可以在运行时修改Spine模型 (参见 API文档).

运行时动画

Defold 提供运行时控制动画的功能:

local play_properties = { blend_duration = 0.1 }
spine.play_anim("#spinemodel", "jump", go.PLAYBACK_ONCE_FORWARD, play_properties)

可以手动播放动画甚至使用属性动画系统控制播放头:

-- set the run animation
spine.play_anim("#spinemodel", "run", go.PLAYBACK_NONE)
-- animate the cursor
go.animate("#spinemodel", "cursor", go.PLAYBACK_LOOP_PINGPONG, 1, go.EASING_LINEAR, 10)

修改属性

Spine模型可以使用 go.get()go.set() 方法修改其属性:

animation
当前Spine模型动画 (hash) (只读). 使用 spine.play_anim() 方法来更改播放动画 (见上文).
cursor
标准化动画头 (number).
material
Spine模型材质 (hash). 可使用 go.set() 修改. 参见 这个例子的 API 用法.
playback_rate
动画播放速率 (number).
skin
当前组件的皮肤 (hash).

材质常量

The default spine material has the following constants that can be changed using go.set() or go.animate() (refer to the Material manual for more details). Examples:

go.set("#spine", "tint", vmath.vector4(1,0,0,1))
go.animate("#spine", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
tint
3D网格颜色 (vector4). 四元数 x, y, z, 和 w 分别对应红, 绿, 蓝和不透明度.

相关项目配置

game.project 文件里有些关于Spine模型的 设置项目.


Did you spot an error or do you have a suggestion? Please let us know on GitHub!

GITHUB