当前位置: 首页 > news >正文

Unreal Engine Simulate Physics

Unreal

  • 📦 **Unreal Engine - Simulate Physics**
    • 📝 定义
    • 🏛 类继承
    • ⚡ 关键特性
    • ⚙️ 常见配置
    • 🛠️ 使用方法
      • 代码方式
      • 蓝图方式
    • 🎮 典型应用场景
    • 🔗 与其他组件对比
    • 📚 小结

📦 Unreal Engine - Simulate Physics


📝 定义

Simulate PhysicsUnreal Engine 中 Actor 或 Component 的一个物理模拟选项

当启用后,该对象会受物理系统(Physics Engine,例如 PhysX 或 Chaos)的控制,从而实现 重力、碰撞、力与冲量 等物理效果。


🏛 类继承

Simulate Physics 并不是一个类,而是 组件(通常是 UPrimitiveComponent 或其子类,如 UStaticMeshComponentUSkeletalMeshComponent)的布尔属性

相关核心类:

  • UPrimitiveComponent → 拥有 SetSimulatePhysics(bool) 接口。
  • UStaticMeshComponentUSkeletalMeshComponent → 常用于实际启用物理。

⚡ 关键特性

  • 真实物理模拟:自动受力、重力、摩擦、阻力、碰撞影响。
  • 动力学交互:支持 AddForce()AddImpulse()AddTorque() 等函数。
  • 与动画解耦:当 Skeletal Mesh 启用物理后,可以脱离动画进行布娃娃(Ragdoll)模拟。
  • 网络复制:支持在多人游戏中同步物理状态。

⚙️ 常见配置

  • Enable Gravity → 是否开启重力作用。
  • Mass → 物体质量,决定受力反应。
  • Linear/Angular Damping → 线性/角速度阻尼,影响运动衰减。
  • Collision Enabled → 必须启用碰撞才能与其他物体交互。
  • Constraints → 可锁定某些轴的移动或旋转。

🛠️ 使用方法

代码方式

UStaticMeshComponent* MeshComp = FindComponentByClass<UStaticMeshComponent>();
if (MeshComp)
{MeshComp->SetSimulatePhysics(true);MeshComp->SetEnableGravity(true);MeshComp->AddImpulse(FVector(0, 0, 500));
}

蓝图方式

  • 选中 Static Mesh / Skeletal Mesh Component → 勾选 Simulate Physics
  • 在事件图中使用节点:
    • Set Simulate Physics
    • Add Force / Add Impulse

🎮 典型应用场景

  • 布娃娃系统:角色死亡后启用物理模拟,变为 Rag Doll。
  • 抛射物/碎片:子弹、石块、爆炸碎片。
  • 物理交互:玩家推动箱子、拾取并抛掷物体。
  • 破碎与破坏:物体在受力后崩解或动态破坏。

🔗 与其他组件对比

特性Simulate PhysicsProjectileMovementComponentCharacterMovementComponent
控制方式完全由物理引擎驱动由组件计算并施加速度专门为角色控制设计
精确度真实物理响应近似物理的可预测运动规则化的人物运动
常用场景碎片、布娃娃、动力学物体子弹、火箭、魔法弹道玩家角色、NPC

📚 小结

  • Simulate Physics 并非类,而是物理模拟开关,核心在 UPrimitiveComponent
  • 启用后,物体交由物理引擎驱动,可实现真实物理效果。
  • 常用于 布娃娃、物理交互、动态碎片 等场景。
  • 对于 可控角色或抛射物,往往结合 CharacterMovementComponentProjectileMovementComponent 使用,而不是单纯依赖物理模拟。

http://www.xdnf.cn/news/1348687.html

相关文章:

  • 线段树01
  • 20250822 组题总结
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘uvicorn’问题
  • 北京-测试-入职甲方金融-上班第三天
  • 嵌入式第三十五天(网络编程(UDP))
  • GPS欺骗式干扰的产生
  • DSPy框架:从提示工程到声明式编程的革命性转变
  • 声网SDK更新,多场景抗弱网稳定性大幅增强
  • GaussDB GaussDB 数据库架构师修炼(十八)SQL引擎(1)-SQL执行流程
  • week3-[二维数组]小方块
  • ArrayList线程不安全问题及解决方案详解
  • 硬件驱动---linux内核驱动 启动
  • 云原生俱乐部-k8s知识点归纳(7)
  • RCE的CTF题目环境和做题复现第4集
  • Unreal Engine UActorComponent
  • base64认识实际使用
  • #Datawhale 组队学习#8月-工作流自动化n8n入门-2
  • LLM实践系列:利用LLM重构数据科学流程01
  • 简单聊聊多模态大语言模型MLLM
  • LeetCode100 -- Day4
  • RCE的CTF题目环境和做题复现第3集
  • RoboTwin--CVPR2025--港大--2025.4.17--开源
  • 大模型微调训练资源占用查询:Windows 10 查看 NVIDIA 显卡GPU状态教程(替代 Ubuntu 下 watch nvidia-smi)
  • Python精确小数计算完全指南:从基础到金融工程实践
  • 二、高可用架构(Nginx + Keepalived + MySQL 主从)
  • StarRocks启动失败——修复全流程
  • AI生成技术报告:GaussDB与openGauss的HTAP功能全面对比
  • 【COMSOL】Comsol学习案例时的心得记录分享(三)
  • 期货Level2五档订单簿0.25秒级高频分时及日频历史行情数据使用指南
  • 刷题日记0822