欢迎光临散文网 会员登陆 & 注册

UE5-《Interaction System Starter Pack》交互系统入门包

2023-06-08 11:30 作者:bili_3493273303780263  | 我要投稿

本教程为UE5 2023年6月份免费资产,个人制作的简单教程,。。。

如果帮助到你了,那就再好不过了

目录

第一章 常见问题

1.1 名字过长

1.2 虚拟阴影

第二章 大致结构浏览

2.1 Content目录

2.2 Blueprint 文件夹

2.3 Core文件夹

2.4 蓝图接口

2.5 枚举

2.7 Blueprint --> Connection文件夹

2.7 Blueprint --> Connection文件夹

2.8 Blueprint --> Objects文件夹

2.9 UI 文件夹

2.6 Blueprint --> Input文件夹

第三章 快速上手--展台示例

Some Doors展台

第四章 蓝图简易分析

技术细节

特点:

  • Buttons 按钮 

  • Pressure Plates 压力板

  • Input Item Slots 输入物品槽

  • Multiple types of doors 多种类型的门 (regular, sliding, and double sliding doors 普通门、滑动门和双向滑动门)

  • Physics-based items 基于物理的item

  • Breakable items 可破坏的item

  • Mineable and interactable foliage 可开采和可交互的植被 (trees and rocks 树木和岩石)

  • Guns 枪械

  • Pickaxes 镐

  • Synced Inputs 状态同步输入

蓝图数量:

    33

输入方式:

    键盘和鼠标(其他输入方式可以轻松添加)

网络复制:

    (目前不支持)。省流,如果玩家1拿着杯子,则玩家2是看不见的(悲)。

支持的开发平台:

    Windows:(支持) Mac:(支持) Linux:没有,谁特么会用Linux玩游戏啊。


fragment 碎片

第一章 常见问题

1.1 名字过长

 一般而言,如果你是ue5.1/5.2的编辑器一般打开都会弹出两个弹窗

    会看见什么项目名字过长什么什么的,这没关系,本事就是用来给我们参考的工程project,最终我们还是会把功能移植到自己的项目中,所以直接无视即可,你要实在是看着不舒服那自己去修改下好了。

1.2 缺失项目设置

    这个也莫得关系,并不是什么对渲染和画面有要求的项目,所以可以不用去管它。会出现这种情况一般是你默认启用的是Dx12,也就是你是Nvidia的RTX卡

如果要开启虚影阴影,那我们就启动SM6即可,但我不建议在学习工程中搞这些,因为太耗费算力和时间。虚拟阴影一般会在lumens中使用。

2,E键控制actor对象的 拾取and丢弃

3,YouTube搜索它

4,压力板对象

5,E键交互,他写了个门的例子


第二章 大致结构浏览

2.1 content目录

可以看见该工程,是常见的标准文件分类排版,贴图/mesh等静态资产,蓝图,ui。


2.2 Blueprint 文件夹

connection目录:

    是存放被连接对象,一般不做主动激活操作

input目录:

    目前存着,开关等输入装置

Items目录:

    一般可交互物品

Objects目录:

    可掉落物品目录

Player目录:

    主角类

Projectile目录:

    子弹类

2.3 core文件夹

core文件夹内,放了个蓝图接口,枚举类型,和一个游戏模式。


2.4 蓝图接口

    蓝图接口

Sync Input State:

    同步状态时触发

Break item:

    物体破裂时触发

Remove Update:

    释放检测时触发

Equip Item:

    装备item时触发

Un Slot Item:

    不晓得

Slot Item:

    吸附item时触发

Drop Item:

    目前不晓得

Pick Up Item:

    捡起物品时触发

Interact With:

    用来检测是否为,可交互物品时,调用


2.5 枚举

枚举可以更清晰逻辑内容。

作者告诉我们,如果后期要添加新类型的物品,需要在此处填写上新的枚举值逻辑。例如:消耗性物品。


2.6 Blueprint --> Input文件夹

input文件夹以输入信号为主,如按钮,压力板,slot。


2.7 Blueprint --> Connection文件夹

一般接受信号接受对象,如门什么的这种。


2.8 Blueprint --> Objects文件夹

这文件夹作者写了几个破坏物,具体意义不明。。。


2.9 UI 文件夹

UI就是UI。



connection对象是最基本的interact对象,例如

门是一个connection,灯条是一个connection,他们都能响应input文件夹内的3个输入对象

