近期热门
粉丝37
关注 0
获赞 23
第三人称动作游戏开发日志

[UE4技术交流] 第三人称动作游戏开发日志

 !heats_icon! [复制链接]
2007 8 0 1 6年前 举报
格斗游戏封面.JPG
0
点赞
0
打赏
1
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论8
您需要登录后才可以回帖 登录

atmhrc  
今天我们继续来制作格斗游戏的角色动作部分。接下来轮到锁链下降和物体拖拽的动作,这2个动作相对于锁链荡漾还是比较简单的。


锁链下降是角色在高处的时候,用机械手攀住一个地方,然后打开锁链,下降到低处,然后再收回锁链。这个动作的制作思路是这样的,创建一个下降碰触蓝图,当角色碰触到这个蓝图的时候,就可以激活锁链下降动作。
下降的角色位移使用timeline来控制,当timeline播放的时候,首先获取角色的起始位置,然后再决定一个下降终点的位置。利用timeline来使得角色在这两点之间进行位移(原理还是等同于timeline制作开关门的效果,或者也可以形象的理解为升降电梯),在下降的过程中同时赋予角色一个下降的状态(用布尔变量定义就可以了)。
在下降的过程当中,锁链的顶端会固定在攀援处,这个只要让timeline来update下降起始点的世界坐标位置就可以了,然后再把世界坐标位置换算为相对坐标位置,然后set到cable的end location就可以了。最后当角色下降完毕的时候,让角色播放收回锁链的动画。
在这个项目当中,我会一般把锁链下降的最低点放置到离地面一定距离的地方,不要让角色一次性下降到地面上,毕竟在后面还会设计一个空中旋转跳跃击杀的动作。而锁链下降在半空结束正好可以让玩家触发这个击杀动作,从而使角色在场景当中的运动更具有节奏感和可搭配性

最后制作出来的效果感觉还算不错



锁链拖拽这个动作是角色攀援在墙壁上时,将锁链甩到对面的墙壁上,然后拉拽对面墙壁上的石块,供角色跳跃到对面所用。
这个动作的制作原理其实和前面的锁链下降一模一样,锁链下降是把机械手固定在高处,然后角色用锁链进行下降移动,而锁链拖拽是角色固定在墙壁上,然后机械手拉拽住石块做水平移动。所以在链接蓝图的时候,蓝图结构基本相同,无非就是2个动作移动的对象不一样,第一个是角色做下降运动,而第二个是石块做水平移动,其实道理是一模一样的。
所以我们同样是创立一个拖拽蓝图,当玩家在墙壁上攀援,并且按下技能键的时候,对墙壁对面的拖拽蓝图进行一个检测,如果检测到对面有
拖拽蓝图,就发射锁链进行拖拽。
同样也是获取拖拽石块的一个起始点以及拖拽终点,利用timeline来set石块的位移就可以了,并且update锁链末端的end location。
当拖拽结束以后,播放收回锁链的动画,当然了一般来说这些石块只能被拖拽一次,如果有需要的话,以后可以再添加一些可以被反复触发的机关,也是挺不错的。

最后做出来的效果还算不错



这个拖拽动作有一个问题,就是当角色使用拖拽的时候,由于是攀援在墙壁上的,所以摄像机视角在观察的时候,墙壁会对摄像机产生一个block,这使得玩家无法准确的观察到墙壁对面被拖拽石块的位置,或者玩家使劲把镜头对准被拖拽石块的时候,角色反而被墙壁遮挡,犹如视屏中展示的那样,所以可以考虑玩家在通过这些场景的时候,给玩家一个全景的摄像机视角,这样也是挺不错的。

这个功能我们可以称他为鹰眼视角或者监控视角,我们会在后面日志中来讲解他的制作思路。

6年前
回复

使用道具 举报

atmhrc  
今天我们来制作主角的另一套动作-锁链动作。
这个锁链动作技能在这个游戏设定中相当的关键,他在主角的行为动作中占了大部分,很多关卡中设定的场景都需要锁链动作来通关,而且我也考虑将锁链作为一个必杀技放入到角色的打斗动作当中去(又为自己挖了个坑。/。。)

首先我们来进行锁链动作的设定和分类。
从设定上来讲,我们的角色拥有一只机械的左手,这个机械手臂可以被发射出去,而后端连着锁链,链接着主角的胳臂。
del.png
所以主角可以利用这个特性,将手臂发射到周围的场景当中,通过锁链来攀援或者拉拽周围的物体,(打斗的设定之后再去考虑)因此,在这个项目当中,角色利用锁链能实现的动作有这么三个:
锁链荡漾,将锁链发射到高处的一个物体上(比如说石墩)然后利用锁链的弹性,将自己从低处荡漾至高处,也可以在荡漾的过程当中,连续发射锁链,进行连环的荡漾(类似于蜘蛛侠在城市高处靠蛛丝荡漾的情景)
delll.png


