Appearance
易现小程序 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
版本更新日志
导出工具
- InsightARExporter V 1.4 更新日期: 2023.5.11 下载地址:https://ar-scene-source.nosdn.127.net/a86c40d4d98020c2c55b8f51ecf9bef2.unitypackage
当前版本新增导出工具增加对外公开版
- InsightARExporter V 1.4.1 更新日期: 2023.6.25 下载地址: https://ar-scene-source.nosdn.127.net/1ce79376971ada446f7e7c030df2253f.unitypackage
bug 修复: 修复导出模型在 iOS 上不显示,android 端正常显示
- InsightARExporter V 1.4.2 更新日期: 2023.9.12 下载地址: https://ar-scene-source.nosdn.127.net/73872576f4d863f6ecd6aa4538317113.unitypackage
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 仅支持 Lifetime | Start 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)》