马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
本帖最后由 笑虾 于 2014-10-7 20:50 编辑
欢迎入群 Spine2D骨骼动画 1群:7708065,2群:225097509 大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!
总述(Overview)Spine 中的皮肤(Skin)功能,允许一套骨架上的骨骼和动画使用不同的附加资源(attachments)。多套相似的骨架可以通过替换 attachments 实现动画重用,从而大大减轻了工作量。 Skin 的关键在于 皮肤占位符(`Skin Placeholder`)。Skin Placeholder 和其它 attachment 一样,位于层级树目录中的资源槽(slot)节点下。总之,它只是一个占位符或者说是一个代理,仅仅只是为当前 Skin 中真正使用的 attachment 占位而已。Skin 节点是一个记录 attachments 的集合,供 Skin placeholder 调用。当不同的 Skin 激活时,Skin Placeholder 将为整个骨架切换相应的 attachments。 装配(Setup)通过创建 Skin 和 Skin Placeholder 建立皮肤,然后在 Skin Placeholder 下为皮肤填充 attachments。 创建皮肤(Creating a skin)要创建 Skin 请在层级树目录中选择 `Skins` 节点,点击新建皮肤 `New Skin` 按钮。
创建皮肤占位符(Creating skin placeholders)要创建 Skin Placeholder 请在层级树目录中选择一个骨骼(bone)或 slot 节点,点击 `New...` `Skin Placeholder`。
Skin Placeholder 为每个 Skin 中相应的 attachments 占位 ,所以应该按 attachments 取名,而不是按 Skin。例如:你有 "red" 和 "blue" 两个 Skin,那么头部的名字就应该是 “head”,而不应该是 "red head" 或 "blue head"。 填充皮肤占位符(Populating a skin)要在 Skin Placeholder 中为相应的 Skin 填充 attachments ,首先要确保此 Skin 处于激活状态。层级目录中的小圆点是可见性开关,它指示当前哪个皮肤处于激活状态。这里当前激活的 Skin 是 "red":
一旦某个 Skin 被激活,它对应的 attachments 就会被放到 Skin Placeholder 下。如果另一个皮肤被激活,此皮肤对应的 attachments 会被清除,另一个 Skin 对应的 attachments 会显示。
动画重用(Reusing animations)
Skins 是将 attachments 组织在一起最简单的方法。例如:你有一男一女两个哥布林,它们使用不同的图片。你可以创建两套 Skin,然后在运行时选择使用哪一个。
Skin 是个非常好用的功能,事实上 Spine 自带的示例工程 "goblins" 演示的就是此功能。但是简单的组织 attachments 无法解决某些更复杂的问题。例如:在运行时代码可以知道哪些 attachment 显示在骨架上,能让哥布林变成为男性或女性。
Skin 功能的强大,在于动画时显示哪些 attachment,是由 Skin Placeholder 来记录,而不是让特定的 attachments 自已来决定。最终显示的 attachment 是 Skin Placeholder 根据当前被激活的 Skin 来决定的。若非如此,动画重用无从谈起。
例如:哥布林的骨架需要一个眨眼动画,通过在眼部切换显示图片 "闭眼-男" 和 "闭眼-女" 就能实现。可如果没有 Skin,两个哥布林就得分别做两个动画。但使用了 Skin,只要加一个叫 "闭眼" 的 Skin Placeholder 就能搞定。
皮肤组合(Combining skins)
某些项目需要更复杂的 attachments 配置。例如:个人形象系统(avatar)有大量不同的脸型、身体、服装等元素可混合搭配。要解决这个问题,首先照常创建 Skin Placeholder,其次为每个 "元素" 创建 Skin 用于组织相应 attachments。最后,编写代码在运行时创建一个 Skin,从所有的 "元素 Skin" 中提取需要的 attachment 放入此 Skin。
例如:你可以有一个 "红衬衫"Skin,它定义了"躯干"、"左衣袖"、"右衣袖"等 Skin placeholders 所使用的 attachment。要让一个角色穿上"红衬衫",那么在运行时用代码创建一个 Skin。然后将 "红衬衫"Skin 中所有的 attachment 填充进来(当然还可以加上其它任何你需要的 Skin 元素)
这个方法有个缺点就是目前 Spine动画编辑器中还不能同时激活多个 Skin。虽然此功能已在[开发计划] 中,但在此之前没有便捷的方法可预览皮肤混合搭配的效果。
视频(Video)
|