Spark AR —— 为 Spark AR Studio 优化创建 3D 对象(五)

897 阅读3分钟

本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力

Spark AR 是 Facebook 免费创作 AR 作品的平台,使用户能够为 Facebook 和 Instagram 创建交互式增强现实体验,超过 40 万名创作者,190个国家/地区,使用 Spark AR 来创作自己的AR作品

由于该软件无需任何编码知识即可使用,因此任何人现在都可以在 AR 世界中几乎没有经验地制作下一个疯狂式传播的 Instagram AR 特效,引领世界潮流。

专门的 AR 滤镜设计师单价甚至可达到 1000 美元到 3 万美元不等。

动画

在 Spark AR Studio 中使用程序动画可以让你在保持效果尺寸小的同时能够生成实时动画。

在 Spark AR Studio 之外的对象中添加关键帧动画是创建更复杂和详细的动作的好选择,但它可能会增加文件大小。如果你需要使用关键帧动画,请遵循以下几点:

  • 只添加关键帧到标准属性(位置 position,缩放 scale 和旋转 rotate)。
  • 不要在不需要动画的属性中添加关键帧。例如,如果不需要,就不要给缩放 scale 添加关键帧。
  • 记住,自定义属性关键帧不会被导出。
  • 在 3D 软件中使用 24 fps 的帧率。

另一种将复杂动画添加到 3D 对象的方法是创建动画剪辑(片段),并将它们分配给 Spark AR Studio 中的对象。你可以使用Autodesk®Maya® 中的游戏导出插件The Game Exporter Plugin或在 Blender 中使用 NLA (非线性动画)动作创建剪辑(片段)。

在导入对象之前,您还应该注意文件格式和特性的要求和限制

导入3D对象的要求和限制

image.png

Spark AR 不支持流行的 3D 应用程序提供的所有定制功能和变形器(deformers)。选择正确的 3D 文件格式,提前知道哪些功能是受支持的,可以改善您的工作流程,避免受挫。

支持的文件格式和特征

Spark AR 导入对象的 3D 文件格式如下:

  • FBX 2015 (二进制和 ASCII 版本)
  • gITF 2 (二进制和文本版本)
  • COLLADA/DAE
  • OBJ
  • DAE

在可能的情况下,我们建议使用FBX或glTF文件。仅以下Spark AR 兼容特性会被导入:

  • 网格
  • 材质
  • 纹理
  • 以对象的位置,旋转和缩放为目标的骨骼动画
  • 3D 场景
  • 混合形状 (Blender 中叫 shape keys、Autodesk® Maya® 中叫 blend shapes)

限制和已知的问题

当使用混合形状时,请记住:

  • 作为源网格,混合形状必须共享相同的顶点 id,和 UV 贴图,否则它们要么无法在 Spark AR Studio 中工作,要么导致瑕疵。混合形状不能在高密度的网格上工作,如果你想使用它们,保持三角形数低于 22k。
  • 混合形状的动画关键帧将不会被导入。
  • 如果您的 3D 对象有多个混合形状,则导出文件可能太大。只在必要时使用混合形状和简单的网格。
  • 非线性和自定义变形将被忽略。例如,如果你在 Autodesk®Maya® 中工作,不要使用非线性变形器,因为它们不会导入到 Spark AR Studio。

你还应该注意:

  • 不支持 glTF 文件中的 KHR_texture_transform。
  • 不支持 glTF 中的几何压缩(Draco)。
  • 每个网格不支持 UDIMs 或多个 UV 布局。
  • 不支持 3D 关键帧动画的 Euler 或双三次插值。
  • 如果您导入一个没有蒙皮的骨架,Spark AR 将认为它是一个空对象。
  • 在 Spark AR Studio 中导入一个骨架可能会导致每个骨骼额外的转换空值(transform nulls)。
  • 导入一个三角形数大于 22k 的 3D 对象,会在网格上产生重复的材质槽(material slots)。