为了一盘醋,包了一顿饺子,值吗?
kinglier是从事主要领域为AI视觉数字人驱动方向,前期所做工作聚焦在2D数字人,23年开始,突然意识到2D技术好像已经到了瓶颈期,像一些情感控制任务用GAN或者diffusion model等图像生成方式很难获得理想效果,于是想借助3D BS控制面部动画的方式解决数字人情感单一问题,前期看了ExpGan、SadTalker等前人工作,也玩过LiveLink 驱动Metahuman面部动画,但受限于对BS概念理解不深,总是觉得事情并没有简单到model+big data + muti loss就能解决的地步,于是想到借助网上一些免费学习资源对BS及相关概念进行深度消化吸收。
就这一简单想法,一脚踏上驶往虚幻世界的贼船,正所谓,一入虚幻深似海,自此AI成路人。
用了两周时间狂刷了相关教程,Unreal Engine、Unity、MAYA、Blender、Metahuman,建模、材质、纹理、骨骼、绑定、蒙皮、形变BS(那年那盘醋),蓝图,渲染,灯光,过场动画,贴花,FX,lumin,nania……,OMG!这个领域到底还有多少我没接触过得新词(https://827930.ochkinterhk.tech/?p=196,这里是笔者看过的觉得相对较详细的教学视频)。
深知“纸上得来终觉浅,觉知此事要躬行”,亦深知“弱水三千,只取一瓢”,经过对比分析,kinglier决定从UE和Maya两款软件开始入手:
UE5:
第一天:参考教学视频,做了一个秃秃的山丘,由于早期以看视频为主,从没上手实践过,以Third Person教学工程为基础,创建Level,创建光,大气层,散射层,大陆等。一开始控制视野都比较困难,还好大学期间进修了“AWSD”游戏角色行为控制教程,在UE中再配合长按鼠标右键,就可实现视野控制。教学视频需要通过蓝图对大陆的材质进行设计,这里花了些功夫,主要原因是对蓝图中的各式各样note不是很熟悉,个人感觉每个note就是python中的Class,不知道这种理解是否正确。遇到另外一个问题是去bridge中下载材质时候一直提示format错误,后来发现需要去quickel bridge官网添加订阅权限,这一步估计像我这样的小白都会踩坑。从10:00搞到0:00,效果如下,材质方面还有些问题,感觉我把材质中normal节点搞错了,下次再改吧。
第二天,好歹弄懂了怎么区分纹理、粗糙度、法线贴图,跟着视频建了个大海,但是貌似我的陆地位置不对,海平面总是突起或者凹下去一块,山峰也像被刀切了,失去原来的形状。
第三天,从头设计了大陆,海洋,山峰,以及材质。最后想painting个沙滩,但是每次painting都会出现灰白网格,网上有人说是纹理图不兼容或者材质蓝图有问题,在沙滩蓝图上换上石头材质,可以正常painting,排除蓝图问题。但在quickel上下了好几个sand材质都没能成功,几近崩溃,睡觉了。
第四天:修复了沙滩Painting问题,初步定位是粗糙的纹理图有问题,但不知道为啥,换了个纹理图就可以修复。在此基础上加了石头,花,树等资产,没啥特别难的地方,修改了角色出生位置,接下来就是比较有意思的把小白人替换成自己用metahuman做的个性化角色。
第五天:废了老大劲把小白人替换成老吕形象,并让老吕形象继承小白人动作,本部分内容牵扯到骨骼重定向,因为小白人骨骼和metahuman骨骼定义有些区别,找了好几个教程,最终按照https://zhuanlan.zhihu.com/p/544889483这位博主的方法搞定了,虽然还是没有完全理解,但最起码老吕在虚拟世界可以自由跑动和跳跃了,就是衣服和鞋子感觉对齐出了点问题,调整了几版都没调整对,先这样把!下一步准备给老吕加些面部动画。