关键词不能为空

当前您在: 主页 > 英语 >

RPG地图制作教程

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 04:21
tags:

-

2021年2月28日发(作者:carol)


RPG


地图制作教程



教你如何做自己的


RPG-----


制图教学

< br>


说到魔兽争霸


3


大家肯定不会 陌


生,


那么各位在玩过特色各异的地图以后有没有想过自己动手 做一张地图?摇头拒绝的家伙


们听我把话说完,


其实做一张地图 并不是各位想象的那么困难。


下面我将会简单介绍一下集


合了几 种常见功能的地图的制作方法,


有兴趣的朋友不妨跟着做做。



这次要做的是一个


3C


中的人物选择功 能,


也就是当小精灵进入能量圆的时候选择对应的英雄,这是一个


3C


最普


通的选人功能。那么动手了。



首先找到地图编辑器,编辑器位于魔兽目录下,名为



(世界编辑器)


,双击打开。第一次使用地图编辑器,系统会自动为我 们创


建一张


64*64


大小,环境为罗 丹仑的夏天的新地图。如果想要手动创建新地图,可以通过


点击菜单栏的文件

< p>


-


新地图


/File - New Map


来创建。如果想要关闭在打开编辑器的同时创


建新地图的功能,可以同过选择文件



-


参数设置



-


常规



-


打开时创建新地图


/File


-


Preferences - General - Create a new map on start_up,


将前面的勾去掉来实现。



地图创建


完毕以后看见的就是这个地图编辑器的组成了,按


2



G


关闭坐标格 的显示。在制作上面


提到的功能以前,


让我们先做点准备工作。


首先既然是选择英雄,


那么英雄自然是必不可少


的,按


U


打开单位编辑面板,在这里可以选择我们所希 望的单位放置到地图上,我选择了


