实习阶段性项目及学习成果报告

1. Introduction

在基于应用软件Unreal EngineiClone的数字人(MetaHuman)生成与驱动中,有两种解决方案:第一种是驱动iClone系列产品Character Creator自定义捏脸生成的character;第二种是驱动Unreal Engine系列产品MetaHuman Creator自定义捏脸生成的metahuman,两种方式各有优劣,当依据实际情况自行选择。

Live Link作为联通Unreal EngineiClone的桥梁插件,在整个过程中起到至关重要的作用。通过Live Link插件,可以实现Model TransferModel Synchronization的功能。

操作方式亦十分简单,将Live Link for Unreal插件下载好后分别导入当前UE项目及iClone软件中即可使用,之后于iClone中选定要Transfer / Link的对象,点击Transfer file / Activate Link按键后即可自动实现模型的传输。

3. Character Creator-Based Solution

该方案为简单涉及,故仅笼统介绍。

3.1 Description

对应版本(iClone7 - CC3, iClone8 - CC4)的Character Creator(CC)中通过捏脸系统将虚拟人形象生成好后,通过Export to iClone功能将虚拟人模型导入iClone作进一步处理,包括但不限于Lip SyncMotion SetupCreate Script等驱动处理。之后便可通过Live Link插件功能将模型transferUnreal Engine对应场景中(若本身在iClone中不方便操作场景的话),驱动iClone中的虚拟人,UE中对应的虚拟人形象也会同步运动。

3.2 Pros & Cons

Pros. 该方案优势在于操作简单,且可以选择在iClone中布置场景完成驱动,机动性高。

Cons. 在该方案中总共经历过两次模型传输,一次为CC to iClone,一次为iClone to Unreal Engine,每一次模型传输都会造成模型精确度下降,以至于最后传输至UE的模型已经与原初character相去甚远,故若需要最后在UE中显示驱动效果,不推荐此法。

4. MetaHuman Creator-Based Solution

注意,此法必须下载安装完整版Live Link Kit,否则将无法进行面部及身体驱动。相应所有插件安装完成后,Unreal Engine中当于插件栏出现CC SetupiClone Live Link字样及图标。

4.1 Description

该方案通过在官网远程操作MetaHuman Creator自定义对应UE版本的MetaHuman后,通过Quxiel Bridge将模型导入(注意,在进入MetaHuman Creator后弹出的第一个界面中必须选择为对应版本,否则将无法导入)。之后在打开的*对应版本*(UE4 - iClone7, UE5 - iClone8)的iClone中选择一个拥有完善面部表情及建模的character用于面部驱动(如原生存在的ExPlus Facial Demo项目,或是Character Creator生成的数字人),再选择一个Live Link Kit中自带的对应体型的身体模型(如f_med_nrw_body文件)用于驱动身体。

4.1.1 Face Synchronization

驱动面部表情需要对UE中的MetaHuman进行相应的参数配置,假设我们使用MetaHuman BP_Pia

首先选中BP_Pia,在其Details所展现的身体结构中选中Face(Inherited),找到Animation对应下拉栏,其中Animation ModeAnim_Class分别选中Use Animation BlueprintFace_AnimBP_C。此举旨在告诉Unreal Engine我们使用Live Link插件中内置的Blueprint来驱动BP_Pia的面部。

接着在iCloneActivate Link,选择Debra将其传输至UE(此处假设iClone中使用上述ExPlus Facial Demo作面部驱动),再于UELive Link窗口中加入对应portsource,看见Subject Name Role中接收到Debra即为传输成功。接着选中BP_Pia身体结构中的BP_Pia(self),于相应Default下拉栏中将LLink Face Subj改为Debra,同时勾起LLink Face Head框(若希望头部亦随Debra运动)。此时在UE中以Simulation模式运行程序,并同时于iClone运行Debra输入好的面部运动程序,即可发现BP_Pia面部随Debra同步运动。若此时未达成期望效果,当检查本机Face_AnimBP程序是否完整。

此后便可通过UE内置的Recorder系统录制MetaHuman的面部动作,以Level Sequence的形式存储下来。

LIVE FACE. 实际上,该方案可以实现基于iClone LIVE FACE插件的实时面捕驱动MetaHuman。不过,由于该插件基于AppleARKit系统,故只支持搭载ARKitApple系列产品。假设此时我们拥有一台搭载ARKitiPhone手机,那么我们需要于App Store下载LIVE FACE软件,打开后可以发现该软件在对我们的面部做实时面部捕捉,并显示对应的面部位置参数。

打开iPhone热点,让电脑连接对应热点网络同步IP(即使电脑额外连接网线亦可成功),再于iClone打开Motion LIVE插件,将LIVE FACE栏的Connection改为iPhone LIVE FACE软件中显示的IP Address,后尝试打开LIVE FACE插件连接iPhone。成功后于Character List下拉栏对应characterFace栏中点击感叹号按键,选择LIVE FACE,再选中Preview,此时即可发现Debra面部随着我们本人面部参数变化而变化。注意,经过实验,在该过程中必须由手机开启热点,电脑连接对应热点,其他方案如手机连接电脑热点,或仅使手机和电脑处于同一网络下的方案皆不可行。

