1.2D道具在3D特效层当中的使用

在当前版本,2d图片与caf文件以往版本不同,并不是在effect2d层中摆放位置,而是在effect3d中放置,这样可以更好地挑中2d道具在3d空间内的位置。
具体使用方案:1.在左下角资源列表中上传图片或者caf资源,新建3d道具特效层之后,直接将图片或caf资源拖拽到3d道具特效层里。
2.在中间操作区域调整图片和caf与人头之间的位置,刷新右侧预览窗口进行预览;
image.png

2.2D道具素材制作准备

A.在PS或AE工具中设计完成贴纸动画效果。画布大小建议为9v16比例,一般以720*1280为标准。以一个正常的人脸正视图作为设计基础参考即可。对输出的图片大小比例无强制要求,图片清晰度足够即可。图片太大会导致效果包体积增加,手机运行速度降低

注意 建议不要使用中文命名,中文命名导入工具后会被自动改名

B.在不损失图片质量的情况下尽量降低图片的大小。【例如:PS导出图片时使用导出→存储为Web所用格式中的JPEG和PNG-24格式】
C.修改序列图的命名,命名格式为_XXX(从000开始计数),所有数字的位数都需要统一,如999、1000这样的命名是无法识别序列的,需要改为0999,1000
D.解压特效工具,点击win文件夹中的NvStoryboardCreator.exe文件,进入美摄特效工具工程创建界面

E.美摄特效工具中辅助功能的CAF生成工具,可以将序列图转换成美摄专属的CAF格式进行读取。CAF相对于传统的序列图方式可以极大地降低效果包大小,提升手机的运行效率
image.png
CAF工具的设置如下

输出图片格式 输出图片格式有JPG格式、PNG格式、MP4 格式共三种格式可选。
JPG输出文件最小,但不带alpha通道,PNG和MP4格式均可以带alpha通道,MP4格式输出文件小,但解码最慢。
当图片没有alpha通道时使用JPG格式,当透明图片序列低于100张图时使用PNG格式,当透明图片序列超过100张图时使用MP4格式
输出宽高 谨慎使用,一般使用输入源图片的默认大小,如果要修改请修改输入源图片,修改宽高会增加输出CAF文件的体积
帧速率 截图中的示例意为15帧每秒
循环方式 可选模式有:不循环,循环,镜像循环,重复最后一帧

image.png

注意 预览视频有时长,播放完一次之后会自动重新加载效果包,可能会出现序列没有播完就重播的现象,真实效果需要以手机为准

3.3D道具模型准备工作

A.三维模型制作工具可以采用MAYA、3Ds MAX、C4D或其他三维设计软件进行制作。 我们提供了标准人脸模型(meishe_reference_head.fbx),在制作的时候需要基于标准人脸模型 (meishe_reference_head.fbx)进行制作。只有基于标准人脸制作才能实现设计的模型和真实人脸正确对位、产生正确的遮挡关系

注意 本文所有的命名建议使用英文、数字、英文下划线组合

B.模型制作使用三角面或四边面,布线均匀。请注意以下要求:

1 总面数建议控制在3W面以内
2 模型必须进行删历史、Transform数值归零的操作,大纲中不要保留任何无效历史
3 默认法线背面不显示,需要对模型进行封口,如有需要,ARScene工具中可以手动设置为双面显示,但双面显示会降低SDK运行效率

C.大纲中的模型将会按照从上到下的顺序进行渲染,需要根据空间关系进行规整。否则在使用透明贴图的情况下会显示错误
image.png
image.png
D.模型使用常规FK方式绑定即可,骨骼不能使用IK、约束等功能

注意 模型和骨骼都不能有重名,美摄SDK无法识别重名,骨骼数量尽量精简

image.png

4.3D道具贴图准备工作

A.支持jpg、png、jpg/png序列(CAF)格式的贴图,透明贴图使用png或CAF格式制作。CAF格式在3D软件中不能直接读取,只能将FBX和CAF图导入工具之后在工具中操作
B.美摄SDK支持任意比例的贴图,但推荐使用2ⁿ的比例进行三维模型的贴图制作,建议不要大于2048*2048
C.在不降低贴图质量的情况下尽量压缩图片大小
请注意以下要求

1 在三维软件中赋予模型贴图之后,Diffuse Color的数值将会失效,不再被美摄SDK读取
2 caf是美摄SDK专用的图片动画序列格式,无法被三维软件直接读取,需要使用特效工具转换成CAF格式,在ARScene工具中给材质球进行指定(CAF生成详情见本文《1.2D道具的制作规范→1.贴纸准备工作→CAF生成》章节)


5.导出FBX

A.建议导出时选择FBX 2013版本,否则有可能会出现bug
image.png
B.FBX不能选择嵌入媒体,否则可能会出错
image.png
C.如果需要使用物理系统,则绑定后不需要制作动画,直接导出即可。

注意 1.导入的fbx文件注意清除不必要的历史,动画必须基于Polygon模型本身,模型不要绑定空物体上做组动画,sdk不会识别类似maya中locator(定位器)节点
2.如果骨骼自带动画,导出时需要逐帧烘焙,否则易出现动画无法被读取的现象,烘焙后SDK里将会自动循环播放该动画片段。

6. 创建ARScene工程

A.解压特效工具,点击win文件夹中的NvStoryboardCreator.exe文件,进入美摄特效工具工程创建界面
B.点击新建制作,进入新建特效项目界面,填写项目名称,选择项目类型ARScene,点击创建
image.png
C.进入ARScene工具界面,默认进入设计板块,点击左下角资源列表的添加键,选择需要的图片、FBX和CAF导入资源列表。不需要的资源点击删除按钮进行删除
image.png

