数字孪生模型DEMO构建
演示视频在B站https://www.bilibili.com/video/BV1gg4y1c7Bx/
前言
数字孪生
本DEMO尝试对城市数字孪生作出初步尝试,日后方向为结合C++进行更深层次的开发。
相关概念:
DEMO大致功能:
一、模型
模型建立
- QGIS+Blender+C4D建立
-
Cesium for Unreal
导入 -
ArchVizExplorer
官方案例自带模型 -
Datasmith
导入网络模型 - UE程序化植被工具
- UE自带树木资产
- 后续拓展:
HOUDINI
程序化建模、AI+Revit
生成BIM
模型材质
- UE材质系统
- UE自带材质
二、界面
主页面
-
Figma
、即时设计
、ArchVizExplorer自带菜单栏 - 图表框、标题栏、底部菜单栏
加载界面
- 关卡切换时出现加载界面
-
异步加载
实现:关卡未加载完成,则出现加载界面,加载完成,加载界面消失
登入界面
- 高斯模糊背景、
进入系统按钮
- 点击进入系统,视角切换、相关UI显隐、渐变
弹窗提示
- 对异常操作进行
弹窗提示
字体
- 斗鱼追光体
- 思源黑体(Bold)
- Roboto
三、图表可视化
代码实现
- 前端:
Echarts库、HTML、CSS、JavaScript
- 后端:
Express框架
- 数据库:
MongoDB
- 数据库接入数据,Express连接数据库并向前端代码传输数据
- 包含电力、热度图、人流量车流量统计图、水流流量图、三维人口分布图等
嵌入UE
webBrowser
-
webUI
四、地图
-
Mapbox
制图 - 三维水墨风格地图
- 交通线路图
- 后续拓展:在城市地面生成三维地图
五、天气
Ultra Dynamic Sky
- 添加滑动条控制时间、点击按钮切换天气(晴、阴、多云、小雨、大雨、小雪、大雪)
- 通过
高德API
和Va Rest插件
获取地区气候状况
(天气、温度、湿度) - 将获取到的JSON数据解析并
传输
至UDS,设置当前天气 - 设置
定时器
自动更新天气状况
六、POI
-
POI_Actor
添加,设置视角、信息、Tag - 点击POI(名称/选项框),视角移动并弹出POI信息
- 包括
POI信息总界面Surroundings控件、POI展示框EntryList控件、POI名称Entry控件、POIActor
- 点击POI名称框后,POI所在范围圈渐显后渐隐,以提示用户POI位置。
- 主要实现逻辑:事件运行,循环遍历POIActor,根据POIActor的tag不同而将POI名称添加进不同的POI展示框,点击POI名称,实现视角移动,点击POIActor,出现POI详细信息。
七、交通
-
道路样条线
添加,样条线添加POI_Actor
作为子Actor,设置视角、信息、Tag - 视角坐标统一Actor坐标Z轴加上观察高度,作为摄像机位置
- 点击道路后出现道路
变色动画
,红色标亮提示用户所选道路 -
百度地图API
获取道路状况
,Va Rest
解析JSON数据并输出,构建出获取道路状况函数 - 在样条线的
事件开始运行
中,添加获取道路状况函数,系统开始运行时,根据不同的道路状况(通畅、缓行、拥挤等),道路具有不同的颜色 - 添加
道路状况信息
窗口,点击样条线标签显示,含有道路名称、当前路况、详细路况信息 - 设置
定时器
自动更新道路状况 - 后续拓展:选定起始点和终点,生成导航路线
八、建筑信息
- Datasmith导入3dMax模型
- csv导入建筑数据信息,构建成
DataTable
- 创建
建筑分层界面
和建筑信息界面
- 点击的层数与相应层数的建筑信息匹配
- 传感器数据传入数据库,连接Echarts图表
- 通过设置移动实现建筑分层、建筑弹出效果
- 点击楼层进行
视角转换
、楼层弹出
、数据展示
- 后续拓展:利用
opencv
接入监控摄像头、Mqtt
协议构建传感器与UE交互、接入MySQL
数据库
九、空间测量
- 长度测量
- 面积测量
-
屏幕坐标
与场景坐标
的转换 -
空间距离
计算 - 后续拓展:输入数值,生成缓冲区,进行统计分析
十、小地图与指南针
小地图
- 设置
屏幕捕捉2D界面
,Pawn放置顶部摄像机、实时捕捉摄像机俯视角图像
指南针
- 指南针
捕捉pawn视角
,八个方向实时变化
十一、建筑游览模式
第三人称角色操作
- 控制场景中的人物进行场景游览
-
Pawn
、输入映射
编写
场景交互
-
webUI
制作交互浏览器 -
MediaPlayer
实现视频播放 - 后续拓展:
lua代码
添加交互物
十二、场景切换
三种模型间的切换
- 三种模型三个关卡:
城市模型、地理模型、建筑模型
- 切换判断:获取当前关卡名,判断切换操作是否合理,合理则打开关卡,否则弹出提示窗口
其他
后期处理体积
- LUT校色
- 调整曝光
- 调节画面色彩
注意事项
- 若添加UDS后,场景明显变暗,需要调整场景曝光设置,如调整
后期处理
和关闭渲染设置-自动曝光设置中扩展默认亮度范围
,使UDS控制曝光。 - Cesium For Unreal场景曝光极高,通过以下方式调整:
(1)在项目设置勾选自动曝光
–自动曝光设置中扩展默认亮度范围
(2)选择场景中的定向光
组件,将强度降到10.0
以下(此处推荐第二种) - ArchVizExplorer中
光照亮度
极高,若添加自带光照物体进场景发现物体材质光照为黑色,提升物体光照亮度以正常显示。 - 视角移动方式:
Set View Target with Blend
后需要添加possess
重新分配控制器和pawn,而不改变pawn的情况下实现视角移动使用,设置actor位置
和设置旋转
来改变视角。 - 注意
获取Actor
、获取控件
、创建控件
的区别 - webUI添加的Echarts图表注意
窗口大小自适应
和隐藏overFlow
- 控件添加到视口,默认全屏显示,需要调节
控件显示大小
- 注意性能消耗较大的函数:
Tick
、ForEachLoop
、CastTo
- 蓝图通信中的
子控件调用
、事件分发器
、类型转换
、蓝图接口
、事件与函数
用法与区别 - 不需要的控件注意
从父项中移除
,减少资源占用 -
TimeLine
中的输入节点play
和play from start
区别 -
Va Rest
解析JSON节点Get String Field
、Get Array Field
、As Object
、Get Object
此文章持续不定时更新
工程文件:后续放出
引用:文章来源:https://www.toymoban.com/news/detail-658787.html
https://blog.csdn.net/weixin_47373639/article/details/127493246
https://blog.csdn.net/weixin_43635045/article/details/124148736
https://space.bilibili.com/66389753文章来源地址https://www.toymoban.com/news/detail-658787.html
到了这里,关于UE4数字孪生模型DEMO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!