UE4中抛体物理模拟UProjectileMovementComponent

这篇具有很好参考价值的文章主要介绍了UE4中抛体物理模拟UProjectileMovementComponent。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.简述

背景:实现抛体运动,反弹效果,抛物曲线等功能
通用实现可以使用spline绘制,物体按照下图接口可以根据时间更新位置

USplineComponent:GetLocationAtTime(Time, CoordinateSpace, bUseConstantVelocity)

为处理碰撞反弹等,本文考虑使用UProjectileMovementComponent相关 纯工具类组件 继承自UMovementComponent
UE4官方文档:
UProjectileMovementComponent

ProjectileMovementComponent会在tick期间更新另一个组件的位置,如果更新的Component开启了模拟物理,那么只有初始速度initial velocity非0时才会影响发射,物理模拟将会在这里接管。

2.使用方法

在BP中添加组件ProjectileMovement
UE4中抛体物理模拟UProjectileMovementComponent

在BP里设置默认参数,可以设置抛体的初始速度、最大速度、模拟反弹、每帧更新旋转、匹配速度方向、重力影响、加速度量级等
UE4中抛体物理模拟UProjectileMovementComponent
或者在BP侧 spawn时设置
UE4中抛体物理模拟UProjectileMovementComponent
或在构造函数中设置UProjectileMovementComponent组件的相关属性:

if(!ProjectileMovementComponent)
{
    // Use this component to drive this projectile's movement.
    ProjectileMovementComponent = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileMovementComponent"));
    ProjectileMovementComponent->SetUpdatedComponent(CollisionComponent);
    ProjectileMovementComponent->InitialSpeed = 3000.0f;
    ProjectileMovementComponent->MaxSpeed = 3000.0f;
    ProjectileMovementComponent->bRotationFollowsVelocity = true;
    ProjectileMovementComponent->bShouldBounce = true;
    ProjectileMovementComponent->Bounciness = 0.3f;
    ProjectileMovementComponent->ProjectileGravityScale = 0.0f;
}

3.绘制抛物曲线

匀变速运动的位移公式:S = Vt +0.5a * t^2,对应实现每帧运动的距离MoveDelta

FVector UProjectileMovementComponent::ComputeMoveDelta(const FVector& InVelocity, float DeltaTime) const
{
    const FVector NewVelocity = ComputeVelocity(InVelocity, DeltaTime);
    const FVector Delta = (InVelocity * DeltaTime) + (NewVelocity - InVelocity) * (0.5f * DeltaTime);
    return Delta;
}

4.绘制抛物曲线

可以根据上文原理绘制抛物曲线参考下图
UE4中抛体物理模拟UProjectileMovementComponent文章来源地址https://www.toymoban.com/news/detail-473682.html

到了这里,关于UE4中抛体物理模拟UProjectileMovementComponent的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4/5数字人Metahuman与Style3D的使用【二、布料模拟】

    目录 鼠标点击布料模拟: 让布料模拟可以跟着动画序列: 有穿模情况: 多件衣服替换:  关卡序列中使用缓存:  效果: UE4/5数字人Metahuman与Style3D的使用【一、Style3DAtelier软件制作smd格式衣服并导入ue】_多方通行8的博客-CSDN博客 在经过之前的讲解和使用,大家应该把衣服

    2024年02月11日
    浏览(33)
  • 【UE4】UE4蓝图 文本自动换行

    该方法将字符串分割成同等长度的数组及换行后字符串 使用示例 结果 获得字符串 蓝图代码:复制以下内容并直接粘贴到蓝图中 宏代码 使用示例 结果 获得数组 代码:复制以下内容并直接粘贴到蓝图中 宏代码 同时输出两种结果 同时输出函数蓝图 宏蓝图 内容详情: 使用示例

    2024年02月16日
    浏览(35)
  • UE4/UE5 动画控制

    工程下载 ​ ​​​​​​​​​​​​​https://mbd.pub/o/bread/ZJ2cm5pu   蓝图控制sequence播放/倒播动画: 设置开启鼠标指针,开启鼠标事件 在场景中进行过场动画制作 设置控制事件

    2024年02月09日
    浏览(37)
  • UE4 UE5 一直面向屏幕

                        一直面相屏幕,方法很简单 新建一个蓝图,如下添加组件: 蓝图如下: Rotation Actor :需要跟随镜头旋转的物体 Update:一个timeline(替代event tick 只是为了循环) Timeline: 蓝图直接可以复制:网址

    2024年02月04日
    浏览(45)
  • 【虚幻引擎】UE4/UE5插件

    Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。 BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数,可以在蓝图中直接调用。 ContentOnly:创建一个只包含内容的空白文件 Editor Toolba

    2024年02月05日
    浏览(46)
  • 【虚幻引擎】UE4/UE5 材质

      基础颜色(BaseColor) :材质本身的颜色,例如绿色蓝色等 金属度(Metallic) :金属度,材质是否含有金属光泽 粗糙度(Roughness) :粗糙或者平滑度,物体表面的粗糙程度 自发光(EmissiveColor) :物体本身是否发光 透明度(Opactity) :物体表面是否透明,适用于 半透明(Translucent)、

    2024年02月02日
    浏览(49)
  • 【虚幻引擎UE】UE4/UE5 新人科普向

    Unreal Engine是当前最为流行的游戏引擎之一,具有丰富的游戏开发功能和强大的游戏引擎渲染能力。 UE5官方文档:UE5官方文档非常详细,介绍了UE5的各个功能和应用,适合入门学习和深入探究。链接:https://docs.unrealengine.com/5.1/zh-CN/ UE5中文社区:该社区聚集了大量的UE5开发者,

    2024年02月09日
    浏览(50)
  • 幽灵行者ue4崩溃怎么解决?幽灵行者ue4崩溃原因深度解读及全套解决方案

    UE4崩溃通常是由于多种原因引起的,如虚幻引擎版本过旧、GPU驱动程序过时或损坏、注册表设置错误等。那么幽灵行者ue4崩溃怎么解决呢?下面一起来看看吧! 一、原因 1. 硬件兼容性问题 •显卡驱动不兼容:过时或错误的显卡驱动可能导致与UE4引擎的交互出现问题,引发崩

    2024年04月26日
    浏览(35)
  • UE4/5:通过Blender制作BlendShape导入【UE4/5曲线、变形目标,blender形态键】

    UE4/5里面,我们经常可以在一些骨骼模型上面看到相关的曲线,如Metahuman里面就是通过这个曲线来改变人物的脸部表情。 而这里笔者将教导如何去制作这种曲线。 这种曲线都是存在于骨骼模型上的,所以我们要么直接制作骨骼模型导入ue,要么做一个普通的模型,然后导入

    2024年02月03日
    浏览(48)
  • ue5,ue4(虚幻5)安卓触摸

    这个是单方向的,如果要用双方向的,就是 x和y同时运用的话建议用向量2d(变量),把它分割成x和y就可以了,我门平时在网上见到的触摸都是:按下到连续,我这个方法是按下-连续-停止,记住,y的变量要是负数,还有就是,灵敏度调大的时候,屏幕会跳动,由于x和y的屏

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包