Skip to content

易现小程序 Unity 导出工具和素材规范

杭州易现先进科技有限公司

参考文档:支持能力.xlsx

一、导出工具安装和使用

稳定版本--更新时间: 2023.5.18

对应 unity 版本: 2019.4.8 平台:ios 或 android

小程序开发工具:微信官网下载https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

导出工具 v1.4.2:https://ar-scene-source.nosdn.127.net/73872576f4d863f6ecd6aa4538317113.unitypackage

--更新时间: 2023.9.12

转换工具:https://ar-scene-source.nosdn.127.net/22944265499b5760eb790f998cfea1fd.zip

--更新时间: 2023.5.18

版本更新日志

导出工具

当前版本新增导出工具增加对外公开版

bug 修复: 修复导出模型在 iOS 上不显示,android 端正常显示

bug 修复: 修复 Mac 电脑 M1 芯片下, 发生纹理导出错误问题

安装说明

导出工具(InsightARExporter)下载后导入到 Unity 开发工程 Assets 目录下

转换工具(Tools)下载后解压到 Unity 工程 Assets 同级目录

导出 Unity 场景资源

设置导出路径, 并取消勾选金属和法线贴图优化(会引起部分贴图问题)

点击 Export Scene, 导出当前打开的 scene 场景资源

Export Scene

第一次导出时会有如下图所示提示,请选择 Yes。

导出成功提示(导出成功 unity 控制台会有如下提示,并自动打开导出文件所在文件夹):

小程序内容开发&易现 AR 插件集成

易现 AR 插件集成请查看易现小程序 AR SDK 技术文档 ,选择适合应用场景的 AR 插件集成接入到小程序内。

接下需要集成易现 InsightWeb 渲染引擎,集成方法见易现小程序 AR SDK 技术文档中 AR 插件列表对应的示例 demo。

二、素材制作规范

命名规范

使用 Unity 制作美术资源命名规范,仅支持英文、数字和下划线,不要使用中文、连接符(-)、空格或特殊符号。

要求备注
工程及资源路径路径中不含空格资源路径指:导出场景中使用到的一切资源路径
模型命名模型中的各个对象确保命名不重复会导致美术资源异常
贴图命名1. 不使用空格、特殊字符、连接符等;可使用下划线;2. 命名中间不使用点(这里不指.png 中的点),如 xx.xx3. 贴图变量命名不要和参数名一样,如 Normal 的贴图变量命名为 Normal;
动画命名动画名称、骨骼命名不重复

推荐命名:

不推荐命名:

图片规范

图片指 3D 模型使用的纹理贴图,不含 UI 切图

要求备注
格式仅支持 png易现 InsightWeb 渲染引擎:不支持 jpg、tga
命名1. 仅支持英文、数字和下划线;2. 贴图变量命名不要和参数名一样
尺寸建议在 512 * 512 及以下。必要的清晰贴图在 1024 * 1024,需要控制数量,建议小于 3 张影响加载和渲染压力

音视频规范

普通音视频

要求备注
格式音频建议采用 mp3(相对有效压缩率高,体积小)视频建议采用 mp4微信支持解码即可
体积根据体验适当优化

3D 视频纹理(透明视频)

实现方式:将视频纹理实时解析并将画面实时更新到 3D 模型的纹理

要求备注
格式采用建议 mp4
体积分辨率建议小于 1080p,总体积小于 10MB,比特率码率控制在 1000 以内根据体验和性能适当优化
形式普通视频,视频需透明处理部分为黑底背景即可(不带透明通道)

相机规范

java
相机请使用 Unity 中创建相机,如使用其他编辑软件导入相机会引发不可预知问题。

光照与环境规范

要求备注
光照类型仅支持平行光渲染引擎内置的环境光强度默认为 3
环境1. 环境光仅支持 Skybox,其他两种不支持 2. 支持环境贴图
烘焙不支持烘焙后场景会变亮,烘焙效果有, 但没有导出烘焙的静态贴图
Reflection Probe(反射探针)不支持

模型规范

要求备注
格式支持 FBX/OBJ
面数单模型面数建议小于 3w 场景模型面数总数建议小于 10w影响加载和渲染压力
命名模型中的各个对象确保命名不重复仅支持英文、数字和下划线
Renderer支持 Mesh(网格)和 Skinned Mesh(蒙皮网格)
纹理贴图参见图片规范
透明设置1. 将 Render Type 和 Render Queue 的均调整为 Transparent;2. 调整 Render Queue 的层级,同一层级会有遮挡错乱问题透明物体后的模型会被遮挡
其他1. 使用 Unity 自带 3D Object 的面片时,推荐使用 3D Object->Quad 或者自己制作一个片的模型。Plane 面数较多,不建议使用。

GUI 规范

要求备注
组件均不支持
其他1. 不支持 Unity 中常用的 3D UI 方式 2. 贴屏的 UI 建议在小程序中制作 3. 如需实现 3D UI,推荐使用 Quad 一类的面片

材质及 shader 规范

