在UE5中用KawaiiPhysics插件进行衣服物理模拟

参考链接

KawaiiPhysics插件Github下载链接
英文ReadMe
参数对照表

B站教程第一集
第二集

【Youtube】Ue4 Kawaii physics explained
【Youtube】UE4 Cloth Simulation Tutorial
【Youtube】Ponytail physics Tutorial in Unreal Engine 4
【Youtube】Setting up Physics on a Character in Unreal Engine
【Youtube】How to Add Boob Physics in Unreal Engine 5 Tutorial - Mastering Jiggle Physics

正文

开始研究如何在UE5里让MMD人物的衣服动起来了,当然也包括尾巴耳朵等如何运动。

首先如果是MMD模型的话,一种普遍方法是使用KawaiiPhysics插件根据模型绑定好的骨骼进行伪物理仿真(更加Kawaii的物理仿真?)。该插件是Github开源的,而且UE5版本的也出来了,英文版README可以戳这里,参数讲解对照表可以戳这里。B站上有讲解如何使用的教程(很详细),一共有两集(第一集第二集),Youtube上也有xxerbexx大佬的教程

感觉跟Unity的MagicaCloth有点像,但是不支持在Mesh上刷点,不过Mesh上刷点的话用UE自带原生组件就行了。个人感觉如果模型有自带的衣服骨骼,插件比UE自带的原生组件更加方便一点,所以主要讲一下该插件如何安装和使用。

首先去Github上下载KawaiiPhysics插件,在首页上点击Releases找到对应的版本,下载到本地:

解压压缩包,将整个文件夹丢进UE引擎的Plugins文件夹里:

点击Edit->Plugins,搜索kawaii应该可以看到插件,把它勾上(没看见的话可能得重新启动UE):

右键模型创建一个动画蓝图文件:

可以看到AnimGraph里一开始只有一个Output Pose结点,随便将一个动画拖进去(例如走猫步),然后连到这个结点上,用于后面调试参数观看效果使用。槽在结点的左边表示输入,在右边表示输出,现在这么连表示直接将动画输出到骨骼上:

点击Compile进行编译,可以看到角色开始行走:

点右键空白处,搜索kawaii,可以找到插件提供的Kawaii Physics结点,一个结点用来控制一条骨骼链的运动:

把动画结点连到kawaii结点的左边,输出结点连到kawaii结点的右边,如图所示(另外两个灰色结点会自动创建):

点击Kawaii结点,在Details面板里找到Modify Target,在Root Bone选项下选择要控制的骨骼链的根节点。比如先玩尾巴的话就找到尾巴的根节点,物理模拟从该节点开始:

点击Kawaii结点,找到Modify Target,在Root Bone选项下选择要控制的骨骼链的根节点。比如先玩尾巴的话就找到尾巴的根节点,物理模拟从该节点开始:

觉得Debug信息太碍眼了可以在Debug下选择对应显示的开关:

Compile一下,可以看到尾巴已经甩到姥姥家了:

接下来找到Physics Settings,主要调Damping和Stiffness两个选项。Damping表示阻尼,数值越大骨骼就越不运动,Stiffness表示硬直,数值越大骨骼就越偏向维持原来的姿势。其它四个参数就是受世界运动的位移旋转阻尼,碰撞半径以及最大偏移角度。调成什么样可以自己尝试一下,不同地方用的数值可能不太一样,这里稍微增大阻尼和硬直:

效果稍微好看一点:

考虑到后面可能要添加多个这样的kawaii节点,我们可以把参数暴露出来,例如将Bind改成Expose As Pin:

然后kawaii节点就暴露了Physics Settings输入,拖拽的话会看到可以创建一个Make KawaiiPhysicsSettings选项:

点击后会创建出一个存储参数的结点,可以通过连线的方式让其它kawaii结点共用该物理参数。按照上面的方法给其它需要进行仿真的骨骼都添加一个kawaii节点(可以Ctrl+D复制出一份新的,然后修改Root Bone指定的骨骼),然后依次用线连起来(UE5不愧是万物皆可蓝图,简直眼花缭乱...)。相比之下,Unity的Magica Cloth插件比UE的Kawaii插件高效许多,选中一片根骨骼直接拖进去就完事了。不过Kawaii插件毕竟是免费开源的嘛,能有这个效果也不错了。

比如添加两个kawaii节点的:

添加完所有kawaii节点的:

吐槽一下,UE5现在不是特别稳定,有时按下撤销就直接崩溃,本来以为会比Unity稳一点的。唔,希望以后能好些吧...

如果不知道模型中哪些骨骼需要物理仿真的话,可以进到骨骼模式仔细观察人物骨架,比如尾巴,耳朵裙子,包包等需要物理仿真:

骨骼没显示出来的话可以Character->Bones->All Hierarchy进行显示:

