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

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

  •  3
     
  •   DreamerQQ · 2020-11-27 18:09:41 +08:00 · 3504 次点击
    这是一个创建于 1217 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目录

    1. 前沿

    2. 第一期:制作基础场景

    在 [第一期:制作基础场景] 中,我们教学了如何下载魔兽地图编辑器,并制作了一个非常基础的小村子场景。 本期我们会简单地在场景中放入魔兽争霸 3 自带的英雄,使得我们的玩家可以控制一个角色在游戏中活动。同时我们要在游戏内增加一些怪物,使得我们的玩家可以控制角色能与它们战斗。 然后,我们会通过数据编辑器来自定义一个符合我们故事设定的主角,用于让其符合我们想要的世界背景,而非拘泥于魔兽争霸 3 原本的故事。

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

    第一节:在场景中放置魔兽自带的英雄和怪物

    重新打开我们第一期的地图。 2-1.png

    本期我们要增加玩家英雄和敌对的怪物,但我们不希望玩家可以直接控制我们村庄的各个 NPC 。 要解决这个问题,我们需要在 [情节] 中对玩家阵营进行调整。

    2-2.png

    点击 [玩家设置] ,我们来到了一个新的面板。 2-3.png

    在这个游戏中,我们需要一个 [敌对] 玩家,一个 [村庄] 玩家,一个 [用户] 。 我们把 #1 设置为用户, #2 设置为村庄, #3 设置为敌人。 但同时,我们还需要让用户和村庄两者是结盟的,当敌人入侵的时候,除了用户会攻击敌人,村庄也会攻击敌人。 为此,我们需要在 [玩家] 页面设置玩家控制者,并在 [队伍] 页面创建 2 个阵营,实现用户和村庄的结盟,以及和敌人的敌对关系。

    2-4.png 2-5.png 完成上述设置后,点击 [确定] 。

    回到场景,由于先前我们在放置单位时没有关注这些单位的所属,现在为了区分接下来用户操作的单位和村庄单位,我们需要把先前放置的所有单位设置其所属玩家为玩家 2,即村庄。 2-6.png 按下快捷键 U 打开 [单位面板] 后,按空格打开 [选择刷子] ,然后左键拖动框选我们的单位,随后按下 [回车键] 。

    2-7.png

    我们可以看到选中的所有单位的属性面板,在 [玩家] 栏,选择 [村庄(蓝色)] 。 2-8.png

    得到结果如下图,然后点击确定。

    2-9.png 2-10.png 随后在单位面板,确认其中的玩家栏指向 [勇者(红色)] ,然后随意找到一个英雄,放置到场景上。

    2-11.png

    2-12.png

    在这里,我选择了 [山丘之王] 作为用户操控的角色。 2-13.png

    按下快捷键 Ctrl+S 来保存地图(或者通过 [文件] - [保存地图] 来保存)。 2-14.png

    由于我们新增了 2 个玩家,但没有设置其开始点,在保存时会弹出如下对话框: 2-15.png

    点击 [是] ,编辑器会自动放置缺失的开始点。

    随后,点击测试地图按钮。

    2-16.png

    我们可以进入游戏来体验我们制作的游戏世界了。

    由于玩家 1 的开始点我们放在了村子外,所以在进入游戏后,镜头默认出现在了村子外。

    2-17.png 2-18.png

    拖动镜头到闪着白光的地方,或者双击 F1,选中单位 [山丘之王] 。 随后我们可以按照《魔兽争霸 3 》的基础操作方式来控制单位——右键移动,按下攻击按钮指定绵羊可以攻击绵羊等等。

    2-19.png 2-20.png2-21.png 2-22.png

    继续向左,我们就可以来到村子的边缘。 2-23.png

    不过这里现在什么东西都没有,我们按下 Alt+F4 退出游戏(或通过 [菜单] [结束游戏] [退出程序] 来退出游戏)。

    2-24.png

    2-25.png 2-26.png 2-27.png

    回到地图编辑器,打开单位面板,将玩家栏修改为 [中立敌对] 。

    2-28.png

    然后我们可以看到很多内置的怪物。

    2-29.png

    随意选择一些低等级的怪物,放在村子外面。 2-30.png

    此外,我们把红色玩家的开始点移动到玩家英雄的位置,这样在进入游戏后画面可以直接从山丘之王的位置开始。

    2-31.png

    为了让野外不至于太寒碜,我们把野外的场景再丰富丰富。 2-32.png

    现在我们有了一个可以进行基础游玩的场景了。 保存,启动测试,与怪物战斗。

    盟友会协助我们战斗:

    2-33.png

    我们也可以自行去野外战斗: 2-34.png

    第二节:自定义角色

    如果我们要做的游戏不是另一个魔兽争霸故事,那我们就得有符合我们自己故事的角色。 在第一节我们教学了如何将魔兽争霸自带的英雄和怪物放置到场景上,接下来我们要讲如何创建我们自己设计的英雄和怪物。

    在魔兽地图编辑器中,所有游戏内的单位数据,都是通过 [物体编辑器] 中的 [单位] 页面来管理的。

    2-35.png

    2-36.png

    每一个在场景上放置的单位,它们都能够在这里找到数据原型。 数据编辑器可以对单位进行全方位的编辑、设计,影响单位的移动方式、视觉效果、战斗力、持有的技能、等等。

    2-37.png
    2-38.png 2-39.png

    通过对这些数据原型进行修改,我们可以编辑魔兽争霸自带所有的单位,影响游戏的战斗体验。 典型的,我们可以修改单位的攻击力、护甲、生命值、移动速度,来直接影响特定单位类型的强度。 如果我们想要改变单位的样貌,就找到单位的模型数据,双击并修改它。

    2-40.png (通过这种方式,我们可以将他人制作或者自己制作的模型,导入到项目中,并放入游戏内使用,我们会在未来的教程中说明如何操作。)

    在魔兽争霸 3 的战役故事中有许多英雄,玩家往往也需要操作这些英雄来战斗。但假设我们的 RPG 游戏讲述的是一个地下城恶魔统治了地面村落,并试图侵入其它村落来占领世界统治权的战争故事,并且我们希望玩家扮演一个村庄里自告奋勇的勇者,使我们的玩家从勇者的角度来体验整个故事的剧情发展,那么我们需要设计一个 [勇者] 单位,来由玩家控制。 接下来我们制作它。

    将鼠标移动到左侧列表的 [自定义单位] 处,右键单击,在弹出的列表中点击 [新建自定义单位] 。

    2-41.png

    随后会出现一个新的窗口,用来为我们的自定义单位命名,并选择该单位所使用的基础模板。 2-42.png

    我们命名新的单位为 [平凡的勇者] ,并选择人族的英雄 [圣骑士] 作为模板。 (如果我们想要制作一个英雄单位,那么我们的模板单位也必须是英雄。)

    2-43.png

    点击 [确定] ,我们便获得了一个新的单位类型:平凡的勇者。 2-44.png

    在没有做任何修改的情况下,一个新的单位的所有数据会和其 [模板单位] 的所有数据相同,不过这不是我们想要的。

    我们不希望勇者在一开始就拥有强大的圣光加持,并且他也没有什么领袖的力量。因此,我们删掉 [技能 – 英雄] 里的所有技能。

    选中 [技能 – 英雄] 列后,按下回车键或鼠标左键双击,打开英雄技能列表。
    2-45.png

    在打开的列表中选中技能,并点击下方的 [删除英雄技能] ,直到删掉全部 4 个英雄技能。 2-46.png

    在完全删除后,点击 [确定] ,我们便可得到一个没有技能的英雄。

    2-47.png

    2-48.png

    不过现在,我们的 [平凡的勇者] 的模型仍然使用的是 [圣骑士] 的模型,这不是我们想要的。我们找到 [显示 – 模型文件] ,双击,然后找到 [村民] 的模型。

    2-49.png 2-50.png 2-51.png

    随后点击确定,我们便得到了一个模型为 [村民 (男性)] 的 [平凡的勇者] 角色,这个角色可以作为我们故事的主角。

    2-52.png

    回到左侧列表,在 [平凡的勇者] 文字上点击鼠标右键,然后选择 [在工具面板中选择] ,地图编辑器就会自动帮我们选中 [平凡的勇者] 。

    2-53.png

    2-54.png

    将平凡的勇者放置到村庄,然后删掉先前我们放置的 [山丘之王] 英雄。

    2-55.png

    2-56.png

    现在我们获得了一个更接地气的单位,并且可以使用这个单位作为主角来展开冒险了。 2-57.png

    显然,我们发现主角的头像图标仍然是 [圣骑士] ,并且攻击力、护甲和生命值都显得很夸张,主角的称谓 [卓尔-忏悔者] 也不符合我们的故事设定,操作时的声音 逐个修改它们。

    2-58.png

    2-59.png

    2-60.png

    在魔兽争霸中,英雄的攻击力、护甲和生命值是通过力量、敏捷、智力计算出来的。 如果我们不想抛弃这既有的规则,那么我们可以直接修改其属性值。

    2-61.png

    那么如果我们想使用我们自己的数值公式呢?——我们会在未来的教程中教学如何这么做。 不过现在,让我们回到游戏中再看看。 2-62.png

    好了,现在我们有符合我们故事的主角了。

    15 条回复    2020-12-25 16:54:38 +08:00
    toliho
        1
    toliho  
       2020-11-27 22:53:34 +08:00
    要做个啥故事
    DreamerQQ
        2
    DreamerQQ  
    OP
       2020-11-30 11:24:32 +08:00
    @toliho 做一个有宏大宇宙观的故事
    bk201
        3
    bk201  
       2020-11-30 17:15:48 +08:00
    让我想起了大学熬夜做图,结果没人玩的黑历史。
    BingoXuan
        4
    BingoXuan  
       2020-11-30 17:27:04 +08:00 via Android
    @bk201
    大学时候有个老师总是喜欢不经意炫富(就是现在的凡尔赛体),舍友就把她做到魔兽地图里面了。由于是默认地图,所以开黑时候突然冒出来,原型是剑圣,伤害爆炸
    BingoXuan
        5
    BingoXuan  
       2020-11-30 17:28:43 +08:00 via Android
    @bk201
    真的怀念大家一起玩魔兽的时光
    TargaryenChen
        6
    TargaryenChen  
       2020-11-30 17:35:54 +08:00
    支持一下~现在难得花一些时间在自己的兴趣爱好上了
    TangMonk
        7
    TangMonk  
       2020-11-30 18:17:54 +08:00 via iPhone
    推荐 unity3d
    quan01994
        8
    quan01994  
       2020-11-30 18:32:31 +08:00
    正好最近想要学习一下魔兽地图的制作
    Lemeng
        9
    Lemeng  
       2020-11-30 18:46:42 +08:00
    完美翻魔兽地图,那个房子,那个树
    graetdk
        10
    graetdk  
       2020-11-30 19:37:04 +08:00   ❤️ 2
    哇,这个支持,不过一开始我还以为是 RPG MAKER 的教程~
    leewendao
        11
    leewendao  
       2020-11-30 20:32:36 +08:00
    竟然还能够看到这个,泪目
    Rect
        12
    Rect  
       2020-11-30 21:53:11 +08:00
    青春啊 它一去不复返..泪目..


    PS...我还以为是 介绍个 UE4 或者 CryEngine 呢
    visionsmile
        13
    visionsmile  
       2020-11-30 23:13:09 +08:00
    推荐 UE4
    ansonsiva
        14
    ansonsiva  
       2020-12-01 08:01:07 +08:00
    @Lemeng #9 他这不是魔兽地图编辑器嘛?能不完美嘛,😂
    toliho
        15
    toliho  
       2020-12-25 16:54:38 +08:00
    楼主可否留下一个对应的完成文件下载? 如果有不明白的可以打开看。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3295 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:40 · PVG 08:40 · LAX 17:40 · JFK 20:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.