虚幻4吧 关注:11,464贴子:24,935
  • 12回复贴,共1

第三人称动作游戏开发日志

只看楼主收藏回复

第三人称动作游戏的开发日志


IP属地:上海1楼2018-12-07 20:27回复
    在这里分享一篇格斗游戏的图文开发日志,我将会使用UE4.21版本中的动画蓝图功能,来制作一款第三人称的动作游戏。
    首先的话,确定自己想要的游戏风格,最重要的动作主要由2方面组成:1.打斗部分,2.动作部分。
    打斗部分主要是连招系统,角色将会使用自己的武器,来攻击场景中的敌人。并加入一定的连招系统。这方面主要由UE4的动画蒙太奇来完成。
    动作部分主要是应对关卡中的场景和各种机关,并拥有一些飞檐走壁,攀墙,往返跳等动作。
    最终所要达到的效果,便是流畅的打斗动作和富有节奏感的场景跑图。以上就是大致的游戏构想。
    那么首先第一步要思考的就是主角的角色以及武器制作,我就边考虑角色,边创建工程。使用UE4自带的第三人称模板,以这个模板为基础来制作我们的游戏。
    同时在建模软件和PS中,制作出了角色使用的武器(风格参考了源氏的刀)

    在创建武器的时候,还突然有一个想法,让主角有单持和双持两种战斗模式。这个想法自然是很炫酷,但是在制作量上顿时就翻了一倍。不过好在我发现虚幻商城上有单持和双持的一套动画,于是这个问题就很幸运的解决了。
    第一步就暂且到这儿,也算是开了一个好头。
    预计这个demo将会在年初完成,这将会是一个完成度极高的关卡。并且会把游戏打包上传到网盘供大家试玩,同时会把制作过程录制成教程,在aboutcg上架。而整个demo的制作思路我会在这里写成开发日志,给大家分享,大家有什么意见和想法也可以在下面留言和我交流 >.<


    IP属地:上海2楼2018-12-07 20:29
    回复
      今天的主要目标有主要是设计咱们的主角。
      角色的设计是一项非常有挑战性的任务,我也是设计了好几种角色,但都不是非常满意。首先我在网上找了一个机械类型的角色直接拿来用,这个角色从体型上来说和UE4默认的机器人十分相近,又由于是机械身体,所以就免去了繁琐的装配环节。于是我把他导入到了项目中,效果看起来还不错。

      后来觉得这个角色风格太过于科幻,而自己的游戏基调应该是那种偏卡通类型的。于是只能重新设计角色了。
      随后我设计了一个类似于木偶人角色,(毕竟硬邦邦的身体可以省去装配的麻烦)。这个角色只停留于草稿,并没有实际制作出来。

      我甚至还制作过一个圆乎乎的角色,风格有点像人类:一败涂地,都是在墙上爬来爬去的。(我为了省去装配的环节,还真是丧心病狂啊。。。)

      但是这种角色剧情就不太好展开,如果是独立开发游戏,这样子的角色其实蛮好的,但是做教程就不合适了。于是我又重新设计了一个偏写实卡通类角色。



      脸部的造型当然是用了我自己的头像了,发型参考了铁臂阿童木的头发,衣服是我平时比较喜欢穿的黄色卫衣,而在角色的左手上,也新加入了一个机械手的元素,这个机械手弹射出去,并连着链条(有点类似于李元芳的链子刀),既可以用作武器,也可以用这个链条机械手在场景中攀援。随后我把制作出来的角色导入到了UE4中
      这个是机械手打开以后的造型,用skeleton mesh K上打开的动画,中间的那个圆锥体是从机械手中心部喷出的高温火焰

      关于角色的头部也是考虑了很久,曾经想用TV boy的造型,后来觉得这个造型太中2了,就换成了自己的头像(貌似用自己的头像更中2,啊哈哈)

      最终到UE4中,发型也改为了刺猬头,刺猬头更加的立体一点

      目前就暂定为这个角色造型,但是到最终的游戏中,肯定还会再次修改,因为这个角色的肩部权重有些问题,(为了方便看视频的同学可以使用自己的角色替换,主角使用的骨骼和UE4默认骨骼一致,但是UE4默认的角色体型比这个角色更大一点,所以在绑定骨骼的时候,模型与骨骼有些错位。这导致角色手部在做出一些大幅度动作的时候,模型会发生扭曲)
      今天的内容就是着一些,明天开始制作角色的动作部分,首先从攀墙开始。


      IP属地:上海3楼2018-12-07 20:40
      回复
        今天我们要来制作的内容是角色攀墙。
        之前说过这个游戏demo主打的2个特色是格斗系统和攀援系统,我们就从攀援系统开始做起,毕竟格斗系统还涉及到敌人,特效,伤害系统等等,所以格斗就放到后面再做。
        我暂且先定咱们的主角能够在游戏中完成的动作有:
        1.攀墙(包括在墙壁上下左右移动,从一面墙跳到另一面墙,从墙壁上下来)
        2.飞檐走壁(沿着一面墙快速的贴墙跑,从一面墙跑跳到另一面墙,沿着一面竖直的墙网上跑,再跳到对面的一面墙)
        3.链条摆渡(发射手中的锁链,钩住场景中的物体,摆渡到另一处或者旋摆到高处,或者从高处利用锁链,索降下来)
        暂且先定这几个,后界面想到了还可以再加上。那么我们就先来完成第一个效果,攀墙。
        攀墙我主要采用了网上一些大神所使用的思路。当角色起跳的时候,对角色前方使用一个线性检测,然后当角色检测到墙壁的时候,将角色的移动方式改为fly(或者gravity设置为0),随即给他一个攀墙的状态就可以了。这样我们的角色就悬浮在了半空中,与此同时播放攀墙的状态动画。
        当然我对这种方式做了一个改进,将可以被攀援的墙壁做成了一个蓝图,并再角色攀岩的时候,矫正角色的位置和方向。

        随后在角色攀墙的时候,对角色的左右和上方进行胶囊检测,检测角色是否可以左转右转和爬上墙壁,如果角色来到墙壁的边缘或者墙壁上方可以爬上去,胶囊检测就为空,然后玩家做出对应的操作,角色播放攀爬的动画。
        当然角色在墙壁上左右攀爬,跳跃还有转身爬起的动画,都是根骨骼动画,这些动画资源都可以在虚幻商城下载到。
        当玩家控制的角色要从墙壁上下来的时候,就按下C键,一般都是C,角色就退出攀墙的状态,移动方式由fly回归为walk,那么角色就受到重力的影响掉下来了,但是这里有一个问题,就是角色掉下来的时候一般还是面对着墙壁的,而角色在下坠的过程中,我们之前为角色开了朝前方的线性检测,如果检测到墙壁,就自动攀爬。所以我们在角色主动松开墙壁的时候必须加一个阈值或者延迟。比如角色在松开墙壁0.5秒内,不会再攀墙,或者角色只有在墙壁可攀援处才能攀住墙壁。那么我选择的是后者,这个位置大概距离角色头顶30公分处,如上图的位置。
        攀墙的系统做起来并不难,大概几个小时就搞定了,而且动画资源都有现成的,接下来就开始制作飞檐走壁部分了。这个部分我的思路也是沿用了攀墙部分的思路,为角色定义了一个飞檐走壁的状态,我在变量中取名为“QingKung”(啊哈哈,又开始中2了),随后在资源中创建了一个蓝图,并为这个蓝图设置了只针对于角色的碰触,并把它放在了角色将要飞檐走壁的墙壁上,然后我为玩家设置了一个触发操作(持续按住鼠标右键)当角色在跑动中碰触到这个墙壁,并且玩家是按住鼠标右键的前提下,角色就会开始播放飞檐走壁的根骨骼动画,在墙壁上飞奔起来。当然移动方式也被改为了fly。那么问题来了,根骨骼动画。。。。enmmmmmmm。。。。这个可没现成的动画可以用。。。。

        我费了好久的功夫为角色K墙壁的跑动动画,尤其是武器部分,是逐帧K的,关键是,这个角色还有2种武器握持方式,所以他会有2套飞檐走壁的动画。。。我当时为啥要设定2种。。。。(-_-....)
        花了好几天功夫,终于K完了,单持左跑,单持右跑,双持左跑,双持右跑,单持左跑跳,单持右跑跳,双持左跑跳,双持右跑跳,单持上跑,双持上跑,单持上跑跳,单持右跑跳,总共12个动作。这些动作都是根骨骼循环动画,当角色进入到飞檐走壁状态的时候由动画蓝图控制播放,导入到UE4中以后,效果还不错。

        最后我调整了一些细节,比如当角色碰到碰触蓝图(图中蓝色的这个)开始飞檐走壁的时候,矫正角色相对于墙壁的位置还有方向,使角色的脚能够准确地踩在墙壁上,并且平行于墙壁跑过去。最终的效果非常棒,而且操作手感也很不错。
        好了今天的内容就是这些,明天开始制作角色动作的重头戏,锁链部分。其实这个角色的很多动作都参考了波斯王子这个游戏,毕竟当时受到这个游戏的影响很大。


        IP属地:上海4楼2018-12-09 09:13
        回复


          IP属地:安徽来自Android客户端6楼2018-12-10 12:15
          回复
            非常好的思路,无比希望楼主能继续更新下去


            IP属地:四川来自Android客户端7楼2018-12-10 17:43
            回复









              IP属地:上海11楼2018-12-11 23:27
              回复
                我覺得可以參考下閃亂神樂,給裏面帶上爆衣設定什麽的。


                IP属地:陕西12楼2018-12-12 16:55
                回复
                  发帖被删,视频也发不出,还经常被禁言,大家将就着看吧


                  IP属地:上海来自iPhone客户端13楼2018-12-12 18:43
                  回复
                    今天我们继续来制作格斗游戏的角色动作部分。接下来轮到锁链下降和物体拖拽的动作,这2个动作相对于锁链荡漾还是比较简单的。
                    锁链下降是角色在高处的时候,用机械手攀住一个地方,然后打开锁链,下降到低处,然后再收回锁链。这个动作的制作思路是这样的,创建一个下降碰触蓝图,当角色碰触到这个蓝图的时候,就可以激活锁链下降动作。
                    下降的角色位移使用timeline来控制,当timeline播放的时候,首先获取角色的起始位置,然后再决定一个下降终点的位置。利用timeline来使得角色在这两点之间进行位移(原理还是等同于timeline制作开关门的效果,或者也可以形象的理解为升降电梯),在下降的过程中同时赋予角色一个下降的状态(用布尔变量定义就可以了)。
                    在下降的过程当中,锁链的顶端会固定在攀援处,这个只要让timeline来update下降起始点的世界坐标位置就可以了,然后再把世界坐标位置换算为相对坐标位置,然后set到cable的end location就可以了。最后当角色下降完毕的时候,让角色播放收回锁链的动画。
                    在这个项目当中,我会一般把锁链下降的最低点放置到离地面一定距离的地方,不要让角色一次性下降到地面上,毕竟在后面还会设计一个空中旋转跳跃击杀的动作。而锁链下降在半空结束正好可以让玩家触发这个击杀动作,从而使角色在场景当中的运动更具有节奏感和可搭配性
                    最后制作出来的效果感觉还算不错
                    锁链拖拽这个动作是角色攀援在墙壁上时,将锁链甩到对面的墙壁上,然后拉拽对面墙壁上的石块,供角色跳跃到对面所用。
                    这个动作的制作原理其实和前面的锁链下降一模一样,锁链下降是把机械手固定在高处,然后角色用锁链进行下降移动,而锁链拖拽是角色固定在墙壁上,然后机械手拉拽住石块做水平移动。所以在链接蓝图的时候,蓝图结构基本相同,无非就是2个动作移动的对象不一样,第一个是角色做下降运动,而第二个是石块做水平移动,其实道理是一模一样的。
                    所以我们同样是创立一个拖拽蓝图,当玩家在墙壁上攀援,并且按下技能键的时候,对墙壁对面的拖拽蓝图进行一个检测,如果检测到对面有
                    拖拽蓝图,就发射锁链进行拖拽。
                    同样也是获取拖拽石块的一个起始点以及拖拽终点,利用timeline来set石块的位移就可以了,并且update锁链末端的end location。
                    当拖拽结束以后,播放收回锁链的动画,当然了一般来说这些石块只能被拖拽一次,如果有需要的话,以后可以再添加一些可以被反复触发的机关,也是挺不错的。
                    最后做出来的效果还算不错
                    这个拖拽动作有一个问题,就是当角色使用拖拽的时候,由于是攀援在墙壁上的,所以摄像机视角在观察的时候,墙壁会对摄像机产生一个block,这使得玩家无法准确的观察到墙壁对面被拖拽石块的位置,或者玩家使劲把镜头对准被拖拽石块的时候,角色反而被墙壁遮挡,犹如视屏中展示的那样,所以可以考虑玩家在通过这些场景的时候,给玩家一个全景的摄像机视角,这样也是挺不错的。
                    这个功能我们可以称他为鹰眼视角或者监控视角,我们会在后面日志中来讲解他的制作思路。


                    IP属地:上海14楼2018-12-19 22:43
                    回复
                      宝贵的开发经验


                      IP属地:安徽来自Android客户端15楼2018-12-21 11:55
                      回复
                        支持


                        IP属地:上海来自Android客户端16楼2018-12-31 17:20
                        回复
                          顶一下楼主


                          IP属地:四川17楼2019-01-02 17:57
                          回复