首页 > 其他分享 >基于ChatGPT和谷歌3D贴图的虚幻引擎5

基于ChatGPT和谷歌3D贴图的虚幻引擎5

时间:2023-05-20 10:45:07浏览次数:47  
标签:贴图 引擎 Google API 虚幻 ChatGPT 3D

作者:githubdaily
相信大家小时候躺在床上,都曾设想过这么一个场景:
当你闭上眼睛时,感觉身心十分安宁,物理世界慢慢淡出,身体也随着变得飘逸,一切仿佛只剩下呼吸声和心跳声。
一阵微风拂过,你缓缓睁开双眼,发现自己摆脱了地心引力,出现在了天空之上,只要一个想法,便可瞬间穿梭到地球上任意位置。
今天凌晨,国外一位名为 Nils Bakker 的开发者让这个梦想成真了。
他利用虚幻引擎 5.1 + ChatGPT + Google Maps 3D Tiles API,成功打造了一个虚拟空间传送系统!
通过在界面输入地点,系统便会自动将你传送到世界任意角落,你可以在空中俯瞰各个国家的美景,感受地球上不同地理位置的建筑风格、地貌变化。
整个效果颇为科幻与震撼,这里放个视频让大家感受下:
<iframe allowfullscreen="allowfullscreen" frameborder="no" scrolling="no" src="//player.bilibili.com/player.html?aid=698784178&bvid=BV18m4y187s8&cid=1135478132&page=1" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%"> </iframe>
技术实现:https://nilsbakker.nl/portfolio/3d-tiles/
这里面主要用了 3 款当下主流的 AI 工具:虚幻引擎 5、ChatGPT、Google Maps 3D Tiles。
虚幻引擎与 ChatGPT,大家应该都熟悉。
Google Maps 3D Tiles,是 Google 前不久在 I/O 2023 大会上发布的一款新产品,开发者可通过 API,直接获取到跟 Google Earth 相同的可视化地理图像,目前已支持 45 个国家,2500 座城市。
图片
将 Google 3D Tiles 和 ChatGPT 的 API 结合起来,再利用虚幻引擎的能力,让用户能够身临其境般的感受空间穿梭。
不得不说,作者的创意以及动手能力是真的强。
ChatGPT 提供地理位置导航建议以及位置坐标,再让虚幻引擎 5 呈现逼真的画面效果,并最终由 Google 3D Tiles 生成真实的地理画面。整个流程一气呵成,没有一项多余。
下面让我们跟作者一起打开脑洞,看下整个流程的具体实现。
首先,每当输入框中的 ChatGPT Prompt 被触发时,会自动生成一个答案。该答案包含:XY 地理坐标、城市名称、国家、地点景区介绍。
图片
将这些答案数据进行拆解,便可以做到:
借助 Google Maps API 用 XY 坐标来检索位置数据,再通过位置获取到对应的 3D 几何图形。
一旦获取到位置与 3D 几何数据,则让玩家实现空间穿梭,从当前地点跳转到另一地点。
为了隐藏位置跳转时的加载过程,作者还用了一个颇为巧妙的方法。那就是让虚幻引擎 5 的 Niagara Particles 功能来实现粒子动画效果。
把粒子效果整合,做成一个空间穿梭通道,就像下面这样:
图片
由于地球上不同位置的地理高度不同,为了确保玩家不会突然出现在地下或者天空上方,还需要检查当前视角距离地面的高度,让玩家可以在适当的位置出现。
同时,在穿梭成功后,也不能直接到达目的地,而是要先让玩家滑行一段距离,再向目的地缓慢靠近,给他们欣赏沿途美景的机会。
通过利用当下各个主流的 AI 工具所提供的接口,再加上作者自身的开发能力,仅用了短短一周,作者便完成了整个项目的开发。
本来作者还打算加入天气数据的变化,但是他只设定了一周开发时间,所以很遗憾该功能本次没能加上。
等代码整理完毕后,作者未来会在 GitHub 开源此项目,大家可以期待一下。
图片
随着各项 AI 技术愈加成熟,开发者使用工具的门槛也在逐步降低,未来基于现有的工具以及 API,我们可以快速做出很多创意无限的应用与产品。
我们需要做的,就是将各类 API 以及技术进行整合,进而打磨出一整套方案,并扩展延伸至各行各业。
之前我说过,ChatGPT 以及各个大语言模型的能力还在被不断挖掘,当下我们能探索到的仅为冰山一角。
将 ChatGPT 智能助理的能力整个到诸多产品线上,才是它真正大放异彩的时候!
国外作者原始内容

利用虚幻引擎5.1的强大功能,当谷歌地图3D图块API发布时,我开始了一次技术冒险。怀着雄心勃勃的目标,我挑战自己,在紧迫的一周期限内完成这个项目。在此页面上,我尝试分享创建此交互式体验背后的过程。

结合Google 3D磁贴和ChatGPT API,我利用虚幻引擎的功能创造了一种身临其境的体验,突破了可能性的界限。利用虚幻引擎蓝图的灵活性,我无缝集成了ChatGPT API,使用户能够输入提示并接收动态响应。

提示:

Answer the following question in the following format. 

<< Latitude, Longitude >> ((City Name)) [Country name] ^^a fun fact about this place^^

nothing else. Use that format include the <, > and {} and ().

[USER INPUT]

每次用户输入提示时,它都会使用提供的提示触发特定功能。然后,ChatGPT 提供的答案分为四个部分:XY 坐标、城市名称、国家和有关该位置的有趣事实。然后,这些数据首先被解析为3D文本并放置在虚拟世界中。

但是,我们如何通过准确的位置数据使这个虚拟世界栩栩如生呢?这就是Google Maps API发挥作用的地方。我利用另一个函数来翻译从提示中获得的 XY 坐标,以通过 Google 地图 API 检索位置数据。然后,位置数据用于获取3D几何体,这要归功于出色的Cesium平台和虚幻引擎插件。