未激活
激活

2.3.2 两个关键数组

    我们有两个关键的数组,它决定了物体与物体之间的交互联系。

1,connection 连接数组

    它用来存储我们需要激活的对象

2,同步状态数组

    用于共享当前自身的状态给对方。

我们可以先看


Synced Inputs展台

左按钮input synchronize 数组存着右边的,右边的存着左边的

connecting对象为我们展台上的灯条

未激活时的状态

同步输入状态

激活其中任何一个按钮,我们可以看见都被赋予了相同状态

可以看见,我无论是激活A还是B按钮,他们都会被赋予一个相同的状态。按下,或者弹起。这就是input sync数组的作用。


所以我们可以得知

数组内的对象都会记录同一个状态。


请注意,如果你启用intercat with事件,那么将会为对象开启按E键的交互操作

2.4 item对象

在items文件夹中,有两个重要的actor类,“BP_Item”And"BP_Item_Breakable(可被破坏对象)"。他们在items》master文件夹内,作为父类。

BP_Item_Breakable:

    它的作用是,用来给物体执行可被破坏这么一个逻辑。

在他的构造脚本中,我们有一个fragment数组,用来存储碎片


第三章 快速上手--展台示例

Some Doors展台

双开滑动门

我还以为是什么呢,就是整了两瓣门,各自一边移动。

驱动方式,时间轴控制插值,赋值给对象位置属性。

单开侧门

这个就更简单了,直接绕Z轴旋转就ok了

0-90°

滑动门

直接复制一份BP_Connection_SlidingDoor,然后替换模型。

注意观察,两个插槽在世界中的位置,距离自己设置

把自身引用给压力板,就完成了对象之间的连接

效果如下

如果想控制开关快慢

可以通过设置timeline的播放速度



Input Slot展台

方块吸附插槽

将填入数组的类生成的对象,拖动至亮光处,插槽会自动吸附。

自动吸附,再次按E键,可以取出。

connect the pipes也同理

吸附和物体大小无关,哪怕是颗树也照样能吸附上去




Items和Breakable展台

杯子例子

可以看见,在他的fragment数组中已经提前存好了碎片,这样破裂的时候,就会销毁掉原本的actor,然后在世界中生成这些碎片


Destructible Foliage展台

展示了可被破坏的物体,和破坏完后掉落额外的物体。

自身碎片和额外掉落都是你自己定义的

drops数组额外的掉落物,可以是可破坏的,也可以是item类的

fragment,自身碎片数组。


第四章 蓝图简易分析

如果你想要改变观测距离

你可以自己修改holding distance的距离,比如使用鼠标滚轮,或者UI添加修改数组。


沙漠之鹰-手枪

继承了item,写了个开火逻辑。

由主角调用


稿子蓝图

稿子多了个碰撞和,和破坏接口,手枪那个也一样,不过是写在子弹里的。


2.2 主角蓝图

进来先看下我们的主角被写了什么

2.2.1 PhysicalHandle(物理抓取件)

    说实话我真的不喜欢handle这个词

该组件需要自己去额外研究,我没有怎么用过,但他是整个project中演示物品的重要一环。会让其被抓取的物件,具备物理特征,比如带有速度,冲击力等。

2.2.2 right hand组件

它用来干么呢?

当然是,用来装备武器时的卡槽。告诉稿子应该附加在这个地方


2.2.3 事件开始运行时

    2.2.3.1  hud上加了个widget控件,然后添加到了屏幕上,就是你看到的圆形准星。

    2.2.3.2  事件tick(帧更新)

Cast Ray Function(射线追踪)

    射线追踪不多bb了,基操,我们看后面两个


hand world location 

用于right hand组件当前在世界中的位置

Interact Distance 与物品的交互距离,也即是射线的末端位置

默认author给了1000float

End Ray Rotation

通过相机的向前向量+1000距离,在通过find lookat rotation来将射线末端的物体,旋转至我们面前。

这块作用主要是控制着,手里拿着的物品一直朝着主角的一个方向的旋转

Right Hand Rotation

主要控制物体离我们的远近距离的一个旋转


2,Holding Distance

用来设置相机和物体之间的距离

最终位置= world postin + (forward vector * Holding Distance)





UE5-《Interaction System Starter Pack》交互系统入门包的评论 (共 条)

分享到微博请遵守国家法律