要求备注
数量建议单个模型材质数 ≤5,整个场景 ≤10
命名模型中的各个对象确保命名不重复仅支持英文、数字和下划线
贴图参考图片规范
遮罩不支持如有需要,建议在小程序中设置 Material 属性 colorWrite 为 False
透明设置1. 将 Render Type 和 Render Queue 属性均调整为 Transparent;2. 注意调整 Render Queue 的层级,同一层级会有遮挡混乱问题否则,尽管物体的 opacity 为 0,其后的模型仍会被遮挡
** Shader 支持类型**1. 支持 Standard、Standard (Specular setup)类型; 2. 支持 Unlit 列表中的 Color、Texture、Transparent;3. 支持有限的自定义,请在 i3dEngine 列表中提供通用度高的自定义 Shader 模板的基础上自行修改 Shader;4. 暂不支持 ASE 编写的自定义 Shader;目前自定义 Shader 的兼容性有限
其他1. Shader Model 只支持到 3.02. 不支持着色器属性中的枚举特性 3. 环境中必须有一盏灯光生效,否则可能导致部分着色器失效

Shader 测试能力支持请参考:shader 测试记录

动画规范

要求备注
格式支持 unity animator 组件不建议使用 animation 组件
数量建议单个模型动画数 ≤ 5 整个场景 ≤ 10
命名动画名称命名不重复;关联的动画片段命名不能重复,尽量根据动画用途进行区别命名;不建议使用默认片段命名,如 Take 001;
动画类型支持基础的骨骼动画,不支持重绑定等不支持形变
动画片段格式支持 unity 中动画片段格式,避免使用其他格式,例 he 的动画片段支持,heAct 的动画片段不支持
其他1. 当前挂载 animator 组件的物体本身的激活状态处于激活时(即当父物体未激活,子物体激活,子物体本身状态是激活的),其动画会在后台自动播放。故在控制动画时,需要动画播放时需要重置动画播放。否则会出现单次动画在需要播放时已经播放完毕而没有表现的现象。2. 动画首尾帧都需要有数据帧1. 对于多次修改材质球属性的动画,需要对每个材质球单独实例,即一个物体一个材质球。2. 多片段动画需注意不同片段相同物体状态衔接同步,需重新播放的需注意初始化状态也 K 到动画中;3. 动画 FBX 要求为带模型带绑定带动画的一个 FBX,不支持如图框选属性1. 不支持 BlendShapes 变形动画 2. 对材质制作 Animation 动画时,有可能会出现材质动画未生效的情况,可以尝试下述方法: - 在对应物体同层级创建 Cube,大小可设为 0 - 将需要制作动画的材质赋予给 Cube - 对原物体和 Cube 同时 K 关键帧 3. 骨骼-缩放动画: - 骨骼不能在一段动画中间做缩放关键帧动画,改成首尾帧根骨带动子层级骼缩放关键帧。 - mesh 自身坐标缩放 - 最小缩放值:0.01(不能为 0)4. 小程序不支持单帧动画(例:当控制显隐状态(显隐状态只是一个示例,也可为其他需控制属性)时,结束时更改状态后要再加一帧保持帧)5. 动画中控制物体本身 scale 变化,需要比较长的时间(在 1/3 秒左右);如果小于 1/3 秒,会出现缩放无法缩放到目标大小的问题;建议通过显隐控制。6. 动画状态机 animator 中的动画片段过渡不能混合,即过渡混合时间交叉为 0。7. 小程序中使用导入模型的动画的时候,要把动画从模型文件中复制出来,并更改命名,不可使用 Take001 的默认命名格式,会偶现动画播放错乱的问题,不同动画的动画片段命名不要一致。8. 小程序不支持 max 中通过 morpher 修改器制作的变形器动画的导入。9. 做表情动画时面部的骨骼应该尽可能精简,骨骼权重分的多就容易出问题,

动画素材示例:

素材资源包
普通动画

粒子系统规范

涉及的粒子系统各模块具体参数手册参考 Unity 手册-2019.4

要求备注
数量单个发射器的粒子数量最大为 1000;建议场景内粒子系统数量 ≤ 5;粒子发射器数量 ≤ 100;影响渲染压力
数值变换的模式均支持
颜色变换的模式不支持 RandomBetweenTwoGradients
MainModule 模块1. 不支持 Prewarm, StartDelay,EmitterVelocity2. Simulation Space 支持 Local 和 World3. DeltaTime 请选择 Scaled4. ScallingMode 请选择 Hierarchy粒子系统模块参数手册参考 Unity 手册-2019.4
Emission 模块仅支持 Rate over Time
Shape 模块1. 仅支持 Box2. 不支持 Texture, Position, Rotation, Scale3. 不支持 Align To Direction,Randomize Direction,Randomize Position
VelocityOverLifetime 模块1. 仅支持 Linear
LimitVelocityOverLifetime 模块1. 不支持 Dampen、Drag2. 不支持 Multiply by Size, Multiply by Velocity
ForceOverLifetime 模块Space 请选择 Local
ColorOverLifetime 模块完整支持
SizeOverLifetime 模块完整支持
RotationOverLifetime 模块完整支持
TextureSheetAnimation 模块1. Mode 请选择 Grid2. 不支持 FlipU,FlipV,Enabled UV Channels3. Time Mode 仅支持 LifetimeStart Frame 若使用了 Random Between Two Constants 会导致序列帧速度异常
Renderer 模块仅支持 Billboard,Render Alignment 仅支持 View 不支持 Allow Roll
其他1. 场景中的粒子都需要有激活的子模块,否则可能导致小程序异常

粒子素材示例:

素材资源包
樱花雨
烟雾

场景规范

要求备注
物体材质场景中不能包含丢失材质的物体
组件不生效(无用)组件要移除掉
父物体父物体 jinliang

Unity 各功能模块支持能力

请参考:Unity 支持能力.xlsx

ARScript API 参考文档

详见 ARScript API 参考文档(JavaScript) 《ARScript API 参考文档(JavaScript)》

FAQ