UE4数字孪生模型DEMO

数字孪生模型DEMO构建

目录

  • 数字孪生模型DEMO构建
    • 前言
    • 一、模型
    • 二、界面
    • 三、图表可视化
    • 四、地图
    • 五、天气
    • 六、POI
    • 七、交通
    • 八、建筑信息
    • 九、空间测量
    • 十、小地图与指南针
    • 十一、建筑游览模式
    • 十二、场景切换
    • 其他

演示视频在B站 https://www.bilibili.com/video/BV1gg4y1c7Bx/

前言

数字孪生
本DEMO尝试对城市数字孪生作出初步尝试,日后方向为结合C++进行更深层次的开发。

相关概念:
UE4数字孪生模型DEMO_第1张图片

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
    UE4数字孪生模型DEMO_第2张图片

四、地图

  • Mapbox制图
  • 三维水墨风格地图
  • 交通线路图
  • 后续拓展:在城市地面生成三维地图

UE4数字孪生模型DEMO_第3张图片
UE4数字孪生模型DEMO_第4张图片

五、天气

  • Ultra Dynamic Sky
  • 添加滑动条控制时间、点击按钮切换天气(晴、阴、多云、小雨、大雨、小雪、大雪)
  • 通过高德APIVa 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详细信息。

UE4数字孪生模型DEMO_第5张图片

七、交通

  • 道路样条线添加,样条线添加POI_Actor作为子Actor,设置视角、信息、Tag
  • 视角坐标统一Actor坐标Z轴加上观察高度,作为摄像机位置
  • 点击道路后出现道路变色动画,红色标亮提示用户所选道路
  • 百度地图API获取道路状况Va Rest解析JSON数据并输出,构建出获取道路状况函数
  • 在样条线的事件开始运行中,添加获取道路状况函数,系统开始运行时,根据不同的道路状况(通畅、缓行、拥挤等),道路具有不同的颜色
  • 添加道路状况信息窗口,点击样条线标签显示,含有道路名称、当前路况、详细路况信息
  • 设置定时器自动更新道路状况
  • 后续拓展:选定起始点和终点,生成导航路线

UE4数字孪生模型DEMO_第6张图片

八、建筑信息

  • Datasmith导入3dMax模型
  • csv导入建筑数据信息,构建成DataTable
  • 创建建筑分层界面建筑信息界面
  • 点击的层数与相应层数的建筑信息匹配
  • 传感器数据传入数据库,连接Echarts图表
  • 通过设置移动实现建筑分层、建筑弹出效果
  • 点击楼层进行视角转换楼层弹出数据展示
  • 后续拓展:利用opencv接入监控摄像头、Mqtt协议构建传感器与UE交互、接入MySQL数据库

UE4数字孪生模型DEMO_第7张图片

九、空间测量

  • 长度测量
  • 面积测量
  • 屏幕坐标场景坐标的转换
  • 空间距离计算
  • 后续拓展:输入数值,生成缓冲区,进行统计分析

十、小地图与指南针

小地图

  • 设置屏幕捕捉2D界面,Pawn放置顶部摄像机、实时捕捉摄像机俯视角图像

指南针

  • 指南针捕捉pawn视角,八个方向实时变化

十一、建筑游览模式

第三人称角色操作

  • 控制场景中的人物进行场景游览
  • Pawn输入映射编写

场景交互

  • webUI制作交互浏览器
  • MediaPlayer实现视频播放
  • 后续拓展:lua代码添加交互物

UE4数字孪生模型DEMO_第8张图片

十二、场景切换

三种模型间的切换

  • 三种模型三个关卡:城市模型、地理模型、建筑模型
  • 切换判断:获取当前关卡名,判断切换操作是否合理,合理则打开关卡,否则弹出提示窗口

UE4数字孪生模型DEMO_第9张图片

其他

后期处理体积

  • LUT校色
  • 调整曝光
  • 调节画面色彩

注意事项

  • 若添加UDS后,场景明显变暗,需要调整场景曝光设置,如调整后期处理和关闭渲染设置-自动曝光设置中扩展默认亮度范围,使UDS控制曝光。
  • Cesium For Unreal场景曝光极高,通过以下方式调整:
    (1)在项目设置勾选自动曝光自动曝光设置中扩展默认亮度范围
    (2)选择场景中的定向光组件,将强度降到10.0以下(此处推荐第二种)
  • ArchVizExplorer中光照亮度极高,若添加自带光照物体进场景发现物体材质光照为黑色,提升物体光照亮度以正常显示。
  • 视角移动方式:Set View Target with Blend后需要添加possess重新分配控制器和pawn,而不改变pawn的情况下实现视角移动使用,设置actor位置设置旋转来改变视角。
  • 注意获取Actor获取控件创建控件的区别
  • webUI添加的Echarts图表注意窗口大小自适应隐藏overFlow
  • 控件添加到视口,默认全屏显示,需要调节控件显示大小
  • 注意性能消耗较大的函数:TickForEachLoopCastTo
  • 蓝图通信中的子控件调用事件分发器类型转换蓝图接口事件与函数用法与区别
  • 不需要的控件注意从父项中移除,减少资源占用
  • TimeLine中的输入节点playplay from start区别
  • Va Rest解析JSON节点Get String FieldGet Array FieldAs ObjectGet Object

此文章持续不定时更新

工程文件:后续放出

引用:

https://blog.csdn.net/weixin_47373639/article/details/127493246
https://blog.csdn.net/weixin_43635045/article/details/124148736
https://space.bilibili.com/66389753

你可能感兴趣的:(数字孪生DEMO,ue4,大数据,智慧城市,虚幻,经验分享)