什么是向量?向量的运算 | 循环/Gate门节点等使用【UE5蓝图】第三章...
Game艺视界原创文章原创 39362 1
实名

通过了实名认证的内容创造者

发布于 2023-5-19 18:14:05

您需要 登录 才可以下载或查看,没有账号?注册

x
#什么是向量既有大小又有方向的量;值由三个数字组成(X,Y,Z), 用于表示位置、旋转、缩放等
在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段
箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的只有大小,没有方向的量叫做数量(物理学中称标量)

d81060fd2e8123e61bdecae3f619857a.png

来到我们蓝图继续创建向量;编译后我们在细节面板展开可以看到(X,Y,Z)


b686e7a059e8d45d73c990be28eb4521.png

获取



设置向量
按住Alt拖拽,我们想只控制Y轴这时候我们需要创建向量




创建向量,就可以单独控制任何一个轴向。这有点像材质编辑器中Mask



#向量运算

向量的相加运算(向量+向量):v1+v2=(v1.X+v2.x,v1.y+v2.y,v1.z+v2.z)

向量相乘运算(向量*小数):v*f=(v.x*f,v.y*f,v.z*f)

相加





相乘



#旋转体

与向量类似,用于便是3d空间中的旋转围绕我们设置的轴向旋转

创建旋转体变量




#变换

变换是结合了位移、旋转、缩放的数据集,通常用于同时获取游戏对象的位置、旋转、缩放等数据



变换所包含信息:位移,旋转,缩放



#通过变换操作我们关卡对象
01-首先我们选中关卡中的对象【注意对象设置:可移动】




02-打开关卡蓝图,右键创建选中对象实例




03-设置位置、旋转、缩放



移动后




#变量的算数运算
加、减、乘、除、求余
运算符
描述
实例
+
把两个操作数相加A+B将得到50
-从第—个操作数中减去第二个操作数A-B将得到-10
*
把两个操作数相乘A*B将得到200
/
分子除以分母B/A将得到2
%%是求余运算符,也叫模除运算符,用于求余数。
取模运算符,整除后的余数
B%将得到0
就是除法取余数
10除上3等于3余1
所以10%3=1
++
自增运算符,整数值增加1A++将得到11
--
自减运算符,整数值减少1A--将得到9







#变量的比较运算
变量的比较运算为布尔,因为比较只有两种结果【数值与字符串】

运算符名称
描述实例
==等于比较对象是否相等(3 == 5) 返回 False
!= 不等于比较两个对象是否不相等(3 != 5) 返回 True
> 大于x>y返回x是否大于y(3 > 5) 返回 False
< 小于x(3 < 5) 返回 True
>=大于等于x>=y返回x是否大于等于y(3 >=5) 返回 False
<=小于等于x<=y返回x是否小于等于y(3 <= 5) 返回 True

默认值与运算符值做比较
如默认值不满足比较条件的值返回False(错误的;不正确的;不真实的);满足返回True(正确,真实)

我们先做一个大于测试




满足条件与不满足调节的结果









字符串的比较:注意不能用我们上面的运算符




我们比较相等



不等



相等



向量比较




#01-获取按键输入

01.获取键盘按键;02-获取鼠标按键输入

我们在蓝图图表中搜索:键+空格+输入你想设置的按键







#02-获取鼠标输入




鼠标按键测试




#03-分支(Branch)节点
于判断指定条件是否满足,如果条件True,执行True输出节点的逻辑,如果条件为False,执行False节点的逻辑




默认值30:大于18成年人,通过



默认值12:小于18未成年,不通过



#04-序列节点(Sequence)

可以将一个长的顺序执行代码划分成段,更便于管理
注意:序列节点是单线程的。分段会按照引脚(Pin)的顺序执行


这两条结果显示完全相同:在【事件图表】中排版不同,方便我们看清节点逻辑关系和修改

王老师上午有一节数学课李老师是下午美术课
王老师上午有一节数学课
李老师是下午美术课




#05-流程控制(For Loop)
对Firstlndex到LastIndex的每个索引(包含)执行LoopBody作用:类似于编程中的for()循环语句,每经过一次循环Index+1



输入接口介绍
First Index开始的索引(下标)
Last Index结束的索引(下标),当Index和Last Index值相同时,将会结束循环
输出接口介绍
Loop Body每次循环都会触发执行与其相连的节点
Index当前循环的索引(下标)
Completed结束循环时才会触发执行与其相连的节点
在0-8时候我们执行Loop Body;超过8我们执行Completed




#06-For Loop with Break-节点对Firstindex到LastIndex的每个索引(包含)执行LoopBody。如执行进入中断,循环将退出,不执行剩余的指数
作用:类似于编程中的for()循环语句加上break语句,每经过一次循环Index+1,



输入接口介绍
First Index开始的索引(下标)
Last Index&#8205;结束的索引(下标),当Index和Last Index值相同时,将会结束循环
Break当该接口被触发时,将会停止循环执行Completed连接的节点
输入接口介绍
Loop Body每次循环都会执行与其连接的节点
Index当前循环的索引(下标)
Completed当循环结束时将会执行与其连接的节点

判断:满足后停止继续向下执行,不满足继续执行




