本页面概括介绍了与MetaHuman角色资产交互的脚本支持。
Engine\Plugins\MetaHuman\MetaHumanCharacter\Content\Python\examples中有示例脚本,可用作有关如何将API用于不同任务的引用。
脚本编写API在编写Python代码以与MetaHuman角色资产交互时最有用,但可以从编辑器工具蓝图使用相同的功能。
MetaHuman角色资产
MetaHuman角色资产是存储有关MetaHuman角色所有信息的地方。 有几个属性可以直接在此资产中编辑,包括化妆、眼睛和皮肤。 请参考test_set_character_properties.py,了解可在角色中设置的所有属性的列表(无需打开角色进行编辑),参考examples/example_create_asset.py,了解有关创建新角色资产的示例。
MetaHuman角色编辑器子系统
MetaHuman角色编辑器子系统提供了对面部、身体执行编辑以及下载纹理源和自动绑定所需的接口。 在编写对已打开编辑器的角色执行编辑的代码时,也需要该子系统。 它允许对角色进行交互式编辑,每个更改都将自动反映在视口中。
下表介绍了从MetaHumanCharacterEditorSubsystem对角色资产执行大部分编辑所需的主要函数。
| 功能 | 说明 |
|---|---|
try_add_object_to_edit(character) | 尝试加载要编辑的MetaHuman角色资产。 子系统将创建并跟踪对角色执行编辑所需的所有数据。 请注意,打开MetaHuman角色资产编辑器也将调用此函数,因为角色必须在子系统中注册。 |
remove_object_from_edit(character) | 从子系统中删除对象。 这对于子系统持有的特定于角色的数据很重要。 请注意,关闭MetaHuman角色资产编辑器也会将其从子系统中删除。 |
is_object_added_for_editing(character) | 检查角色是否已在子系统中注册进行编辑。 |
提交更改
可以在MetaHuman角色对象中直接设置的所有属性都不需要在子系统中注册角色进行编辑,但是,与打开了编辑器的角色交互时,除非使用提交功能,否则更改不会反映在视口中。
有关实际操作的示例,请参考examples/example_live_edit.py。 要使用此脚本,请在内容浏览器中选择MetaHuman角色资产,然后执行它。 该脚本将打开编辑器,使用translate_face_landmarks函数对面部执行编辑,然后调用commit_face_state。 这一点很重要,因为translate_face_landmarks实际上不会保存对角色资产本身的更改,它只会更新预览数据。 commit_face_state负责序列化更改。
必须遵循此模式,以使用对皮肤的更改来更新视口,包括化妆以及头部和身体模型
下载纹理和自动绑定
子系统提供函数request_texture_sources和request_auto_rigging,可用于调用MetaHuman云服务以分别下载纹理和自动绑定。 这两个函数都采用一个结构体参数,该参数可用于使其成为阻塞请求并报告或不报告进度。
已知问题:绑定生成后无法删除。
配置服装和Groom
Groom和布料通过MetaHumanPipelineSlotSelection对象使用泛型插槽系统。 请参阅examples/example_add_grooms.py或examples/example_add_clothing.py,获取有关如何以编程方式选择Groom和服装的示例。
该API还允许配置应用于角色的每个服装项目的参数。 有关编辑不同Groom和服装参数的示例,请参考test_set_character_instance_params.py。 请务必在编辑参数之前调用asset_for_preview,因为只有这样才能使所有实例参数在角色的集合中可用。
适配头部
头部可以使用一致性工具生成。 头部支持“conform from DNA”、“conform from template” 和 “fit from vertices”。 更多细节请参考examples/example_conform_head.py。
雕刻
头部和躯干都可以通过API直接雕刻。 面部塑造可以通过操作每个地标的向量位置来实现,请参考examples/example_sculpt_face.py。 参数化形体系统的操作方式非常类似,UI中的每个滑块都由形体约束表示,可以激活并为每个滑块设置目标测量值,请参考examples/example_sculpt_body.py。
组装(Assembly)
该过程的最后阶段是组装角色。 该API支持所有当前可用的管线:UE电影级(UE Cine)、UE优化(UE Optimized)、UEFN特别版和DCC。 每个管线都有额外的参数,可以配置这些参数来自定义组装过程。 在examples/example_Assembly.py中可以看到相关示例。