找回密码
 立即注册
查看: 1024|回复: 12

楚留香的捏脸系统如何实现的?

[复制链接]
发表于 2021-2-8 20:13 | 显示全部楼层 |阅读模式
楚留香的捏脸系统如何实现的?
发表于 2021-2-8 20:18 | 显示全部楼层
@Funny David 说的很全面了,补充一点点。多图预警。
    很少听说使用新的Mesh,如果有要使用的话可能就是游戏提供不同的预设头。但即便如此,使用新的Mesh依然会造成美术需要重新制作不同发型、时装、饰品挂件。
预设头
    捏脸主要区域集中在正面,如果美术有能力统一脸部拓扑,使用Mesh差值通过顶点动画实现预设头更好的解决办法。取得新的顶点位置后,要重新计算Mesh法线。
实际脸部形变区域
    眉毛基本都是通过贴图实现的。很多国产游戏的胡须也是通过贴图实现。通过Wrinkle Map实现脸部皱纹,增加人物的多样性。
wrinkle map
    很多游戏在改变人物的肤色的同时可能并不考虑这样的脸型是否适合。比如给一张亚洲连脸提供黑人的皮肤就是不好的决定。
肤色有点违和
    即使头发使用mesh,头皮依然需要相应颜色的贴图映衬。对于短发寸头,通过对贴图改变发际线的形状也可以取得更多头发的多样性。捏脸到底使用Mesh差值还是使用骨骼调整,具体还是要看引擎的要求。有的引擎对于Morph Targets优化更好,有的对于骨骼动画优化更好。同时这也取决于你的脸部动画是通过骨骼驱动的还是Morph驱动的。如果没有性能要求,谁的效果好? 答案肯定是基于Mesh差值的结果。关于楚留香传的捏脸系统,在额头附近同时调节两个控制器会造成异常的凸起。 这是因为两个控制器同时对相同一部分顶点造成位移而形成的的Double Transformation。可以在美术上normalize两个控制器的影响,或者在程序上限值两个控制器的调整范围。捏脸是个系统工程,需要美术,程序,设计师多方面的讨论。说一个不容易发现的细节:有的预设头如果眼睛的距离本身很近,那么控制器是在默认状态就会锁住你的范围,避免你捏出一个眼距过大过小的怪物。
预设头眼睛距离很近的情况,控制器默认靠左
    捏脸系统在导入游戏前可以在美术工具里面完整实现,比如Maya。到底学什么?初级学习人物建模,人物绑定(Rigging)。高级一点再学习线性代数,学习编程。现负责2K18捏脸,开发2K19捏脸。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-2-8 20:18 | 显示全部楼层
谢邀。
UWA的问答上有过一个类似的问题,推广下链接好了:捏脸 捏人实现 - UWA问答: 侑虎科技官方问答社区
也粘贴下我之前的回答:
入职之后第一个的系统就是捏脸,当时当然没有康来这么丰富的游戏经验,所以参考的基本是公司内部的资料,大部分功能都是在《Honey Select》中有了,总结一下:
1. 基于骨骼调整。调整骨骼的Scale、Rotation,Position相对用得少,这个在康来提到的博客(https://zhuanlan.zhihu.com/p/28471808)中写得非常详细了,就不多聊了;
2. 基于Mesh差值。这部分是前面缺失没有提到的部分,在某些骨骼数量有限制或者骨骼不能做得特别好的情况下,会制作两个最大和最小极值的mesh,根据差值计算中间的mesh值,然后在运行时生成最终显示的mesh,和调整骨骼的区别有点类似于骨骼动画和网格动画。
3. 基于材质。在网格不修改的情况下,材质的变化用于肤色、瞳孔颜色、唇色、纹身图案等等,都可以通过材质中的贴图或者参数更改来改变。(UV的变化可以做到纹身颜色的自定义等等)
4. 新的Mesh。这部分在《Honey Select》中也有讲到,也是对于程序来说最为简单,对美术来说工作量最大的部分,用于发型、时装、多余的饰品挂件等等。
至于搜索的关键字,可以考虑:character customization之类的。
额外提下,捏脸的系统要保证运行时效率的同时,预览的速度也要做保证,有时候这两者会有一些冲突,可以通过多方案支持、内存换效率之类的方式来进行优化。如果是手游,最好关注下极限情况下的渲染效率和内存消耗,毕竟如果有材质参数的修改是无法合批的,基于骨骼或者mesh的修改的话对于内存也有一定的额外消耗。
发表于 2021-2-8 20:21 | 显示全部楼层
最近在捏路人,发现Unity商店上有几个比较完善的插件:


《UMA 2 - Unity Multipurpose Avatar》

简介:专门为了捏脸系统开发的插件。
优点:开源,示例详尽(有捏脸系统和服饰商店系统示例);可调节参数多,可导入/导出数据,因为是程序化建模,所以空间占用非常小。
缺点:Who am i to judge  


《MCS》系列——《MCS Male》+《MCS Female》

简介:即买即用,适合预先定制角色的AAA项目。
优点:可调节参数多,能实时更改Lod,模型质量高,可在商店购买多种用途的服饰(https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=popularity/query=publisher:13832)
缺点:高质量带来较大的占用空间;需要通过Editor GUI更换服饰,而且模块导入、更改十分麻烦;无Demo,说明文档十分简约……
发表于 2021-2-8 20:30 | 显示全部楼层
最简单就是在默认模型的脸上绑定一堆骨骼,通过调整骨骼的位置、旋转等来改变面部形状。最后把调整好网格信息保存下来重新绑定到正常的骨骼上去。

大概,我猜的。
发表于 2021-2-8 20:34 | 显示全部楼层
天涯明月刀的捏脸技术分析:千人千面如何炼成 技术讲解捏脸系统设计原理
HoneySelect捏脸技术分析:《Honey Select》捏人剖析
发表于 2021-2-8 20:35 | 显示全部楼层
谢邀。
不得不说,楚留香出来时候我还是被Messiah能达到的效果惊了一下。(也可能是我太菜了)

单说这种效果的话,Max的Murph,Unity的shape merge就可以实现基础的形变。我觉得主要还是依赖一大波靠谱的美术。
发表于 2021-2-8 20:39 | 显示全部楼层
可以直接以一个网格为基础,替换其中某几个顶点的数据,以及骨骼信息来实现。
发表于 2021-2-8 20:46 | 显示全部楼层
Laplacian mesh editing……黑科技应该在这里……
发表于 2021-2-8 20:54 | 显示全部楼层
应该就是做一个胖的歌和一个瘦的做融合吧!
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-28 00:21 , Processed in 0.127967 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表