人脸特效三维空间定位详细教程 附源码

在制作人脸特效追踪定位分4个阶段,下面我给人物增加兔耳朵为例:

1.准备阶段

2.三维软件中定位阶段

3.Obj文件导出

4.Json文件配置阶段

1.准备阶段

(1)在AE  NUKE等视频制作软件中输出动画序列帧。(图片格式为PNG格式)(注意在输出动画序列帧时序列号要从000号开始)如下:

人脸特效三维空间定位详细教程 附源码_第1张图片

(1)将动画序列帧转换为arf格式。(arf格式是我们特有的视频格式,性能高占用空间小)

(2)这样我们就有一套动画序列帧跟一个arf格式视频,因为arf格式的视频在三维软件无法显示,不能完成在三维软件中定位,所以需借助动画序列帧在三维软件中定位,在后面的配置文件中动画序列帧将被删除。只保留arf格式的视频。(注意arf格式的视频命名要跟动画序列帧的命名要一致,)

2.三维软件中定位阶段

(1)在三维软件MAYA中打开一个标准人头模型,此模型将作为人脸特效动画在人脸上定位的参照,图2

人脸特效三维空间定位详细教程 附源码_第2张图片

(2)在Maya工程里建立一个与动画序列帧尺寸统一比例的面片模型,在没有特殊要求的情况下面片模型的网格分段数为1。在面片模型属性中把它命名为mash_erduo。命名规范就是mash_加动画序列帧名字(图3) 

人脸特效三维空间定位详细教程 附源码_第3张图片

(3)把面片模型移动到标准人头模型上放到相对应的位置上,给面片模型贴上动画序列帧贴图,材质球名字命名为mal_erduo。命名规则为mal_加动画序列帧名字(注意面片模型的材质球类型要使用lambert材质,动画序列帧放在材质球的颜色通道上,在hapershader(场景模型材质库)中不能有多余的没用材质)图4

人脸特效三维空间定位详细教程 附源码_第4张图片

(4)当你有多套动画序列帧时你需要在大纲视图中调整模型的顺序,把距离视线最近的面片模型放在最上面,依次排列。图5

人脸特效三维空间定位详细教程 附源码_第5张图片

(2)在导出之前,清除场景多余内容,标准人头模型删除,全选场景中的面片,删除历史,冻结信息变换,重置轴心。在前面步骤做完后所有的面片模型的位置信息,旋转信息都为0,缩放为1。图6

人脸特效三维空间定位详细教程 附源码_第6张图片

4.Obj文件导出

(1)全选场景内模型导出obj,在obj格式内勾选material选项勾选on,导出obj文件名字改成你所制作人脸特效的名字,确认导出。到出后将生成一个obj格式跟一个mal格式的文件。图7

人脸特效三维空间定位详细教程 附源码_第7张图片

5. json文件配置阶段

  (1)在json文件中把obj的名字改成对应人脸特效名字 图8 

人脸特效三维空间定位详细教程 附源码_第8张图片

(2)在完成前面所有的步骤后你的文件夹里有以下几个文件(如果你的人脸特效有多个动画序列帧,那你的文件家里就有多个arf格式视频)如图9

人脸特效三维空间定位详细教程 附源码_第9张图片

在整过的制作过程中要注意命名的规范,要不然会在arf格式视频替换动画序列帧中,找不到贴图路径,无法在APP应用(宝宝特效)中显示出来。

项目源码地址:

Android:https://github.com/aiyaapp/AiyaEffectsAndroid

IOS:https://github.com/aiyaapp/AiyaEffectsIOS





你可能感兴趣的:(直播,短视频SDK)