锁链索降,这个动作顾名思义,当角色在高处的时候,用左手攀住石头,然后松开锁链,角色便从高处迅速索降下去。到达下方的时候收回锁链。
拖拽石块,举个例子,玩家要从一个台阶处,跳到对面墙壁的时候,对面墙壁没有可以攀援的敌方,而对面的墙壁上有一个把手,玩家可以把自己的机械手臂抛射过去,拉住墙壁上的把手,然后吧墙壁内的石块给拖拽出来,供玩家在跳过去的时候作为一个攀援处
dellll.png



大概就是这些,如果有新的动作还可以后面进行补充,那我们就从第一个动作开始做起,第一个动作是定点荡漾。
这个动作的制作思路是这样的,吧动作分解为:发射部分,拉拽部分,旋转部分,下降部分,着陆部分。

发射部分指的是,角色朝定点发射自己手套,然后手套抓住定点,锁链吧玩家和定点2者链接起来。这个部分的制作思路主要是播放动画蒙太奇,然后由动画蒙太奇通知在角色发射出手套的那一刻时机通知给角色蓝图,由角色蓝图的节点完成锁链的发射。
关于锁链的制作主要是在角色内创建一个cable,然后吧cable绑定在角色的手臂部分(建模的时候,吧角色的左手截下来,然后为角色单独的创建一个机械左手模型放置在角色蓝图当中)
随后在资源管理器中创建一个定点蓝图,当荡漾开始的时候,角色蓝图获取定点蓝图,把他以一个变量的形式防止在角色蓝图内,并获取定点的世界坐标位置,并将这个世界坐标位置通过公示的运算,转换为相对于角色的相对坐标位置(因为cable的end location是相对坐标),然后把这个相对坐标赋予给cable的end location。
这个定点蓝图的组成部分主要有2个部分,1是玩家荡漾完成以后最后的落点,可以先拿一个方块先做个样板,2是荡漾开始的范围边界,这个的话我在蓝图内创建了一个sphere collision,然后通过这个sphere来碰触玩家,如果玩家进入到可发射锁链进行荡漾的范围之内,定点蓝图会以一个变量的形式传输给玩家蓝图,随后激活可进行荡漾的状态。
delllll.JPG
拉拽部分指的是,当玩家发射锁链以后,链条从玩家的起始位置开始吧玩家拉拽到定点的正下方(荡漾最低点),此时玩家的朝向由原朝向逐渐变为荡漾的方向,这个拉拽的时间是固定的,由角色蓝图内部的一个时间线来控制。通过时间线,来获取玩家发射锁链和定点蓝图荡漾最低点的位置,随后update玩家的location和rotation。

旋转部分指的是,玩家到达荡漾最低点以后,在空中转一个大圈(由荡漾最低点到荡漾最高点的一个半圆)这个半圆的路径主要是由timeline来输出玩家的位置变化,同时玩家自身播放一个空中转体的动画(之前考虑过由根骨骼动作来做,根骨骼动画做的好处就是可以很直观的在动画软件中制作角色的荡漾路径,但是缺点就是荡漾的圆环大小就被确定下来了,而用时间线来做,荡漾的半径大小可以在关卡当中随意调整,你只要设置荡漾的最低点和最高点的位置就可以了)
从最低点到最高点是一个圆环运动,这是很基础的中学位移问题,在垂直方向上,角色做由下到上的直线运动,在水平方向上角色做从原地到正前方再回原地的往复运动。
dellllll.JPG

下降部分和着落部分相对而言非常简单,角色到达最高点以后,让角色做自由落体就可以了(注意吧玩家的输入给屏蔽掉,以免角色在下落过程中,玩家有位移输入,导致角色下落偏移,落在着陆点外面)
着陆部分比较复杂的地方是角色的锁链收回,这里我想到的方法是用一个链条的模型直接K动画,这个方法最直接也最实用,在动画软件中能直接K出自己想要的收回动画效果,所以当角色下落的时候将角色蓝图内部的cable直接invisible,而吧播放锁链收回动画的锁链模型visible就可以了

以上就是荡漾的全部阶段,而蓝图节点的编写也按照这个阶段一部分一部做就可以了,因为有时间的先后顺序,所以做起来也并不麻烦。
delllllll.JPG
最后的连续荡漾制作,我们只要设定一个区间就可以了,我定义角色在荡漾最低点和旋转中心位置这个区间可以发射下一次锁链(形状大概是一个半圆)然后,后一个定点蓝图的sphere与前一个定点荡漾的旋转路径部分重叠,当角色在前一个定点荡漾过最低点以后,后一个定点蓝图的sphere就会和角色碰触,角色蓝图的定点蓝图变量就会被刷新,然后玩家就可以做出第二次发射锁链的操作,而后的荡漾操作无非就是反复重复而已。

