之前有人发了一个官网弓箭工程,看起来觉得很复杂 ,也不方便个人做扩展。the lab中的弓箭体验就很顺畅,以这个体验做目标参考,这里一起讨论下实现方法。
1.模型制作 绑定(我只用2个骨骼,一个在弓上就是手握弓的轴心出,一个在弦的受力点上。绑定效果不是很好,弓弦受力与弓的物理变形效果没做出来)
2.在ue里做2个碰撞体,跟踪这2个骨骼轴心。
3.箭模型的轴心设置在尾端,同样尾端(就是轴心位置)加一个碰撞体。
4.通过箭尾端的碰撞体与弦上的碰撞体碰撞触发,带动弦上骨骼的位移模拟弦受力的效果,(驱动骨骼的位置用组件里的PoseableMesh)。受力后没有碰撞用timeline做弦的回弹。
5.箭发射,发射事件自行定义。用ProjectileMovement组件模拟抛物线射击效果。
最近有时间将这个完善了一下 功能
1.箭的轴向锁定 用 attach,位置自己随便定 根据自己合适的位置调整。
2.实现拉弓箭偏移效果 我的这个是负x轴 。用拿箭的控制器减掉拿弓控制器得到距离 Dis。赋值给箭的-x轴就得到偏移效果。
3.满弓半弓射程实现。将之前箭的射程3000 改成Dis*50,就可以得到一个动态偏移量影射到动态射程效果。
最后要注意的就是 箭射出的一瞬间,要detach,并且不能被控制器影响、控制器震动关闭等等效果。
箭碰到弓 附加到一个位置
同时拿到左右控制器的距离Dis 。error value变量是修整Dis值的误差。
之前箭的射程永远都是3000 这里Dis*50影射的 。
最后箭离弦的时候。关掉所有影响。
|