游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6332|回复: 12

[讨论] 谈场景坐标

[复制链接]

80

主题

752

帖子

823

积分

高级会员

Rank: 4

积分
823
发表于 2006-12-27 19:28:00 | 显示全部楼层 |阅读模式
http://gxr0.blog.sohu.com/27108780.html#comment

坐标是场景设计中常用的一个名词。坐标在游戏是很重要的一个运用,不同的情况下使用不同的坐标系。

不同的坐标系采用不同的单位,有以像素为单位的坐标,以格为单位的坐标,以块为单位的坐标等。不同的游戏格的大小又不一样,不同的情况下块的大小也不一样。

在2D地图中,应用到几个坐标:

1:像素。

这个坐标是程序上要用到的坐标系,程序需要知道地图有多大,有多少像素,某物件占用多少乘多少的像素,重心在什么位置。

2:格

这个坐标是策划要用到的坐标系,也是给玩家用的坐标系。各是游戏中设定的最小范围,比如15*15像素为一格,那么游戏中的大小都是这个格的倍数。如此,如果一个玩家站立的范围是一格也就是15*15大小的话,那么玩家是始终在一个格子里的,而不会站在两个格子中间,如此,玩家走路的步长的单位也不会是像素了,而是格,比如,走路是1格/秒,跑步是2格/秒。这个格在一些游戏中显示给玩家看的为坐标。如:369,589。这样的坐标用起来是很方便的。在地图中的各种掩码,遮罩的大小都是用格来表示的,另外陷阱,森林,草地,沙滩,雪地等等的特效也用用格来表示的,如坐标236,654对应的是雪地,那么玩家走上去的时候就会产生一个雪地的脚印发出噗噗的声音。

3,块

这个坐标一般是美术用到的坐标,在2D地图中,需要用到拼图,有两种,一种像大话西游系列和幻灵游侠系列那样的整张图片切割后再拼接的,画面细腻漂亮;另一种是像征服,征途,传奇等那样用部分图片切割后再重复拼接的,画面稍显粗糙,但是地图会很大的。在这些游戏中,切割都是很重要的环节,因为游戏加载不能一次加载太大的图片,所以有必要切割一下,像大话幻灵那样由于单个场景小,所以可以无需重复拼接,但像征服那样的就必须要重复拼接了,否则客户端太大。

这些切割后的图片是根据不同游戏分大小的,如64*64,128*128,256*256.如幻灵和征服就不一样。这些切割后的图片需要按照一定的规律再拼接成一张大图,于是生成一个文件,这个文件就是块坐标对应资源的索引文件。其实就是说,切割后的图片都是一样大小的,放置在某个文件夹中,然后这个文件就是将场景按照上面的大小划分出一块一块来,每一块对应的资源是哪里的什么图片。这样再客户端加载的时候会先读这个文件,从而生成场景。

3D游戏中的坐标有

1,格坐标

3D游戏中的格的大小不是固定的,在一开始要生成场景的时候就按照一定的大小生成场景,这个场景划分了很多格子,这个格子是程序算出来的,但是美术在编辑的时候,很容易会将这些格子拉扯的不像个样子,比如要隆起一座山,从平地上拉起一座山来,原本100个格子,还是100个格子,但是有些格子面积变大了。这种格子没什么用。

2,像素

像素是3D游戏用到最多的坐标单位。比如,人有多高,如我们定了人有2米高,这个高度是128像素,那么1米就是64像素,其实推导是反过来的,美术把一个人物制作出来了,不管怎么放大和缩小,没有参照物的话,都是一个样子的(看不出大小)。于是把一个标准人放场景,或者编辑器里,查看在这个场景中是多高,我们可以调整人的高度为128像素,如果我们想用1米=64像素的换算的话,这样单位就出来了,在游戏中所有用到的米的单位都会换算成像素在游戏中体现了。

3,玩家坐标(米坐标)

