Advertisement
jerryjin

spine-skins

Oct 6th, 2014
580
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. # 总述(Overview)
  2.  
  3. Spine 中的皮肤(Skin)功能,允许一套骨架上的骨骼和动画使用不同的附加资源(attachments)。多套相似的骨架可以通过替换 attachments 实现动画重用,从而大大减轻了工作量。
  4.  
  5. Skin 的关键在于 皮肤占位符(`Skin Placeholder`)。Skin Placeholder 和其它 attachment 一样,位于层级树目录中的资源槽(slot)节点下。总之,它只是一个占位符或者说是一个代理,仅仅只是为当前 Skin 中真正使用的 attachment 占位而已。Skin 节点是一个记录 attachments 的集合,供 Skin placeholder 调用。当不同的 Skin 激活时,Skin Placeholder 将为整个骨架切换相应的 attachments。
  6.  
  7. # 装配(Setup)
  8.  
  9. 通过创建 Skin 和 Skin Placeholder 建立皮肤,然后在 Skin Placeholder 下为皮肤填充 attachments。
  10.  
  11. ## 创建皮肤(Creating a skin)
  12.  
  13. 要创建 Skin 请在层级树目录中选择 `Skins` 节点,点击新建皮肤 `New Skin` 按钮。
  14.  
  15. ![](/img/skins-new.gif)
  16.  
  17. ## 创建皮肤占位符(Creating skin placeholders)
  18.  
  19. 要创建 Skin Placeholder 请在层级树目录中选择一个骨骼(bone)或 slot 节点,点击 `New...` `Skin Placeholder`。
  20.  
  21. ![](/img/skins-new-placeholder.gif)
  22.  
  23. Skin Placeholder 为每个 Skin 中相应的 attachments 占位 ,所以应该按 attachments 取名,而不是按 Skin。例如:你有 "red" 和 "blue" 两个 Skin,那么头部的名字就应该是 “head”,而不应该是 "red head" 或 "blue head"。
  24.  
  25. ## 填充皮肤占位符(Populating a skin)
  26.  
  27. 要在 Skin Placeholder 中为相应的 Skin 填充 attachments ,首先要确保此 Skin 处于激活状态。层级目录中的小圆点是可见性开关,它指示当前哪个皮肤处于激活状态。这里当前激活的 Skin 是 "red":
  28.  
  29. ![](/img/skins-active.gif)
  30.  
  31. 一旦某个 Skin 被激活,它对应的 attachments 就会被放到 Skin Placeholder 下。如果另一个皮肤被激活,此皮肤对应的 attachments 会被清除,另一个 Skin 对应的 attachments 会显示。
  32.  
  33. # 动画重用(Reusing animations)
  34.  
  35. Skins 是将 attachments 组织在一起最简单的方法。例如:你有一男一女两个哥布林,它们使用不同的图片。你可以创建两套 Skin,然后在运行时选择使用哪一个。
  36.  
  37. Skin 是个非常好用的功能,事实上 Spine 自带的示例工程 "goblins" 演示的就是此功能。但是简单的组织 attachments 无法解决某些更复杂的问题。例如:在运行时代码可以知道哪些 attachment 显示在骨架上,能让哥布林变成为男性或女性。
  38.  
  39. Skin 功能的强大,在于动画时显示哪些 attachment,是由 Skin Placeholder 来记录,而不是让特定的 attachments 自已来决定。最终显示的 attachment 是 Skin Placeholder 根据当前被激活的 Skin 来决定的。若非如此,动画重用无从谈起。
  40.  
  41. 例如:哥布林的骨架需要一个眨眼动画,通过在眼部切换显示图片 "闭眼-男" 和 "闭眼-女" 就能实现。可如果没有 Skin,两个哥布林就得分别做两个动画。但使用了 Skin,只要加一个叫 "闭眼" 的 Skin Placeholder 就能搞定。
  42.  
  43. # 皮肤组合(Combining skins)
  44.  
  45. 某些项目需要更复杂的 attachments 配置。例如:个人形象系统(avatar)有大量不同的脸型、身体、服装等元素可混合搭配。要解决这个问题,首先照常创建 Skin Placeholder,其次为每个 "元素" 创建 Skin 用于组织相应 attachments。最后,编写代码在运行时创建一个 Skin,从所有的 "元素 Skin" 中提取需要的 attachment 放入此 Skin。
  46.  
  47. 例如:你可以有一个 "红衬衫"Skin,它定义了"躯干"、"左衣袖"、"右衣袖"等 Skin placeholders 所使用的 attachment。要让一个角色穿上"红衬衫",那么在运行时用代码创建一个 Skin。然后将 "红衬衫"Skin 中所有的 attachment 填充进来(当然还可以加上其它任何你需要的 Skin 元素)
  48.  
  49. 这个方法有个缺点就是目前 Spine动画编辑器中还不能同时激活多个 Skin。虽然此功能已在[开发计划](https://trello.com/c/7WRv4DuN/71-allow-multiple-skins-to-be-activated-at-once)中,但在此之前没有便捷的方法可预览皮肤混合搭配的效果。
  50.  
  51. # 视频(Video)
  52.  
  53. [youtube:xY4m3iNtSUQ, Skins, ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement