[UE4]AnimDynamics简介
AnimDynamics简介
AnimDynamics是UE4.11 Preview 5测试版本发布的AnimationBlueprint中的新节点。功能是通过简单物理模拟计算,更新骨骼位置。优点是避免了使用纯物理模拟时计算量过大,并且能实现近似物理效果。尤其用于悬垂物(辫子,锁链等自由下垂物体)上可以获得非常好的结果。
原理:在AnimDynamics节点里,能够绑定RigidBody关联到指定Bone上,通过计算RigidBody的动量,在风,重力影响下更新动量,以及考虑附加的线性和角度的Limit,刷新Bone和RigidBody的位置。
代码位置:AnimNode_AnimDynamics类
关键代码:
FVector Force = FVector(0.0f, 0.0f,UPhysicsSettings::Get()->DefaultGravityZ) * InBody->Mass *InBody->GravityScale;
Force += WindVelocity *InBody->WindData.WindAdaption;
InBody->LinearMomentum += Force *DeltaTime;
InBody->NextPosition =InBody->Pose.Position + InBody->LinearMomentum * InBody->InverseMass *DeltaTime;
一、Preview预览功能
Preview Live :实时预览功能,能够看见绑定的Box
Show Linear Limits : 显示线性空间限制
Show Angular Limits : 显示角度限制
Show Planar Limit : 显示平面限制
Show Collision Spheres : 显示碰撞球体,用于计算平面限制
二、Setup
Chain 是否使用链式Body绑定。若true则Bound Bone是Chain起点,Chain End是Chain终点,链中每个Bone都会绑上一个RigidBody。若false则只能选择BoundBone,对单个Bone绑定控制。
Bound Bone :Body绑定的骨骼
Chain End :使用链子时的终点
Box Extents :Body的ShapeBox的大小,用于计算惯性张量InverseTensor。Box体积大小与惯性大小成正比。
Local Joint Offset :Body相对于Bone的偏移值。偏移后类似于钟摆效果。
Gravity Scale :重力作用比例,重力大小使用UPhysicsSetting中的Gravity
Linear Spring :是否线性反弹,body会尝试弹回初始位置
Angular Spring :是否角度反弹,body会尝试和指定角度目标一致
Linear Spring Constant :计算线性反弹时的系数,越大反弹力越强
Angular Spring Constant :计算角度反弹时的系数,越大反弹力越强
三、Wind
Enable Wind :是否受风影响。
Wind Scale :风力影响系数。
四、Constraint 限制
设定目的是限制物理模拟过程Body的Transform,通过限制能避免Body运动到非预期的位置,在预期范围内运动。
Constraint Setup 限制初始化
Linear XLimit Type,LinearYLimit Type,Linear ZLimit Type:X,Y,Z方向上的限制类型,Free是自由运动,Limited则下列限制生效。
Linear Axes Min, Linear AxesMax :线性运动的范围。若都是0则锁定线性位置。
之后角度限制尚未尝试,推测与线性限制差不多,限制Body的角度运动范围。
五、Planar Limit
平面限制,能够设定一个平面,避免Body运动超过该平面。CollisionType和Sphere Collision Radius设定碰撞类型和球半径,用于计算Body和平面碰撞信息。
六、Settings
Alpha值用于融合当前位置和经过AnimDynamics计算后的位置。0则不受该节点影响。
七、示例
节点设定:
无AnimDynamics节点影响时:
受AnimDynamics节点影响,设置好绑定Body属性后效果:
[UE4]AnimDynamics简介的更多相关文章
- AnimDynamics简介
转自:http://www.cnblogs.com/corgi/p/5405452.html AnimDynamics简介 AnimDynamics是UE4.11 Preview 5测试版本发布的An ...
- UE4物理模块(三)---碰撞查询(下)SAP/MBP/BVH算法简介
在上一文中介绍了碰撞查询的配置方法: Jerry:UE4物理模块(三)---碰撞查询(上)zhuanlan.zhihu.com 本篇介绍下UE4的各种零大小的射线检测,以及非零大小(带体积)的射线检 ...
- Unreal Engine 4(虚幻UE4) GameplayAbilities插件入门教程(一)
本文系笔者的实习生分享会内容预备兼GameplayAbilities的初学者教程. 本文适合已有四十天UE4开发经验的初学者. 参考资料:https://wiki.unrealengine.com/G ...
- UE4 Sockets多线程TCP通信
转自:https://blog.csdn.net/zilisen/article/details/75007447 一.简介 UE4引擎是提供了Sockets模块和Networking模块的,博主在研 ...
- Unity3D学习笔记(一):Unity3D简介
Unity3D简介一.什么是Unity.U3D?全面整合的专业引擎 二.这个软件能做什么?1.内容:3D2D游戏,教育,建筑,网页,VRAR,家庭娱乐系统2.媒体:PC平台,主机,移动,VR 1.UE ...
- 基于Lua的游戏服务端框架简介
基于Lua的游戏服务端框架简介 [转]https://gameinstitute.qq.com/community/detail/106396 基于lua的游戏服务端框架简介 1. 引言 笔者目前在参 ...
- 【UE4 C++ 基础知识】<6> 容器——TMap
概述 TMap主要由两个类型定义(一个键类型和一个值类型),以关联对的形式存储在映射中. 将数据存储为键值对(TPair<KeyType, ValueType>),只将键用于存储和获取 映 ...
- 【UE4 C++】 UDataAsset、UPrimaryDataAsset 的简单使用
UDataAsset 简介 用来存储数据,每一个DataAsset 都是一份数据 可以派生,系统自带派生 UPrimaryDataAsset 方便数据对象的加载和释放 可以引用其他的 UDataAss ...
- 【UE4 C++】 Config Settings配置文件(.ini)
简介 常见存储路径 \Engine\Config\ \Engine\Saved\Config\ (运行后生成) [ProjectName]\Config\ [ProjectName]\Saved\Co ...
随机推荐
- tp框架实现防止非法登录
<?phpnamespace Admin\Controller;use Think\Controller;class UserController extends Controller {//登 ...
- sizeof(结构体) = ?
关于结构体大小怎样计算的文章,我想网上一搜到处都有人总结,本人之所以在此基础上还要发表这样的文章是想用最简单的计算方法来总结前人给出的结论,以致我们在以后在对结构体相关编程中不会陷入字节对齐的陷阱中. ...
- linux 登录档配置分析
登录档的重要性 解决系统方面的错误: 解决网络服务的问题: 过往事件记录簿: Linux 常见的登录档档名 /var/log/cron: 你的 crontab 排程有没有实际被进行? 进行过程有没有发 ...
- 错误的CPU时间片大小概念
1.错误的CPU时间片大小概念:http://blog.csdn.net/blue_morning/article/details/7843581 2.时间片:http://baike.baidu.c ...
- jQuery与Ajax的应用——《锋利的jQuery》(第2版)读书笔记3
第6章 jQuery与Ajax的应用 jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是load().$.get()和$.post()方法,第3层是$ ...
- 【译】RabbitMQ:路由(Routing)
在前一篇中,我们构建了一个简单的日志系统,我们已经能够广播消息到许多的接收者.在这一篇中,我们希望增加一个特性,让订阅消息的子集成为可能.例如,我们可以将重要的错误日志存放到日志文件(即,磁盘上面), ...
- VS2015 +EF6 连接MYSQL数据库生成实体
VS2015 +EF6 连接MYSQL数据库生成实体 已安装软件:VS2015 XAMPP Control Panel(Mysql服务器) ...
- JavaWeb 学习007-4个页面,5条sql语句(添加、查看、修改、删除)2016-12-2
需要复习的知识: 关联查询 =================================================================================班级模块学 ...
- PHP使用命名空间:别名/导入(Aliasing/Importing)
1.导入,就是使用use操作符 2.在一个类中导入了另一个类之后,当前的命名空间仍然是当前类的命名空间 3.注意对命名空间中的名称(包含命名空间分隔符的完全限定名称如 Foo\Bar以及相对的不包含命 ...
- Apache htpasswd命令用法详解
一. 基础 htpasswd建立和更新存储用户名.密码的文本文件, 用于对HTTP用户的basic认证. # /usr/local/apache/bin/htpasswd –help Usage: h ...