查看: 345|回复: 6

[引擎各个功能] 【使用附加动画 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-25 13:41:02 | 显示全部楼层 |阅读模式



动画混合这一概念实际上就是在单个 character 或骨骼网格体上的两个或更多动画之间进行流畅过渡。在虚幻引擎 4 中,可使用多种方法应用此类混合:即使用 混合空间,使用基于加权偏差或 alpha 值结合两个动画的叠加方法,或者直接应用现有姿势的覆盖。

您还可以将动画直接发送到骨架中的特定骨骼和其所有子对象。例如,您可以从 Character 奔跑的动画开始,然后选择性地将射击动画应用到该 Character 的上身区域。最终会生成奔跑和射击同时进行的 Character,本页面上的以下步骤将讲解此内容。

本页面的内容:

      
设置要混合的动画

更新 Character 蓝图

设置动画图表

调整混合设置
     
对于本指南,我们已经使用 Blueprint Third Person 模板创建了新项目,并启用了 默认资源。

我们还会使用 Animation Starter Pack,您可通过 商城 免费下载。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



下载后,您可以从启动程序,通过 Add To Project 按钮将 Animation Starter Pack 添加到您的项目中。
设置要混合的动画
在本部分中,我们为玩家设置了 Character,并对将要用于移动动作的动画数据做一些修改。

打开项目,在 内容浏览器 中的 Game/ThirdPersonBP/Blueprints 文件夹下,打开 ThirdPersonGameMode 蓝图。

在 Default Pawn Class 下,单击下拉菜单,然后选择 Ue4ASP_Character。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



编译 并 保存,然后关闭蓝图。

在 内容浏览器 中,打开 Game/AnimStarterPack 文件夹。

右键单击 Fire_Shotgun_Ironsights 动画,依次选择 Create 和 Create AnimMontage。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



您可以通过在上图所示的搜索窗口中键入 “Fire” 来筛选窗口。

随意重命名 Montage,然后打开 Montage,单击放大镜图标。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



此时将打开 Anim Slot Manager,我们将使用该管理器创建 Slot,这可在按资源文件名称调用 Slot 时用于混合。

单击 Add Slot 按钮,然后将 slot 命名为 UpperBody,然后 Save 并关闭窗口。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



单击 Montage Group 部分中的下拉菜单,将其更改为 DefaultGroup.UpperBody,然后关闭窗口。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



现在,我们已将此 Montage 与 DefaultGroup.UpperBody 关联,从而使其在调用 Slot 时播放。
更新 Character 蓝图
接下来,我们将更新 Character 蓝图,以便我们可以判断何时响应用户按下射击按钮。

在 内容浏览器 中的 Game/AnimStarterPack 下,打开 Ue4ASP_Character 蓝图。

找到 Crouching 部分,然后删除 InputAction Crouch 事件(带有 Warning!)符号。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



此节点上存在警告,因为我们未将项目设置为使用 “Crouch” InputAction 事件。

在图表中 右键单击,然后添加 C 键事件,并如下图所示进行连接。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



现在,我们已将 crouch 与 C 键按键事件关联,您可以随意更改此输入。

在 MyBlueprint 窗口中,单击 Add Variable 按钮以创建 Boolean 变量。

将变量命名为 Fire Button Down,然后单击眼睛图标以使变量公开。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



在图表中 右键单击,然后添加 Left Mouse Button 按键事件。

按住 Alt,将 Fire Button Down 变量拖入图表,以创建 Set 节点。

重复以上步骤(或复制 Set 节点),然后如下图所示进行连接。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



请确保 按下 鼠标左键 时 Fire Button Down 为 True,松开 时为 False。

编译 并 保存,然后关闭蓝图。
设置动画图表
在本部分中,我们将设置动画图表,然后将需要混合的节点放置在当前姿势和射击武器动画之间。

同样,在 Game/AnimStarterPack 下,打开 UE4ASP_HeroTPP_AnimBlueprint 动画蓝图。

在 MyBlueprint 窗口中,打开 AnimGraph。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



从 Locomotion 状态机连出线来,然后搜索并添加 New Save cached pose。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



此时,我们将从 Locomotion 状态机得到生成后的姿势,并将其存储于缓存姿势中,以便可以在其他地方使用。

为缓存姿势命名,如 LocomotionCache。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



在图表中 右键单击,然后添加 Use cached pose 'LocomotionCache'(或您随意命名的缓存姿势)。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



从 Use cached pose 节点连出线来,然后搜索并添加 Layered blend per bone 节点。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



