realvirtual.io WEB (Pro)

ℹ️

realvirtual.io WEB 导出需要 realvirtual.io Professional。浏览器查看器本身是开源的 (AGPL-3.0),可在 github.com/game4automation/realvirtual-WEB 获取。

realvirtual WEB —— 基于浏览器的 3D HMI,带有 KPI 仪表盘、驱动监控和报警消息

概述

realvirtual.io WEB 是一个基于浏览器的 3D HMI 和数字孪生查看器。它加载从 Unity 导出的 GLB 文件,并直接在浏览器中运行交互式传输仿真、驱动动画、传感器碰撞和 LogicStep 排序 — 无需安装。

一个链接。任何设备。实时数字孪生。

Unity Editor 提供了创作工具,将您的数字孪生导出为包含所有 3D 几何、组件元数据、信号绑定、运动学定义和驱动参数的单个 GLB 文件。浏览器查看器读取此元数据并重建完整的交互式仿真。

双平台策略

用途CAD 导入、行为建模、虚拟调试基于浏览器的 3D HMI、监控、协作
技术Unity Engine, C#, Unity IndustryThree.js, TypeScript, React
部署桌面应用程序、XR 头戴设备、移动设备任何现代浏览器
PLC 连接原生协议驱动WebSocket / MQTT 网关
目标用户自动化工程师、仿真专家操作员、服务技师、销售、客户

GLB 文件是两平台之间的桥梁。

快速入门

ℹ️

前置条件 — UnityGLTF 包。 GLB 导出基于开源的 UnityGLTF 包 (Khronos Group)。自 realvirtual 6.3.5 起,Tools > realvirtual > Export 下的 realvirtual WEB 入口始终可用:如果 UnityGLTF 尚未安装,选择它会提供一键安装。Unity 重新编译后,realvirtual WEB 窗口将打开,GLB 导出变为可用。您也可以通过 Window > Package Manager > Add package from git URL 使用 https://github.com/KhronosGroup/UnityGLTF.git 手动安装。

1. 打开 WebViewer 工具

通过 Tools > realvirtual > Export > WebViewer Tools 打开。该窗口有五个标签页,涵盖完整的导出到发布工作流程。

2. 导出您的场景

Export 选项卡 —— 将选中的 GameObject 或整个场景导出为 GLB

Export 标签页中,您有三个选项:

  • Export Selected to WebViewer — 导出当前选中的 GameObject 及其子对象
  • Export Scene to WebViewer — 导出当前场景中的所有根级 GameObject
  • Export Selected as... — 打开文件保存对话框以选择任何输出路径

导出的 GLB 文件被放置在 WebViewer 的 public/models/ 文件夹中,包含:

  • 所有 3D 几何(网格、材质、纹理)
  • 所有 realvirtual 组件数据(drives、sensors、transport surfaces、sources、sinks、grippers、logic steps)
  • 信号绑定(PLCInput/PLCOutput 连接)
  • 运动学层次和轴配置
  • 用于可见性控制的组定义
  • 相机预设

3. 在浏览器中预览

Dev Server 选项卡 —— 启动本地预览服务器并打开浏览器

通过点击 Start Dev Server 启动本地开发服务器。浏览器将自动在 http://localhost:5173 打开。从模型选择器中选择您导出的模型。

您也可以从此标签页直接打开 WebViewer 和 Models 文件夹。

4. 发布

Publish 选项卡 —— 一键部署到 Bunny CDN

Publish 标签页提供到 Bunny CDN (web.realvirtual.io) 的集成部署。配置您的 Bunny CDN 凭证(Storage Key、Account API Key、Pull Zone ID),设置演示名称,然后点击 Publish ScenePublish Selected

发布选项:

  • Publish Selected — 导出并上传选中的 GameObject
  • Publish Scene — 导出并上传整个场景
  • Publish Last Export — 上传先前导出的 GLB 文件而不重新导出
ℹ️

Bunny CDN 发布是集成的一键式解决方案。您也可以手动部署到任何 Web 服务器或云平台 — 导出生成了标准的 dist/ 文件夹(通过 npm run build),可以上传到任何静态托管服务:您自己的 Web 服务器、AWS S3、Azure Blob Storage、Netlify、Vercel 或任何内部基础设施。GLB 文件和构建好的查看器是完全自包含的。

5. 私有项目

Private 选项卡 —— 使用安全 URL 创建和管理私有客户部署