最后做出来的效果还不错


6年前
回复

使用道具 举报

atmhrc  
今天我们要来制作的内容是角色攀墙。
之前说过这个游戏demo主打的2个特色是格斗系统和攀援系统,我们就从攀援系统开始做起,毕竟格斗系统还涉及到敌人,特效,伤害系统等等,所以格斗就放到后面再做。
我暂且先定咱们的主角能够在游戏中完成的动作有:

1.攀墙(包括在墙壁上下左右移动,从一面墙跳到另一面墙,从墙壁上下来)
2.飞檐走壁(沿着一面墙快速的贴墙跑,从一面墙跑跳到另一面墙,沿着一面竖直的墙网上跑,再跳到对面的一面墙)
3.链条摆渡(发射手中的锁链,钩住场景中的物体,摆渡到另一处或者旋摆到高处,或者从高处利用锁链,索降下来)

暂且先定这几个,后界面想到了还可以再加上。那么我们就先来完成第一个效果,攀墙。
攀墙我主要采用了网上一些大神所使用的思路。当角色起跳的时候,对角色前方使用一个线性检测,然后当角色检测到墙壁的时候,将角色的移动方式改为fly(或者gravity设置为0),随即给他一个攀墙的状态就可以了。这样我们的角色就悬浮在了半空中,与此同时播放攀墙的状态动画。
当然我对这种方式做了一个改进,将可以被攀援的墙壁做成了一个蓝图,并再角色攀岩的时候,矫正角色的位置和方向。
01.png
随后在角色攀墙的时候,对角色的左右和上方进行胶囊检测,检测角色是否可以左转右转和爬上墙壁,如果角色来到墙壁的边缘或者墙壁上方可以爬上去,胶囊检测就为空,然后玩家做出对应的操作,角色播放攀爬的动画。
当然角色在墙壁上左右攀爬,跳跃还有转身爬起的动画,都是根骨骼动画,这些动画资源都可以在虚幻商城下载到。
当玩家控制的角色要从墙壁上下来的时候,就按下C键,一般都是C,角色就退出攀墙的状态,移动方式由fly回归为walk,那么角色就受到重力的影响掉下来了,但是这里有一个问题,就是角色掉下来的时候一般还是面对着墙壁的,而角色在下坠的过程中,我们之前为角色开了朝前方的线性检测,如果检测到墙壁,就自动攀爬。所以我们在角色主动松开墙壁的时候必须加一个阈值或者延迟。比如角色在松开墙壁0.5秒内,不会再攀墙,或者角色只有在墙壁可攀援处才能攀住墙壁。那么我选择的是后者,这个位置大概距离角色头顶30公分处,如上图的位置。

攀墙的系统做起来并不难,大概几个小时就搞定了,而且动画资源都有现成的,接下来就开始制作飞檐走壁部分了。这个部分我的思路也是沿用了攀墙部分的思路,为角色定义了一个飞檐走壁的状态,我在变量中取名为“QingKung”(啊哈哈,又开始中2了),随后在资源中创建了一个蓝图,并为这个蓝图设置了只针对于角色的碰触,并把它放在了角色将要飞檐走壁的墙壁上,然后我为玩家设置了一个触发操作(持续按住鼠标右键)当角色在跑动中碰触到这个墙壁,并且玩家是按住鼠标右键的前提下,角色就会开始播放飞檐走壁的根骨骼动画,在墙壁上飞奔起来。当然移动方式也被改为了fly。那么问题来了,根骨骼动画。。。。enmmmmmmm。。。。这个可没现成的动画可以用。。。。
02.png
我费了好久的功夫为角色K墙壁的跑动动画,尤其是武器部分,是逐帧K的,关键是,这个角色还有2种武器握持方式,所以他会有2套飞檐走壁的动画。。。我当时为啥要设定2种。。。。(-_-....)
花了好几天功夫,终于K完了,单持左跑,单持右跑,双持左跑,双持右跑,单持左跑跳,单持右跑跳,双持左跑跳,双持右跑跳,单持上跑,双持上跑,单持上跑跳,单持右跑跳,总共12个动作。这些动作都是根骨骼循环动画,当角色进入到飞檐走壁状态的时候由动画蓝图控制播放,导入到UE4中以后,效果还不错。
03.png
最后我调整了一些细节,比如当角色碰到碰触蓝图(图中蓝色的这个)开始飞檐走壁的时候,矫正角色相对于墙壁的位置还有方向,使角色的脚能够准确地踩在墙壁上,并且平行于墙壁跑过去。最终的效果非常棒,而且操作手感也很不错。

好了今天的内容就是这些,明天开始制作角色动作的重头戏,锁链部分。其实这个角色的很多动作都参考了波斯王子这个游戏,毕竟当时受到这个游戏的影响很大。

