UE5数字人毛发衣服的替换以及动画蓝图放在哪里

导入数字人相关资产

数字人,从bridge中,我们可以下载许许多多的数字人,当然也可以自己去官网捏造属于自己的数字人,而网络上面已经有许许多多如何制作属于自己数字人的方法了。
而现在我们要做的是如何替换数字人之间的衣服和毛发
首先我们可以导入正常数字人的资产:
在这里插入图片描述
如图所示,在这个bridge里面下载人物,并导入:
在这里插入图片描述
在这之后,我们可以导入的是人群示例,在这里插入图片描述
这里面有很多的衣服和毛发。

开始替换衣服

同属Bridge的MetaHuman替换

衣服的替换,原理上其实就是对骨骼的替换,如果说都是来自Bridge中的metahuman资产,那么只需要直接替换两者的身体部位即可,并不会出现其他的问题。
在这里插入图片描述
如图两个人物【Bernice和Cooper】,他们会自己给你做好一个actor类,而人物就在这个类里面安装好了。(如果想要换到pawn类,直接复制过去即可。)
在这里插入图片描述

用城市示例的衣服替换

如果是使用城市示例里面的骨骼进行替换,首先第一步,我们需要将MetaHuman的人物骨骼做好兼容,首先打开Bridge做好的人物actor类(上图
然后找到Body的这个,这个是人物中的的部位。
在这里插入图片描述
找到他的骨骼网格体,然后找到骨骼(下图蓝色的这个就是骨骼)
进入这个骨骼之后,我们就可以看到这个资产详情(如果没有找到这个资产详情,需要通过窗口来打开这个)。
在这里插入图片描述
找到兼容骨架,加一个骨骼(SK_Base),这个骨骼就是人群示例里面的基础骨骼,兼容了这个骨骼,那么就可以让MetaHuman进行换装之后也可以使用动画蓝图。
接下来我们找到人群示例的衣服:
在这里插入图片描述
找到衣服之后就可以直接在actor里面交换即可。
在这里插入图片描述

开始替换毛发

人物毛发的替换相对麻烦,而且有些问题。

首先是同源的MetaHuman的毛发替换

这类毛发的替换要将groom资产和groom绑定一起替换,如果只是在actor里面替换的话,只替换groom资产看上去就没有问题了,但如果在人脸上面添加了人物的表情,则会导致头发出现问题,所以groom绑定也是需要进行替换的。
同样因为MetaHuman是同源的,所以他们的groom绑定是可以通用的
在这里插入图片描述
如图,直接将女性的groom资产和groom绑定一起放了上去,并没有出现其他错误的情况。

人群示例对MetaHuman的毛发替换【无法替换】

人群示例的人脸和毛发如果替换到MetaHuman上面会出现问题,首先是坐标轴,人群示例的人脸坐标和MetaHuman的人脸坐标并不一致,从而也导致了毛发是不一致的。【如果头部不匹配的话,可以使用一个UE插件,Mesh Morph。】
在这里插入图片描述
然后毛发是需要groom资产和groom绑定,人群示例的两者是针对人群示例的人脸的,这也导致了MetaHuman如果使用了人群示例的人脸会导致毛发乱掉。
MetaHuman如果使用了人群示例的毛发会导致毛发乱掉。
针对这种情况需要在groom资产进行相应的设置和重新绑定才行。

在哪里使用动画蓝图(身体和人脸)

MetaHuman应该在哪里使用,众所周知数字人拥有如此之多的组件,那么动画蓝图应该放在哪里?还是说全部都应该放呢?
实际上只需要两个动画蓝图即可。
一个是身体的动画蓝图,一个是脸部表情的动画蓝图。
在这里插入图片描述
身体的动画蓝图放在Body那里即可。
脸部的动画蓝图放在Face那里即可。
然后在构造函数处添加一个东西:
在这里插入图片描述

为什么只需要放一个身体的动画蓝图即可?

因为如果看过相应的这4个骨骼网格体就可以发现,虽然是不同的骨骼网格体和骨骼,但其实每一个骨骼都是一样的,不同的是其中的身体部位和蒙皮。
这也是为什么只需要在最上面放一个动画蓝图即可的原因。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UE5中,替换材质可以通过蓝图实现。具体步骤如下: 1.在蓝图中创建一个变量MaterialInterface,用于存储需要替换的材质。 2.创建一个事件,例如鼠标点击事件,用于触发替换材质的操作。 3.在事件中使用Set Material函数,将需要替换的材质赋值给MaterialInterface变量。 4.将需要替换材质的模型的材质接口连接到MaterialInterface变量。 5.完成以上步骤后,当触发鼠标点击事件时,模型的材质将会被替换为MaterialInterface变量中存储的材质。 下面是一个示例蓝图: ```UE4 Blueprint Begin Object Class=/Script/BlueprintGraph.K2Node_Event Name="K2Node_Event_0" EventReference=(MemberParent=Class'"/Script/Engine.Actor"',MemberName="ReceiveActorBeginOverlap") bOverrideFunction=True NodePosX=-16 NodePosY=64 bCommentBubbleVisible=True NodeComment="鼠标点击事件" NodeGuid=8C7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B CustomProperties Pin (PinId=3D7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B,PinName="OutputDelegate",Direction="EGPD_Output",PinType.PinCategory="delegate",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(MemberParent=Class'"/Script/Engine.Actor"',MemberName="ReceiveActorBeginOverlap"),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=5D7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_0 0C7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) End Object Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_0" bIsPureFunc=True FunctionReference=(MemberParent=Class'"/Script/Engine.KismetMaterialLibrary"',MemberName="CreateDynamicMaterialInstance") NodePosX=192 NodePosY=64 NodeGuid=5C7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B CustomProperties Pin (PinId=0C7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "目标"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.KismetMaterialLibrary"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/Engine.Default__KismetMaterialLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=1C7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B,PinName="WorldContextObject",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/CoreUObject.Object"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,) CustomProperties Pin (PinId=2C7B9E6D4F9B9B9B9B9B9B9B9B9B9B9B,PinName="Parent",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/Engine.MaterialInterface"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_VariableGet_0 0C7B9E6D4F9B9B9B9B9B9B9B9B9B9

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多方通行8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值