Skip to content

说明:无法生产或编辑模型资源。适合用于资源整合,适合大场景的实时编辑及场景动画创建。作为内部开发流程中通用工具,便于资源管理,学习成本较低。推荐在三维软件中完成资源生产后,使用Unity完成场景搭建,场景动画编辑等流程。

插件安装:

  1. 支持使用 Unity 的长期支持版本(2021.3+、2022.3+、2023.3+),内置渲染管线,URP。建议使用工作流统一版本2021.3.27f1c2,内置渲染管线。
  2. 参考官方工程及文档:https://github.com/KhronosGroup/UnityGLTF
  3. 根据官方文档,安装Unity插件可以使用插件安装包UnityGLTF Package Installer,或者在 Unity 中通过 git 安装插件。 注意:以下方式需要在 PC 上预先安装 git:https://git-scm.com/downloads 。安装完 git 后,需要重启 UnityHub 和工程。
    1. 使用安装包安装:
      1. 下载安装包后,拖入 Unity,自动完成安装。
    2. 使用git安装:
      1. 打开 package manager 窗口,点击左上角 +,选择 Add Package from git URL,并输入https://github.com/KhronosGroup/UnityGLTF.git 。点击Add。等待安装完成即可。
  4. 安装完成后,需要配置导出设置。在Assets>Resources目录下,找到UnityGLTFSettings文件。如图配置。 注意:
    1. 该配置过程尚存在 BUG,每次重启工程可能都要重新配置。或在动画资源无法导出时检查此配置。
    2. 该配置文件可能不会立刻生成,若安装完毕后没有找到该文件。可以先跳过此步,在后续导出过任意资源后,该文件会自动生成。待生成后再重新配置。

  1. 安装完毕后,在资源上右键,选择UnityGLTF>Export selected as GLB/glTF即可导出资源。
  2. GLB 格式为 GLTF 的压缩格式。使用 GLTF 格式时,配置文件和贴图文件会单独导出,因此建议直接使用 GLB 格式导出,便于整合资源。

功能说明:

基本资源导出:

  1. 基本资源的导出方式有以下三种:
    1. Project目录中选中资源并右键,选择对应格式导出。如图a
    2. Hierarchy中选中资源并右键,选择对应格式导出。如图b
    3. Assets菜单中,选择对应格式导出。如图c

  1. 导出时可以选择导出选中的资源Export selected as GLB/glTF或者导出当前活动的场景Export active scene as GLB/glTF。

灯光环境导出:

  1. 灯光导出需要配置文件中的KHR_lights_punctual扩展支持:

  1. 仅支持导出平行光点光聚光,不支持环境光的导出。
  2. xr-frame当前支持环境光平行光、以及4个包括点光聚光在内的追加光源。

动画导出:

该插件支持导出 Animator、Animation 的动画片段,Timeline 动画片段。

Animator、Animation 导出:

  1. 使用Unity原生方式创建动画。目前仅支持 Position、Rotation、Scale 三项属性的动画导出。
  2. 导出带有 Animator 组件的物体即可导出对应动画。
  3. 导出动画时,Animator 组件可以存在多个,也可以嵌套,在导出后,每个动画片段都是文件中独立的动画片段资源。下图三个模型资源中都有一个 Animator 组件,导出后,动画都会被独立保存在资源中,并以动画片段名称来命名。
    1. 对于 Animator 中的多个动画状态,无法导出状态之间的衔接方式,每项状态都会导出为独立的动画片段,并以 Animation 中的动画名称命名(即动画状态中Motion 中所绑定的动画片段的名称)。例如导出一个 Cube,包含两个动画状态,对应动画片段命名为 cube1 和 cube2。导出结果为
    1. Animator 中每个状态的 Speed 默认会在导出时烘焙到动画中,因此若不想改变动画速率,应保持为默认的 1。

Timeline动画导出:

  1. 使用 Unity 原生方式创建 Timeline 动画。同样仅支持 Position、Rotation、Scale 三项属性的动画导出。
  2. 创建完毕后,需要在其中添加 GLTF Recorder Track 轨道。
    1. 选中轨道,右键添加 GLTFRecorderClip 该片段覆盖的时间区域中的所有动画会被录制成动画片段并输出为 GLB。
    1. 选中上一步创建的 GLTFRecorderClip,在 Inspector 面板中进行配置。
      1. 下图 a 中 Export Root 为要烘焙并导出的根节点,即不论 Timeline 中编辑了多少物体的动画,只有该根节点中的物体会被烘焙出来。例如在Timeline中分别创建了图 b 中 Cube 和 Sphere 的动画轨道,并编辑了三个物体的动画。若 Export Root 绑定为 Cube,则导出时仅包含 Cube 和 Cylinder 的动画,Sphere 物体及动画均不会包含在其中。
      2. File 为烘焙出的 glb 资源存储的路径,该路径为相对路径,以工程目录为根目录。例如输入 recorder.glb 则会在工程目录保存文件。
      3. Animation Name 为文件中的动画名称。
      4. 注意不要勾选最后的 Record Animation Pointer,该项需要未经官方认证的插件支持,小程序暂不支持该功能,若勾选,动画将失效。
    1. 完成轨道编辑后,运行场景,待 Timeline 完整播放一次后,控制台显示信息 Gltf Recording saved. Tracks: *, Total Keyframes: * 此时动画将录制并保存在设置的路径中。

材质导出:

  1. 支持内置渲染管线 Standard 标准材质,支持插件自带的 UnityGLTF/PBRGraphUnityGLTF/UnlitGraph
  2. 不支持其他内置或自定义 shader 的材质导出。

粒子导出:

  1. 插件当前仅支持将粒子烘焙为 静态网格 导出,暂无法实现动态粒子效果的烘焙。

注意事项:

  1. Unity 中使用的资源,应保证Z轴正方向为资源前向。否则在程序开发中容易出现方向混乱的问题。

常见问题:

导出隐藏物体:

  1. 若导出的资源中需要包含未被激活的物体,需要在配置文件中勾选 Export Disabled Game Objects