Create Script & Face Key. 此为iClone中内置的功能,可以实现TTS(Text-to-Speech)功能,同时根据文本实现Lip Sync,若用户不满意AI生成的结果,亦可手动调整相应音节口型,使character说话更加自然与流畅。

4.1.2 Motion Synchronization

动作驱动相比于面部驱动会稍微复杂一些,因为他需要修改一些内部Blueprint。依旧以MetaHuman BP_Pia为例,在UE中,第一个需要修改的Blueprint即为f_med_nrw_animbp,如Figure. 1所示,加上Live Link PoseLive Link Subject Name即可;第二处为BP_Pia本身的Blueprint,如图Figure. 2所示,加上如上代码,且Variable处新增变量LLink Body Subj即可。

Figure. 1 & Figure. 2

值得注意的是,第一处需要修改的Blueprint需要由使用角色的体型而定,此例子中BP_Pia使用f_med_nrw_body体型生成,若其为f_tal_nrw_body生成,则需修改f_tal_nrw_animbp

之后于BP_PiaBody(Inherited)身体部分detail中找到Animation下拉栏,使Animation ModeAnim Class分别为Use Animation Blueprintf_med_nrw_animbp_C,同时再将BP_Pia(self)Default下拉栏新增的LLink Body Subj更改为f_med_nrw即可,此时Play in Simulation mode,再启动iClone对应动作模组动画,则会发现MetaHuman随之运动。

事实证明,在Live Link同时传输面部数据(Debra)和动作数据(f_med_nrw)的情况下,并不会起冲突,即MetaHuman面部和身体可以分别运动,若出现只有一方能够运动的情况,当检查配置,或是电脑卡顿问题,或是未Play in Simulation mode

那么之后若希望保存MetaHuman的运动数据,使其在无需Live Link的情况下也能实现相应运动有两种方法:一种即是类似Face Sync那样录制下来,这也是最省事的,但在灵活性上较弱;另一种即是Retarget方法,下面会进行介绍。

Retarget. retarget,指的是将一个character的动作通过骨骼绑定将其应用到另一个character上。为实现这个,我们首先需要将iClone中设定好的动作模组以fbx形式导出,再由UE导入。导入后我们需要找到该模型对应的骨骼,找到Retarget Manager,在Select Rig中选择Humanoid模式,使用AutoMap或是自己手动将模型骨骼对应到相应部位(如spine, clavicle, UpperArm之类的),再于Skeleton TreeOptions中选择Show Retargeting Options,将需要retarget的骨骼设定为Recursively Set Translation Retargeting Skeleton,一般来讲我们会将pelvis以下的部分全部如此设定。同样地,对BP_Pia重复上述操作。都准备好后右键导入动作模组中名字含TempMotion(即最主要的那个)的文件,选择Retarget to Another Skeleton,打开后选择BP_Pia的模型,点击Retarget即可,此时它便会生成关于BP_Pia的动作文件,可直接放入Sequencer查看效果。

但值得注意的是,可能由于目前UE本身内置的retarget算法的原因,得到的效果并不是很理想,即使保证体型相同,与原动作也明显存在差异,且其自身展现十分不自然,需要人力调整,相对繁琐,若是方法一可以实现需求,并不是很推荐此法。

4.2 Pros & Cons

Pros. MetaHuman Creator-Based Solution相比于Character Creator-Based Solution更能保证数字人在最终呈现效果的质量,且由于UE本身强大的场景等制作能力、泛用性,以及良好适配的可编程系统,使用该方案更加迎合市场需求,且机动性更强。

Cons. 使用本方案意味着需要购买Live Link Kit,同时操作细节更为繁琐,需要对Blueprint有一定了解,且目前版本的MetaHuman Creator相较于Character Creator捏脸可操作范围更小,生成的角色比较局限,可移植性也相对较差。

5. Discussion

若要基于Unreal EngineiClone来驱动数字人,考虑到泛用性与效果展现,一般还是会选择MetaHuman Creator-Based Solution,其即使在近镜头下也能展现较为逼真的人物皮肤等细节,适合CG场景等制作。该数字人方案可应用范围相对广阔,除去CG制作,亦可配合OBS等软件用于Live实时面捕直播。且听闻已有通过ARKit直接控制MetaHuman的解决方案,那么在通过iClone做好动作模组后,便可直接摒弃iClone,仅使用Unreal Engine进行直播等操作,符合目前市场虚拟主播(无动捕)的技术要求,或是打包为应用程序更进一步开发。动捕方面iClone也存在相应插件,但鉴于个人没有动捕设备便无法进行下一步操作,但若有条件使用,更可扩展其应用空间。