90天入门UE引擎开发--学习日记(32/100)

第一人称

新建一个角色类,重命名

9cc924c3005042bc9f585ec6feda0462.png

加载手的模型

 加载骨骼动画(idle)

 调整手在摄像机下面的位置以及旋转,调整摄像机位置(可以参考第一人称模板)771717bc5d024133bd28c9f038663408.png

将MyFirstPerson拖到场景里(为了区分原模板,更改材质)

9676ffe18d27417d9bc0b5032166a7b4.png

414050d82bb745078ec292fb7c32a332.pngf3e68eb5299b494aafdf7e8d00194e60.png

 更改颜色

074edad78f884fa5a65525bb0767e05c.png

更改玩家控制权(这样子游戏模式视窗就是我们自己的视窗了)

自己的:

d1689cb44bf74082a63fcd444e37b5f0.png

原先的改为禁用

79f1581ad74b480cab3e3398790262f7.png

 添加枪的模型

重命名Gun

cedfb20b29d4426bb9eec7a4db059e1e.png

调整装备位置

打开骨骼动画窗口

选择一个比较平稳的动画

 插槽:UE4里通过把模型放在插槽下面来调整位置(通过调整插槽位置旋转)(有相应节点来控制的)

8922679430c14f66af12da5994aa057f.png

选择手部关节右键添加插槽,重命名为GunPoint

 095975c8a1f4492dbc82f336835830e4.png

右键预览资产添加枪(并调整好枪的位置)

 1849f72760d741dc87a1288d4f8cf465.png

绑定骨骼和枪

在蓝图的construction scrip定义枪和骨骼的父子级关系,插槽上复制黏贴插槽的名字

81f4a795f04741f6af833e39335f8e17.png

手枪就绑定好了

 

 做动作的交互蓝图

从UE5有了新的变动Enhanced Input in Unreal Engine | Unreal Engine 5.2 Documentation

新的设置如下图

旧教程:

(Action Mappings用于一次性的动作,Axis Mappings用于延续性的动作)

Add Movement Input必须要有移动组件才能使用

Yaw是全身旋转,Pitch是摄像机旋转

826b5000e7fa447aa77df27d3e82a424.png

补充:按shift加速跑

b65db73e9a2f4ad69c4f396377bb2041.png c2b5c9b0953649c08b7ebdafeaa6dbba.png

拾取枪/捡枪

1ce127a95f434e9f9d4f6b5ccac88c83.png

 ffdfd21e68464f59871de3bf79fd03ab.png

注意这里拖的是SK_FPGun,不是旁边橙色的那个

 83bc8f5e5aa145049e5856dc876c9d74.png

 现在的角色蓝图类里面把枪的碰撞改为无,不可视

c5527f766e1d4d9f875bed332820ba96.png

adcaea2859d748cd8d481d6fcebd9ddf.png

断开现在的构造脚本(手里握的枪)

枪的类型为SkeletaMeshActor:

 手枪开火

1.射线类

LineTranceByChannel节点

364704c8cdbf42079512b288e9351c39.png

 21f4d500c59e4a6f8300d7193254813c.png

 3000是射线的长度(也可以理解为子弹距离)

这里draw debug type为persistent,意味着射线一直都在3bf518ef67ab48c3a7398a6d7933c547.png

 添加冲击力与火花(测试了之后发现乘以300000才得劲儿)

575cee6110684831a224e334bd4a8ad2.png

 添加拿了枪才允许开火的限制

新建一个bool变量fire

默认设为否

 fire触发事件前面多加了一个branch,fire

丢枪(回家作业)

新建一个布尔变量 ThrewGun

在cast to 枪筛选节点提升一个变量得到MyGun

给枪一个弹远的冲击力,以免每次都重新捡回来

Vel Change 

给予力的大小就会影响速度,与物品的质量无关(这样子无论是怎么样的枪被丢出去的效果都会差不多,不会因为质量相差太大)

 2.子弹类

新建一个子弹类(组件要放在球体碰撞体同级位置,作用整个actor组件)

7705b43e37fd48a98757c7f78690569c.png

 ProjectileMovement组件

可以让当前蓝图实例对象呈现出子弹一样的物理效果。

 ProjectileMovement里要改的参数

 (组件状态下没有物理模拟属性)

 283e227e6708413ea639a89e996046ca.png

开火发射子弹:在箭头处生成子弹类的对象

 ProjectileMovement 的追踪功能

 (取消重力)

来到construction scripe定义  回家目标

 

子弹的构造脚本如下连起来

 在构造脚本写完HomingTargetComponent之后,刷新一下下面的SpawActor BP Bullet节点

创建一个actor变量 (对象引用)

 target这个变量就在外面暴露出来,并且可以任意选择要追踪的模型(吸管吸)

 

跟踪还是有点问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值