找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5851|回复: 17

地图组成的元素 (初学必看)

[复制链接]

该用户从未签到

发表于 2006-1-20 10:21:00 | 显示全部楼层 |阅读模式
地图的组成元素
 
这里的东西或许你有可能看不懂,或看懂了一部分,没有关系的,这是概念性的东西,了解即可,至于理解嘛!!那是要花点时间的,不要着急,以后记得随时看看就会逐渐明白了,呵呵。我这么说并不是代表你现在不用看哦,这些是很基础很重要的东西,不可不看,记住了,我这么安排是有我的道理的。

游戏里的地图:
呵呵,地图你可能不会,cs你总会玩吧,让我们看看游戏里的地图吧。我们就讲讲意大利版,游戏里有什么啊?我来概括一下:
玩家、人质、一般的墙壁地面、天空、小鸡、土匪老家的音乐、人质获救区、装备购买区
呵呵,大概就这些东西了。这些啊,是我们作者设计地图的时候都设计好的,那么作者是怎么作到这点的呢?我们往下看
 
设计时的地图的组成:

固体:
地图中最基本的构成要素,就像上面提到的墙壁、地面、天空,是地图的根本,我们把这类具有一定形状东西叫成固体

固体实体:
我们给予固体一定的属性,这样具有一定属性的固体叫固体实体。
比如,
我们给予固体移动的属性,那么他就可以在游戏里作为移门了,
我们给予固体可控制移动的属性,那么我们可以在游戏里把他作为车子开动了,
我们给予固体类似于开关的属性,那么他就可以在游戏里作为开关来使用了。等等.........
这样具有一定属性的由固体转化而来的我们叫他固体实体。

我们在看上面提到的人质获救区、装备购买区,这些个区域是在游戏里见不到的,但他确实存在。
我们在这样的区域范围里面才能买装备,
把人质带到这样的范围里面才能让人质获救,
这样的区域在设计地图的时候也是由具有一定形状的固体。
代表一个区域范围,给予这个区域范围可以买东西的属性,就成了装备购买区,
给予人质获救的属性,那么就是人质获救区了...
好了,我现在给下一个最终的结论:固体实体是由固体转变而来,具有自己独特的属性,用以模拟现实中的某种东西或在游戏里圈定一定特殊功能区域的实体

点实体:
土匪老家有音乐的,我们可以听到,但见不到,这个是地图作者在制作地图的时候设置好的。
像这样的设置,是不需要一个具体的东西或范围的(固体),只要一个发出声音的音源即可,
我们再看看人质、小鸡和玩家,像这样东西可不是让你自己做的,是游戏本来就有的模型(对应mdl文件),
在设计地图的时候,只要指定一个具体的方位,让游戏知道你的想法:
让玩家在那里出生、让小鸡在地图的那里、让人质呆在那里就可以了。
象这种不需要具体形状的东西我们叫他点实体。
我们再深入一下,设置地图里所有一切不需要实际形状或范围的情况、定位、事件的功能的实体我们叫他点实体。
比如我们一开始就需要装甲和沙鹰,这样的设置是不需要实际形状的,只需要让游戏知道开始发装备给你就可以了,也就是游戏开始让引擎执行发装备的事件,这样的情况我们就可以通过点实体来进行。

点实体:存在并作用于游戏,但是却不可见的。大家明白了么?呵呵

总结:任何cs地图,都是包括固体、固体实体、点实体这3个要素的,也只有这3个要素,够成了千千万万的cs地图。

好了,讲了这么多,我们看看cs的地图构成的最基本的东西,往下看。

cs地图的构成:cs的地图必须是一个由固体组成的密闭空间,里面有双方玩家和光线
(光线不是必须的,但是没有光源的地图编译一般是通不过的,为了照顾初级的朋友,我只好加上这个了,呵呵)
-----呵呵,这个就是cs地图的最根本的东西,任他地图千变万化,这些东西是永远存在于每一个cs地图的!!!!
 

进阶知识:

关于一些hl的mod的地图通用性的原因:
大家如果玩的hl的mod很多的话,会发现很多地图是可以通用的,比如dust可以在龙珠(half-life的另一个mod)里使用,也可以在half-life里使用,骇客帝国(half-life的另一个mod)的地图可以在cs里使用,为什么呢?
呵呵,很简单的原因,hl的所有的mod都是通过hl的引擎修改开发的,既有不同的地方,当然也有相同的地方喽,

地图通用最主要的原因是:地图中最基本的东西某些mod都通用,也就是没有改变hl引擎的这一部分。
这些最基本的东西是:
玩者双方和地图世界构成规则
(地图世界构成规则是所有hl的mod包括hl本身都是一样的:即地图是由固体构成的密闭空间)。一个hl的mod引擎只要验证通过了这2个条件,这个地图就能在该引擎上运行了。
我举一个例子,cs地图的最基本要素是游戏双方:
警察(对应定位的是info_player_start实体)
土匪(对应定位的是info_player_deathmatch实体)、
而half-life也是(呵呵,当然不能叫警匪了,一般叫甲乙双方,而这个甲乙双方对应的实体也恰恰就是上面提到的实体呵呵),只要游戏在载入地图的时候检测到这2个实体存在于地图,引擎就会认为是这个游戏的专用地图,就会载如这个地图。原因就这么简单!!
我再进一步阐述一下游戏引擎对不同兼容的实体的处理:我们再举例子,
我们可以把cs1.6和cs1.5看成2个不同的游戏(事实就是这样的,引擎变化了嘛),1.6的aztec1.5也能运行,只不过1.5里面不再下雨了(1.5不支持env_rain实体,这是下雨的实体),
我们可以得出结论:引擎对于不兼容的实体采取的是不理会的处理方法而不是游戏出错。

我们现在可以总结:地图最基本的要素的相同性和引擎对不支持的功能的不理会(不是报错)的处理方式是很多地图在hl的mod之间通用的根本原因所在。
不信?呵呵,大家可以寻找加载一些地图通用不同游戏的fgd看看,是不是都有info_player_start和info_player_deathmatch实体啊?呵呵
好了,屁话一大堆,该了解的也了解了,我们这就开始做图吧!

[ 本帖最后由 SiMen.beambean 于 2007-10-30 01:15 编辑 ]

该用户从未签到

发表于 2006-4-5 04:49:00 | 显示全部楼层
007  你太厉害了!!! 崇拜你!!!

该用户从未签到

发表于 2006-9-22 15:03:00 | 显示全部楼层
对我这个门外汉讲 还是有点吃力

该用户从未签到

发表于 2006-9-25 09:01:00 | 显示全部楼层
有N个地方不懂..

该用户从未签到

发表于 2006-10-9 22:41:00 | 显示全部楼层
<>做地图比做视屏还复杂!</P>
<>我喜欢</P>
<>哈哈哈</P>

该用户从未签到

发表于 2006-11-10 05:26:00 | 显示全部楼层
<>好东西</P>
<>    我喜欢`</P>
<>                     支持</P>

该用户从未签到

发表于 2006-11-19 18:25:00 | 显示全部楼层
没得说。。。厉害。

该用户从未签到

发表于 2006-12-6 14:28:00 | 显示全部楼层
又是看了别人的才放上来,烦,搞点原创嘛

该用户从未签到

发表于 2007-1-29 22:32:00 | 显示全部楼层
[upload=bmp]UploadFile/2007-1/20071292232318883.bmp[/upload]<BR>哈哈~!

该用户从未签到

发表于 2007-1-29 22:33:00 | 显示全部楼层
我就是不做97 的~!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表