一:添加映射
项目设置->输入->操作映射
添加映射Grapple,设置按键为V
二:打开人物蓝图
2.1 设置变量 IsGraping,ForwardVector,Location , 绳子长度
2.2设置人物
2.2.1为网格体添加组件cable(揽绳组件)和一个staticmesh(静态网格体)并且将静态网格体改名为TmpMesh
2.2.2 设定cable的父节点为右手
选中cable,在细节栏找到“插槽”,选择右手,并且将末端插槽设为TmpMesh
2.2.3 仅对TmpMesh进行插槽操作
2.2.4 同时将tmpmesh和cable设为不可见
三:写逻辑
1.右键添加按键响应grapple
2.
3.设置角色的面朝方向和角色旋转
4. 对甩出的绳子进行碰撞检测
5. 当甩出绳子,未检测到碰撞时
其中节点lerp(vector)的B输入接口的值从这里获取
6. 既然5是丢出绳子,那6是回收绳子
7 . 折叠节点
将第5和第6内的函数节点都折叠,成这样
其中,第5点
第6点
8. 设置退出抓钩的状态
9. 当抓钩抓到物体时,检测抓到的物体是否能进行钩爪(是否含有标签GrappleWall)
从创建节点actor has tag
10. 框中选中的分支节点输出为false时(判断端口检测为,钩爪抓到的物体不含有GrappleWall标签)
此时将折叠的两个节点复制下来
input pin值从射线检测节点的out hit location节点连接
并且PullGrapple_2节点的输出端口连接到 突出抓钩的状态
11 当抓钩抓中的物体含有GrappleWall标签时,
A
B
C
D
其中,A图的Input pin和D图的break vector的 In vec的值都从这里来
总览
12. 添加静态网格体
创建静态网格体后,在细节栏搜索tag,添加标签GrappleWall