小地图问题 求大拿解决

[复制链接]
查看2384 | 回复3 | 2018-5-31 13:39:59 | 显示全部楼层 |阅读模式
能解释一下这个图片里面的蓝图思路吗
TIM截图20180531133704.png
UnrealEngineer | 2018-5-31 17:06:33 | 显示全部楼层
1. Event begin play 开始事件创建了一个MiniMap的控件,并投射到用户视口(add to viewport)

2. Event Tick 每一帧获得该控件里的Image25元素,这个元素应对应一个材质A。

3. 由Set Vector ParameterValue 节点可推测,该材质A内有一个向量参数叫做Position,该向量参数我推测是用来控制小地图上标示点的位置的。
该节点就是在每帧获得控件元素材质A之后,立即更新材质A的position参数,从而更新了标示点位置

4. 接下来余下节点就是用来计算 上述材质A的position参数的
首先由Get World Transform和Get Local Bounds这两个节点可以推测得知, Ditu 这个变量应该是一个网格物体用来代表游戏地图,
首先需要了解一下Inverse Transform Location这个节点的作用【注1】,那么接下来就简单了。
通过Get World Transform节点获得Ditu在世界坐标下的变换量,以及通过Get Actor Locationl来获得玩家在世界坐标下的位置,将这两个结果作为Inverse Transform Location 的参数,即可计算得到玩家在Ditu的本地坐标下的位置B,
同时利用Get Local Bounds 来获得Ditu的模型尺寸,只取其在自身X轴和Y轴的长度,组成二维向量C,利用B除以C,就获得了第3步中所需要的材质A的向量参数position,
从这里可推知position的两个分量应该范围都在(-1,1)之间。

注1:关于Inverse Transform Location
如图所示,要求小圆形在正方形自身坐标下的位置信息,
我们已经可以用Get World Transform来获得正方形在世界坐标系下的变换量,然后利用Get Actor Location来获得小圆形在世界坐标下的坐标,然后就可以利用Inverse Transform Location节点来计算出小圆在正方形自身坐标下的位置。
其实也就是已知一队学生站成一排,已知小红排第几个,面朝那个方向,又知小明排第几个,那么你就可以推知小明站在小红的哪个方向,离她又有几个人了,一样的道理。


(楼主我对这几个节点这么啰嗦不是因为我以为你不懂,而是已经之前有好多人都提出过类似的问题了,可能有其他不明白的人也会查看到这个帖子啦)
捕获.PNG
回复 支持 反对

使用道具 举报

橙子的腐败 | 2018-6-4 20:17:15 | 显示全部楼层
UnrealEngineer 发表于 2018-5-31 17:06
1. Event begin play 开始事件创建了一个MiniMap的控件,并投射到用户视口(add to viewport)

2. Event T ...

谢谢大佬
回复 支持 反对

使用道具 举报

mydream0822 | 2018-6-19 14:41:55 | 显示全部楼层
楼主能不能把这个小地图的工程共享给我,我想学习一下这种小地图的做法
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7

主题

296

回帖

726

积分

初阶编码师

积分
726