捏脸文件配置

捏脸涉及到的配置文件有三个,作用如下:

MeshPoints.json 中是所有骨骼和其维度的信息。通常不会修改,也不可自定义。

MeshLanguage.json 为所有 key 的翻译信息。

MeshConfig.json 为捏脸的配置文件。里面配置了多点控制,与菜单结构。

MeshPoints.json

一个角色的可控制的五官类型分为:facenoseearbroweyemouth。每个五官类型里面有不同的部位,例如 face forehead_jnt(额头)ophryon_jnt(印堂)

每个部位分为九个维度:位移的 xyz;旋转的 xyz;缩放的 xyz

例如位移的 x 对应的就是 left right,旋转的 y 对应的就是 rotateLeftInn rotateRightInn

里面的内容不支持改动,了解其含义即可。

MeshConfig.json

它是一个捏脸的业务配置文件,里面包含了一些映射关系与菜单样式等。比如专家模式与简易模式有各自的 MeshConfig.json,简易模式相比专家模式隐藏掉了很多控制字段。

它的数据结构如下:


{
    "bind": {
        "face": {
            "脸颊key":["左脸颊key", "右脸颊key"]
        }
        "eye": {
            "眼睛key":["左眼key", "右眼key"]
        }
    },
         "menuTree": {
        "face": [
          {
            "name": "额头key",
            "showSlider": ["tx", "ty", "tz", "rx", "ry", "rz", "sx", "sy", "sz"],
            "disableSlider": ["tx", "ty", "tz"]
          },
          {
            "name": "印堂key",
            "showSlider": ["rx", "ry", "rz"]
          }
        ],
        "nose": [
          {
            "name": "nose_jnt",
            "showSlider": []
          }
        ]
    }
}


bind 字段主要是对称相关的信息。

menuTree 为实际显示的菜单层级,例如 face 里的每个节点代表实际显示的部位。

它支持 MeshPoints 里每个部位的 key,也支持 bind 里的 key。例如可以配置成 "脸:额头、印堂、脸颊",或者"脸:额头、印堂、左脸颊、右脸颊"

部位的字段目前有三个:nameshowSliderdisableSlider

"tx", "ty", "tz", "rx", "ry", "rz", "sx", "sy", "sz对应的是上述的九个维度。

name 为上述的部位 key 或者 bind 里的 key

showSlider 为该部位的可调节维度。例如专家模式是九个都可以调节,简易模式视情况只提供 sxsytz 等。如果不配置或长度为 0 则默认显示全部。

disableSlider 为该部位的显示但不可调节维度。目的是九个维度时能显示比较美观。如果不配置则默认不禁用。

MeshLanguage.json

里面为所有捏脸用到的语言文件。大致分为这几类:五官类型(即 facenose)翻译、部位翻译、对称部位(即 bind 字段的 key)翻译、维度(即 txtytz)翻译、自定义维度(例如 noseBridgeUp_jnt sx宽窄)翻译。

所有 UI 要显示的 key 都会从该文件中查询,查询不到则显示默认。

针对不同部位的维度,默认的翻译如果不贴切,则可按格式自定义。

捏脸功能集成

1、捏脸数据的解析

参考 FUAvatarFacepupDataProvider 代码,在此类中就是基于上述:MeshPoints.jsonMeshConfig.jsonMeshLanguage.json 构造出若干个树形结构的的捏脸模型:FUAvatarFacepupModel


FUAvatarFacepupModel: 一个完整的树形捏脸数据模型,包含多个 FUAvatarFacePartModel
FUAvatarFacePartModel: 捏脸的部位模型,包含多个 FUAvatarFaceTransformModel
FUAvatarFaceTransformModel: 捏脸的形变模型,包含多个 FUAvatarFaceDirectionModel
FUAvatarFaceDirectionModel: 捏脸的方向模型,对应UI上的一个滑杆。


2、捏脸页面的搭建

FUAvatarFacepupView 为捏脸的整体页面,下面有很多自定义页面


FUAvatarFacepupEditView: 底部编辑区域
FUAvatarFacepupSegmentView:形变类型切换
FUAvatarFacepupSliderView:滑杆
FUAvatarFacePartView:底部捏脸部位切换


 


< 上一页: 快速集成
下一页: 互动模块 >