欢迎光临散文网 会员登陆 & 注册

Unity学习笔记 Vol.64 使用Spring Bone给角色添加头发效果

2020-08-07 14:17 作者:NXL2  | 我要投稿

摘要

    在游戏中,让我们的角色拥有一头柔顺的秀发,可以使角色显得更加生动。在UnityChan模版我们可以从中借鉴Unity酱的飘逸的头发的实现方法。下面我们来具体研究一下。


实现方法

    UnityChan头发的实现主要使用了三个脚本,SpringManager,Spring Collider和Spring Bone。首先我要准备一个绑定好骨骼的模型,然后将对应的骨骼添加脚本组件。


1.将所有头发骨骼(除去发稍的骨骼)绑定SpringBone这个脚本。

SpringBone的设置

Spring Bone要绑定在骨骼所在层级中(尾级(发稍)不需要绑定)

Child 下一层骨骼(子级)

Bone Axis 骨骼的轴向(头发的朝向,头发都是朝Y方向产生)

Raduis 黄球的大小

Is Use Each Bone Force Settings勾选影响是否使用这脚本所在骨骼中的Stiffness Force和Drag Force的效果

Spring Force 受全局力量影响是值,这里只受地心引力影响

Colliders 骨骼与那些碰撞体产生影响

Debug 是否显示黄球

Threshold 权重,影响动态比率

这一步,我们将头发绑定后,还要查看绑定了SpringBone的头发骨骼是否已经将Child(也就是其子集)的头发骨骼添加好,如果已经完成,我们就可以进行下一步。

需要注意的是,头发最好能按部位进行细分,比如前发,侧发,后发,也可以按左右继续细分。头发模型的网格数越高,就可以更加细致柔顺的头发效果。


2.绑定Spring Collider脚本。UnityChan项目中给她绑定了相当多的碰撞体,我们这里简化了一下,给模型绑定了九个碰撞体。下面是绑定骨骼及Spring Collider的设置,Radius是碰撞球体的大小。

Spring Collider的设置

Hips 臀部 Radius 0.1

UpperLeg.L 大腿骨骼(左)Radius 0.07

UpperLeg.R 大腿骨骼(右)Radius 0.07

UpperChest 胸骨 Radius 0.15

UpperArm.L 上臂骨(左)Radius 0.1

LowerArm.L 小臂骨(左)Radius 0.1

UpperArm.R 上臂骨(右)Radius 0.1

LowerArm.R 小臂骨(右)Radius 0.1

Locator_Head_Above(这里是空物体,绑定在Head骨骼的子集)Radius 0.12

上面的骨骼是Up个人命名方法,其他模型中可能有一些不同,但是位置基本都是一样的(有些模型会有大腿或者胸骨等部位有少许增减)。

碰撞体必须要手动添加Spring Collider组件,原本的Collider和Mesh Renderer可以删除掉


3.最后我们给模型添加Spring Manager脚本,这个脚本一般添加在模型的根层,我们还要将已经绑定的SpringBone添加到Spring Manager里面。

已经添加了SpringBone的效果

首先,Up建议我们先将模型在Inspector中的锁头进行锁定,方便我们下面的操作。

将头发骨骼展开并全选

全选后,我们将其拖到Spring Manager组件下的Spring Bones这个选项中,注意这里要搬到Spring Bones选项上。

拖到红圈的位置上
Spring Manager绑定在头发根层

Dynamic Ratio 动态比率

Stiffness Force 刚度

Stiffness Curve 刚度曲线

Drag Force 拉动力

Drag Curve 拖动曲线

这些参数可以影响头发的硬度和在拖动时的力量,我们可以适当进行调节。

    这三个步骤完成后就可以让角色拥有一头飘逸的秀发了,当然,SpringBone的效果不止于此。我们还可以利用它来制作出飘动的衣袂或者飞舞的裙摆,这需要我们设置更多的骨骼和碰撞体。具体我们可以参考UnityChan项目的设置。

Unity学习笔记 Vol.64 使用Spring Bone给角色添加头发效果的评论 (共 条)

分享到微博请遵守国家法律