AnimDynamics简介
转自:http://www.cnblogs.com/corgi/p/5405452.html
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属性后效果:

AnimDynamics简介的更多相关文章
- [UE4]AnimDynamics简介
AnimDynamics简介 Author:Jia Zhipeng AnimDynamics是UE4.11 Preview 5测试版本发布的AnimationBlueprint中的新节点.功能是通过简 ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
随机推荐
- 替换元素(replace,replace_if,replace_copy,replace_copy_if)
replace 审阅range中的每个元素,把old_value替换为new_value template <class ForwardIterator,class T> void rep ...
- 论 大并发 下的 乐观锁定 Redis锁定 和 新时代事务
在 <企业应用架构模式> 中 提到了 乐观锁定, 用 时间戳 来 判定 交易 是否有效, 避免 传统事务 的 表锁定 造成 的 瓶颈 . 在 现在的 大并发 的 大环境下, 传统事务 及其 ...
- GoJS 在 vue 项目中的使用
GoJS 在 html vue 项目中的使用,github地址:https://github.com/cag2050/gojs_demo GoJS 在 vue-cli 2.x 项目中的使用,githu ...
- Python random模块sample、randint、shuffle、choice随机函数
一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).ra ...
- Spring 4 中重定向RedirectAttributes的使用
RedirectAttributes 的使用 @RequestMapping(value = "/redirecttest", produces = "applicati ...
- npm install 包 失败解决方法
在ionic 安装包的时候 npm install xxx --save 出现如下错误 查看日志文件 14 verbose stack SyntaxError: Unexpected token &l ...
- JavaScript跟踪-Piwik
1.先决条件:使用新版本的JavaScript跟踪代码 2.JavaScript跟踪代码的功能 (1)自定义在Piwik中显示的页面名称 (2)手动触发目标转化 (3)考虑一个主机的“别名”,不将这个 ...
- 回看《例说FPGA》---DDR2控制器集成与读写测试
回看<例说FPGA> ---DDR2控制器集成与读写测试 1.DDR2 IP核的配置 需要弄清楚的选项主要有: PLL reference clock frequency Memory c ...
- C#性能优化总结
1. C#语言方面 1.1 垃圾回收 垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意. 1.1.1 避免不必要的对象创建 由于垃圾回收的代价较高,所 ...
- 有了Jenkins,为什么还需要一个独立的部署系统
需不需要一个独立的部署系统是很多企业用户在构建持续交付流程中经常困惑的一个问题.也经常有用户会问我们,现在已经有Jenkins,它自身提供了丰富的部署插件(如WebSphere部署插件.Tomcat部 ...