用4.16版本跟着网上的几篇Montage教程(分别是对应4.6和4.8版本)做,遇到各种各样的问题,经过各种搜索和分析,最终终于搞定了。

4.16版的Montage和之前有了不小的变化,总结如下:

Root Motion

以前Montage里可以设置是否使用RootMotion,现在已经不复存在了,关于是否使用Root Motion的设置改在了每个动画序列自身

这就一定要注意,如果不希望一个Montage使用Root Motion(例如官方教程里的边行走边打拳,打拳的动画是不需要Root Motion动画的),就要保证所有使用到的Montage都去掉了使用Root Motion。否则会出现这样的场景:行走中按下打拳按键时角色会突然停下来原地打拳。

Play Montage 节点

首先Play Montage的节点发生变化了:

注意In Skeletal Mesh Component 一定要连接,不然不起作用。这里要输入的是Skeletal Mesh组件

然后需要给Starting Section指定起始Section的名称

另外根据4.16的更新说明,Play Montage现在变成了一个异步节点,可以在任何蓝图里调用,我尝试在Character的蓝图里调用发现确实是可以的,这样会使原来的蓝图简化很多。

最后,还增加了很多输出事件,应该是非常有用的。

简化蓝图

官方教程中(4.6和4.8版本的都一样)Montage只能放在动画蓝图中,为了避免重复执行,做了很麻烦的Branch和Do Once之类的设置。还在动画蓝图里设置了一个Punch 事件用于播放Montage。实际上这是最蠢的做法。

稍微聪明点的做法

Punch 事件还是得在动画蓝图中定义(这是没办法的,必须的),但是可以去掉上面Branch 和 Do Once和后面的部分。

而在角色蓝图中的相应按键处通过Mesh获取Anim BP,Cast 以后 执行里面的Punch 事件。

4.16以后最优的做法

在动画蓝图里彻底删掉MontagePlay的事件,只保留AnimNotify的事件。

在角色蓝图中直接调用Play Montage! 简直太棒了。

补充

最后再补充一下做Montage过程中常犯的糊涂:

4.16中Montage的一些变化的更多相关文章

  1. [译] OpenStack Kilo 版本中 Neutron 的新变化

    OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些 ...

  2. Lua的函数调用和协程中,栈的变化情况

    Lua的函数调用和协程中,栈的变化情况 1. lua_call / lua_pcall   对于这两个函数,对栈底是没有影响的--调用的时候,参数会被从栈中移除,当函数返 回的时候,其返回值会从函数处 ...

  3. (转)OpenStack Kilo 版本中 Neutron 的新变化

    OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些 ...

  4. JEP解读与尝鲜系列4 - Java 16 中对于 Project Valhalla 的铺垫

    这是 JEP 解读与尝鲜系列的第 4 篇,之前的文章如下: JEP解读与尝鲜系列 1 - Java Valhalla与Java Inline class JEP解读与尝鲜系列 2 - JEP 142 ...

  5. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

  6. WPF中监视DependencyProperty的变化

    WPF中监视DependencyProperty的变化   周银辉 尽管一个类会提供很多事件,但有时候还是显得不够,比如说前两天我就以为WPF的ListBox控件会有ItemsSourceChange ...

  7. error LNK2019: 无法解析的外部符号 __imp__GetStockObject@4该符号在函数_WinMain@16 中被引用

    编译链接报错 error LNK2019: 无法解析的外部符号 __imp__GetStockObject@4该符号在函数_WinMain@16 中被引用 解决方案: 在代码中添加链接库gdi32.l ...

  8. VMware Workstation 16中安装macOS Big Sur,AMD版

    VMware Workstation 16中安装macOS Big Sur,AMD版 目录 VMware Workstation 16中安装macOS Big Sur,AMD版 准备阶段 步骤一:安装 ...

  9. Java 16 中新增的 Stream 接口的一些思考

    这里先提一个题外话,如果想看 JDK 不同版本之间有何差异,增加或者删除了哪些 API,可以通过下面这个链接查看: https://javaalmanac.io/jdk/17/apidiff/11/ ...

随机推荐

  1. 20191127 Spring Boot官方文档学习(6-8)

    6.部署Spring Boot应用程序 在部署应用程序时,Spring Boot的灵活打包选项提供了很多选择.您可以将Spring Boot应用程序部署到各种云平台,容器映像(例如Docker)或虚拟 ...

  2. linux 通配符与正则表达式

    linux通配符和三剑客(grep.awk.sed)正则表达式是不一样的 通配符一般用户命令行bash环境,而linux正则表达式用于awk.grep.sed

  3. [Git] 020 stash —— Git 中的”皮姆粒子“

    0. 我准备模拟两种情况 第一种 第二种 情况简析 仓库中的最新版本发现 Bug,需要立即修复 当前在 "dev" 分支中工作到一定程度,尚不能提交,但删之可惜 ps: 在分支中没 ...

  4. Vue 2.0 入门系列(15)学习 Vue.js 需要掌握的 es6 (2)

    类与模块 类 es6 之前,通常使用构造函数来创建对象 // 构造函数 User function User(username, email) { this.username = username; ...

  5. 使用Postwoman

    postman的脱单产品postwoman 一.安装 1.使用git进行安装: git clone https://github.com/liyasthomas/postwoman cd postwo ...

  6. KMP字符串匹配 模板 洛谷 P3375

    KMP字符串匹配 模板 洛谷 P3375 题意 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next.(如果 ...

  7. 使用git命令删除branch

    使用git删除server上的一个branch注意事项: 1. 使用命令:git push origin –delete 分支名 (分支名称需要去掉origin,如果有),   git branch ...

  8. iOS 审核app被拒绝的各种理由以及翻译

    原 apps被拒绝的各种理由以及翻译:http://my.oschina.net/201003674/blog/356189#OSC_h1_3 1. Terms and conditions(法律与条 ...

  9. if [ $? -eq 0 ]; then该语句是什么含义?

    某个shell脚本 # mkimage.sh echo "make and copy android images" ./mkimage.sh ]; then echo " ...

  10. MapReduce单机提交(待稿)

    MR 提交方式源码 提交方式: 1,开发-> jar -> 上传到集群中的某一个节点 -> hadoop jar ooxx.jar ooxx in out 2,嵌入[linux,wi ...