UE4学习笔记22——【动画】动画蓝图、播放蒙太奇 和打包

  • P60. 动画蓝图、播放蒙太奇 和打包
  • P60

(接P59的项目继续做)

(任务目标:WASD正常走路的动作,按shift跑步,什么都不按站着,按F跳舞)

在“内容浏览器”的“角色蓝图”文件夹,右键“动画——混合空间1D”,在新窗口选择“ch47...”的骨骼(建好之后默认的文件名字为“NewBlendSpace1D”),然后打开这个新建的文件,

左侧“资产详情”面板,“水平坐标——名称”改为“速度”,“最大轴值”改为550,“网格分区数量”改为11;

右下角“资产浏览器”面板,选中前四个动画,右键,选择“设置当前预览网格体”,然后再把鼠标放到某个动画上就能预览这个动作是什么样的:

    

把动画“Standing_Idle”拖到速度为0的位置(速度为0时角色要处于待机站立的状态):

  

同样的方法,动画“Female_Walk”拖到速度为150的位置,“Running”拖到速度为550的位置(最后一条线)(拖动上图中绿色的小圆点能预览不同速度的动画效果);

 

(下面增加动作切换的过渡)

在左侧的“资产详情”面板里,“采样插值——目标权重每秒插值速度”设置成3

 

切换回关卡编辑器界面,在内容浏览器的“角色蓝图”文件夹里,右键,“动画——动画蓝图”(动画蓝图:设置什么时候播放什么动画),在弹出的新窗口,上面的父类选“AnimInstance”(最上面的;这个是最大的父类),下面的目标骨骼选“Ch47...”(生成的新的文件的名字是“NewAnimBlueprint”);

双击打开新建的文件,在“AnimGraph”,添加节点“添加新状态机”,把添进来的节点重命名为“角色的基础状态”,把这个节点与“输出姿势”节点相连;

双击点开节点“角色的基础状态”,右下角“资产管理器”,把刚才我们建的混合空间1D(NewBlendSpace1D)拖出来,然后从“Entry”连接“NewBlendSpace1D”;

双击点开节点“NewBlendSpace1D”,在新界面,从“NewBlendSpace1D”的引脚“速度”拉出一条线,点“提升为变量”:

  

(需要给“NewBlendSpace1D”的“速度”传入一个具体的值,混合空间会根据这个具体的值来确定角色的运动状态(就是我们之前把“站立”的姿势拉到了速度0,“行走”拉到了150,“跑步”拉到了550,混合空间会根据传入的值来确定状态))

(下面要获取角色当前的移动速度)

切换到“事件图表”,(首先判断pawn拥有者是不是有效的):从节点“尝试获取pawn拥有者”的引脚“return value”添加节点“Is valid”,节点“is valid”的前端执行连接节点“事件蓝图更新动画”的后端执行;

从“尝试获取pawn拥有者”的引脚“return value”添加节点“获取速度”;从左下角“我的蓝图——变量”中,把变量“速度”拖出来,选择“设置 速度”,此节点的前端执行连接“is valid”的后端执行;

从节点“获取速度”的引脚“return value”添加节点“向量长度”(向量=大小+方向,这里就是我们只需要它的大小,同时也是为了引脚之间相容),把“向量长度”的“return value”与“set 速度”的“速度”相连;

(下面让我们之前的“我的新的女性角色_BP”使用我们刚才编辑的动画蓝图)

切换到关卡编辑器界面,打开“我的新的女性角色_BP”(蓝图类),选中“组件”面板中的网格体,在“细节”面板,“动画——动画类”,选“NewAnimBlueprint”(刚才自己建的动画蓝图的名字);

(下面做:按shift跑)

(先把角色的默认速度设置成行走的速度)

单击组件面板中的“角色移动”,把细节面板中的“最大行走速度”(可以直接搜索)改成150(因为刚才我们添加动画的时候行走的动画就添加到速度150的位置);

在事件图表,添加节点“左shift”(搜索shift);把组件面板中的“角色移动”拖到事件图表中;从“角色移动”添加节点“set max walk speed”,此节点的前端执行连“左shift”的“pressed”,把这个节点中的“最大行走速度”改为550;然后再复制一个“set max walk speed”做行走,详情不说了,看图:

  

(下面做:按 F 跳舞)

还是在这个事件图表,添加“F键”(搜索“F+空格+键盘”);

切换到关卡编辑器界面,在内容浏览器中,“内容——新的角色”,找到“Snake_Hip_Hop_Dance”,右键“创建——创建动画蒙太奇”,然后打开这个 动画蒙太奇;

在菜单栏,选择“窗口——动画插槽管理器”,然后右下角就会出现这个选项卡,在这里点“添加插槽”,取名为“dance”:

  

在主视口的下方,按图示把插槽改成“....dance”:

  

 

打开“NewAnimBlueprint”(动画蓝图),打开“AnimGraph”,从节点“角色的基础状态”添加节点“插槽“DefaultSlot””(搜索 插槽),然后把“插槽”后面的小人连到“输出姿势”;单击刚刚添加的插槽节点,在细节面板,把“插槽名称”选择“...dance”(我们再蒙太奇动画中添加的插槽);

打开“我的新的女性角色_BP”(蓝图类),把组件面板中的“网格体”拖到事件图表,然后从这个节点添加节点“获取动画实例”;再从新节点添加节点“蒙太奇播放”,“蒙太奇播放”的前端执行连“键盘F”的“pressed”,“蒙太奇播放”的“Montage to play”选择刚才新建的蒙太奇动画(跳舞的那个);

(此时按下 F 键人物会一直跳舞,根本停不下来;下面要让她停止)

从“获取动画实例”的“return value”添加节点“蒙太奇停止”,新节点的前端执行连接“键盘F”的“released”,此节点的“Montage”还是选择刚才跳舞的蒙太奇动画资产,此节点的“In Blend out time”是停止蒙太奇动画的动作和新动作变换之间的一个过渡时间,这里我们给它改成0.3(这样就不会,比如说,刚才还在跳舞,默认静止的动作是站立的姿势,停止播放蒙太奇动画后她就不会突然就切换到站立没有过渡,很突兀;设置了混合时间后,动作的衔接比较自然和合理);

目前事件图表:

  

 

(移动打断蒙太奇播放)

直接看图:

  

意思是,获取角色速度后,获得其大小(向量长度),判读是否大于1;如果大于1(true),执行蒙太奇停止。(可以把上上图中“键盘F”的“released”后面的连接断开,效果更好)

(下面复习一下打包)(先别打包!现在还没有退出游戏的功能(现在还只能alt+F4强制退出))

打开“项目设置”(在工具栏的“设置”中),在新窗口 选择“项目——地图和模式”,“编辑器开始地图”和“游戏默认地图”都选择我们想打开的那个地图,“默认游戏模式”选择我们自己新建的游戏模式(NewGameMode);

 

切换到“关卡编辑器”,选择菜单栏中的“文件——打包项目——window(64-bit)”,然后选择一个位置存放。

(现在添加一个退出游戏)

“关卡编辑”界面中,工具栏,选“蓝图——打开关卡蓝图”,添加节点“Escape”(这个节点代表esc键),从“pressed”添加节点“退出游戏”。(记得编译)

 

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)

posted @ 2022-12-01 22:11  我会变强的  阅读(1929)  评论(0编辑  收藏  举报