开箱即用|Cocos Creator最新3D动态骨骼插件,轻松模拟头发自然动态(文末福利)
共 1637字,需浏览 4分钟
·
2022-05-29 16:30
动态骨骼是游戏开发中的一种常见技术,常用于表现头发、尾巴、衣物等跟随角色动作所产生的自然的飘动效果,以此提升游戏的视觉表现。
开发者 wingcd 写了一个开箱即用的 3D 动态骨骼插件,只需通过简单的设置,即可在 Cocos Creator 中通过物理模拟出头发、胸部、尾巴、衣物等自然的晃动或飘动的效果。
Demo 效果预览
基本功能
开箱即用,只需设置组件参数即可;
性能优异的物理模拟,所有向量与矩阵均使用对象池;
支持 Cocos Creator 3.5;
包含完整的代码。
功能实现
自定义摇摆
1、导入模型,放入自建空节点下:
2、关闭 烘焙动画 Use Bake Animation [非常重要]:
3、在空节点下添加 DynamicBone 组件:
4、设置主要参数:
root:骨骼节点;
end node(end offset):如果只有一个节点,比如有些胸部动画,必须添加尾结点(优先)或者尾部偏移值;
调节其他物理参数。
5、可打开编辑器模拟,移动模型即时看到效果:
注:示例模型带有错误示范,胸部由两个结点控制后,造成了模型抖动,一般胸部第二个结点不能有动作权重。
参数设置
动态骨骼所有参数设置如下:
Root:需要模拟的骨骼根节点。
Update Rate:模拟计算帧率。
Damping:阻尼(0-1),值越大越阻力越大,模拟时间越长。
Damping Distrib:
阻尼散布曲线,默认常量表示不使用曲线;
曲线时,横轴为动态骨骼节点在总长度所占百分比,起点值为 damping 值;
其他散布曲线类似,将不在单独描述。
Elasticity:弹性值(0-1), 值越大弹性越大。
Stiffness:硬度值(0-1), 值越大硬度越大,1类似木棍。
Inert:惰性/延迟。惰性值(0-1),值越大,追踪位移的时间越长。
Radius:(0-1),用于碰撞的半径。
End Node:尾部延长节点,用于单节点动画物理模拟。
End Offset:局部坐标系下的尾部延长向量,用于单节点动画物理模拟,优先使用尾部节点。
Gravity:世界坐标系下的重力值。
Force:世界坐标系下的常驻外力。
Freeze Axis:动画限制平面,设置轴表示方向。
Colliders:碰撞器,防止模拟时穿模。
Exclude Nodes:排除节点,从排除节点中断模拟。
Distant Disable:是否开启距离测试。
refenceObject:距离测试参考目标,空时按相机计算。
distanceToObject:距离测试阈值。
Enable Editor Debug:是否允许在编辑器模式下运行模拟。
Show Debug Gizmos:是否显示调式图形,3.5以上版本支持。
碰撞模型
1、平面碰撞:
2、胶囊体碰撞:
完成配置后,直接播放动画即可,关闭组件即可关闭物理模拟。
资源地址
插件下载:
https://store.cocos.com/app/detail/3782
Demo 案例源码:
https://gitee.com/wingcd/cccdyanmic-bone-demo
在线体验地址:
https://h5.redblack.cn/ccc/dynamic-bone/demo1/
论坛讨论帖:
https://forum.cocos.org/t/topic/135672
Tips:1、此项目在 v3.5 上开发,但也只是为了使用图形显示功能用于 debug,v3.5 前的版本理论上也是可以使用的,只是不能正常显示测试图形,不利于参数调试。
2、动态骨骼节点链中,不应包含锁节点的不必要节点,否则可能出现模拟错误(抖动、失效等问题)。
📢 点击文末【阅读原文】即可前往 Cocos Store 下载 3D 动态骨骼插件,限时2天优惠中!欢迎多多转发/分享给需要的小伙伴,别错过啦~
往期精彩