Loom
预览Blender 到 Unity 与 Unreal 的实时链接
在 Blender 中建模,在 Unity 或 Unreal 中即时看到效果。Loom 通过直接的二进制链接,将网格、绑定、灯光、摄像机和材质直接流式传输到引擎视口。编辑一个顶点、拖动一段动画、调整一盏灯,都会在几毫秒内显现。无需导出,无需 FBX 往返,也无需中继服务器。满意之后,把整个会话烘焙成真正的 prefab、Blueprint 和资源。Loom 既是预览,也是一条流水线。
实时,而非导出
在 Blender 中编辑,引擎视口在几毫秒内更新。没有 FBX,没有中继,也不落盘。
两个引擎,一条线缆
一个 Blender 生产端同等驱动 Unity(URP)和 Unreal,二者运行在同一协议之上。
不只是网格,还有材质
将 20 多个着色器节点转译为真正的 URP 着色器,全部 19 种 Mix 混合模式均从 Blender 源码移植而来。
是流水线,不是玩具
把实时会话烘焙成真正的 prefab、Blueprint 和资源,并在烘焙时附带碰撞体和 LOD。
同步的内容
Loom 的覆盖范围正是重点所在。实时链接几乎承载了整个场景,这里列出的一切都会送达你打开的任一编辑器。
- 9 种 Blender 对象类型:网格、曲线、文本、曲面、融球、骨架、灯光、摄像机、空物体
- 全部 1 至 8 个 UV 通道,外加 RGBA 顶点色,并为大网格提供 32 位索引
- 骨架与形态键,含实时姿势和 blendshape 权重
- 4 种灯光类型,带景深的透视与正交摄像机
- 世界 HDRI 与雾
- 集合、几何节点与粒子实例化,含关联副本去重
- 带内容去重纹理的 Principled 材质
- 将 20 多个着色器节点转译为真正的 URP 着色器,全部 19 种 Mix 混合模式
- 实时碰撞体、LOD 组,以及面向游戏的层、标签和 static 路由
两个引擎,一条链接
Loom 是一个 Blender 生产端,拥有两个一等的消费端。同一条线缆驱动二者,因此每项能力都会送达任一编辑器。Unreal 只是为每个 Unity 概念选用了地道的对应目标。
| 在 Unity 中 | 在 Unreal 中 | |
|---|---|---|
| 实时网格 | MeshFilter + MeshRenderer / SkinnedMeshRenderer | UDynamicMeshComponent(CPU 线性混合蒙皮) |
| 材质 | 生成的 URP 着色器 / URP Lit | 在 Custom 节点中移植 HLSL 的 LoomLit UMaterial |
| 实例化 | RenderMeshInstanced 散布 | UInstancedStaticMeshComponent(逐实例数据) |
| 灯光与摄像机 | Light / Camera(+ 景深) | U*LightComponent / UCineCameraComponent |
| LOD | LODGroup + 子网格 | 单个多 LOD 的 UStaticMesh |
| 动画 | .anim AnimationClip | UAnimSequence(+ 变形目标曲线) |
| 烘焙 | prefab(.prefab) | 基于已保存资源、可复用的 BP_LoomBake Blueprint |
材质与着色器
大多数实时桥接止步于几何体。Loom 把 Blender 着色器节点图转译为真正编译的着色器,在 Unity 中是 URP 的 .shader,在 Unreal 中是 LoomLit 材质内移植的 HLSL,而非扁平的近似。程序化节点移植自 Blender 5.1 自身的源码,因此生成的着色器是在再现 Blender 的外观,而不是凭猜测。
将 20 多个节点转译为真正的着色器
- Noise(精确 Perlin fBM)
- Voronoi(精确 PCG 哈希)
- Mix Color(全部 19 种模式)
- ColorRamp
- Math
- Vector Math
- Map Range
- Mapping
- Image Texture
- Bump
- Normal Map
- Fresnel
- Layer Weight
- Gradient
- Checker
- Wave
- Magic
- Separate / Combine
- Object Info
- Texture Coordinate
- 真正编译的着色器,而非预览取巧。生成的着色器支持前向与延迟渲染、阴影、深度预通道以及 SSAO。
- 忠实回退。不支持的节点图会降级为精确的 Principled 材质,离线预检会在你连接之前就点名相关节点。
- 固定你自己的材质。可用你自己的引擎材质覆盖任意 Blender 材质或对象,并在每次重新同步后保留。
- 正确处理纹理。按内容去重并打包进引擎贴图槽(金属度与光泽度、法线与强度、遮蔽),同时保留 HDR。
为何如此之快
Loom 发送 GPU 可直接使用的字节,且只发送发生变化的部分。同步路径上不会序列化为文本,也不会写入磁盘。
- 直接的二进制链接。原始 float32 与 uint32 缓冲区从 Blender 的 numpy 直达引擎。没有 JSON,没有中继,也不落盘。
- 只发送变化。移动一个对象只发送 40 字节的变换数据包。雕刻与动画只流式传输位置,绝不发送整个场景。
- 非阻塞。套接字 I/O 运行在工作线程上,因此两个编辑器都不会卡顿。
- 自愈。它能挺过脚本重新编译和断线,重新连接后会重新同步整个场景。
像素级忠实,且可证明
只有结果正确,广度才有意义。Loom 的构建目标就是让外观一致,并持续一致。
- 从源码移植,而非肉眼比对。程序化纹理和全部 19 种 Mix 模式都译自 Blender 5.1 自身的着色器源码,细到精确的 Perlin 与 PCG 哈希。
- 一条线缆,三种实现,经证明逐字节一致。Python 生产端与 C#、C++ 消费端都以同一套黄金线缆字节夹具进行校验。
- 在编辑器关闭的情况下端到端测试。无头 Blender 与 Unity 测试套件在 CI 中驱动真实的序列化、套接字、重建与烘焙路径,包括从 .blend 到 .prefab 的完整构建。
从预览到生产
实时预览并非死胡同。它会毕业成真正的项目资源。
烘焙为 prefab / Blueprint
共享网格与生成材质会去重为单个资源,节点图着色器会保存为真正的文件,并在树上保存一个 prefab 或 BP_LoomBake Blueprint。
烘焙即游戏就绪
在烘焙后的资源上生成光照贴图 UV 与 static GI 标记、LOD 组以及碰撞体。
烘焙为 AnimationClip
将骨骼与 blendshape 动画的某一帧范围捕获为 Unity 的 .anim 剪辑或 Unreal 的 UAnimSequence。
录制与回放
把实时流录到 .loomcache 文件,并通过同一构建器回放,用于离线评审或回归夹具。
无头 / CI 烘焙
在不打开任何编辑器的情况下驱动从 .blend 到 .prefab 的构建,因此使用 Loom 的不只是坐在工位前的美术师,还可以是工作室的构建系统。
控制、安全与手感
- 选择性同步。只流式传输单个集合或当前所选,并可冻结已完成的对象,让它在你别处迭代时停止更新。
- 默认单向,带手动编辑保护。在引擎中轻推一个已同步对象,会被暂停而非覆盖,直到你释放它。
- 可选的双向编辑。把变换和选择推回 Blender,或从引擎按需将不支持的图材质烘焙为贴图。
- 运行模式中同步。实时编辑会流入正在运行的会话并挺过域重载,并带有清晰的运行中指示。
- 在 localhost 上零配置,并以实时 HUD 显示吞吐量、队列深度、合并帧数以及最重的对象。
兼容性
- Blender 4.2 或更高版本(基于 5.1 开发)
- 使用通用渲染管线(URP)的 Unity 2022.3 LTS 或更高版本
- Unreal Engine 5.4 至 5.8,C++ 项目,Win64
- 同一台机器上编辑器之间通过回环 TCP 连接(默认 127.0.0.1:8787)
供应情况
Loom 处于预览阶段,尚未发售。完整功能集已实现,并在两个引擎上持续测试。在 1.0 发布之前,剩余工作是一次引导式的视觉打磨和发布打包。Blender 插件免费且采用 MIT 许可,Unity 与 Unreal 消费端插件为商用,发布时将陆续上架 Unity Asset Store 和 Fab。想获取更新或抢先体验?请在下方联系我。