7. 3D贴纸制作

A.点击左上角的3D特效,新建一个3D特效层。点击特效列表中的对应3D层,可以对相应3D特效层进行编辑。
B.选中Effect 3D,右键可以删除、上移下移特效层的上下位置修改渲染顺序、增加光源
C.选中资源列表中的FBX,按住鼠标左键拖动FBX,放置到Effect层上,FBX就会被置入该3D层中

image.png
D.3D预览界面的操作快捷键为:ALT+鼠标左键移动、ALT+鼠标右键旋转、鼠标中键滚动缩放
E.展开Effect3D层,可以看到3D层中所有灯光和FBX。3D预览界面的左上角的平移旋转缩放是对场景内的FBX的操作。3D预览界面右上角可以切换视角、更换背景颜色。展开参数界面的FBX层,可以修改该FBX的光照模式、叠加模式、渲染正面、渲染反面。

1 开启深度缓冲:默认开启,只有开启之后才会计算模型的空间关系,只要模型不在一个平面上,就需要开启
2 开启抗锯齿:默认关闭,可以提高模型边缘的光滑程度,但会降低手机运行效率,只有模型边缘的锯齿明显时才使用
3 模型默认是无光模式,需要改为标准模型,才能受到光照效果,并进行材质调节
4 渲染正面意思是渲染法线正面,渲染背面意思是渲染法线反面
5 3D预览界面左上角的平移、旋转、缩放,均是针对FBX的操作,不是对预览界面视图的操作

image.png
E.如图所示,参数中框选部分的不透明度、位置、旋转、缩放,均是针对整个FBX的修改,FBX内部的骨骼和模型无法在工具里进行任何修改
image.png
G.展开FBX层,选中最下级的模型,3D预览界面将会高亮显示对应模型,同时参数界面会多出一个材质选项,点击材质的调整按钮,可以展开材质的具体选项进行调节。漫反射颜色可以控制模型受灯光影响程度,环境色可以调整模型在没有灯光的状态下的基础亮度,反射纹理+反射率可以模拟金属材质对环境的反射。高泽度、高光纹理、高光颜色、法线纹理等参数均可以调节
H.材质调整完成后,点击预览视频下方的刷新,可以对3D道具效果进行预览
image.png

注意 点击调整材质后,资源列表将生成对应FBX的json文件,json文件中记录了材质的调整,不能随意删除,删除将会无法恢复,需要删除FBX的时候才能将它一起删除。

image.png
I.要使道具与真实的人脸产生正确的遮挡关系,需要一个模拟人头的模型作为遮挡体。导入做好的遮挡体,右键上移遮挡体成为FBX中的最上层。特效列表从上到下为SDK渲染顺序,人头遮挡体应该最先被渲染,以便占掉人头的空间位置。接着将遮挡体的FBX透明度改为0。点击刷新预览效果
J.如果默认人头影响观察,可以展开参数中的默认人头层,将透明度改为0
image.png
image.png

8. 模型动画

A.如果FBX中有烘焙好的动画,预览视频将会默认循环播放
B.展开FBX下的Animations层,可以在参数中修改动画播放模式

循环 默认模式,循环重复播放
镜像循环 正放一次倒放一次循环
最后一帧循环 静止在最后一帧
线性 按照最后两帧的趋势延续,例如最后两帧Y轴旋转了1°,动画播放完后会按照每两帧Y轴旋转1°的规律延续下去

image.png

开始时间 单位为毫秒,1000毫秒为1秒
结束时间 单位为毫秒,1000毫秒为1秒
循环次数 循环次数,0的意思是无限循环

C.当循环模式为循环或镜像循环时,可以设置动画片段循环,当烘焙好的动画播放完一遍后将会循环设定好的动画片段。如图所示的意思是:当篮球动画播放完一次后,将会无限循环1000ms到2960ms的动画片段
image.png
D. 当循环次数不为0时,将会执行循环次数。如图所示,模型会先执行0-100毫秒的动画,然后循环100-1000毫秒之间的动画2次,接着动画从1000毫秒开始播放至结束,最后动画静止
image.png

9. 动力学制作

A.展开FBX,选择需要受物理系统影响的部件起始运动处的骨骼作为根骨骼,点击参数中的骨骼物理创建动力学
B.每一个需要受物理系统影响的部件,都要在根骨骼上挂载动力学
image.png

注意 1.只给部件的根骨骼挂载动力学。如果误给根骨骼下的其他骨骼也挂载动力学,效果会出错
2.动力学必须挂载在骨骼上,虽然在模型上创建动力学也能成功,但实际上是没有效果的

C.动力学拥有阻尼、弹性、刚度、惰性、重力、风力等属性,根据实际需要进行调节数值
D.阻尼、弹性、刚度、惰性这四种属性可以使用曲线将骨骼链上的不同骨骼调节为不同数值。在使用曲线时,该属性的实际数值为基础数值乘以曲线数值,将基础数值设为1,才能得到真实的曲线效果
image.png
E.按住ALT+鼠标左键,点击曲线,可以在曲线上新增关键点,按Delete可以删除关键点
image.png
F.重力只有在模型旋转到到非初始状态的情况下才会产生作用,风力则会持续对骨骼产生作用
G.目前风力参数尚未实装
H.在预览视频的下拉菜单中选择一个头部有运动(如点头、摇头)的视频,点击刷新,就可以预览到动力学的效果了