玩家坐标是显示给玩家看的一个坐标,由于3D游戏中玩家不再是走格子(因为格子大小不能固定),所以将场景按照一定大小划分成坐标,一般来说这个坐标就是上面所提到的米,也有几米一个坐标的。像魔兽世界中的坐标都是走很多步都是在一个坐标中的。这种坐标往往还运用在逻辑地图中的,比如,你走到一条河的时候会显示出“小河”字样。当然有时候也不一样,不同游戏的机制造成了实现这种功能的方法的不同。比如上面的这个例子有两种实现方法,1种是服务器加载一个索引文件,就是按照米坐标属于的逻辑区域名称。这样玩家无论走到哪里,都会对应到一个区域名称;另一种方法呢,是用颜色值把所有的逻辑区域涂出来,然后等级这些颜色值对应的逻辑区域名称,这样在服务器加载的时候就会加载这个图片,玩家走到什么位置就知道是什么颜色,对应的逻辑区域名称也就出来了。这两种各有优劣,当然还有其他办法来实现的。

4,大块坐标

这个是给美术看的,因为如果一个无缝的世界地图没有被切割成坐标,是难以安排工作的。以前我在设计的时候没有考虑到这一点,出了很多的问题,实际上即便是无缝地图也是要划分成大块的。另外美术在安排天空盒,场景光照,雾的时候也会用到这些,比如12号块和13号块是“黄土高坡片区”,那么对应的天空盒和光照情况是一样的。当然还有其他的实现方式,比如用米坐标,颜色图片来对应这些参数。

大块地图在世界场景拼接的时候需要,比如A做了黄土高坡片区,B做了井冈山片区,要整合成一个世界地图的时候,就需要给这些片区地图一个合适的位置用来拼接。我以前做的游戏中,大块地图是同样大小的,结果虽然是无缝链接地图,但是单个片区还是明显看出是方型的。经我后来的考虑,这种划分完全可以不用标准大小来切割,可以用曲线将整个世界切割,然后像蛋糕一样,不标准的切割后,交给美术独立制作,然后将这些不标准的地图再一一对应拼接到整个世界中去,这样就是魔兽世界那样的了。如此需要引擎支持不规则地图的编辑,如创建,切割,整合等。

5,服务器坐标

这个坐标单位还是像素,但是将世界根据不同的需要划分为多个部分,每个部分交给一个单独的服务器来维护,这样的服务器坐标一般按照人数,片区来划分,格式为0 0 1280 1280.表示从0,0坐标到1280,1280坐标为一个服务器维护。这在无缝链接地图中用到。这里的像素坐标为世界坐标,所谓的世界坐标是指所有的场景所在的具体位置。当然这里说的是指我以前做的游戏采用的方法,实际上关于分服务器加载还可以用上面的块坐标来实现,或者其他方法。

6,世界坐标

世界坐标指的是,一个统一的坐标系,在这个坐标系中只有一个0,0坐标点,比如世界大地图的最左上方为0,0点,这样玩家走在任何一个地方都会得到一个与其他地方不一样的坐标。在魔兽世界中是具有多个世界坐标系的。左边大陆与右边大陆是不同的坐标系,在副本中与在陆地中是有不同的坐标系的。特别是在副本中,这个副本契合实际陆地的坐标位置。比如玩家在死亡矿井副本中的时候,大地图上的位置也是对应的位置,但是实际上玩家不在大地图标志的地图当中,因为这是副本,一个由游戏创建的额外区域,这个区域拥有自己的坐标系,但是这个坐标系采用的是世界坐标系的一部分,比如起始坐标为1280,326,2156.如此我们可以猜测这样的坐标前面应该还有个标识的,如:0000,1282,2654,1254.前面的0000表示在左大陆,若是0200则表示在右大陆,03098则表示在第96个副本(03)中。

当然上面是猜测。



坐标只是一个工具,实现功能的工具。为了实现一些千奇百怪的功能:陷阱,阻挡,加载图片,标识大小,服务器分区加载,划分工作范围,采集功能,显示地图名称功能,等等,都可以用坐标来实现。其产生的文件就是一个坐标系的坐标对应的资源,名称,功能等等,这个文件很小,但是很有用。

2

主题

265

帖子

474

积分

中级会员

Rank: 3Rank: 3

积分
474
发表于 2006-12-28 09:46:00 | 显示全部楼层

Re:谈场景坐标

........
你作了一年多的场景设计,出心得啦!

80

主题

752

帖子

823

积分

高级会员

Rank: 4

积分
823
 楼主| 发表于 2006-12-28 11:31:00 | 显示全部楼层

Re:谈场景坐标

\呵呵,也不算心得啦,随便写写,给新人看的。

2

主题

265

帖子

474

积分

中级会员

Rank: 3Rank: 3