6年前
回复

使用道具 举报

期待后续
6年前
回复

使用道具 举报

来看看,感谢分享
6年前
回复

使用道具 举报

atmhrc  
本帖最后由 atmhrc 于 2018-12-7 22:28 编辑

今天的主要目标有主要是设计咱们的主角。
角色的设计是一项非常有挑战性的任务,我也是设计了好几种角色,但都不是非常满意。首先我在网上找了一个机械类型的角色直接拿来用,这个角色从体型上来说和UE4默认的机器人十分相近,又由于是机械身体,所以就免去了繁琐的装配环节。于是我把他导入到了项目中,效果看起来还不错。
13.png
后来觉得这个角色风格太过于科幻,而自己的游戏基调应该是那种偏卡通类型的。于是只能重新设计角色了。
随后我设计了一个类似于木偶人角色,(毕竟硬邦邦的身体可以省去装配的麻烦)。这个角色只停留于草稿,并没有实际制作出来。
14.jpg
我甚至还制作过一个圆乎乎的角色,风格有点像人类:一败涂地,都是在墙上爬来爬去的。(我为了省去装配的环节,还真是丧心病狂啊。。。)
07.png
但是这种角色剧情就不太好展开,如果是独立开发游戏,这样子的角色其实蛮好的,但是做教程就不合适了。于是我又重新设计了一个偏写实卡通类角色。
15.jpg
16.jpg
17.jpg
脸部的造型当然是用了我自己的头像了,发型参考了铁臂阿童木的头发,衣服是我平时比较喜欢穿的黄色卫衣,而在角色的左手上,也新加入了一个机械手的元素,这个机械手弹射出去,并连着链条(有点类似于李元芳的链子刀),既可以用作武器,也可以用这个链条机械手在场景中攀援。随后我把制作出来的角色导入到了UE4中
这个是机械手打开以后的造型,用skeleton mesh K上打开的动画,中间的那个圆锥体是从机械手中心部喷出的高温火焰
10.png
关于角色的头部也是考虑了很久,曾经想用TV boy的造型,后来觉得这个造型太中2了,就换成了自己的头像(貌似用自己的头像更中2,啊哈哈)
08.png
最终到UE4中,发型也改为了刺猬头,刺猬头更加的立体一点
18.png
目前就暂定为这个角色造型,但是到最终的游戏中,肯定还会再次修改,因为这个角色的肩部权重有些问题,(为了方便看视频的同学可以使用自己的角色替换,主角使用的骨骼和UE4默认骨骼一致,但是UE4默认的角色体型比这个角色更大一点,所以在绑定骨骼的时候,模型与骨骼有些错位。这导致角色手部在做出一些大幅度动作的时候,模型会发生扭曲)
今天的内容就是着一些,明天开始制作角色的动作部分,首先从攀墙开始。

6年前
回复

使用道具 举报

图片都看不了!!
6年前
回复

使用道具 举报

atmhrc  
本帖最后由 atmhrc 于 2018-12-7 22:24 编辑

在这里分享一篇格斗游戏的图文开发日志,我将会使用UE4.21版本中的动画蓝图功能,来制作一款第三人称的动作游戏。

首先的话,确定自己想要的游戏风格,最重要的动作主要由2方面组成:1.打斗部分,2.动作部分。

打斗部分主要是连招系统,角色将会使用自己的武器,来攻击场景中的敌人。并加入一定的连招系统。这方面主要由UE4的动画蒙太奇来完成。
动作部分主要是应对关卡中的场景和各种机关,并拥有一些飞檐走壁,攀墙,往返跳等动作。

最终所要达到的效果,便是流畅的打斗动作和富有节奏感的场景跑图。以上就是大致的游戏构想。

那么首先第一步要思考的就是主角的角色以及武器制作,我就边考虑角色,边创建工程。使用UE4自带的第三人称模板,以这个模板为基础来制作我们的游戏。
同时在建模软件和PS中,制作出了角色使用的武器(风格参考了源氏的刀) 12.png
在创建武器的时候,还突然有一个想法,让主角有单持和双持两种战斗模式。这个想法自然是很炫酷,但是在制作量上顿时就翻了一倍。不过好在我发现虚幻商城上有单持和双持的一套动画,于是这个问题就很幸运的解决了。

第一步就暂且到这儿,也算是开了一个好头。

预计这个demo将会在年初完成,这将会是一个完成度极高的关卡。并且会把游戏打包上传到网盘供大家试玩,同时会把制作过程录制成教程,在aboutcg上架。而整个demo的制作思路我会在这里写成开发日志,给大家分享,大家有什么意见和想法也可以在下面留言和我交流    >.<

个人微信公众号:
ATMHRC微信公众号.JPG


6年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器