UE5学习笔记(十)——蓝图基础之操控物体移动

目录

一、一个可移动物体的诞生

1、创建物体

【知识点1】什么是静态网格物体?

2、建立材质蓝图

【知识点2】vectorparameter节点和Vector3节点的区别

二、物体发生移动的三种常用手段

方法1:用rotation+position节点完成

【知识点3】Tick事件节点

方法2:用transform节点完成移动+旋转+缩放

【知识点4】局部坐标和世界坐标

【知识点5】maketransform和makevector的使用

方法3:用set完成单次变化

【知识点6】add(加值)与set(赋值)的区别


一、一个可移动物体的诞生

【目标】创建一个基础带材质可移动的物体

1、创建物体

首先我们需要在关卡编辑器新建一个box的actor,用来移动,新建物体需要打开放置Actor的窗体,如果看不见这个窗体,可以打开window勾选plane actor。

在place actor中,选择形状,找到需要创建的cube,拉到场景中可以获得新建的cube。

以前的版本可能没有形状,还可以选择多边形或者BSP,拉到场景中绘制一个cube。

如果是笔刷绘制的cube,类型和直接建立的cube类型不同,是brush类型,需要手动转化为静态网格物体,可以在details面板中找到转化的按钮。

【知识点1】什么是静态网格物体?

静态网格物体是一个已经完成的模型,可以控制这个物体的边缘碰撞。因为有网格,所以可以识别到非常细致的边缘轮廓。

2、建立材质蓝图

右键打开菜单,新建一个材质文件

新建的材质文件可以看到一个默认的节点内容,具体的用法可以参考我之前写的博文。

UE5学习笔记(二)——3D材质蓝图的常用节点介绍

先为材质赋一个颜色。众所周知颜色值是RGB三维值。这里提供两种赋值方法。

第一种是使用VectorParameter节点进行赋值。

第二种是按住3点击蓝图编辑区生成Vector3进行赋值。

两种方法的节点如下图:

最后将该材质拖到场景的物体上,就完成个这个物体的制作。添加材质之前记得一定要保存,而且保存的时间还是比较长的。

【知识点2】vectorparameter节点和Vector3节点的区别

使用上基本相同,点击左侧的色块直接取色即可,VectorParameter的输出可以允许三种值分别输出,在一些特殊功能中可能用到

【目标达成!】

创建一个基础带材质可移动的物体

二、物体发生移动的三种常用手段

【目标】使物体发生自发的移动

方法1:用rotation+position节点完成

上一节创建好的物体,需要在游戏运行时自发移动。这个行为,可以是全局的,也可以是物体本身的。

如果是全局的,这个逻辑就应该被写在关卡蓝图中,由关卡蓝图,对关卡中的物体做统一调度。

如果是物体本身的,则应该为该物体增加蓝图,使其自身完成运动的行为。

这里先从全局的控制逻辑考虑,也就是说,我们先打开关卡蓝图,完成这个逻辑。

由于前文对于蓝图的基本操作已经说明的非常清楚,接下来的内容,不会再逐步显示需要操作的行为,直接上整体逻辑。

这里的cube是在界面上直接选择需要移动的物体,在这个逻辑下,cube也就越滚越远了。

【知识点3】Tick事件节点

Tick的用法可以类比unity中的Update(),用法是每一帧都会运行一次。非常适合用在一些不需要过多逻辑,开始运行后就稳定循环的内容上。

方法2:用transform节点完成移动+旋转+缩放

这里有两个节点可以使用,通过transform直接实现变化。

但是注意,有一词之差(world/local),使用了不同的坐标系。需要根据实际情况选择使用。

【知识点4】局部坐标和世界坐标

刚才想到了一个很有趣的例子用于区分世界坐标和局部坐标。

对于一个倒立的人来说,脚的方向就是世界坐标的上,头的方向就是局部坐标的上。

【知识点5】maketransform和makevector的使用

可以看出,MakeVector是一个三维值,这个值可以用于很多地方,例如物体的移动,旋转,大小变化,或者是颜色的的变化等。

而MakeTransform就是一个用于对物体位置、角度、大小进行变化的专用值,相当于一次性给出一整套的空间数值。如果是对物体的某一个三维值进行修改,则简单的使用MakeVector就可以了。

方法3:用set完成单次变化

请见逻辑图。这样可以让物体直接移动到位置(1,1,1)。

【知识点6】add(加值)与set(赋值)的区别

在使物体移动时,可能会用到SetActorLocation\AddActorWorldOffsetl两个节点。这两个节点乍一看上去完全一样,但是用法却天差地别。

打一个简单的比方。小明有1个糖果,小明希望自己有3个糖果,于是小红又给了他2个。

这里小红给他的2个就是add(加值),而小明最终拥有的3个就是set(赋值)。

在对物体进行空间变化的时候,会经常使用这两个数据。

当设计目的是物体进行多次变化时,使用的是add。

当设计目的是物体只发生一次性变化时,使用的是set。

【目标达成!】使物体发生自发的移动

猜你喜欢

转载自blog.csdn.net/weixin_35106335/article/details/127441304