从Qt 3D Studio导出

遵循以下指南以在将项目从Qt 3D Studio转换为Qt设计工作室时获得最佳结果。

最佳实践

  • 如果UI中的某个部分明显是2D的,请不要从Qt 3D Studio演示中导入它。请在Qt设计工作室中直接实现。
  • QML流不能直接导入到Qt设计工作室中的QML元素。由于Qt设计工作室中QML文件没有导入功能,因此需要手动复制。
  • 如果您导入整个Qt 3D Studio项目(.uia文件),则只使用其实际需要的一部分。对于需要的部分,使用将组件移动到单独的文件,并最终删除项目结构中的其余内容。
  • 大多数导入的QML文件中都有额外的Node元素级别,并且应该删除以提高性能。一般而言,只有一个子节点的每个Node被认为是一个需要删除的额外级别。
  • Qt 3D Studio的幻灯片成为Qt设计工作室的状态,状态变化可能存在问题。始终遍历每个状态变化以确保它们正确无误。

导入资产

自定义材料

自定义材料(Qt 3D Studio中的something.shader文件)未正确导入,需要手动修复。

  • 它们被导入为CustomMaterial { id: something; source: "something" },既不起作用也不执行任何操作。
  • 完全删除source: "something"
  • something.shader中的顶点着色器部分需要复制到CustomMaterial内部的Shader { stage: Shader.Vertex; shader: "vertex shader code here" }
  • something.shaderMetadata中的属性需要手动以相同的名称和正确的类型作为QML属性导入到CustomMaterial元素中。
  • import QtQuick3D.Materials 1.15导入语句添加到包含CustomMaterial元素的文件中。
  • 如果自定义材质使用纹理,它们不会自动导入,必须手动添加到项目结构中。
  • 许多自定义材质由于Qt Design Studio 1.5中一个开放的bug,在3D或2D视图中无法渲染。要使它们显示,需要运行项目。

标准材质

标准材质的一些属性可能无法正确导入。

  • 某些属性的合理值范围在Qt 3D Studio和Qt Design Studio之间可能已更改,需要手动重新定义。
  • 可以添加额外的属性,并且可以手动删除。

模型

模型有一些额外的属性(分组),可以删除。

示例:将MyOwnCluster项目从Qt 3D Studio转换为Qt Design Studio

"My Own Cluster project in Qt 3D Studio"

Qt 3D Studio中的My Own Cluster项目

以下步骤描述了如何将My Own Cluster项目从Qt 3D Studio转换为Qt Design Studio。

在Qt Design Studio中创建新项目

  1. 要在Qt Design Studio中创建新项目,请选择文件 > 新文件或项目,或在欢迎模式中选择新建项目

    "Welcome mode in Qt Design Studio"

  2. Qt Design Studio在向导中提供了创建不同类型项目的模板,以辅助创建新项目。选择Qt Quick 3D应用模板开始您的全新3D项目。

    "Create a new Project in Qt Design Studio"

  3. 名称字段中,输入项目的名称。在创建于字段中,输入项目文件的位置,然后选择下一步

    "Project location and name"

  4. 屏幕分辨率字段中,选择用于在桌面或设备上预览UI的屏幕分辨率。您必须选择预定义的屏幕分辨率,稍后将根据原始项目的宽度和高度调整。在Qt Quick控件样式字段中,选择预定义的UI样式,然后选择完成

    "Select the screen resolution for the project"

  5. 您的新项目已创建完成。有关在Qt Design Studio中创建项目的更多信息,请参阅创建项目。有关如何开始使用Qt Design Studio的更多信息,请参阅入门

    "New project in Qt Design Studio"

MyOwnCluster入门

  1. 返回Qt 3D Studio中的项目,检查演示的大小。选择编辑 > 演示设置,以查看宽度 x 高度的值。

    "Check screen size in Qt 3D Studio presentation"

  2. 根据Qt 3D Studio演示中的屏幕大小调整Qt Design Studio中项目的画布大小。通过在代码视图中编辑Constants.qml文件来实现。如果您看不到代码视图,请选择窗口 > 视图,然后选择代码复选框。在项目视图中,打开导入子文件夹,然后打开以项目命名的子文件夹,双击Constants.qml。将readonly property int widthreadonly property int height的值编辑为与Qt 3D Studio演示中的宽度 x 高度值匹配。

    "Adjust the canvas size"

  3. 要删除由向导创建的占位符,请多选文本view3D组件(Ctrl + 鼠标左键单击),在导航器中右键单击所选项目,然后选择编辑 > 删除

    "Delete placeholders in Navigator"

