37 机器人受伤
快捷键
先按B,再按鼠标左键,生成Branch节点
先按S,再按鼠标左键,生成Sequence节点
1. 击中的物体是不是机器人?
37 机器人受伤
快捷键
先按B,再按鼠标左键,生成Branch节点
先按S,再按鼠标左键,生成Sequence节点
1. 击中的物体是不是机器人?
虚幻四中的常见类
Actor 可以放在世界关卡中的类
Pawn 可以被控制的Actor,可以接受鼠标,键盘这些Input控制
Character: 可以运动的Pawn ,可以使用Movement函数,可以跑跳飞行
Controller 没有物理表现的Actor,用来控制Pawn
射中机器人
1. 机器人对射线无响应?
射线击中机器人,无响应。需要改变Mesh对于摄像的响应。
SetCollisionResponseToChannel 将激光所在的Visiblity这种类型设置为Block
如果想对胶囊体设置就把Mesh改成胶囊体
射击功能实现
1. 如何确定射击打到,没达到?
LineTraceByChannel 射线检测
起点: 摄像头位置
方向:GetControlRotation-->GetForwardVector-->Normalize
向量的数乘 就是向量的缩放
2. 连续射击
SetTimerByFunction
3. 关闭射击
ClearTimerByFucntionName
射击
Sequence 先做0,再做1,动作序列
SetTimeByFunctionName 每个多长时间,做某个动作
机器人动作
BlendSpace
机器人自动寻路
1. 划定寻路的范围
Volumes 中找到 Nav Mesh Bounds Volume, 将这个组件拖入场景中
调整该组件的范围和大小,直到覆盖需要的范围。
选中该组件,按下P。
绿色的范围就可以寻路的范围。
2. 基于AI Controller 创造一个Controller,用来控制机器人运动
AI Move To 只能在AI Controller 使用,作用控制移动。
3. 将 AI Controller 和 机器人绑定
机器人蓝图中的AI Controller 设置为新创建的Controller
问题:机器人移动的时候没有动画,直接飘过来了。
敌人机器人
什么是函数?
函数做个黑箱,不用关心细节
什么是变量?
变量是存储的地方,是个仓库。想用了就去里面取,不用了就存在里面。
产生特效:
1. 特效释放的位置
使用一个箭头辅助,在武器骨骼模型的下面加个Arrow,调整位置。
2. 创建特效
Spawn Emitter Attached
Attach to Component设置为刚加上的箭头Arrow
播放蒙太奇动画
1. 绑定 输入事件
2.动画蓝图里加个Slot
在动画文件中,增加一个 Slot,只有加了这个蒙太奇动画才有可以生效的位置。
3. 触发蒙太奇
Play Anim Montage 选中相应的蒙太奇文件
动画蒙太奇
1. 什么是蒙太奇??
多个镜头的拼接。用在UE4里面就是多个动画的拼接。
同一个镜头拼接多次也是蒙太奇。
2. 怎么创建动画蒙太奇?
新建Animation Montage
将动画拖入编辑栏
如果想循环播放某个动画,在defautl中选中动画,再点击动画即可。
怎么使用混合动画 blend Space?
在动画蓝图中直接拖出 blendSpace ,然后修改相应的参数
得到角色的移动速度
TryGetPawn(拿到角色)-->GetVelocity(拿到速度)-->VectorLength(速度的值)
动画合并 Blend Space 把两个动作合并
拖入两个动画,进入混合界面。
比如一个idle动画,一个run动画,在这两者之间混合。使用一个变量来控制他,是偏向idle还是偏向run。
使用挂点挂载枪械
在人物模型的Mesh上新加一个骨骼模型。
将骨骼模型的Parent Socket 挂载到相应的骨骼节点上。
将新加骨骼模型的旋转,位置都置为
挂载枪:
Animation Sequence
来源:3d软件,制作出的模型动作文件
挂载点加载:
1. 打开一个需要挂载模型的动画文件格式为Animation Sequence
2. 点开Skeleton Tree ,在骨骼上加一个挂点。
Add Socket --》 Add Preview Assert(加一个枪的模型来看效果)
上下看
AddControllerPitchInput
整体不跟着移动:
玩家蓝图 :User Controller Rotation Pitch 勾选
摄像机不跟着移动:
新加一个相机在蓝图中,把相机和模型放在同一级。
GetControlRotation 得到控制角色的旋转向量
CombineRotators 合并两个旋转向量
Add Conroller Yaw Input
增加绕Z轴旋转量
Roll --> X 飞机倾斜
Pitch --> Y 飞机拉升
Yaw --> Z 飞机拐弯
Rotator(Roll, Pitch, Yaw)
MakeRotator(Roll, Pitch, Yaw)
GetForwardVector 从旋转量中得到正向方向 ,如果旋转量都为0,正方向就是X轴的正方向