Private 标签页管理客户特定的部署:

  • 创建具有自动生成的安全 URL(128 位熵值)的新私有项目
  • 每个项目有自己的 GLB 模型、设置和可选插件
  • Export Scene 直接到项目的 models 文件夹
  • 发布到一个不可猜测的 URL:web.realvirtual.io/{code}/
  • 复制安全链接以分享给客户

私有项目非常适合不应公开访问的客户特定数字孪生。

6. 管理部署

Manage 选项卡 —— 所有已发布部署的概览及使用统计

Manage 标签页显示 Bunny CDN 上所有已发布的部署(公开和私有):

  • 文件大小和最后更新时间戳
  • Copy Link 分享部署 URL
  • Open 在浏览器中预览
  • Delete 删除部署
  • 使用统计:页面浏览量、唯一访客、带宽和缓存命中率

WebViewer 设置

WebViewerSettings 资源 —— 配置 WebViewer 安装的路径

WebViewerSettings 资源控制 WebViewer 安装的路径:

SettingDefaultDescription
Web Viewer PathAssets/realvirtual-WebViewer~WebViewer 源文件路径
Private PathAssets/realvirtual-WebViewer-Private~私有项目文件夹路径

这些路径决定了导出的 GLB 文件放置位置以及开发服务器运行位置。

导出内容

导出管道将所有 realvirtual 组件数据使用 rv_extras 扩展嵌入到 GLB 文件中。浏览器查看器读取此元数据以重建仿真。

支持的组件

最常用组件的选择:

Component导出的数据
Drive方向、速度、加速度、限制、当前位置
SensorAABB 尺寸、信号连接
TransportSurface速度、方向、尺寸
Source生成间隔、MU 模板引用
Sink信号连接
Grip / GripTarget夹取位置、拾取/放置配置
LogicStep步骤类型、参数、信号条件、层次结构
Group可见性分组分配
Kinematic关节层次、轴定义
Signals带名称和类型的 PLCInput/PLCOutput 绑定

完整列表 — 包括驱动行为、机器人学/IK、3D-HMI 标记(WebSensor、WebError 等)和数字孪生链接(AAS、CAD)— 请参见 支持的组件。要在 Unity 中创作浏览器 3D-HMI,请参见 构建 3D-HMI

导出设置

导出行为通过 AssetManagerSettings 资源 (Packages/io.realvirtual.professional/Runtime/AssetManager/Resources/AssetManagerSettings.asset) 配置:

SettingDefaultDescription
Export Material PropertiesOff嵌入完整的着色器属性值(纹理、颜色)。会增加文件大小。
Enable Mesh DeduplicationOn移除重复网格以减少 GLB 文件大小
Export ThumbnailsOn生成并嵌入 PNG 预览缩略图
Export Decal ProjectorsOn包含 URP DecalProjector 数据
ScriptableObject ExportOn将 ScriptableObject 字段序列化到 GLB 中

浏览器查看器

导出的 GLB 文件由基于浏览器的查看器加载。有关查看器本身的完整文档,请参见 realvirtual WEB GitHub 仓库

查看器的关键功能:

  • 通过 WebSocket 或 MQTT 连接 PLC 的实时 3D HMI
  • 浏览器内 60 Hz 传输仿真
  • 基于 Apache ECharts 的 KPI 仪表板
  • WebXR 支持 (VR/AR)
  • 自定义扩展的插件系统
  • 通过 MCP Server 启用 AI

MultiplayerWEB (Beta)

MultiplayerWEB 组件 —— 带会话和同步设置的中继客户端模式

MultiplayerWEB 组件 (Pro) 在 Unity 和浏览器客户端之间启用实时多用户会话。它在 Unity 内部的 7000 端口上运行一个 WebSocket 服务器,将驱动位置、MU 状态和信号值流式传输到所有连接的浏览器查看器。

浏览器客户端通过 WebViewer 中的 Multiuser 面板连接,可以看到共享的头像、相机位置和实时机器状态。角色(Operator/Observer)控制谁可以与仿真交互。

MultiplayerWEB 支持两种连接模式:

  • Direct — 浏览器客户端直接连接到 Unity 的 WebSocket 服务器(本地网络)
  • Relay — 浏览器客户端通过托管的中继服务器连接(互联网访问,无需端口转发)
⚠️

MultiplayerWEB 目前处于 Beta 阶段。中继服务器通过 realvirtual 客户门户托管。

另请参阅