导入资产

  1. 选择资产 > .

  2. 选择要导入的 Qt 3D Studio 项目中的 .uia 文件,然后选择 打开

    "Find the uia file in file explorer"

  3. 选择 导入,导入完成后,选择 关闭

    "Import the file"

  4. 从 Qt 3D Studio 导入的 2D 资产现在出现在 > 资产 中。

    "Imported assets in Components"

  5. 从导入的 Qt 3D Studio 项目生成的 QML 组件现在作为可用的导入出现在 组件 下的 QML 类型。选择 Quick3DAssets.MyOwnCluster 将其导入到您的项目中。

    "Available imports in QML Types"

  6. 导入的 QML 类型现在出现在 组件 中,可以将其添加到项目。

    "MyOwnCluster in Components"

向项目中添加组件

  1. MyOwnCluster组件 中的 我的 Quick3D 组件 拖到 2D 视图中。

    "Drag MyOwnCluster to the 2D view"

  2. 导航器 中,右击 myOwnCluster 并选择 进入组件

    "Go into component My Own Cluster"

  3. 代码 视图中找到有问题的行。

  4. 在行的开头放置两个斜杠(或删除该行)来取消注释有问题的行。

  5. 在导航器中,访问项目中的每个组件,注释掉(或删除)任何找到的有问题的行。

  6. 现在您应该在 2D 视图中看到项目的一些部分。

    "Project in the 2D view"

转换 3D 元素

  1. 将 subpresentation_ADAS 从 组件 > {我的 3D 组件} 拖到 导航器 的层文件夹中。

    "Drag into layer"

  2. 要删除旧的子演示图形矩形,在文件名(在此项目中为 subpresentation_ADAS2_u52017)上右键单击,然后选择 编辑 > 删除
  3. 进入组件 subpresentation_ADAS。

    "Go into component"

  4. 根据原始 Qt 3D Studio 项目重新定位 3D 视图中的对象和/或摄像机。在某些情况下,简单地更改 z 位置的正负即可达到所需的场景。

    参阅 3D 视图以获取有关如何编辑 3D 场景的更多信息。

    "Replace objects in the 3D view"

  5. 根据原始项目在 subpresentation_ADAS 中重新创建动画。有关在 Qt 设计工作室中创建动画的更多信息,请参阅 创建时间轴动画

    "Recreate animations"

  6. 转到 时间轴 视图以审阅项目的时序。

    "ADAS timeline view"

转换 2D 元素

  1. 使用 Qt 设计工作室中可用的 2D QML 元素重新创建原始项目的 2D 元素(所有层)。您可以使用导入的 2D 层作为创建元素的向导。如果原始项目中的 2D 元素有旋转,尤其是在 3D 层中,请确保向 Qt 设计工作室项目添加模拟原始旋转的旋转。例如,具有透视摄像机的单一轴旋转在纯 2D 中需要两个轴的旋转。您可能需要使用 代码 视图来实现类似于 Qt 3D Studio 中对象旋转的旋转。有关在 上指定高级转换的更多信息,请参阅 转换

    "Recreate 2D elements"

  2. 在重新创建 2D 元素后,从 导航器 中删除 2D 层(telltaleLayer_u39332),右键单击组件,然后选择 编辑 > 删除

    "Delete the 2D layer"

  3. 接下来,您需要从 3D 层(speed_u20335 和 rPM_u10371 来自 layer_32325)中删除 2D 元素。右键单击元素,然后选择 编辑 > 删除

    "Delete old 2D elements from the 3D layer"

  4. 以与 3D 元素相同的方式重新创建 2D 元素的动画。

转换 QML 流

  1. 在文件资源管理器中找到 QML 流文件。

    "Find the QML stream file"

  2. 将 QML 流文件移动到导入的主要文件夹下(在此示例中向上一个级别)。

    "Move the QML stream files under the import's main folder"

  3. 确保 QML 流文件的名称以大写字母开头,以便 Qt 设计工作室能够将它们识别为 QML 组件文件。

    "The QML stream file names should start with a capital letter"

  4. 返回 Qt 设计工作室,并进入 MyOwnCluster 组件。现在 QML 流组件出现在 我的 3D 组件 中。

    "QML stream in My QML Components"

  5. 将 QML 流组件拖放到 导航器 中的 MyOwnCluster。

    "Drag the QML stream component to MyOwnCluster"

  6. 转到 状态 视图,并在 属性 视图的 可见性 选项卡中,使 QML 流组件仅在正确的状态下可见。

    "Make components visible in correct states"

  7. 接下来,根据原始项目重新创建 QML 流的动画。

    "Recreate animations"

  8. 重新创建现在作为组件导入的 QML 流的所有关键帧。

    "Recreate keyframes"

整理项目结构

  1. 转到文件资源管理器并整理项目结构,删除在 Qt 设计工作室项目中未使用的文件夹和文件。

    "Delete folders in file explorer"

  2. 在 Qt 设计工作室的 项目 视图中也可以删除单个文件。要删除文件,右键单击它,选择 删除文件,然后选择

    "Delete individual files"

  3. 这是整理后的项目结构。

    "Project structure after clean-up"

完成

您现在已将 Qt 3D Studio 项目转换为 Qt 设计工作室。

在特定 Qt 许可下可用。
了解更多信息。