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: a~0~ * rgb~0~ + (1 - a~0~) * rgb~1~
Add
Brighten the background with the color values of the corresponding pixels of the component: rgb~0~ + rgb~1~
Multiply
Darken the background with values of the the corresponding pixels of the component: rgb~0~ * rgb~1~

运行时操作

有一系列方法可以在运行时修改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).

材质属性

Spine模型的默认材质属性可以用 spine.set_constant()spine.reset_constant() 方法来设置和重置. (详情参见 材质教程):

tint
Spine材质的染色 (vector4). 四元数 x, y, z, 和 w 代表染色的红, 绿, 蓝 和不透明度. 参见 这个例子的 API 用法.

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

GITHUB