小FUFU视频制作过程记录,从建模到解算 您所在的位置:网站首页 仿真模型定做怎么做出来的视频 小FUFU视频制作过程记录,从建模到解算

小FUFU视频制作过程记录,从建模到解算

2024-07-10 22:45| 来源: 网络整理| 查看: 265

        

        大家好,这里是饱和。这篇文章记录一下制作我小fufu的舞蹈的制作流程,主要是fufu柔体的解决方案,其中包括了所需知识点和流程思路。这次我也是一遍学习摸索一遍制作,所以有很多操作不一定是最优解决方案,欢迎大家交流意见。这个思路不仅仅局限于我提到的软件,用其他软件也完全可以做到相同的效果。

流程图

        1.建模:

fufu模型

        模型方面没什么好说的,因为建模水平比较菜,这种模型对于高手来说这种应该很简单了。需要把表情(眼睛,嘴巴,眉毛)单独分出来做模型,之后表情绑定用。另外布线规整一点,分布平均。做好模型之后把UV分出来。

        另外衣服可以在maya里建模,也可以在Marvelous Designer(简称md)里做。因为这一套衣服很简单,所以直接在maya里面建模了,之后导obj文件去md解算。

        一般来说做好了模型之后应该直接做材质了,但是因为这一次要做毛发,所以说材质放在之后再做。

 

2.绑定:

adv绑定

        绑定方面我使用的adv绑定(AdvancedSkeleton),只绑定了素体,没绑定头发和衣服,因为之后的衣服和头发是要去md里面解算的。至于表情绑定,需要在柔体解算之后再做。

        接下来使用blender中的mmdtool工具导入vmd动作数据(导入的时候选择翻译骨骼名),导入之后把动作数据从blender导出fbx文件到maya。

        接下来在maya中利用动画层修复动作数据中比较明显的穿插动作,这个过程不用避免一些轻微的穿插,因为做的本来就是比较柔软的身体,所以一些轻微的穿插反而会带来模型挤压变形的效果~

        修好穿插之后,利用adv自带的moCapMatcher把导入的fbx动作文件匹配到adv绑定上。

vmd动作匹配adv绑定

接下来把模型动画用abc格式导出的houdini

3.柔体解算

    柔体解算的要点是要在保持原动作的同时,还要在模型上添加上柔性形变。这种需求使用md就很难做到了,这里我使用的是houdini中vellum系统。

柔体解算结果

        我实现柔体解算的核心节点是Vellum Tetrahedral Softbody 和vellum attach to geometry约束,

        首先说说Vellum Tetrahedral Softbody 节点的作用,VellumTetrahedral节点是veluum的柔体解算节点中的一种,另外一种是vellumStruts。经过测试我感觉VellumTetrahedral模式对于柔体解算中的体积保留效果更好。

Vellum TetrahedralVellumTetrahedral示意图

已经完成了柔体的效果,但是模型加上柔体的效果只会单纯的掉在地上,丢失了原来的动作。所以我们接下来要给模型加上约束,让原来的舞蹈动作约束整个柔体。

        动画的点约束也有很多方法,我这里使用的是vellum attach to geometry。vellum attach to geometry节点的作用是让布料约束在一个物体的表面,一般情况下这个物体都是在外部的(例如把裙子的上部约束在人物的腰上)。但是我们这次要约束的物体,在布料的内部。

vellum attach to geometry的一般用法

下面我解释一下用法。首先给abc动画一个smooth节点,让模型往里缩成一个更细的模型

smooth节点的效果

这个“变细”的模型就是将要驱动我们模型动起来的骨架。

原模型和“骨架”放在一起看起来像个套娃

接下来我们建立vellum attach to geometry约束,让这个“骨架”驱动模型动起来

attach to geometry生成的约束

这里看得到,里面的“骨架”上每个点向外生成了一根约束。大家可以把上面图里的白线(约束)理解成一根弹簧。

attach to geometry‍约束动态attach to geometry‍约束动态attach to geometry‍约束示意图

如动图所示,使用vellum attach to geometry约束成功让模型跟着动作运动起来,只不过其中有一部分失去里体积,看起来就像瘪了下去。这样只要结合刚才的Vellum Tetrahedral Softbody 就可以解决丢失体积的问题了。

两个约束结合在一起

这样子,解算的框架基本就成型了。但是实际解算中我希望让头部、身体、四肢的柔软程度有区别,于是把模型拆开分别给了参数,最后节点看起来就像这个样子

头、身体、四肢给与不同的约束属性

最后解算出来,导出abc回maya,柔体解算部分就结束了。

4.布料解算

布料我是在md中解算的,虽然服装也可以从houdini里面和柔体一起解算,不过houdini的解算速度还是比较慢的,为了效率最后选择了md。由于经过柔体解算,所以素体作为碰撞体基本没有穿插的部分,解算非常顺利。

md中解算布料

这里衣服是obj导入进去,解算好之后导出mcc缓存,或者abc都可以。

5.表情绑定

用blendshape制作表情

        表情制作使用了blendshape,制作好之后,把从blender里面传过来fbx上面带的表情数值直接链接到blendshape数值上面。(blender的mmdtool导入vmd会自动创建shapekey(就是maya里的blendshape)可以直接由fbx导出)

        (因为精力有限没有把所有表情和口型都做出来,只做了几个最基础的表情)

        接下来把所有表情合成combine在一起,然后用包裹(wrap)约束在从houdini导入的柔体解算完的abc上面。这样表情就会很好吸附在变形的脸上

6.毛发以及渲染

        毛发使用的Ornatrix,到这一步需要把之前的模型的细分都提高,毛发才能均匀的复杂表面

ox毛发设置

        另外脸部和身体的毛发需要给一个ResolveCollisions,就是毛发碰撞,因为如果没有碰撞脸部的毛发会穿过表情模型,身体的毛发会穿透衣服。最后到渲染的时候,身体+衣服的毛发量是60万。

服装绒毛测试

        到这里解算部分已经全部完成了,之后渲染合成方面并不是这次记录的重点,之后有机会我会和大家分享其中的技术点。最后谢谢大家的观看~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有