设为首页收藏本站
查看: 320|回复: 0

从零开始学虚幻4游戏开发系列29

[复制链接]
  • TA的每日心情
    无聊
    2017-10-4 22:36
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    48

    主题

    58

    帖子

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32018
    Palmer 发表于 2018-7-31 10:03:22 3200 | 显示全部楼层 |阅读模式
    欢迎继续我们的学习。

    在上一课的内容中,我们让松饼小人成了游戏的主角。而在这一课的内容中,我们将导入动画,让小人可以更加栩栩如生。

    导入动画

    在虚幻4主编辑器中找到Content Browser,然后点击Import,切换到文件夹SkywardMuffinStarter\Animation Assets。选择以下文件:

    SK_Muffin_Death.fbx
    SK_Muffin_Fall.fbx
    SK_Muffin_Idle.fbx
    SK_Muffin_Jump.fbx
    SK_Muffin_Walk.fbx

    全部完成之后,点击Open。
    在导入设置窗口,找到Mesh部分,取消勾选Import Mesh选项,这样就可以确保不会再次导入Skeletal Mesh。


    接下来将Skeleton属性设置为SK_Muffin_Skeleton,该选项设置了动画所使用的骨骼。


    最后点击Import All。这样就会使用同样的设置导入所有的动画。


    现在我们已经导入了所有所需的动画,接下来要学习的就是如何来使用这些动画。
    为此,我们需要使用Animation Blueprint(动画蓝图)~

    创建动画蓝图

    动画蓝图和普通的蓝图比较类似,不过它包含了一个针对动画任务的graph。
    在虚幻4的主编辑器中找到Content Browser,点击Add New按钮,选择Animation\Animation Blueprint。
    在弹出的创客中,找到Target Skeleton属性,然后选择SK_Muffin_Skeleton。
    接下来,点击OK按钮以创建动画蓝图。
    将其命名为ABP_Muffin。接着双击在动画蓝图编辑器中将其打开。


    动画蓝图编辑器

    动画蓝图编辑器和普通的蓝图编辑器比较类似,不过多了四个额外的面板:

    1.Anim Graph:

    这个Graph是专门针对动画的,我们将在这里播放动画。

    2.Preview Scene Settings:

    这个面板可以让我们在视图中调整预览场景

    3.Anim Preview Editor:

    我们所创建的变量也会在这里显示,使用该面板可以预览变量对最终动画所产生的作用。

    4.Asset Browser:

    该面板包含了当前骨骼所使用的一系列动画。


    为了定义某个动画应该如何播放,我们需要使用State Machine(状态机)。

    什么是状态机?

    简单来说,一个状态机就是一系列的状态和规则。对于本系列的教程来说,你可以把一个状态看做一个动画。

    在任何一个时刻,状态机只能处在某个特定的状态,而为了切换到另外一个状态,就需要满足特定的条件(由规则来定义)。

    下图就是一个简单状态机的示例,它显示了不同状态之间的切换规则。


    状态机之中的状态也可能是双向关联的,在下面这个例子里面,Jump状态和Fall状态可以相互转化:


    如果没有这种双向关联,游戏角色就没办法完成连续两次跳跃。

    好了,关于状态机就先说到这里。接下来,让我们实际创建一个状态机。

    创建状态机

    首先确保我们当前在Anim Graph中,然后右键单击空白区域,从菜单中选择Add New State Machine。


    此时,视图中将添加一个状态机节点,把它的名字更改为Locomotion。随后将Locomotion状态机连接到Final Animation Pose节点上。


    现在Locomotion状态机将决定松饼小人的最终动画。

    接下来双击Locomotion状态机将其打开,此时可以看到Entry节点。


    连接到该节点的状态将被设置为默认状态。


    对本教程来说,这里的默认状态就是idle动画。

    在视图中右键单击空白区域,从菜单中选择Add State,并将其命名为Idle。

    接下来从Entry节点拉一条线关联到Idle状态上:


    虽然我们从弹出菜单中创建了一个状态,但是系统并没有为我们自动分配一个动画。
    因此这一点需要修复。

    1.jpg

    将动画关联到状态上

    双击Idle状态将其打开。从Asset Brower中找到SK_Muffin_Idle动画,并将其拖到视图当中。
    接着从Play SK_Muffin_Idle节点连一条线到Final Animation Pose节点。
    为了使用动画蓝图,我们需要更新BP_Muffin。

    使用动画蓝图

    点击工具栏上的Compile按钮,然后切换到BP_Muffin。
    在Components面板中选择Mesh(Inherited)组件。在Details面板中找到Animation部分。

    2.jpg

    将Animation Mode设置为Use Animation Blueprint。然后设置Anim Class为ABP_Muffin。

    3.png

    好了,现在Skeletal Mesh将使用ABP_Muffin作为自己的动画蓝图。

    点击工具栏上的Compile按钮,然后关闭BP_Muffin。

    在主编辑器中点击Play按钮以测试动画蓝图。

    因为Idle是默认状态,所以松饼小人将默认使用idle动画。

    4.png

    好了,这一课的内容就先到这里。

    在下一课的内容中,我们将分别创建跳跃和跌倒的动画状态。

    我们下一课再见~


    讨论群-笨猫学编程QQ群:
    375143733

    答疑论坛:
    http://www.vr910.com/forum.php?mod=forumdisplay&fid=52

    知乎专栏:

    https://zhuanlan.zhihu.com/kidscoding

    新浪博客:
    http://blog.sina.com.cn/eseedo

    Github:
    https://github.com/eseedo

    个人网站:
    http://icode.ai/

    温馨提示:
    本系列图文连载内容首发于我的微信公众号,每周至少更新一次。
    如果你有其他问题,也可以关注我的微信公众号:vrlife,参与互动问答。

    回复

    使用道具 举报

    0条回复
    跳转到指定楼层

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|赛隆网 ( 粤ICP备16067842号 )  

    Copyright 2013 -̳ Ȩ All Rights Reserved.

    Powered by Cylonspace ; All Rights Reserved.

    QQ|Archiver|手机版|小黑屋|赛隆网 ( 粤ICP备16067842号 )  

    GMT+8, 2018-10-21 20:26 , Processed in 0.132543 second(s), 26 queries.

    快速回复 返回顶部 返回列表