【飘逸的秀发】如何在移动设备下做出漂亮的头发飘逸效果!

发表于2016-11-21
评论7 8.3k浏览

作者接到领导命令,需要给移动端游戏里面弄一个头发甩甩的帅气效果,头发甩甩,大步往前迈。于是通过各种方法,从日本友人那里学习了几个脚本,最终实现了不论是在移动端还是在主机端都可以使用的头发甩甩效果,没有使用U3D自身毛发渲染,只不过是模拟了一个物理运算,

此类脚本经过测试可用于:

神秘海域4的 植被根茎碰撞系统、

可用于女人头发甩甩在风中飘逸的效果、

可以用于神秘海域4里面绳索缠绕木桩的效果、

可用于类似神海4的绳索攀爬系统

喜欢钻研的同学可以扩展脚本哈,做出更出色的效果,绳索、抖胸、头发甩甩等!

当然,此章节只介绍怎样用于做长发美女的头发飘飘,先上一段视频介绍下最终效果:

图片预览:

 

视频预览


游戏中的例子下载地址如下:

 http://pan.baidu.com/s/1pLD8Nf9 密码:evl7


接下来,我们先说说怎么制作

脚本原理:

把每个骨骼通过脚本控制起来,UnityAnimation动画和本身脚本的预算同时运行!

所需脚本:

SpringManager:子骨骼管理器用来调控子骨骼对应参数

脚本详见例子

SpringBone:子骨骼自身参数脚本

 

SpringCollider :子骨骼运动过程中的碰撞体

 

举个例子:

导入一个蒙好皮的FBX,或者创建一个空的OBJ,我们姑且把他叫做根节点,

1.SpringManager脚本挂到根节点上,如图:

 

调整参数:

Dynamic Ratio:柔软度,0-1 越靠近1 越柔软,越靠近0越坚挺!

其他参数不重要了,自己看着调节吧。

2.把对应的需要控制的子骨骼挂上脚本:SpringBone

 

如图所示;

调节参数:

子物体必须挂上,父子关系明确。

IS use each bone force :勾上,互相伤害,影响

Stiffness Force :柔和度,数值越小,越柔和。

 

3.在对应的骨骼节点上挂上碰撞体脚本

 

如图所示:可以调节碰撞体的半径。最终来实现子骨骼之间穿帮的问题。

 

需要注意的问题;

1.如果越到你做的东西骨骼乱飞,那么请调节子骨骼最上面的父物体的Bone AXIS,全部改成0

 

2.类似头发这种骨骼点,最好让美术明确好父子关系,一一对应起来,全部手动挂到SpringManager 上,没办法,要出效果就得手动添加,当然如果可以,可以把骨骼名字命名非常规范,然后让美术维护一个表,然后让程序读取这个表格,最终把这些骨骼加载进来,省去手动操作的麻烦,不过我还是建议手动做,毕竟最多也就100多跟骨骼,2秒钟一个。还能接受。唯一不好的是,如果美术对这个模型再次更改的话,又得重新做一遍!

3.把子物体上的 IS USE EACH BONE FORCE 勾上

 

4.几个重要的参数需要慢慢的调节:

子骨骼上的柔软度

5.碰撞体也要挂到骨骼上,或者直接在对应的骨骼下面创建一个空的OBJ,再挂上SpringCollider 脚本来调节碰撞,这是个体力活,需要有耐心的人才能干!

 

头发的介绍就介绍到这里,下回和大家一起讨论下怎么样抖胸!谢谢大家!

 

 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引