积分
474
发表于 2006-12-28 12:28:00 | 显示全部楼层

Re: Re:谈场景坐标

不是平凡人: Re:谈场景坐标

\呵呵,也不算心得啦,随便写写,给新人看的。


[em19]下个目标准备作什么?还是换个公司? [em19]

18

主题

445

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
发表于 2006-12-28 13:17:00 | 显示全部楼层

Re:谈场景坐标

这些东东,你还在公司的时候,就没花心思教俺~~

9

主题

154

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2006-12-28 14:06:00 | 显示全部楼层

Re:谈场景坐标

对部分内容持保留态度,呵呵
说的还是比较通俗的

突然发现,时间过的真快啊
楼主也积累出自己的制作经验了

恭喜

80

主题

752

帖子

823

积分

高级会员

Rank: 4

积分
823
 楼主| 发表于 2006-12-28 18:32:00 | 显示全部楼层

Re:谈场景坐标

恩,呵呵,准备再换个公司做
上面写的算是什么呢,其实对于坐标的定义我没有定义。只是把一些类似问题统一说一下,关于技术方面的我了解的并不多,我经手的游戏也就2,3个。

丹青呵呵,有次的策划课上我稍微讲过一点,可能大家忙着下班所以没怎么听吧。其实这些东西用到的时候才会发现有这东西,不用的时候也没有什么关系。

fisher99
看来对我底细比较了解哈,多谢多谢。

其实策划呢做个项目,一开始可能会知道什么能做,什么不能做,然后才知道什么是怎么做的,最后才是如何去做一个。像这个东西算是个经验吧。

143

主题

1103

帖子

1625

积分

版主

菜鸟策划

Rank: 7Rank: 7Rank: 7

积分
1625
QQ
发表于 2006-12-28 19:06:00 | 显示全部楼层

Re:谈场景坐标

不错,这个貌似我用的上呀。

158

主题

2107

帖子

4239

积分

论坛元老

先知

Rank: 8Rank: 8

积分
4239
QQ
发表于 2006-12-28 19:35:00 | 显示全部楼层

Re:谈场景坐标

像素、格子、块的优缺点我可是深有体会了......目前项目用的是像素式做法,真是不一般的烦,图片中心点需要用PS找像素点,然后要清理图层并打包,放到编辑器里障碍也要手工圈。最后美工选用素材拼出地图。

像素式的2D MMORPG存在的一个问题是,战斗双方的中心点连线不在“米”字线上时,面对方向就会很奇怪(人物不会面对面),如果角色不设为障碍,还有可能背对背相互攻击。估计“QQ幻想”光效那么夸张就是为了掩饰这种缺陷吧。

对2D MMORPG,还要说明的一点是:角色的动作要根据时间来定桢,而最好不要根据桢来定动作时间。否则想做扩展内容会麻烦、很麻烦、相当麻烦。会出现哪些问题我就不多说了....

80

主题

752

帖子

823

积分

高级会员

Rank: 4

积分
823
 楼主| 发表于 2006-12-28 20:06:00 | 显示全部楼层

Re: Re:谈场景坐标

像素、格子、块的优缺点我可是深有体会了......目前项目用的是像素式做法,真是不一般的烦,图片中心点需要用PS找像素点,然后要清理图层并打包,放到编辑器里障碍也要手工圈。最后美工选用素材拼出地图。
==不是吧,你们程序都不提供个工具让你们转换的么???障碍手动圈是很正常的啊,不过怎么最后是美术拼图?真不懂你们的制作流程是怎么回事。

像素式的2D MMORPG存在的一个问题是,战斗双方的中心点连线不在“米”字线上时,面对方向就会很奇怪(人物不会面对面),如果角色不设为障碍,还有可能背对背相互攻击。估计“QQ幻想”光效那么夸张就是为了掩饰这种缺陷吧。

==这个问题也不能算是大问题,除非角色的8个方向有偏差,哪就是BUG了,在菱形的格子里,人物也只能面向8个方向,这方面做好限定就是了,难道程序都没解决?

对2D MMORPG,还要说明的一点是:角色的动作要根据时间来定桢,而最好不要根据桢来定动作时间。否则想做扩展内容会麻烦、很麻烦、相当麻烦。会出现哪些问题我就不多说了....
==恩,这是常识了,爱……程序光有技术是不行的啊,经验也一样重要啊。。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-4 00:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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