Layered Blend Per Bone 节点可让我们从骨架上的某个指定骨骼处起,将不同的动画混合在一起。

复制并粘贴 Use cached pose 'LocomotionCache' 节点,然后从中连出线来,添加 Slot 'DefaultSlot' 节点。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



在 Slot 节点的 Settings 部分中,单击下拉菜单,然后选择 DefaultGroup.UpperBody。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



将 Slot 连接到 Layered blend per bone 节点上的 Blend Poses 0 针,然后将后一节点的输出连接到 Result。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



AnimGraph 完成了,但我们仍需修改 Layered blend per bone 节点上的某些设置。
调整混合设置
最后,我们要更新混合动画的方式,以使上身区域播放一个动画,同时下身区域播放另一个动画。

单击 Layered blend per bone 节点,然后展开 Layer Setup 部分,单击 + 号。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



在 Bone Name 下输入 spine_01,然后将 Blend Depth 设置为 1,选中 Mesh Space Rotation Blend。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



借助这些设置,我们可以从 spine_01 骨骼开始,将射击 AnimMontage 混合到骨架上。

在 MyBlueprint 窗口中,打开 EventGraph。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



从 Cast To Ue4ASP_Character 节点的 As Ue 4ASP Character 针连出线来,然后添加 Get Fire Button Down 节点。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



此处将告诉我们玩家是否按下射击按钮。

按住 B 键并在图表中 左键单击,以创建 Branch 节点,然后将该节点连接到 Set Crouching。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



对于 Condition,将其插入 FireButtonDown 针。

在图表中 右键单击,然后添加 Montage Is Playing 节点。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



将 Montage Is Playing 节点连接到 Branch 节点的 True。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



对于 Montage,请选择您的 Montage (Fire_Shotgun_Ironsights_Montage)。

从 Montage Is Playing 节点的 Return Value 针连出线来,然后添加 Branch。

从新 Branch 节点的 False 针连出线来,然后添加 Montage Play 节点,并将 Montage to Play 设置为您的 Montage。

【虚幻4翻译文档-使用附加动画 | Unreal Engine】[虚幻4中文文档]



此操作将检查当前是否在播放 Montage,如果是,则不要播放 Montage(如果未播放,则播放 Montage)。

编译 并 保存,然后关闭 蓝图,并删除场景中现有的 ThirdPersonCharacter。

在编辑器中 播放。

现在,您将看到当按下 鼠标左键 时,character 将播放射击 AnimMontage。您可以在射击时四处走动,您甚至还可以蹲伏(按 C 键)并射击。

可以使用相同方法来设置近战攻击动作或武器换弹动作的表现,正如上述的第八个步骤中一样,通过创建一个所需要动画的相应 AnimMontage 并和移动动画去混合,并将这个新创建的 AnimMontage 设置于 UpperBody 的 Slot 上。因为 Slot 是在 character 动画蓝图的 AnimGraph 中设置的,所以应用于该 Slot 的任何动画都将被动画图表中进行计算,并在调用时被混合计算。



   



   


      




   


      相关页面

  




       动画蓝图








      AnimMontage








      混合节点








      混合动画




回复

使用道具 举报

0

主题

862

帖子

2826

积分

vip会员

Rank: 1

积分
2826
发表于 2016-7-2 18:50:03 来自手机 | 显示全部楼层
这个必须顶,撸主好人
回复 支持 反对

使用道具 举报

0

主题

842

帖子

2758

积分

vip会员

Rank: 1

积分
2758
发表于 2016-7-3 20:55:27 | 显示全部楼层
我又来了,太贵了,我盯着你好久了。
回复 支持 反对

使用道具 举报

0

主题

844

帖子

2770

积分

vip会员

Rank: 1

积分
2770
发表于 2016-7-4 10:48:32 | 显示全部楼层
好吗
回复 支持 反对

使用道具 举报

0

主题

886

帖子

2975

积分

vip会员

Rank: 1

积分
2975
发表于 2016-7-4 18:52:25 来自手机 | 显示全部楼层
秒了 秒了  秒了  这东西 秒了
回复 支持 反对

使用道具 举报

0

主题

848

帖子

2818

积分

vip会员

Rank: 1

积分
2818
发表于 2016-7-19 20:16:15 来自手机 | 显示全部楼层
哈哈哈好大呀
回复 支持 反对

使用道具 举报

0

主题

872

帖子

2894

积分

vip会员

Rank: 1

积分
2894
发表于 2016-7-22 15:33:19 来自手机 | 显示全部楼层
这个必须可以有
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部