V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DreamerQQ
V2EX  ›  程序员

从零开始的 RPG 游戏制作教程(第五期)

  •  
  •   DreamerQQ · 2020-12-22 15:40:34 +08:00 · 1161 次点击
    这是一个创建于 1222 天前的主题,其中的信息可能已经有所发展或是发生改变。

    往期回顾

    前言

    第一期:制作基础场景

    第二期:让勇者和怪物登场

    第三期:基础的数值设计

    第四期:从理论的角度简单聊聊关卡

    接着上一期,现在我们所制作的东西将密切地和关卡相关。

    第五期:制作物品和技能

    王国的力量指环

    基于上一期的清单,让我们先设计“王国的力量指环”。

    打开物体编辑器,将分页切换到“物品”。

    5-1.png

    在左下角 [自定义物品] 处,右键点击,新建自定义物品。

    5-2.png

    这里我们选择 [巨人力量腰带] 作为基础模板,同时将新物品名字设置为 [王国的力量指环] 。

    5-3.png

    然后点击确认,这样我们就获得了一个新的物品。

    5-4.png

    在右侧,我们可以修改新创建的物品的名称、描述、图标等等数据。

    5-5.png

    经过一番修改,我们现在有了“王国的力量指环”这样一个全新的物品。

    如果现在我们进入游戏,王国的力量指环只会增加 6 点力量,因为原来的模板物品(巨人力量腰带)只会增加 6 点力量。

    5-6.png

    这里涉及到的是魔兽争霸物品的实现机制。 在魔兽争霸 3 中,一个物品可以拥有多个技能效果,物品本身是不包含任何效果的。

    5-7.png

    比如双击上面的“技能”数据,在打开的窗口点击编辑技能,将会看到如下图的技能列表。

    5-8.png

    因此如果我们要修改物品的效果,改变其增加的力量值,我们就需要再新创建一个技能,使其能够准确增加我们需要的数值的力量值。 为了实现这一目的,现在我们切换到“技能”分页,找到 [能提高英雄属性的物品 (+6 力量)] 技能。

    5-9.png

    注:你可以使用搜索功能来快捷地找到自己需要的数据。

    5-10.png 5-11.png

    此外,除了通过右键“自定义技能”来创建新技能以外,你也可以通过复制粘贴的方式来获得新的自定义技能。

    5-12.png 5-13.png

    随后将会出现一个被粘贴出的自定义技能。

    5-14.png

    你也可以用先前的方式,在自定义技能处,右键,新建自定义技能。

    5-15.png

    然后选择 [能提高英雄属性的物品 (+6 力量)] 作为模板,创建新技能。

    5-16.png

    修改新技能的数据“力量奖励”,从 6 改为 10,同时也可以修改编辑器后缀的 [(+6 力量)] 为 [(+10 力量)] 。

    5-17.png 5-18.png

    回到“物品”分页,找到“王国的力量指环”,编辑器物品的技能列表,删除 [能提高英雄属性的物品 (+6 力量)] ,替换为 [王国的力量指环 (效果)] 。

    5-19.png 5-20.png

    回到场景双击克里夫,在弹出的窗口切换分页到 [物品栏] ,点击 NO. 1 。

    5-21.png

    找到力量指环后确认,现在进入游戏,力量指环现在会增加 10 点力量了。

    5-22.png

    铁剑、小型生命药剂

    按照王国的力量指环的相同逻辑,接下来我们要制作铁剑和小型生命药剂两种物品。 前者是装备,后者是消耗型道具。

    在这里我们假设铁剑的效果是增加 6 点攻击力。 我们可以找到具有相同效果的物品 [攻击之爪+6 ] ,复制粘贴,然后修改它的图标和描述。

    5-23.png

    对于小型生命药剂,我们希望使用间隔是 10 秒,使用会回复 100 点生命值。 我们以 [生命药水] 为模板制作。

    5-24.png

    找到生命药水后,复制粘贴,修改名字。

    5-25.png

    小型生命药剂的生命值恢复效果在 [具有医疗效果的物品 (较小的)] 技能中被设置。

    5-26.png

    切到技能页面让我们查看它能够恢复多少生命值。

    5-27.png

    按照先前制作王国的力量指环的逻辑,我们在这里将这个技能复制粘贴,获得一个新的恢复指定数值生命的物品技能。

    5-28.png

    进行一番处理,将数值调整为我们需要的 100,然后回到物品页面,将小型生命药剂的技能替换为我们新创建的物品技能。

    5-29.png

    再进行一番修改后,我们获得了完整地小型生命药剂。

    此外我们希望玩家使用药剂的时间间隔为 10 秒,我们需要修改物品的 [状态 – CD 间隔组] 。 在魔兽中,物品使用 [ CD 间隔组] 来共享物品的使用间隔。比如在正常的魔兽中, [生命药水] 和 [大型生命药水] 使用的是相同的 CD 间隔组,意味着无论在游戏中,英雄是使用 [生命药水] 还是使用 [大型生命药水] ,一旦英雄使用了其中一个,就必须等待一定时间才能使用任何另一个生命药水。

    5-30.png
    5-31.png

    目前我们不太考虑 CD 间隔“组”的问题,只考虑单个药水的间隔,因此我们双击 [ CD 间隔组] ,找到我们的 [小型生命药剂 (+100)] ,然后确认。

    5-32.png

    回到技能页面,把 [小型生命药剂 (+100)] 的 [状态 – 魔法施放时间间隔] 数据从 20.00 修改为 10.00 ,我们便获得了一个使用间隔时间为 10 秒的药剂。

    5-33.png

    至此,我们已经做完了我们需要的 3 个物品:王国的力量指环、铁剑、小型生命药剂。

    设置英雄等级上限

    接下来我们要限制英雄的等级上限。

    我们没有办法通过物体编辑器来直接限制英雄的等级上限,要修改上限,需要回到地形编辑器。 在地形编辑器的菜单 [高级] 中有一个选项名为 [游戏平衡性常数] 。

    5-34.png

    点击后会有如下的窗口,这个窗口里定义了许多和游戏平衡性相关的数据,修改这些数据可以对地图的游戏数据细节进行更全面的控制。

    5-35.png

    我们找到 [英雄 – 最大等级] 。不过直接双击我们会发现无法编辑,这是因为魔兽地图编辑器为了防止制作者意外地修改到这些数据,我们需要先勾选 [使用自定义平衡性常数] 才能进行修改。 如下图处理后,我们将英雄最大等级修改为 2,然后点击确定保存。

    5-36.png

    做了这个修改后,进入游戏,无论击杀多少个怪物,克里夫在本地图内的最高等级都只会是 2 级。 到这里你也许会问,这个地图限制了英雄等级是 2 级,在后续的游戏中我想解锁更高的等级怎么办?这个问题我们先不做解答,在后续讲解 [战役编辑器] 时,我们会再讲述这个问题如何解决。

    制作技能:重拳

    接下来让我们的 RPG 在可玩性上能够更高一些。 先前我们已经制作出了 [克里夫] 这么一个勇者角色,但如果我们不希望我们的玩家只能够使用 [攻击] 指令来普通地和怪物对抗,我们就得考虑增加更多的操作空间。 制作一个可以让玩家主动使用的、具有击晕效果的技能,将能够让我们的玩家在战斗的时候有更多地发挥余地。玩家可以通过对特定的怪物使用技能来迂回地战斗,同时也因此,玩家可以根据自己的操作水平来考虑要不要在自身属性没有那么高的情况下挑战更多的怪物。 技能的设计又是一门大的分支,在现今的游戏行业中,当研发团队规模达到一定程度,团队里甚至会有小组专门负责技能的制作。 不过在那之前,让我们先着手制作 [克里夫] 的重拳吧。

    我们在这里设定,重拳只能对单个敌人使用,会造成 50 点伤害,并让敌人昏迷 2 秒,使用间隔为 20 秒,消耗魔法值为 0 。 这些数值并没有什么依据,只是大致地根据目前怪物的生命值、杀死一个怪物所需的时间来大概估算的数值。无论如何,我们可以确定这技能能够一定程度地降低战斗的难度。但为了避免难度降低得过于严重,我们将使用间隔设置为 20 秒。

    在魔兽争霸 3 中,能够造成昏迷效果同时又能够造成伤害的技能,是人族山丘之王的 [风暴之锤] 。 在技能分页中找到它,然后复制粘贴。

    5-37.png

    一个技能往往有很多数据,但挨个介绍会让教程显得过于冗长,目前我们暂时不对所有数据进行介绍,只根据我们的需要来继续修改。 目前我们只在制作第一关,因此先把重拳的技能等级限制为 1 级,通过修改 [状态 – 技能] 为 1 来实现。

    5-38.png

    当英雄使用风暴之锤时,按照风暴之锤的设定,英雄会播放 spell,throw (施法、投掷)动画。我们不希望克里夫在使用 [重拳] 时播放投掷动画,因此将 [显示 – 效果 – 施法动作] 修改为 attack,意为“攻击”。

    5-39.png 5-40.png

    通过修改 [状态 – 魔法施放时间间隔] 来修改技能的使用 CD,将其从原有的 9.00 修改为 20.00 。

    5-41.png

    同时取消该技能对魔法值的消耗,通过修改 [状态 – 魔法消耗] 来实现。

    5-42.png

    在 [风暴之锤] 技能中,数据 [状态 – 持续时间 – 普通] 对应的是命中普通单位时造成的昏迷时间, [状态 – 持续时间 – 英雄] 则对应命中英雄单位时造成的昏迷时间。 目前我们不对普通单位和英雄单位做区分,只要重拳击中敌人,就必然造成 2 秒昏迷,因此将这两项数据均改为 2.00 。

    5-43.png

    同时,我们不希望克里夫能够一击重拳打中隔了好一段距离的敌人,因此对照克里夫自身的攻击范围( 100 ),修改重拳技能的射程,对应数据 [状态 – 施法距离] 。

    5-44.png 5-45.png

    另外,重拳击中空中的敌人也不是我们想要的,因此需要限制本技能不能击中空中单位,在 [状态 – 目标允许] 中取消勾选“空中”。

    5-46.png 5-47.png 5-48.png

    而造成伤害值则直接修改 [数据 – 伤害] 。

    5-49.png

    我们不希望克里夫在等级 1 时就习得这个技能,因此我们设置该技能的最低等级要求为 2 级,通过修改 [状态 – 等级要求] 来实现。

    5-50.png

    好了,我们已经设置了所有必要的数据。 对文本描述和图标再做修改之后,我们就得到了基于 [风暴之锤] 修改而成的新的技能: [重拳] 。

    5-51.png

    让我们转到 [单位] 页面,找到 [平凡的勇者] ,修改其 [技能 – 英雄] 数据栏,添加我们的技能 [重拳] 。

    5-52.png 5-53.png 5-54.png

    保存,进入游戏!

    5-55.png

    好了,现在我们有了一个能够变得强大的克里夫了! 下期再见!

    1 条回复    2020-12-25 16:40:32 +08:00
    toliho
        1
    toliho  
       2020-12-25 16:40:32 +08:00
    我也尝试过制作游戏,似乎最难的点不在于技术,而是情节丰富、很好的设计游戏的奖励和目标。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1471 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:01 · PVG 01:01 · LAX 10:01 · JFK 13:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.