文:江西恐龙(Dino)TiMi Club请到了有着丰富游戏从业经验的师兄Dino。
他制作的独立游戏《东东不死传说》,2017年曾被美国EVO格斗大赛选为参赛作品。
文中囊括了游戏编辑器的选择,素材获取的平台,以及干货满满的设计点。
从关卡设计到场景、角色的动画,到游戏的实际编辑与优化打磨,Dino师兄带你全部走一遍。
以下为分享原文:上次给大家分享了用OPENBOR制作游戏的方法后,有同学反馈说软件的编辑需要写脚本,学习门槛较高。
现在的独立游戏编辑器都在走轻量化、可视化的路子。
PGMMV的编辑界面采用了可视化状态机,操作面板和Unity等商业软件有点类似。
做出来的游戏可以打包输出Windows exe格式,就是可以在Steam上售卖。
别做什么独立游戏发售的春秋大梦了。
既然要制作Demo,那么美术资源就必不可少了。
图片来源:合金弹头在琢磨美术资源的时候,我突然想到了《合金弹头》。
这款游戏俘获了很多80后玩家的心,何不利用五一假期做一个简单的《合金弹头》Demo?
五一的时间有限,如果只是手绘黑白线稿应该来得及。
说干就干,我立刻在Steam上下单购买了PGMMV,然后开始筹备Demo的制作方案:Demo主要通过PGMMV制作。
学习引擎的时间建议放在五一前,我了几个官方Demo,看一下人家是怎么做的,这可以加快学习进度。
大部分人对《合金弹头》的印象都停留在第一代,因此我在Photoshop上针对初代的雨林关卡进行了二次创作。
我在热带雨林设计了一个地牢入口——前半段让玩家对经典雨林场景产生怀旧印象,情绪调动做足了。
设计点2游戏到达末尾时,我在瀑布悬崖的下方设计了纵版射击的玩法——玩家此时需要将屏幕竖起来玩。
但由于PGMMV目前不Switch的功能接口,因此这个设计只能算是纸上谈兵,目前阶段无法实现。
设计点3在所有人都认为打完关底BOSS就要结束关卡的时候,隐藏BOSS就正式登场了。
它的造型是我们生活中熟悉的扫地机器人的造型,而三根触手伸出来之后便可以行走自如。
配合火星的促销海报,给人一种忍俊不禁的幽默感。
光有奇思妙想还不够,还需要确定游戏的3C标准。
这里进行一个简单的数学换算,假如想做一款1080P的Demo,角色分辨率需要放大4.8倍变为135X175。
在原作中场景是静态不动的。
这次得益于强大的PGMMV引擎,用户可以做出多重卷轴功能。
我将场景分为了8层,分别为:8层:天空层,移动速率307层:远景灌木丛层移动速率506层:中景灌木丛层,移动速率605层:中景树木层,移动速率704层:近景建筑层,移动速率803层:近景树木层,移动速率902层:地面层,移动速率1001层:前景遮罩层,移动速率110移动速率指的是和角色之间的相对位移,100就表示和角色保持同步。
五一假期的第一天,我从早上7点画到凌晨3点,终于把场景部分全部完成。
潜水艇废墟热带雨林地牢DAY02·场景动画场景完成后,接下来可以考虑加入动的元素。
我们来试试给场景加一些下雨的动态效果:下的雨滴、滴在镜头上的雨滴。
前者用PGMMV自带的粒子系统制作,后者采用传统的2D画法来绘制——从网上雨滴的视频,然后逐帧截图。
观察雨滴的动态走势,一帧一帧的把球面扭曲的效果画出来。
连贯播放就变成了一滴雨的动画。
其他元素例如潜水艇的旗子、大树、杂草等,更适合2D骨骼动画。
其中龙骨是国内公司制作的一款全免费软件,主要操作流程是:将旗子或其他元素图片导入龙骨——绑定骨骼——绑定蒙皮——调试动画——导出序列帧图素。
到目前为止,场景部分的美术资源已经绘制得差不多。
在Photoshop里可以完整的拼接成一个大场景。
它是指在X轴左右方向可以无限拼接的绘制手法。
合金弹头的场景全长有六屏左右,如果全部手工绘制成本太大,也不利于引擎执行效率。
因此用许多二方连续图素来拼接大场景是2D游戏通用的做法。
例如画一段二方连续的地面,那么在Photoshop里可以拼接成一个无限长的地面,自然也可以在PGMMV里拼接出同样的效果。
DAY03·角色动画角色资源的绘制是以序列帧的形式。
所以找到官方的序列帧素材后,统一拉大4.8倍,再用线稿的形式逐帧描绘即可。
可以试着画一帧图,然后放到场景里感受一下效果。
这个时候也可以确定角色动画的底版尺寸。
把角色肢体伸展最远的一帧画出来,再来判断画板的尺寸采用256还是512。
在Photoshop里画好一个动作后,可以利用软件自带的动画功能来验证动画是否连贯(主菜单——窗口——时间轴)。
播放动画检查是否连贯,再根据效果进行动画的调整。
此外,过去的2D游戏为了制作角色边走路边射击的效果,是需要将角色的上半身和下半身分开绘制的,只有这样设计才可以让双腿一直循环播放动画。
我最终还是打算绘制完整的动作,放弃上下分离的方案。
出于时间的考虑,只绘制了主角、敌兵的部分动作。
PGMMV在编辑角色时,不支持多张PNG图。
单个角色的所有资源都必须存放在同一张PNG图里。
当角色的素材绘制结束后,还需要利用Photoshop的磁吸功能,将所有角色的单帧图整齐的排列到一张大图里。
鼠标拖拽的时候连角色和单色图一直移动,移动到合适的位置后,再隐藏单色图即可。
最终角色的完整序列帧大图输出之后,准备工作到此基本结束了。
DAY04·软件编辑接下来,开始实际用PGMMV制作游戏了。
接着,是很关键的两点:(1)图块的大小:这里的图块指的是行走层的碰撞格子大小。
假如是画幅比较大的游戏推荐64,假如是画幅比较小的游戏则推荐32或更低。
假如想制作一款720P的游戏,碰撞格子设置为64是比较合适的。
创建好游戏项目后,它的界面布局是这样的:(1)功能页签(2)子页签A(3)子页签B(4)操作区(5)属性区首先是顶部的【功能页签】:这个区域从游戏开发的角度。
任何一个页签都是重要的模块。
【子页签B】:这是第二层子页签,理解成另一个页签就好了。
【操作区】:这里是用户进行资源搭建的场所,属于核心页面。
用户需要在这里把场景图素资源整合到位,搭建出符合自己预期的一个游戏场所。
接下来还需要把制作好的主角、怪物扔到场景里待命。
如果用户点击对象,这里就变成了奥妙无穷的角色状态机编辑器。
你可以在这里以“状态-条件线-状态”的形式编辑角色的任何行为。
【属性区】:这个“属性面板“就是“子页签A、B”的子选项。
当用户点击页签的任意目标时,“属性区”都会显示该目标对应的属性参数。
介绍完了面板,接下来会说明如何将美术资源制作成可操作的Demo。
只要记住是这样的操作流程就可以了:资源——图块——场景——动画——对象——流程。
PGMMV知识点-资源在PGMMV官方的理念中,资源是一款游戏的源泉。
在资源模块里,还分有图像、字体、文本、视频、音乐等子页签。
PGMMV支持中文显示,因此可以创建类似角色、怪物、场景这样的文件夹。
接下来就把之前绘制好的所有PNG图都导入进去。
接下来就要在图块模块里进一步处理场景相关的图。
(导入,是从资源里面调用的意思。
)我把所有和场景相关的png图都导入了进来,命名和之前保持一致。
例如之前资源里有一颗树的图素叫做tree01.png,那么现在就可以创建这颗树的图块,名称可以和素材不一样,不过为了便于管理还是建议保持一致。
这个步骤可以看到,框选的红色格子是有固定尺寸的。
例如设置的是32X32,那么每一个红色格子都是这个尺寸。
有需要用到行走属性的图,就需要在图上面绘制行走格子。
这里我选择的是四方形都有碰撞属性。
PGMMV知识点-场景搞定资源和图块,已经可以开始制作场景了,让我们切换到场景这个模块。
最重要的一点是,当前场景需要用到何种图块,就需要用列表的左侧加号按钮来依次导入。
再次对着场景右键选择设置,可以再次进行图块的引用操作。
在下方的子页签里,右键新建一个场景。
场景宽度和场景高度的单位是1屏。
例如制作一个6屏的场景,那就都设置成6、1即可。
它对应的是右边属性栏里的“玩家可进入区域”、“镜头可及区域”。
目前经历过的流程是“资源-图块-场景调用图块“这个三层递进的步骤。
接下来,会发现图块这个区域,多了很多引用的资源。
并且行走格子都是事先画好的。
整个操作的感觉有点像是在左边盖印泥,然后在右边盖公章。
如果绘制的时候不小心点错了,也可以用橡皮擦涂抹掉重来。
当场景的图素都分层放置好以后,接下来可以右键选择场景设置,来修改层的位移速度。
根据近大远小、近快远慢的原理,已知我们主角的行走层默认速率是100,那么后面的层可以试试依次下降调整为90、80…
如果想修改场景的层数,可以在操作区上方进行添加或删减的操作。
PGMMV知识点-动画前面有讲到,场景的编辑流程是“资源-图块-场景调用图块“。
图块剥离出来的原因在于它需要在不同的场景里复用。
角色的编辑流程也需要考虑复用,因此为“资源-动画-对象调用动画“。
在这里可以右键创建一个动画主体,例如主角就是一个有很多组动画的主体,而旗子就是一个只需要一组动画的主体。
创建主角的主体后,依次创建不同的动画,例如待机,行走,跳跃等等。
例如行走的动画,每张图停留3帧。
至于角色什么时候开枪、跳多高,这些逻辑要在状态机里编辑。
这个时候就需要从排列好的整图里面来选取了。
前面三个都很好理解,接驳点可以理解为一个骨骼点,在其他脚本调用接驳点时可以用于发射子弹,或者播放特定的特效。
PGMMV知识点-对象当编辑好了一个角色的不同动作后。
PGMMV的是角色状态机编辑方式。
这个编辑方式非常先进,有点像Unity里的Playmaker。
首先在对象模块列表里右键创建一个角色,大家会看到操作区域暂时还是空的。
这个时候在操作区右键添加行动,行动里选择对应的动画,你便拥有了第一个状态。
点击行走,会看到“改变水平移动速度”默认是100。
在这里100就是表示不动,如果设置成150,那表示以50的数值来进行X轴的位移。
同理,在跳跃动作里把“改变跳跃速度”改成150。
这样跳跃动作就有了Y轴的力了。
这个表示该角色从诞生的时候开始,第一个播放的动作就是待机。
那就是玩家松开按键的时候,那么这时候拉一根箭头回到待机,选择“无输入“,即可达到目的。
现在,我们拥有了一个简单的角色,通过按键“←”或者“→”来切换待机和行走两个状态。
顺便还可以测试一下场景的多重卷轴效果。
我们回到场景的模块,选择之前创建好的场景,接着在上方的“子页签A“里,点击对象,便可以找到编辑好的主角对象。
这里有一个很重要的一点:那就是场景必须选择行走层,这样角色拖进去就是位于行走层。
否则如果鼠标选中的是其他层,角色便会诞生于一个没有行走碰撞格子的层了。
对准场景右键点击“设置为开始场景“,然后点击界面右上角的播放按钮进行测试了。
目前场景框架和角色行走都已搭建完成,PGMMV整个工具流算是走通。
DAY05·优化打磨接下来需要处理的有四部分内容:(1)主角还有其他动作需要配完,杂兵也需要配置。
(2)场景需要加入动态元素,比如序列帧植物,下雨的雨滴。
(3)两个场景之间的串联需要配置。
角色的新动作配置,有了前面的经验。
既然已经学会了怎么制作“待机“和”走路“,那么制作”开枪“、”跳跃“、”跳跃中开枪“应该很容易的一件事吧。
他们的基本逻辑如下:按K:开枪按J:跳跃跳跃中按K:跳跃开枪编辑杂兵的时候也是一样的思路,这次杂兵来不及制作攻击行为,就暂时只有待机一种动作。
总而言之,利用状态之间的跳转条件,来编辑状态的转换,正是状态机这种逻辑的魅力所在。
只要掌握了状态机的编辑原理,利用这套系统编辑出类似《胧村正》的连技手感应该不会太难。
也就是资源——动画——对象这样的流程。
那么把会动的树编辑成对象,再把这个树的对象摆入到场景里,不就可以让场景生动起来吗?
用这样的方法,把植物、旗子、雨滴都编辑到场景里。
也就是说,每一个雨滴、每一棵植物都是一个中立的小怪,你看到的场景中所有会动的动画,都是用这种对象的形式放上去的。
最后,因为关卡设计中有两个场景:热带雨林、地牢。
把它做到游戏里,正好可以验证“场景切换“的功能。
通过之前的场景编辑经验,我把地牢也分为了以下不同层级:6层:墙壁层5层:天花板铁架层3层:地面层2层:木支架层1层:前景遮罩层图片来源:CPS1基板,CAPCOM出品,《复仇者》在设计地牢的时候,有考虑到牢房的突发。
例如玩家可以打开门,门后面随机出现敌人或等待救援的美女。
而关底隐藏BOSS的出场,原本也是打算用序列帧的方式将触须刺穿墙壁的过程表现出来。
如果再给我几天的时间,或许可以把章鱼怪的战斗动画都给做出来。
制作完地牢这个场景后,打开“流程”这个模块,创建两个场景的链接转移。
只要设置好传送门的坐标,玩家便可以来回切换——如同《恶魔城》里面的场景切换一般。
最后是音乐和音频的配置,引擎默认支持ogg格式。
我用EVCapture录屏软件录制了《合金弹头》1代的关卡音乐以及开火音效,然后用Goldwe进行切割转换,得到了5个最终资源:关卡雨林音乐关卡地牢音乐开枪音效敌兵死亡语音1敌兵死亡语音2场景点右键设置,这里可以配置场景音乐。
而在角色动画里,可以具体到某一帧来配置音效,非常方便。
敌兵的死亡也是在死亡动画里配置的。
五天的挑战终于迎来了成果,最后试玩一下自己设计的手绘风《合金弹头》Demo吧。
本次通过PGMMV这款软件制作了游戏Demo,我总结出了以下知识点:(1)可视化编辑环境将游戏逻辑具象化显示,提升了工作效率。
(2)这款软件全程不需要代码或者脚本知识,但是仍需要一定美术资源拆分的经验。
(3)合理规划关卡设计,来不及画的资源和做不到的功能,要学会适时放弃。