使用UE4动画蒙太奇实现分层动画
目标
在之前的博客《学习UE4官方第三人称模板中的内容》中,角色已经可以移动和跳跃了。这一篇将会在之前的基础上,增加一个“拳击”动作,而且想要在移动与跳跃的同时做“拳击”动作,即“分层动画”。学习过程中我参考了《使用分层动画 | Unreal Engine Documentation》。
首先,想讨论两个话题:
谈动画混合
动画序列由动画师产出。然而在实际运行中,角色需要做的动作并非和动画序列中一模一样,而是基于一些动画序列的“混合”。这里的“混合”包含两种意思:
- 基于一个权重值,来平滑过渡多个动画。例如通过“移动速度”来混合“步行”和“跑步”。UE4中用BlendSpace来解决。
- 让某一个骨骼层级播放一个动画,而其他的播放另一个动画,这正是这一篇的目标。
谈蒙太奇
“蒙太奇”其实是个很抽象的概念,似乎并没有明确的定义,不过共识可能是:“它是关于镜头和组合的艺术”。
而在UE4中,动画蒙太奇是一个资源。在我看来它算是对原始动画序列的一层“抽象封装”。它似乎和多个功能有关,“分层动画”只是其中一个。在这一篇博客中将只关注“分层动画”方面的内容。
0. 准备资源
我下载了这个资源包想获得其中的动作(先放到另一个工程中):
选择了其中一个打拳的动画,名为19_Frank_Punch_Right_Straight_Inplace
:
导出fbx,然后导入我的工程:
1. 创建动画蒙太奇
右键拳击的动画,创建动画蒙太奇。
资源名为19_Frank_Punch_Right_Straight_Inplace_Montage
打开动画插槽管理器:
添加一个新插槽命名为UpperBody
将蒙太奇组设置为UpperBody
2. 编辑角色蓝图
角色蓝图中,需要获得用户的输入,这样之后的动画蓝图便可以获取这一信息来决定是否要做出拳击的动作。
不过,首先先增加用户输入映射:
增加一个叫punch_key_down
的bool变量。
这个值由Punch
输入来决定:
3. 编辑动画蓝图的AnimGraph
AnimGraph中想要实现的逻辑是只让上半身播放UpperBody
插槽的动画。
为此,先找到上半身对应的关节,名字是spine_01
:
AnimGraph的连接情况:
需要注意的是:
- MyStateMachine需要使用两次,但是其输入只能连接一处,因此需要先做一个它的缓存,使用这个缓存两次
- 插槽选择
UpperBody
- 混合节点中需要制定基于的骨骼是
spine_01
4. 编辑动画蓝图的事件图表
节点连接情况如下:
需要注意的就是:
punch_key_down
是我自定义的MyCharacter
中的变量,因此获得的Pawn变量需要转换为这个类型。- 剩下的逻辑就是判断这个蒙太奇是否在播放,如果不在播放的话就播放他。
5. 效果
使用UE4动画蒙太奇实现分层动画相关推荐
- UE4动画重定向与动画蒙太奇(播放动画)
1.首先选择动画重定向 2/选择要重定向得骨骼,然后选择保存文件夹. 3.在创建好的动画里创建动画蒙太奇 3.点击K播放动画 打开人物蓝图,把创建好的动画蒙太奇添加过去,这样只能添加一个动画. 4.如 ...
- android 属性动画 弧形,CSS分层动画可以让元素沿弧形路径运动
CSS 的 animations (动画) 和 transitions(变换)擅于实现从点 A 到点 B 的直线运动,运动轨迹是直线路径.给一个元素添加了 animation 或者 transitio ...
- UE4 C++入门——动画蒙太奇 学习笔记
UE4 C++入门--动画蒙太奇_哔哩哔哩_bilibili 1.创建动画蒙太奇 2.选择角色的骨架 SK_Mannequin(模型)_Skeleton(骨骼) 3.蒙太奇组 视频中可以看出ExoG ...
- 随机攻击动作(动画蒙太奇,动画蒙太奇插槽,蒙太奇数组)
实现效果: 本案例实现攻击动作的随机播放. 原理: 动画蒙太奇保证在同一个插槽下,利用随机访问蒙太奇数组中的蒙太奇对象,实现随机播放. 一:动画蒙太奇 选择动画资源,创建动画蒙太奇.注意:本案例是实现 ...
- CSS3: 利用分层动画让元素沿弧形路径运动
原文:Moving along a curved path in CSS with layered animation 翻译:涂鸦码龙 译者注:部分代码示例在原文中可以看效果(作者写在博文里面了-), ...
- UI设计动效\动画素材模板|分层分步骤学习动效设计
动效意味着充满生命和兴奋,为静态事物增添了生命.然而,在软件方面,动效不仅是为了获得乐趣,而且是为了解决问题. 搜UI SOOUI 带来UI设计动效\动画素材模板,分层分步骤学习动效设计.从可临摹分层 ...
- UE4超过20万个动画角色的优化实战
最近我们的任务是制作一个需要实时支持数千个动画角色的,同时还要为场景中的多个动态灯光.密集粒子效果以及照片级环境和角色预留足够的性能.最终我们实现了单一场景中超过20万个动画角色的流畅运行. 1.问题 ...
- UE4虚幻引擎UI界面动画制作!
UE4虚幻引擎UI界面动画制作! 创建一个动画 然后选择某个控件! 找到某些属性!然后key帧! 关于怎么播放动画呢! 这样子呢!当你开始 可以自定义函数,外部MainUI调用!
- html 路径线条动画,CSS分层动画可以让元素沿弧形路径运动
CSS 的 animations (动画) 和 transitions(变换)擅于实现从点 A 到点 B 的直线运动,运动轨迹是直线路径.给一个元素添加了 animation 或者 transitio ...
最新文章
- 结巴分词和自然语言处理HanLP处理手记
- 在Java 17中偏向锁可算是废了
- c语言javapython哪个好-C#、C++、Java、Python 选择哪个好?
- 盘点:2020年PMCAFF最受欢迎的文章!
- SpringMVC实现文件的上传与下载
- java 教程 嵌入式,嵌入式狗的 JAVA 入门笔记·1
- 牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案
- 做了6年的Java,docker端口映射无法外部访问
- php int类型思索
- 【BZOJ】1969: [Ahoi2005]LANE 航线规划
- 目标检测——数据增强的学习笔记
- Xshell 5 注册码
- 大田第一次和「 IDO 老徐 」连麦:诊断个人 IP
- bamboo 启动报错,无法正常访问
- win10系统事件查看器如何打开 Win10事件查看器怎么使用
- FTP上传和WEB上传的区别
- JavaScript学习笔记(25) JavaScript.then()这个方法是什么意思?
- Hbuilder如何替换选中代码快捷键
- 在CentOS 8 下yum install curl时报错
- C++ 按行读取数据文件,每行以tab分隔