收集位置和几何数据后,将 3D 几何加载到指定位置。将用户从其当前位置无缝过渡到新位置。我使用Niagara粒子系统创建了一个门户机制,巧妙地隐藏了过渡过程。

当然,我们不能忘记瞬移的实用性。由于世界各地的地面关卡各不相同,我们需要确保玩家不会在地下或高出地面的地方生成。通过检查地面碰撞,我们确保玩家在离地面适当的高度生成。此外,为了增强用户体验,我们将玩家从预定位置稍微向后放置,让他们在到达时清楚地看到目的地。

检测地面的蓝图功能

在传送过程中,我们还设置了位置的时间。尽管当前的实现会生成时间的随机值,但最初的计划是从另一个 API 检索实际时间和天气数据。但是,鉴于项目的时间限制,该功能将不得不等待未来的开发。

这个项目是一次非常有趣和有益的经历。它展示了虚幻引擎的巨大功能,并展示了集成Google 3D磁贴和ChatGPT等工具所带来的无限可能性。如果您对这个项目有任何疑问,请随时与我们联系。我非常乐意分享更多见解!

标签:贴图,引擎,Google,API,虚幻,ChatGPT,3D
From: https://www.cnblogs.com/botai/p/UnrealEngine5.html

相关文章

  • 我写了本开源书:《3D编程模式》
    大家好,我写了本开源书,罗列了我从自己的实战项目中提炼出来的关于3D编程(主要包括“3D引擎/游戏引擎”、“编辑器”开发)的各种编程模式本书的在线阅读地址在这里:在线阅读本书的源码在Github中,欢迎star,感恩您:Github地址本书的写作花了我300多个小时,将近3个月的全职写作,凝结了我一......
  • ChatGPT 推出 iOS 应用,支持语音输入,使用体验如何?
    最近,OpenAI宣布推出官方iOS应用,允许用户随时随地访问其高人气AI聊天机器人,此举也打破了近几个月内苹果AppStore上充斥似是而非的山寨服务的窘境。该应用程序是ChatGPT的首个官方移动应用程序。ChatGPT软件程序在去年推出后迅速获得了超过1亿用户,这也让技术行业火速......
  • 数字孪生智慧储能电站3D可视化云平台
    电能作为现代社会的运转和发展的基础,是民生最基本的保障,其稳定性对国家经济发展至关重要。建设背景电力系统是一个稳态平衡系统,发电站的总发电功率需要等于用户端的总发电功率。如果两者不一致,就会导致整个电力系统的不稳定或故障。储能电站在各种电力能源和电力需求之间进行缓冲调......
  • 如何在代码开发中便捷使用 ChatGPT 协助开发
    在五一节前后,抽空测试了下网上推荐的开发环境和开发插件,在这里推荐给前后端代码开发的同胞们。方法一:IDEA安装插件bito习惯使用IDEA开发代码的同胞,可以尝试直接在IDEA中安装插件bito,注意操作过程中需要注册账号并登录。如下。安装成功后在右侧栏可以看到快捷导航图标,如下。......
  • 文心一言 VS 讯飞星火 VS chatgpt (18)-- 算法导论4.1 5题
    五、使用如下思想为最大子数组问题设计一个非递归的、线性时间的算法。从数组的左边界开始,由左至右处理,记录到目前为止已经处理过的最大子数组。若已知A[1..j]门的最大子数组,基于如下性质将解扩展为A[1..j+1]的最大子数组:A[1..j+1]的最大子数组要么是A[1..j]的最大子数组,要么是......
  • 【做题记录】CodeForces343D Water Tree
    题面翻译给出一棵以\(1\)为根节点的\(n\)个节点的有根树。每个点有一个权值,初始为\(0\)。\(m\)次操作。操作有\(3\)种:将点\(u\)和其子树上的所有节点的权值改为\(1\)。将点\(u\)到\(1\)的路径上的所有节点的权值改为\(0\)。询问点\(u\)的权值。\(1\le......
  • 文心一言 VS 讯飞星火 VS chatgpt (18)-- 算法导论4.1 5题
    五、使用如下思想为最大子数组问题设计一个非递归的、线性时间的算法。从数组的左边界开始,由左至右处理,记录到目前为止已经处理过的最大子数组。若已知A[1..j]门的最大子数组,基于如下性质将解扩展为A[1..j+1]的最大子数组:A[1..j+1]的最大子数组要么是A[1..j]的最大子数组,要么是......
  • VTK 显示3D网格线
    在VTK9.1.0在Windows10+VS2019+Qt5.15.2环境下编译安装的Qt例子中,想显示球体表面的网格线。通过vtkExtractEdges来实现显示全部网格线QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());vtkNew<vtkRenderer>renderer;vtkNew<vtkNam......
  • 矩池云教程|体验 OpenAI 最近推出的 3D 生成模型 Shap-E!
    Shap-E是由OpenAI最近推出的3D生成模型,使用者可以通过简单的文字或图像进行三维模型的生成,OpenAI认为相比于点云的生成模型Point-E,Shap-E的收敛更快。本文将展示如何在矩池云上体验3D模型生成。Shap-E:https://github.com/openai/shap-e矩池云:https://matpool.com/1、安装......
  • [learn from chatGPT] [vba] 如何使用 Collection 或 Dictionary 对象来代替数组
    在VBA中,`Collection`和`Dictionary`对象可以用来代替数组。它们的主要优点是可以动态地添加、删除和查找元素,而无需调整数组大小。下面是一个简单的例子:```SubUseCollection()DimmyCollectionAsNewCollection'添加元素到Collection中myCollection.Add......