使用 Datasmith 将 Rhino 模型导入 Unreal Engine 5(UE5)

💡 使用 Datasmith 将 Rhino 模型导入 Unreal Engine 5(UE5)

在 Unreal Engine 5 中,我们常常需要导入自制的 CAD 模型来进行可视化或仿真。

目前主流的 CAD 软件(例如 SolidWorksRhino(犀牛) )都能通过 Datasmith 插件将模型导入 UE5。

本文将详细介绍这一流程,尤其是使用 Rhino 导出并在 UE5 中导入的完整步骤与注意事项。


一、为什么要用 Datasmith?

Datasmith 是 Epic Games 官方提供的 CAD → UE 数据传输工具链。

它能在导出时保留:

  • 模型层级结构;
  • 材质与贴图;
  • 相机、光源信息(视软件而定)。

简单来说,Datasmith 是连接 CAD 与 UE 的"翻译器"。

要让它正常工作,需要在两端都安装插件:

  • UE5 中启用 Datasmith 插件;
  • CAD 软件 (Rhino 或 SolidWorks)中安装对应的 Datasmith Exporter

二、SolidWorks vs Rhino:为什么本项目选择 Rhino?

虽然 SolidWorks 也支持 Datasmith 导出,但在配色与渲染材质方面较受限,导出的模型往往呈现灰黑色调。

Rhino 在材质管理上更灵活,可以在导出前直接调整模型外观颜色,因此本项目最终采用 Rhino → UE5 的路线。


三、在 Rhino 端安装 Datasmith Exporter

  1. 打开 Epic Games 官方插件下载页:

    🔗 https://www.unrealengine.com/en-US/datasmith/plugins

  2. 下载对应版本的 Rhino Exporter

    • 一定要确保 Rhino 版本与 UE5 版本匹配 (例如 Rhino 8 对应 UE 5.4 或 5.5 )。
  3. 运行安装程序 → 全程保持默认设置 → 完成后重新打开 Rhino。

    首次启动时会弹出 "Datasmith 插件已启用" 的提示。


四、从 Rhino 导出 .udatasmith 文件

导出步骤:

  1. 打开 Rhino 模型。
  2. 在菜单栏选择 文件 → 导出选定对象(Export Selected)
  3. 在文件类型里选择 Datasmith (.udatasmith)
  4. 点击"导出"。

导出结果的文件结构通常如下:

复制代码
ship_scene.udatasmith
ship_scene/
    ├─ Assets/
    │   ├─ brep_1.udsmesh
    │   ├─ extrusion_3.udsmesh
    │   └─ ...
    ├─ Materials/     ← 若使用材质时会生成
    └─ Textures/      ← 若使用贴图时会生成

导出时的四个关键注意点

  1. .udatasmith 与同名文件夹 必须在同一目录下 ,不要拆开或改名。

    UE5 会根据 .udatasmith 中的路径读取对应 .udsmesh 文件。

  2. 如果模型未使用贴图,仅使用单色材质,那么 Materials/Textures/ 文件夹可能不会生成,这属于正常现象

  3. 如果想改文件名(例如 ship_scene),请在 Rhino 导出时 改名,而不是导出后修改。

    因为 .udatasmith 文件内部会写死资源路径,改名会导致 UE5 导入时报错。

  4. 中文路径在多数情况下可以导入成功,但建议仍使用英文命名,以避免路径编码问题。


五、理解 .udatasmith 文件的工作机制

Rhino 导出的 .udatasmith 是一个 场景描述文件(Scene Description)

它本身不包含几何数据,而是引用同目录下的 .udsmesh 文件。

UE5 导入时会执行以下三步:

  1. 读取 .udatasmith
  2. 按内部路径加载 .udsmesh
  3. 将其转换为 .uasset(即 UE5 的 Static Mesh 格式)。

因此,只要 .udatasmith 与资源文件夹路径不变,导入过程即可顺利完成。


六、在 UE5 中启用 Datasmith 插件

  1. 打开 UE5 → 编辑(Edit)插件(Plugins)

  2. 搜索 "Datasmith",启用以下三个插件:

    • Datasmith CAD Importer
    • Datasmith Importer
    • Datasmith Content
  3. 重启 UE5。


七、在 UE5 中导入 .udatasmith

  1. 点击主界面上方的 创建(Create)Datasmith → 文件导入(File Import)

  2. 选择导出的 .udatasmith 文件;

  3. 弹出导入选项窗口,推荐设置如下:

选项 是否勾选 说明
Import Geometry 导入几何网格
Import Materials 导入 Rhino 材质
Import Textures 导入贴图文件
Convert to Static Mesh 将曲面转换为 UE 网格
Generate Lightmap UVs 提升光照效果
Merge Actors 保持层级结构,便于调试
  1. 点击 "Import",几分钟后即可在 Content Browser 看到完整的 Rhino 模型层级。

八、常见问题与排查

问题 原因 解决方法
导入报错 "Cannot find Static Mesh ..." .udatasmith 内路径与文件夹名不匹配 恢复原始文件夹名或重新导出
导入后材质全黑 Rhino 材质未带贴图或光照太暗 在 UE5 中添加光源或重新设置材质
没有生成 Textures 文件夹 模型未使用贴图 正常,不影响导入
模型比例不对 Rhino 单位为 mm,UE 为 cm 导入时调整 Scale Factor = 0.1

九、总结

通过 Datasmith,可以在不丢失材质和层级的情况下将 Rhino 模型导入 UE5:

1️⃣ 在 Rhino 中安装 Datasmith Exporter;

2️⃣ 导出 .udatasmith 与资源文件夹(保持路径一致);

3️⃣ 在 UE5 中启用 Datasmith 插件并导入;

4️⃣ 确认材质与网格正确加载。

这套流程兼具可控性与高保真,适用于建筑可视化、仿真场景搭建、甚至工业展示项目。


✍️ 作者注:

本项目在实践中曾遇到因改文件夹名导致的 "找不到 Static Mesh" 报错。

经验教训是:永远不要在导出后改 .udatasmith 或文件夹名字!

UE5 对路径引用极其严格。


相关推荐
zhangzhangkeji5 天前
UE5 C++(71):文件是否存在,文件夹是否存在,FPaths :: FileExists( const FString & InPath) ;
ue5
妙为5 天前
UE5角色穿过石头穿模
ue5·unreal engine5·角色穿越石头·穿模
技术策划Boring6 天前
2025年工作复盘:开放世界3A项目配置管线与性能监控的探索
游戏·ue5·虚幻·p4·perforce
zhangzhangkeji8 天前
UE5 C++(70-2):定义成员函数 getCleanDirectory(..) 和枚举类 EFileDirectoryType,来获得目录
ue5
avi91119 天前
UE4-UE5虚幻引擎-前置学习三,优化,基础CPP
ue5·ue4·游戏开发·虚幻·游戏优化·游戏代码
zhangzhangkeji9 天前
UE5线程进阶(3-2):任务图的相关源码整理。 FGraphEvent 与 TGraphTask 的区别和联系
ue5
zhangzhangkeji10 天前
UE5线程进阶(3-1):
ue5
zhangzhangkeji10 天前
UE5线程进阶(2-3):enum ENamedThreads命名空间 :: Type : int32 { RHIThread = 0 } 是渲染硬件接口线程
ue5
zhangzhangkeji12 天前
UE5线程进阶(2-1):枚举类EAsyncExecution,作业类TAsyncRunnable、TAsyncQueuedWork,及全局线程函数 Async(..),及线程调用的 4 种方法总结
ue5
zhangzhangkeji12 天前
UE5线程进阶(1):
ue5