山东大学软件学院项目实训记录(四)——基于MetaHuman等插件实现数字人的服饰绑定和待机动作
一、解决皮肤瑕疵问题并绑定服饰
meta human编辑器生成的皮肤纹理自带很多瑕疵,下载皮肤贴图导入ps修改,修掉瑕疵,重载贴图。


组装服饰避免穿模,并合并,烘焙纹理产生套装。
这一步需要打开网格体编辑器的雕刻模式,将原本制作好的服饰做进一步贴合,使之贴合人体。

编辑权重,使服装绑定骨骼,后续能跟随骨骼运动。
现在服装已经可以跟随人物动作。
制作鞋子并绑定鞋子。


现在服装资源已经创建好了,它是一个完整的服装资源,且在调节体型时能自动变形以贴合人体。任意调节身体参数也不会穿模。


导出整体人物时出现bug,逐步修正bug。
bug1:groom资产变色,打开groom编辑器,重载材质,使之颜色符合我们的要求。


bug2:groom在载入模型时无法正确识别头部骨骼,出现乱炸现象,或是组装后没有头发,是因为头发模型没有绑定面部肌肉:


组装资产,现在我们得到了一个BP蓝图。我们可以在这个BP蓝图中编辑动作。
二、添加眨眼,呼吸等待机动画
现在场景中已经有一个完整的metahuman角色,想给它添加一些动画,比如眨眼动画和呼吸动画这些动画,需要符合真实人体规律,呼吸一分钟16次,眨眼一分钟15次。
眨眼动画主要在 Face(脸部)组件/动画系统上做,呼吸动画主要在 Body(身体)组件/动画系统上做。** 这两个是 MetaHuman 典型的“分层”处理方式(Face 管面部表情和眼睛,Body 管躯干运动)
通过动画蓝图制作动画

打开动画蓝图,先实现规律眨眼和规律呼吸动作,需在事件图表中实现。
事件图表已经接入ARKit,可以做面部动画。
添加第三人称包,便于使用第三人称骨架等资源。
呼吸是通过轻微抬高和放低角色的胸部(脊椎骨骼)来实现的。我将用 Timeline (时间轴) 来创建一个平滑的起伏效果。
在左下角的 My Blueprint 面板创建第一个变量:命名为BreathAmount(呼吸幅度)。
在右侧的 Details (细节) 面板,把 Variable Type (变量类型) 改成 Float (浮点)。
点击 Compile (编译) (左上角带问号的按钮),然后给它一个默认值,比如0.3。这个值越小,呼吸越不明显。
创建第二个变量SpineBoneName,也就是脊椎骨骼名,用于控制上胸部骨骼。


在人物的BP蓝图里新建Timeline。

双击进入,创建一个 Float Track (浮点轨道),命名为BreathAlpha,设置曲线:
Time=0, Value=0
Time=1.875, Value=1
Time=3.75, Value=0
选中所有点,右键 -> Auto,让它平滑。
顶部设置 Length=3.75,并勾选 Loop (循环)。
回到 Event Graph,把 Event BeginPlay 节点的执行线连接到Breath_Timeline的 Play 输入。

在 Event BeginPlay 之后(或者在构造脚本里),从 Body 组件(从左侧组件列表拖进来)拖出一条线。搜索Get Anim Instance(获取动画实例)。
从Get Anim Instance的返回值拖出一条线,搜索Cast To ABP_MyBreath,也就是之前创建的呼吸动作动画蓝图。
创建新变量,将转换结果提升为变量。


在动画蓝图中进行修改,使蓝图界面belike:

现在,动画蓝图里已经有了一个叫BreathAlphaValue的变量,准备好接收数据了。

因为我们在动画蓝图里把BreathAlphaValue设为了“实例可编辑”,所以在这里才能搜到它的Set函数。
链接好输入输出:

进入动画图表
在动画蓝图编辑器的左上角,点击 AnimGraph 标签页。这里是混合动画的地方。
在动画图表中,会看到一个最终指向 Output Pose (输出姿势) 节点的连线。我们需要在这条线的中间“插入”一个修改骨骼的节点。
选中新创建的Modify Bone节点。在右侧的 Details (细节) 面板,进行如下设置:
Bone to Modify (要修改的骨骼): 点击下拉框,选择spine_03(这是 MetaHuman 的上胸部骨骼)。
Translation Mode (平移模式): 改成 Add to Existing (添加到现有)。这表示我们是在原始姿态的基础上,增加一点位移,而不是完全替换它的位置。
Translation Space (平移空间): 保持 Component Space (组件空间)。
链接好节点:

运行游戏,现在可以看到角色呼吸动作。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)