Part1前言
INVETA三维可视化demo工程集成了数字孪生中的常用元素:POI点、轨迹路线、区域轮廓、围栏高亮、Bézier路径、特效、地标模型、分层建筑等。GitHub地址如下:https://github.com/inveta/demo ,目前正在持续更新,陆续地推出新的可视化基本图元。在以上所有的基本图元中,最常用的就是POI点了,之前也介绍过很多POI的实现原理,本文着重介绍下在UE5中的 3 种使用方法:编辑器静态初始化、蓝图动态生成、像素流字符串动态生成。所有的inveta基本图元都支持这 3 种模式。
● 编辑器静态初始化:在编辑器中手动拖拽、选择、输入参数。
● 蓝图动态生成:通过蓝图函数,在运行时生成元素,动态地指定参数。
● 像素流字符串动态生成:通过客户端传来的字符串代码动态生成。
这 3 种使用方法涵盖了全部的应用场景,三者的区别在于时态,但最终目的都是指定一堆参数,这些参数有各种类型:bool、字符、字符串、整数、实数、向量、坐标、颜色、数组、字典、模型、纹理、材质。所有的长度单位默认是cm,所有时间单位默认是s。
Part2支持一键插拔
直接将/PLSB/pixel-stream蓝图拖入场景中,就能自动监听前端请求,生成对应的可视化元素,不用手写后端业务逻辑,也不用再定义一套像素流格式,因为该蓝图已经定义好了一套统一的URL键值对参数:
● 所有参数遵守类似字典的格式。
● 由换行符"\r\n"分隔每一行。
● 由于 UE 的原因,换行符必须使用"\r\n",不能用常规的"\n"。
● 每行由冒号":"分隔键值对。
● 键和值两端没有空白字符。
这一套格式在前端也很容易实现,比如生成一个POI点的前端代码如下:
ps.emitMessage([
"spawn-POI",
"location:X=0 Y=0 Z=0",
"icon:\uE998",
"title:POI标题",
"color:R=1 G=1 B=1",
"shape:2",
"id:poi001"
].join('\r\n'));
Part3屏幕空间POI点
Part4Bézier轨迹路线
Part5区域轮廓围栏
Part6GIF特效
Part7动态模型
Part8总结
本文主要介绍了https://github.com/inveta/demo的动态生成方法,包括编辑器静态初始化、蓝图动态生成、像素流字符串动态生成。
Part9关于IN VETA
IN VETA是一支由建模、美术、UE5组成的年轻团队。
我们的开源项目:
https://github.com/inveta
我们致力于三维数字孪生技术分享与研发。
欢迎与各界朋友一起探讨技术与商务合作,一起推动数字孪生的发展。