恶魔猎人(


Demon Hunter



,血巫师(


Blood Mage


)和巫妖王(


Lich King


,当然各位如果


看上其他英雄请随意,

< br>这并不会影响后面的制作。


顺便说说在单位面板中切换种族的方法是


在第三行左边的那个扩展菜单里面选择希望的种族,


由于选择英雄的时候所看 见的英雄是不


被我们控制的,


必须选择了以后才能控制,


因此一般的做法是将英雄更改为中立单位,


更改


的方法是双击放置在地图上的英雄,选择常规



-


玩家



-


中立无敌意


/General


-


Player


-


Neutral Passive



注意各英雄之间不要间隔太远,


否则让小精灵跑来跑去的很麻烦。


放好英


雄以后当然 还要在英雄面前放个能量圆作为小精灵进入选择用,


能量圆可以在单位面板的中


立敌对分支中找到。


最后再放上选英雄用的小精灵,

由于多个玩家的选择英雄的原理是相同


的,所以这里我们只做


3


个玩家的选择,因此只放属于


3


个 势力玩家的小精灵。如



工作就


算是完 毕了,接着开始做功能部分,要用到触发器。



由于是初次介绍 ,为了不扰乱大家的


思维,


所以我对触发器的原理不做太多的介 绍,


大家只需要知道触发器的作用就是可以以事


件的方式来实现 一些功能就可以了。按


F4


打开触发器编辑器

< br>/Trigger


Editor,


删除默认的那


个触发器,那是为


MEELE


准备的。可以看 见在魔兽地图编辑器中,一个触发器是由事件



Events< /p>



,环境(


Conditions



,动作(


Actions

< br>)三部分左右,这三个部分之间的关系可以


用一个简单的例子说明:



火药接触火以后爆炸



。 在这里,火药与火接触就是事件,只有二


者接触才会发生以后的动作;

< br>而火药接触的对象必须是火才会爆炸,


所以火在这里作为环境,

< br>限制火药爆炸需要的条件;


火药爆炸就是动作,


是在与火 接触以后引发的动作。


在触发器里


面我们可以根据需要自己修改 事件,


环境,


动作这三部分的内容,


比 如可以将火药与火接触


爆炸改为与水接触爆炸。


那么有了以上概 念,


来看看选择英雄的制作方法,


首先英雄必须在


发生了一个事件以后才会被选择,


而这个事件在这里就是:

< br>小精灵进入能量圆;


但是在这里


必须限制只有小精灵进入 能量圆的时候英雄才会被选择,


其他种类的单位进入则什么都不会


发生,于是整个触发的环境



-


也 就是限制条件也有了,就是:进入能量圆的单位类型是




精灵



;最后就是动作了,英雄被选择,其 实选择英雄的动作就是把英雄的从中立单位更改


为玩家势力控制的单位。


把上面所说的步骤以触发的方式写出来就是这样的:



事件



Events




一个单位进入能量圆范围内



环境(


Conditions



< /p>


进入的单位的类别是



小精灵

< p>


动作



Action s




把能量圆对应的英雄的控制者改为选择英雄的玩家


< p>
现在再按照写出来的触发


在地图编辑器中寻找对应的选项。



创建一个新的触发


/New


Trigger


,方法是在触发编辑器


右方的窗口中按鼠标右 键选择新


<


触发器


/New


Trigger>


,新触器发会被自动命名为



为命名


触发


00X”

< br>,


触发器的名字可以通过在选择触发以后按


F2


来修改。


然后点击新建的那个触发,


在右下方的 触发编辑窗口中鼠标右键,选择



新事件


/New


Event


,在出现的选单中选择






-


单位进入区域


/Unit - Unit Enters Region


,接着点击红色字体部分



-


选择区域


/- Select < /p>


Region


,这时候窗口会自动切换到大地图,要求我们选择一 个区域,这里要解释一下在魔


兽中,我们平时所看见的例如进入能量圆,或者进入花园, 进入洞穴诸如此类



进入某个地




的情况,其实并不是进入了我们看见的地方,而是进入了事先放置 在能量圆,花园,洞


穴等位置上的一个区域(


Region



。而现在我们要做的正是放置这么一个区域并且在事件中


选择他作为小精灵进入的区域,在大地图上可以看见


< br>面板已经自动切换到区域面板(直接


打开区域面板的快截键是

R



,点击面板上坐标样的按钮使之处于按下的状态,按住 右键拖


动鼠标在能量圆上画一个和能量圆大小差不多的区域出来,


再次点击面板上的按钮使之处于


弹起的状态,


然后点选刚才放 置的区域,


会自动切换回触发编辑窗,


红色字体部分也会被刚< /p>


才所选的区域的名字取代,连续确定


2


次 ,事件便做好了。



接着是环境


/Co ndition,


选择


<


新环境



-


单位类型判断


/New Conditions - Unit Type Comparison>,


将进入区域的单位类型


限 制为



小精灵



其中


Entering


Unit


的意思是



进入单位



这里指进入区域的单位,


Equal

to


的意思是



等同于

< p>




最后是动作


/Actions,


在这里先整理一下有哪些动作需要执行:


1


,由


于选择好英雄以后小精灵会消失,所以在动作的开头 要从游戏中移除小精灵。



2


,更改被


选英雄所属的势力为玩家操纵的势力。



3


,将选好的英雄移动到指定位置,也就是


3C


中的


基地。



4

< p>


由于英雄只能被选择一次,


所以在动作的最后要 关闭整个触发使之不再执行。




应以 上


4


条的动作分别是:



1



新动作



-


单位



-


移除



-


从游戏中移除进入单位


/New Action


- Unit - Remove - Unit - Remove (Entering unit) from the game 2



<


新动作



-


单位



-


改变


拥有者



-


改变恶魔猎人的拥有者为进入单位的拥有者并且改变颜色< /p>


/New


Action


-


Unit


-


Change


owner


- Unit


-


Change


ownership


of Demon


Hunter


0002



to


(Owner


of


(Entering unit)) and Change color 3


,新动作



-


单位



-


移动



-


移 动恶魔猎人到区域


001



中心


/New Action - Unit - Move Demon Hunter 0002 instantly to (Center of Region


001


)


当然区域


001


也是自己创建的区域;



4


,新动作



-


触发



-


关闭此触发


/New


Action - Trigger - Turn off (This trigger)


这样整 个触发就完成了,对照这个触发再将选择另



2


个英雄的也完成。最后保存地图,保存的时候会提醒你为每个势力放置开始点,如果

没有放置,


会自动为你在地图任意区域放置,


手动放置的方 法是在单位面板中选择开始点的


图标然后进行放置。


保存地图以 后按


Ctrl + F9


测试一下吧


~



另外别忘记在菜单栏设定



-




/Scenario - Pla yer>


中将势力


2



3


的控制者设置为玩家


/User


否则在游戏里就不能选择


势力


2



3


了。


< /p>


刷兵(有的地方把这个叫做孵蛋,我完全不能理解


…………



。简单解释就


是每隔一定时间产生一些单位 在基地附近,那么废话不多说,下面开始介绍怎样制作。



大< /p>


家都知道在


3C


中兵是每隔一定时间就会 自动产生的,在触发器中,我们将这种每隔固定时


间就会自动发生一次的事件叫做



周期性事件



,< /p>


一般来说经常通过以下两种途径来实现事件








==========================




1============== ===========================


第一种是通过触发器中的 循环事


件来实现的


(也有将这个叫做回圈的)

< br>,在触发器中新建一个


Action


(动作)

< p>


在下拉菜单中


找到这样的句子

< br>——


For Each Integer A,Do Multiple Act ions


(对于所有的整数数值


A


,< /p>


执行


若干动作)



点击确定以后会看见在


Actions


动作)


这个类下面已经增加了这样的一个


Action


(动作)




For each (Integer A) from 1 to 10, do (Actions) Loop - Actions


(对于所有的整


数值


A



< br>1



10


执行动作



循环



-


动作)



我详细解释一下这个


Action


的作用,

For each


(Integer A) from 1 to 10


(对于所有的整数值


A


,从

1



10


)的意思是重复执行


10



Loop


- Actions


(循环



-


动作)中指定的


Actions< /p>


(动作)


,同样的道理如果将后面的


fr om 1 to 10


(从


1



10


)改成


from 1 to 20


(从


1



20


)那么就



会重复执行


20


次动作,假设是


from


5 to 10


则只会执行


5


次动作,至于 为什么不直接用


from 1 to 5


来代替


from 5 to 10


,这是


在某些时候必须



用到的功能,至于具体使用的时机,为了不使大家头脑混乱,现在暂时不






等< /p>





使





< p>










------------------------ --




------------- ------------------------


现在为了更形象的说明这个功能 ,


我们来做个简单的范例,



F4


打开触发器编辑器,新键一个


Event


( 事件)



Player - Player 1 (Red) skips a cinematic


sequence“


玩家



-


玩家



1


(红色)跳过一段电影序列



,这个事 件的建立方法是鼠标右键



-


New Event


(新事件)



- Player


(玩家)



- Cinematic Skipped


(电影被跳过)


,这个事 件的


作用是当玩家


1


按下


ESC


键的时候就会触发动作。


接着增加一个动作< /p>



For each (Integer A)


from 1 to 10, do (Actions) Loop - Actions


这样就将需要重复执行动作的次数定为


10< /p>


次,



后在


Lo op


-


Actions


下面依次添 加这些动作:



Game


-


Display


to


(All


players)


the


text:


(String((Integer A)))


(游戏



-


向所有玩家显示信息





将作为循环序列的整数

< p>
A


的值转换


为字符串类型


[


关于数据类型,这里不多做解释,大家只需要知道只有字符串类型的数据才

< p>
能被作为信息显示出来就可以了


]



在这里



作为循环序列的整数


A”


其实就是用来记录已经重


复执行了多少次动作的一个数值 。


)添加这个动作的顺序为


New Action


(新动作)



- Game


(游戏)



-


TextMessage(Auto- Timed)


(显示信息,自动调整信息显示时间)



Wait


1.00


seconds


(等待


1.00


秒,这样在每次执行动 作以后都会间隔


1


秒才执行下一次动作)添加

< br>这个动作的顺序为


New Action


(新动作)



- All


(所有)



- Wait


(等待)




然后在整个循环


Action


(动作)


的后面


(注意,


是在整个


Fo r Each Integer


的后面,


不要添加到

< p>
Loop - Actions


下面去了)添加这个



Action


(动作)




Game - Display to (All players) the text: (finish)



用是在整个循环结束以后显 示一句话以标明循环结束了。


当然其中的


finish


大家可以随自己


爱好随意更改。



最后将


Melee Initialization

< p>
(地图初始化)这个触发删除掉,在地图上放置


玩家开始点,按

< p>
Ctrl + F9


进游戏测试,可以看见在游戏中当按下


ESC


键以后会分


10


次每< /p>


秒一次依次显示数字


1~10



最后则会显示


finish


< br>通过这个例子可以很清楚的看出。


For each


(Integer A) from 1 to 10, do (Actions)


这个动作可以让位于


Loop - Act ions


下面的动作重复


执行


from 1 to 10


中后面数字


+1


减去前 面数字的次数,而当所有的重复次数被执行完毕以


后,


则会继续 执行整个循环后面的动作。


这样就很简单方便的实现了周期性事件的执行,



是用这个


Action


( 动作)


实现的周期性事件有两个弊端,第一是循环执行的次数有限,大家


也看见了,在这个


Action


中无论如何也要求输入


2


个数字以确定执行次数;第二是每次执


行动作之间的时间间隔有最小限制,在上面的例子中,大家将


Wait


1.00


seconds


(等待


1


秒)改为


Wait 0.00 seco nds


(等待


0


秒)以后进入游戏测试 ,会发现即使是


0


秒,也会有


微小的等 待时间(大概


0.1~0.4


秒左右,视电脑配置而定)


,这样在执行某些重复时间间隔


很小的周期性事件的时候,

< p>
就完全无法实现了,


对于必须排除以上两种限制的周期事件,



必须用到另外一种方法,


periodic ev ent


(周期循环事件)


,和


For each Integer


不同的是,


这是一个


Event


(事件)而不是一个


Action


(动作)




==== ======================


方法


2=== ======================================


添加这个事件的方法


:New


Event


(新事件)



- Time


(时间)



- Periodic Event


(周期事件)


,添加完成以后可以看见在


Event


这一类下面出 现了这样的


Event


(事件)




Time - Every 1.00 seconds of game time


(时间


-



1.00


秒游戏时间)作用很明显,就是每


1


秒都会执行一次


Actions


(动 作)中包


含的所有动作,


Every 1.00 second s


中的数字用于指定每多少秒执行动作。


对于这个事件的





< p>







1










。< /p>



--------------------------




----------------- --------------------


新建一个触发器,


Event


(事件)就用上面那个事件,将


1.00


调整为


0.50



也就 是每


0.5


秒执行


1

< br>次,


然后按下


Ctrl+B


打开 变量编辑面板,


(由于变量是


第一次接触,

所以我暂时不详细说明,


大家按照我说的做就是了,


以后会 对变量和数据类型


做详细介绍。


)点击面板上方的绿叉按钮,在 出现的窗口中下方的下拉菜单选择


Integer


(整


数)然后在上面的输入栏中为这个变量随便起一个名字,


[


图:


]


这里我用的名字是


i 1


便于下面统一介绍,这样就建立好了一个类型为


< p>
整数



型的变量。暂时将这个变量放在这里

-


-


-


-


-


-


-


-



本文更新与2021-02-28 04:21,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/678471.html

RPG地图制作教程的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文