Skip to content

Desuq Cafe

Loom

预览

Blender 到 Unity 与 Unreal 的实时链接

Blender · source Unity Unreal one binary link · two engines
一个 Blender 生产端(左侧)通过单条二进制链接,向两个实时引擎视口 Unity 和 Unreal 传输,各自由生成的程序化材质着色。只有发生变化的部分才会通过线缆传输。

在 Blender 中建模,在 Unity 或 Unreal 中即时看到效果。Loom 通过直接的二进制链接,将网格、绑定、灯光、摄像机和材质直接流式传输到引擎视口。编辑一个顶点、拖动一段动画、调整一盏灯,都会在几毫秒内显现。无需导出,无需 FBX 往返,也无需中继服务器。满意之后,把整个会话烘焙成真正的 prefab、Blueprint 和资源。Loom 既是预览,也是一条流水线。

Blender Unity Unreal Python C# C++

实时,而非导出

在 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。想获取更新或抢先体验?请在下方联系我。

支持

在预览期间有疑问、错误报告或功能建议?发邮件给我,我会回复你。

你也可以浏览 文档 ,了解安装步骤、架构说明和路线图。