wow修改人物模型_在 Unity 中让卡通人物变得更可爱

本文介绍了如何在Unity中通过缩小FOV、注视相机、上半身联动、加入呼吸、微眼动和改眨眼为笑颜等方法,使卡通人物变得更可爱。通过调整VRM模型的参数和添加特定的控制器,可以实现更生动逼真的角色表现。
摘要由CSDN通过智能技术生成

5f405e0870271b6e7aad99cb51e5eb5c.png

前两天重装了 CV VTuber Example,正好借机介绍一些常用的让卡通人物更可爱的方法。

我们将在 CV VTuber Example 提供的 VRMCVVTuber 基础上进行开发。在 AssetsCVVTuberExampleCVVTuberAddons 中双击 VRMCVVTuber.unitypackage 导入。

VRMCVVTuber 展示了如何将在 CV Vtuber 项目中使用 VRM 模型。如果你不知道 VRM 是什么,可以参考这里。

除了 VRMCVVTuber.unitypackage 之外,我们还需要导入 UniVRM 以及我们的老朋友 AliciaSolid,同样可以参考上面的文章。全部导入后,打开 VRMCVVTuberExample,拖入 AliciaSolid,进行相应设置后我们的 AliciaSolid 就会跟着摄像头里的人脸动起来了。

7910f10acdefc3884dfe870913100a1f.gif

缩小 FOV

Unity 中相机的默认 FOV 是 60,但是对于以近景卡通人物为主的场景来说,这个 FOV 太突出立体感,容易引起脸部的变形。比较适合的 FOV 为 14 以下,下图左侧为 14,右侧为 60,区别一目了然。

a0296050e39eff09506c972eaccaac0d.png

注视相机

这里我们将利用 VRM 提供的注视相机的功能。点开 AliciaSolid 的 VRMLookAtHead 组件,将其中的 Target 设为我们的相机。同时注意 VRMLookAtBoneApplyer (请忽略日本开发者的拼写错误)中左右眼的骨骼有否设置正确。

d27ba1376d64d8e5778e409c3fee1559.png

另外需要将 AliciaSolid 中眼睛的骨骼重新调整层次,从下图

ba351ff269386581b9c7236a2ebefc5a.png

改为下图

87df13657a02c3af9a83809ba5fe065b.png

以确保眼部高光跟随眼睛一起动。

启动程序,是不是已经有点明星相了。

32ad2fb3683ea99b01145933d4eee8fe.gif

上半身联动

根据日本人的理论,男性头部转动时上半身静止,女性则是连带肩膀上半身一起动,

552aec2109e97336f19e79ee98dc3786.png

来源:https://togetter.com/li/929420

其实也可以想象,女孩子嘛扭扭捏捏总会显得可爱一点。

要实现这个效果,我们可以让上半身骨骼与头部骨骼联动。不过 CV Vtuber Example 中为我们提供了类似功能。打开 VRMHeadRotationController 对象,点开其中的 HeadRotationController 组件,勾选其中的 Invert Y Axis,让身体和头朝相反方向运动。

71abcd5e514400c18217960da289fe87.png

怎么样,是不是做作点了。:)

43e5d280d653d0a27442ed8cc710b232.gif

加入呼吸

就像我们需要一个 idle 动画让人物不要完全处于静止状态一样,静止时加入模拟呼吸的动作也会让人物显得更为鲜活。在下面的连接可以下载到现成的呼吸代码。

http://mebiustos.hatenablog.com/entry/2015/08/31/201902

点击网页的这个部分下载。

a99e3e8b0923c0382c4403a486f5aa93.png

将下载得到的 unitypackage 导入项目,并将其中的 BreathController 添加到 AliciaSolid 对象上。

5eb11ef142b8b5d8e76cbc13549d0e83.png

BreathController 可以自动针对 Humanoid 模型添加呼吸功能,其中会用到 head,neck,chest,spine 四根骨骼,因为 AliciaSolid 没有设置 chest, BreathController 需要做些修改,这里不详述啦。修正 BreathController,启动程序就能看到效果。为了让呼吸更明显,这里没有加入人脸识别部分。

5d3d4f9989e2e5e859047bc20a83990e.gif

微眼动

人的眼球在注视时发生着轻微的运动,这一现象称为 Saccade。 https://en.wikipedia.org/wiki/Saccade

这里有一段现成的代码模拟了这个现象。

https://gist.github.com/GOROman/51ee32887bd1d3248b7610f845904b30

将代码加入项目中并且为 AliciaSolid 对象的眼睛以及高光添加 EyeJitter 组件。

38bb70cda63a7a53c69fb62e3b14e81f.png

启动工程,可以看到微眼动效果,这里同样关闭了人脸识别部分。

442d73633b16d7483924f855a3fb4bd3.gif

改眨眼为笑颜

最后这个有点赖皮。要可爱当然得经常笑啦,所以我们把闭眼时的 blendshape 改为微笑,并且降低判断闭眼的阈值,让微笑出现的更频繁。修改 VRMFaceBlendShapeController 的 UpdateFaceAnimation 函数如下,

if (enableEye) {
    float eyeOpen = (GetLeftEyeOpenRatio (points) + GetRightEyeOpenRatio (points)) / 2.0f;
    //Debug.Log("eyeOpen " + eyeOpen);

    if (eyeOpen >= 0.1f) {
        eyeOpen = 1.0f;
    } else {
        eyeOpen = 0.0f;
    }
    EyeParam = Mathf.Lerp (EyeParam, 1.0f - eyeOpen, eyeLeapT);

    blendShapeProxy.AccumulateValue (BlendShapePreset.Joy, EyeParam);
}

最后上一个最终成果。是不是比开始时可爱些了?

41906de163ceaa2a8b3a0565a49aa976.gif

写到这里发现眨眼其实还有可以改善的地方,下次有机会再说吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值