做C++项目的时候遇到了一个小地图的问题,从网上找了个蓝图的思路,转载一下。

原文:https://www.engineworld.cn/thread-3835-1-1.html

本文使用ue4提供的SceneCapture2D(场景照相机)来创造一个游戏中俯瞰的实时小地图,并将其固定显示在界面左上角。 此例子仅说明正交相机和UI用户界面的基本使用。 首选,我们需要拖入一个SceneCapture2D组件到场景,

此相机默认使用的是透视投影,我们需要在它的属性中设置投影模式为正交投影,即设置属性中的Projection一项,选择Projection Type为Orthographic(正交图),

再为相机指定一个渲染目标,你可以在资源文件夹右键新建一个RenderTarget然后再把它绑定到相机的Texture Target属性上,

至此,相机的设置就完毕。这时候,我们回到场景中,调整一下相机的位置和朝向,让它朝着正下方,
 
可以看到,稍微移动一下相机位置后,刚创建的渲染目标(RenderTarget)上已经发生了变化,该图就是我们需要的场景俯视图;

接下来,我们需要将这张图以UI界面的形式固定显示在游戏视口(ViewPort)上,以实现类似小地图的效果。

我们要用到widget 组件来创建UI,先右键新建一个widget蓝图,
 
然后双击新建的这个widget蓝图,进入UI编辑界面,在左侧控件栏找到Image控件将其拖入中间的设计视图(该视图相当于游戏中的主视口,拖入的控件位置将以同样的相对位置显示在游戏视口上),然后调整一下位置到左上方,
 
选择该Image控件,在右侧属性找到Brush->Image一项,将其图像设置为我们刚创建的RenderTarget,
 
注意编辑完保存,好了,UI的设置也已完成,那么怎么应用我们的UI呢?很简单,回到主场景,打开关卡蓝图,在蓝图中编写如下逻辑,
 
逻辑很简单,即创建一个widget,选择为我们自己刚新建的widget蓝图,然后将其添加到视口。点击运行,就可以看到效果:

可以看到,在左上角显示了我们的场景俯视图。并且该图是实时刷新的。当然,在此基础上后面可以做的还有很多,例如接下来你可以在蓝图中编写逻辑让正交相机的位置和主摄像机同时移动,即可以看到一个随主角移动的小地图等等。

后续会尝试用C++实现

ue4使用SceneCapture2D创建小地图示例 蓝图的更多相关文章

  1. MFC创建线程示例

    MFC创建线程示例 AfxBeginThread() 创建现场的方法是AfxBeginThread()函数. 在[.CPP]文件定义一个全局变量,决定什么时候退出这个线程. BOOL g_bWillE ...

  2. Oracle中创建触发器示例及注意事项

    1.oracle 中创建触发器示例 CREATE TABLE "CONCEPT"."FREQUENCYMODIFYLOG" ( "FREQUENCYI ...

  3. UE4使用C++创建枚举变量适用于C++与蓝图

    这个月勉勉强强才写了一篇,都快月底了,都还没有写第二篇博客的冲动,证明这个月确实收获甚少,有点状态不佳,懒毒入骨啊.刚刚看了这个月其实已经写了三篇,然而事实是这博客还有另外一个人也在更新文章,博主并没 ...

  4. UE4使用widget创建UI界面播放视频

    我的目的非常简单,点击按钮,播放或暂停场景中的视频 1.准备了一个mp4视频资源,为视频资源创建了一个Media Texture,在Media Player中选择导入进来的视频资源,再为Media T ...

  5. UE4 Hello World 创建第一个UE4工程

    首先先熟悉几个UE4常用的类 AGameMode(控制整个项目的逻辑) The GameMode defines the game being played. It governs thegame r ...

  6. 如何运用TurboDemo创建视频示例

    TurboDemo不仅可以速抓取屏幕截图,而且可高效制作出时尚美观的介绍.演示动画.软件模拟以及使用说明.下面的例子将会告诉使用者们如何分步创建一个视频示例,帮助使用者们快速的上手: 1.开启Turb ...

  7. UE4学习心得:Scene Component蓝图的一个简单应用

    Scene Component是蓝图类中一个不怎么常用的分类(特别是对于新手而言),主要是其实现的功能可以在Actor类中用相同的方法实现,使其作用显得有点多余. 笔者在使用过这个类之后发现其作用更相 ...

  8. IntelliJ IDEA安装scala插件并创建scala示例

    1.http://blog.csdn.net/a2011480169/article/details/52712421 2.http://blog.csdn.net/stark_summer/arti ...

  9. oracle创建HR示例数据库脚本hr_main.sql分享

    需求描述: 今天一同事想要在测试库上进行SQL练习,帮忙安装下这个示例数据库,在此记录下. 操作过程: 1.上传hr_main.sql脚本(10g 11g都可用) 脚本下载链接: https://pa ...

随机推荐

  1. .net core 杂记:WebAPI的XML请求和响应

    一般情况下,restfult api  进行数据返回或模型绑定,默认json格式会比较常见和方便,当然偶尔也会需要以XML格式的要求 对于返回XML,普通常见的方式就是在每个aciton方法进行诸如X ...

  2. Mac安装MySQL-python报错解决

    Mac安装MySQL-pyhton报错 今天在Mac上安装MySQL-python报错,搜遍网络都说什么mysql config路径问题,但是都不行. 解决方案 一开始遇到的问题是: Complete ...

  3. javascript——原型与原型链

    一.prototype 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象. 例如: function Person(age) { this.age = ag ...

  4. python学习 -女神或者男神把微信消息撤回后好慌,有了这个妈妈再也不担心你看不到女神或者男神撤回的消息了(超详解)

    简介 有时候在忙工作,女朋友发了一个消息,就撤回了,但是人天生的都有一颗好奇心,而且在当今这个时代找个女朋友不容易,一个程序猿找一个女朋友更是不容易的.人家好不容易跟你,你还不得把人家当老佛爷侍候着, ...

  5. NOIP 2004 虫食算题解

    问题 E: [Noip2004]虫食算 时间限制: 1 Sec  内存限制: 128 MB 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一 ...

  6. 【深入浅出-JVM】(8):TLAB

    概念 TLAB(Thread Local Allocation Buffer)线程本地分配缓冲区(线程私有分配区,私有分配,公共查看),占用 Eden 区(缺省 Eden 的1%),默认开启,JVM ...

  7. Spring Boot 整合 Shiro实现认证及授权管理

    Spring Boot Shiro 本示例要内容 基于RBAC,授权.认证 加密.解密 统一异常处理 redis session支持 介绍 Apache Shiro 是一个功能强大且易于使用的Java ...

  8. HBaseCon Asia2019 会议总结

    一.首先会议流程. 1. The current status of HBase 2.The advantage and technology trend of HBase on the cloud ...

  9. 74859a颜色信息

    74859a十进制的RGB值为R:116, G:133, B:154. CMYK值为C:24.675, M:13.636, Y: 0.0, K: 39.608 RGB 116, 133, 154 百分 ...

  10. 比赛:大奔的方案solution

    分析: 此题是小奔的方案的改进.小奔的方案思路:倒推,每次都从小到大排序并且保证小号在前,然后使每一个人分到的金币都是上一次加一,直到金币分完或者自己可以存活(投票率大于等于所需概率),如果不行就-1 ...