#07-While Loop-节点(循环节点)1、WhileLoop节点:只要满足循环条件,一直执行节点
2、与For循环节点的区别是: For循环节点在循环时需要指定循环的次数,While循环节点没有指定次数,只要满足条件,会一直执行,所以While循环很容象造成死循环



[td]
输入接口介绍
Condition连接判断条件,当结果为True时将会执行LoopBody连接的节点,否则执行Completed连接的节点
[td]
输出接口介绍
Loop Body当判断结果为True时,将会执行与其连接的节点
Completed当判断结果为False时,将会执行与其连接的节点

这里我们说一个新的节点++

默认值+1然后再赋值给自己我们可以这样写01【加2或3或其他数可以这样写】

我们也可以用一个新的节点++(02形式)结果是一样

整数和浮点数的++



开会人数达到20开始统计,达到30人停止统计人数;默认值每次运行+1




#08-Do N节点

当执行到第N次后,功能将不在执行。如需再次执行需要执行一次Reset
[td]
输入接口介绍
N&#8205;执行次数
Reset复位
[td]
输出接口介绍
Exit&#8205;&#8205;输出节点&#8205;
Counter当前执行次数



当我们鼠标执行到6次时候就不在执行




这时候如果我们需要继续执行下去就需要Reset(重置)然后我们鼠标左键右可以从1-6开始执行



#09-Do Once节点

只执行一次,重置后再次执行
[td]
输入接口介绍
Reset&#8205;复位(运行即执行,右键复位才可以再次执行)
Start Closed
启动关闭(默认运行启动即执行,勾选后需要先重置然后才会执行)
[td]
输出接口介绍
Completed完成






#10-DoOnce Multiinput节点
多个事件输入,但只执行一次,除非执行Reset
先按鼠标左键会打印A,这时再按鼠标右键就不会打印B了,除非按鼠标中键执行重置后,再按鼠标左键才会打印B,反过来同理



#11-Flip Flop节点
输出两个功能,第一次执行A功能;第二次执行B功能;第三次再次执行A,反复执行
[td]
输出接口介绍
A第一次输出
B第二次输出



#12-Gate节点
又称门节点,即当门打开时,随时可以执行功能,当门被关闭后,就不能执行功能
具体思路是在进入碰撞时打开门节点,在走出碰撞时关闭门节点
[td]
输入接口介绍
Enter输入
Open
打开(执行输出Exit)
Close
关闭(停止执行输出Exit)
Toggle
打开或关闭(打开状态会关闭,关闭状态会打开)
Start Closed
开始是否关闭(打√默认门关闭状态)
鼠标左键开门可以看到输出字符串
鼠标右键关闭(关闭后再按鼠标左键不在打印字符串文字)
鼠标中间开门后再次按鼠标左键可以再次打印字符串内容
Toggle默认是开门我们鼠标左键可打印;然后右键关闭再按左键不在打印,我们再次按下右键就打开了然后左键再次打印(如果感觉说的有些绕就上手尝试下很好理解!节点会判断当前是开始/关闭然后执行相应操作)



#13-Multi Gatet节点
默认情况下依次执行输出,当所有输出完成后不再进行输出,输出节点可以增加还可以循环随机
[td]
输入接口介绍
Reset重置(可在中途复位重新开始)
Is Random
是否随机(开始有可能先执行out3或其他)
Loop
是否循环
Start Index
开始(下标)
输出

Out 0
输出(可添加)



01-鼠标左键按照顺序执行,结束后我们需要按右键才可以再次执行

02-随机:会在我们三个输出随机选择一个优先输出,如果我们重置后再次执行随机它会排除我们第一次随机参数在剩下参数中选择一个优先输出(被随机过的,下次随机不在随机选择中。例如:第一次随机000那么下次随机就会在AAA和###中选择一个一次类推,000也会随机只是不会在第一次随机出现了)

03-Loop(循环)-循环操作不必重置(一直开门状态)执行完毕自动调用重置继续执行
04-Start Index:指定从哪里开始输出



#14-Branch节点常用的判断节点,相当于IF-else

Condition:判断条件,直接勾选为true,不勾选就默认为false



#15-Sequence节点可同时进行多个输出,而且是同时进行的





下期我们分享数组相关内容
文章部分内容引用来源:官方文档///B站[url=https://docs.unrealengine.com/5.2/zh-CN/https://www.bilibili.com/video/BV1KB4y1278E?t=5.5https://www.bilibili.com/video/BV1YM411g7Fm?t=4.2B]https://docs.unrealengine.com/5.2/zh-CN/https://www.bilibili.com/video/BV1KB4y1278E?t=5.5https://www.bilibili.com/video/BV1YM411g7Fm?t=4.2B[/url]站搜索:UE5蓝图还有很多UP主做了基础入门简介感谢大佬们干货分享https://michaeljcole.github.io/wiki.unrealengine.com/Blueprint_Fundamentals/#variable_and_data_type坚持与您分享最有价值“干货”内容,本期分享就到这里,我们下期见!

评分

参与人数 3元素币 +15 活跃度 +9 展开 理由
欣妍 + 2 + 4 就秀吧你
ArsenMerab... + 5 + 4 看上去好像还行
elep_hant_... + 8 + 1 这就是大佬的世界嘛

查看全部评分

微信公众号:Game艺视界
使用道具 <
boss28  发表于 2025-1-21 10:39:37  
2#
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表