有时候需要用到搜索功能,可以在Skeleton Tree面板下右键骨骼,复制名字,这样就不用手打了:

好了,终于到了设置碰撞体环节了!方法比较简单,先随便选择一个Kawaii结点,然后Details面板下有三种碰撞体可以设置,分别是球形、胶囊和平面:

球形主要用在头部上吧,感觉能用球的地方都能用胶囊;平面的话是防止骨骼穿过平面。这里主要用到胶囊碰撞体,点击+号创建一个,把Driving Bone设置为添加碰撞体的骨骼,比如左腿:

点击Compile,可以看到橙色的胶囊,调整大小旋转和位置,让其表示大腿的碰撞范围。不过貌似这个胶囊两段的半径是一样的,没法分别调大小,不像Magica Cloth(打住,总是情不自禁想比较一番):

虽说可以在一个结点上创建好所有碰撞体,然后把所有碰撞体复制到其他kawaii结点上。但是碰撞体的信息是不共享的,之后每次改动都得重新复制一遍,并且有那么多个kawaii结点,所以这么弄的话简直酸爽。不过貌似可以一次性选中多个结点然后调整碰撞体信息,所以应该也不是很麻烦。

另一种更为科学的做法是创建一个共享的碰撞体资源,然后让其他结点都引用这个资源。做法是先在Content Browser里创建一个Data Asset资源,Content Browser->Miscellaneous->Data Asset:

选择kawaiiPhysicsLimitsDataAsset:

然后就创建好了一个碰撞体资源。之后进到动画蓝图里,选择每一个要添加碰撞体的kawaii结点,在Limits Data中添加该资源的引用:

双击进去后可以看到三种碰撞体的Limits面板。按部就班的创建好需要的碰撞体即可。不过Driving Bone Name可是需要自己手输名字的,采用之前右键骨骼,复制名字粘贴的方式可以省力不少。胶囊体也会以蓝色显示:

要创建新的碰撞体,可以在原来的基础上点击倒三角,选择duplicate复制出一份新的,然后输入其它骨骼的名字:

这里先简单创建四个碰撞体,想要更精确的效果就得花时间仔细调整:

另外现在链条上黄色小球的半径是一样大的,如果想让它沿曲线变化半径,比如对于裙子的链条,想让它上面的小球半径小,下面的小球半径大,可以在Radius Curve Data里添加一个曲线,这个槽也是可以暴露出来用结点控制参数的:

创建曲线资源,右键空白处->Miscellaneous->Curve:

半径是一维的,创建一个Float曲线即可:

设置曲线,比如经过(0,0.2),(1,1)两个点,原来链上的球的半径会根据y值进行缩放:

添加资源引用:

可以看到碰撞体小球的半径根据曲线进行了变化,这样可以防止上端的骨骼出现鼓起来的不良视觉效果:

kawaii插件都是根据骨骼进行碰撞解算的,所以有些情况,比如包的话就还是会穿模。因为这跟模型自身的骨骼绑定有关,可以看到包的位置和旋转都只是由一根骨骼控制的,而且骨骼的位置也不能很好地表达包的位置,所以插件设置小黄球就会有问题:

解决方法的话目前只想到可能可以用UE自带的Physics Asset设置碰撞来解决,当然也可以后期手K这根骨骼的动画,反正效果暂时先这样吧:

其它参数包括重力和风场啥的,自己玩玩也知道是啥回事,就不一一展示了。

对于那些袖子又多又长的角色,感觉设置起来会比较麻烦,如果随便调的话穿模会比较严重。当然也可以用UE自带的布料仿真以刷点的方式解决。Youtbue上找到一个不用安装插件的教程,虽然是用UE4进行演示,但是UE5里还没出新的流程,所以还是可行的。该方法不需要用到角色自带的骨骼,但需要和Physics Assets结合使用。尾巴耳朵等根据骨骼来模拟的话,当然也是可以使用UE原生组件的,毕竟UE的功能肯定还是更强一点,感兴趣的话可以看Ink Ribbon Tutorials的Youtube教程,个人感觉如果是刚接触UE的话可能还是会觉得有点繁琐,所以暂时丢一边去吧。

参考链接

KawaiiPhysics插件Github下载链接
英文ReadMe
参数对照表

B站教程第一集
第二集

【Youtube】Ue4 Kawaii physics explained
【Youtube】UE4 Cloth Simulation Tutorial
【Youtube】Ponytail physics Tutorial in Unreal Engine 4
【Youtube】Setting up Physics on a Character in Unreal Engine
【Youtube】How to Add Boob Physics in Unreal Engine 5 Tutorial - Mastering Jiggle Physics

posted @ 2022-05-16 22:55  菜鸟少侠  阅读(4665)  评论(2编辑  收藏  举报