请选择 进入手机版 | 继续访问电脑版

 找回密码
 点一下
查看: 3630|回复: 19

关于魔兽争霸里的距离单位“码”以及它和屏幕之间关系

[复制链接]
发表于 2008-12-25 05:52:40 | 显示全部楼层 |阅读模式
因为先前有一帖发问了 这个算是自我解答了吧



帖子的由来:
试验1:
试验2:
试验3:
应用1:
应用2:




帖子的由来:以前我截了几张魔兽的图片,分别是1280X800的,1024X768的。根据我的观察,感觉宽屏是不会增加视野的。然后不知怎么,我得出了“无论用4:3的显示比例还是16:10的显示比例,无论是什么分辨率,都影响不了你war3屏幕的可见范围,也就是说都影响不了魔兽争霸里一个屏幕的横纵向的距离”的结论。

于是乎,我去地精研究院、WoW8、UUU9论坛问了一下大家关于魔兽争霸的距离单位“码”和显示器的屏幕 是不是有某种关系的问题。得到了一些答案,但同时又产生了新的疑问和困惑。。。。。。。

遂决定在前人的基础上进行实践,于是乎有了下文: ^_^ 图片觉得太大的直接下载打包的



试验1:
先确定一下,屏幕究竟能显示多大的码数。我自己造了一个地图:“hantian11111 码数测试1 700步兵小方阵.w3x”(感谢传说级人物Red_Wolf的‘WE完全汉化’,我在今天搞这个帖子的时候才想起来我的WE里英文比较多,所以用到了这个汉化文件 囧 我其实对WE了解很少的,还是菜鸟暂时 呵呵)。
这个地图是用横纵向间隔为64码的、碰撞体积为0的、选择缩放为0.5(血条长度比例)的步兵攒成的一个阵型。
(为什么是64码? 开始时本想用1码的间隔的,发现不太可能,因为就算是碰撞体积为0的话也会出现拥挤并且对不齐的现象。后来试验了10码,20码都是有这个问题。20~30码没有测试,30码时已经可以对齐,考虑到计算机是二进制的问题,用了32码作为间隔。不过32码的间隔地图上的单位太多,造了几百个以后我的机器已经贴图错误,所以最终用了同为2的n次方的64码)


700步兵吓死你.gif

恩 很雄壮吧,这张图的中心坐标(0,0)是山岭巨人,我截图是以(0,-64)坐标上的骑士为中心截图的,可以看见我的鼠标双击了下面的“视窗里的骑士的模型”。

大家也发现了吧,看到的兵“近大远小,近少远多”。 这时咋回事?主要是魔兽有个 镜头高度的问题。
说白了,你是和地面呈<90度角来看的,必然会产生“近大远小,边缘会向后延伸最后汇聚到一点的透视关系,也就是一点透视”。
不明白的看下图。


一点透视.gif

OK,既然是一点透视,那我们就来研究一下吧


一点透视的表现.gif


好了,下面就是计算了,我选取了3组斜边进行计算,分别是淡蓝绿色、绿色、棕橙色。这样是为了提高理论精度和适应性,减小误差。
把这些斜边抽象到白色背景里,并且附上以“像素”为单位的坐标,进行计算:


一点透视的计算.gif

理想消失点.gif

算倒是没什么难的,三角形的比例关系,但问题是消失点算得的值不一样,棕橙色的和另两种差别比较大。
终究我是没研究出什么结果来,有待后人呢发掘了吧 ^_^



好,回到正题:大家仔细看第一张700步兵的图。我观察到了血条“长度”不受透视影响,每个步兵都是一样的。但是血条位置是受透视影响的。



试验2:
证明 血条“长度”不受透视影响。

我继续造了一张地图“hantian11111 码数测试2 血条的长度不变 但是位置会偏移.w3x”


血条证明.gif

上图说明了:血条“长度”不受透视影响。透视影响血条的位置则是显而易见的,比图上文的第三张图片。
另外还有个小的结论:靠近边缘的血条不十分可信,因为它是挤进来。




试验3:
本文重点:屏幕和“码”的关系问题
根据试验1的数据,能大致知道屏幕有多少码了 下面就是具体的实践。
我能想到的有两种方法:a.以血条的出现不出现来判断码数。
b.以一个单位的模型文件出现在屏幕超过50%来判断码数。
我使用了第一种方法:原因就是这种方法更加客观一些。血条出现了就是出现了,没出现就是没出现,另外坐标的位置在本试验3里我是取得整数。
具体就看下图就好了 ,注意!!!:下图的单位是码。 (0,0)点坐标位于地图的中心,也是我截图的中心。


屏幕和码的关系.gif


解释一下:
左上角右上角:可以看见横向很广阔的区域,但是越是上面的话,图像越会因为透视的影响变小走形。
正上方:因为有太阳月亮的时间挡着,所以横坐标没取0,而取了±40。
正左正右:属于大家看屏幕最多的地方了,比例和视域范围都比较理想。
正下方:在极限的情况下只能勉强看到一个血条。
左下角右下角:比较特殊的情况,以右下角为例:a.若是以横坐标最大为考虑,则(724,-422)是可以出现血条的极限位置。
b.若是以纵坐标最大为考虑,则(710,-468)是可以出现血条的极限位置。
c.若都不屈极限而已710~724,-468~-442为考虑的话,则(717,-445)是出现血条的极限位置。 而且717,-445正好是两个范围的中间值。
注意:我的地图里是三个坐标上都有步兵的,所以有些没显示出来,真正测试的话a,b,c里只保留一个才会看出效果。

还是不懂吗??说实话我自己都有点蒙了,那我画一张图来说明一下


90度角垂直俯视图.gif

很像地图编辑器里的框框吧 呵呵 这就对了
我们玩游戏的时候,小地图的白色框框是一个长方形,这个是不精确的,理想状况下应该和地图编辑器一样也是个梯形。
我上面的这幅图也不是一个规则的梯形,下面有直角的拐弯,原因就是上面说过的特殊情况a、b、c。

我再计算一下屏幕的右上角和右下角之间的距离吧,右下角取(717,-445) 单位:码
距离=根号下“[643-(-445)]的平方+(1048-717)的平方”= 1137.24码



附加:反驳别人的观点
有人说屏幕的码数和分辨率有关,有可能换个分辨率,血条等重要依据就不一样了。 个人已做了测试,在我的笔记本电脑上测试了640x480,800X600,1024X768三种分辨率(Nvidia的显卡,设置的是“当使用的分辨率低于显示器的本机分辨率时---不要缩放”),在同学的LG 17英寸液晶显示器上测试了1280X1024都是正常的。唯一有缺陷的是在另一个同学的纯平显示器上测试的,不过应该是他的显示器的问题,因为无论多小的分辨率在他那里大部分血条都看不到。。。。。。。。

下图是各种分辨率下的截图用来佐证我的话:


640X480.gif

800X600.gif

1024X768.gif

1280X1024.gif



应用1:
熟悉600码的大概长度
做了张地图:“hantian11111 码数测试4 600射程示例 做的不好.w3m”
里面相同的单位之间是600码的距离,可以看一下


熟悉600码的大概长度.gif






应用2:
熟悉1200码的大概长度
1200是跳刀的距离:罗嗦一句,超过1200的跳刀使用被判定为800 囧
上图两个600加起来就是1200。。。。。。
还有就是屏幕上竖直的距离永远也到不了1200,是用跳刀的绝对好的参考距离,只要你跳的比较垂直,一般不会有判定为800的问题。

另外再附一张图片


熟悉1200码的大概长度.gif










小发现:碰撞体积不是0的时候,有些地图边缘的血条不会显示,容易造成误差


感谢:软件“按键精灵”,“松哥”给我带了个晚饭,“灿灿”电脑做测试,“步兵” 勤勤恳恳任劳任怨的被我测试 ^_^


下面再写点计算相关的公式了:
联立:x/1048=y/634
根号下“1048的平方+634的平方”-根号下“x的平方+y的平方”=1200
x=21.26 y=35.14


联立:x/717=y/445
根号下“717的平方+445的平方”-根号下“x的平方+y的平方”=1200
x=302.59 y=187.80


300倍根号3=519.6
600倍根号3=1039.2

543二进制=0010,0001,1111
853二进制=0011,0101,0101


另外把我发疑问的帖子的地址写在这,这也是这篇文章的源泉啊 呵呵

http://www.islga.org/bbs/read.php?tid=22899

http://bbs.wow8.org/thread-77971-1-1.html

http://bbs.uuu9.com/viewthread.php?tid=1886695&extra=page%3D1

地图.rar

107 KB, 下载次数: 13

评分

参与人数 1威望 +101 收起 理由
马甲君 + 101 原创内容

查看全部评分

发表于 2008-12-25 08:56:15 | 显示全部楼层
如何判定血条的出现的极限位置就是镜头的边缘呢?
血条是有高度的(漂浮文字类似)
站在同一点的山岭和步兵的血条高度就不一样
血条出现的限制点明显是步兵的头
不清楚LZ的边缘点是不是通过单位位置判定的
如果是的话那么LZ的结论明显不精确
屏幕和码的关系.gif 这个图就可以看出来
左上那个步兵的位置应该是他脚下的中心
正好在屏幕边缘的下方
而左下的步兵的位置则是在屏幕的外边。
不过这样相当于把屏幕向下平移了部分位置
这样在垂直方向上应该是没有多大误差的
但是在水平方向上则有不小的误差
看步兵的脚下就知道了
不使用血条的话,用漂浮文字来做应该好些
反正漂浮文字的高度可以设为0
而且也可以移动
不过这样的方法没有通用性
无法在游戏重动态测试
如果能够获得特效是否被创建(看不到的模型是不会被WC3创建的,虽然他存在)就方便了
PS:700步兵图那个竟然没出现屏幕错乱……
回复

使用道具 举报

发表于 2008-12-26 13:02:35 | 显示全部楼层
很可怕的袄。。。差距也是几十码么~现在的电脑毕竟不同了啊。。
回复

使用道具 举报

kw 该用户已被删除
发表于 2008-12-26 13:05:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-12-26 13:10:55 | 显示全部楼层
我一直很虔诚的回帖。。。
回复

使用道具 举报

kw 该用户已被删除
发表于 2008-12-26 17:59:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

恶声恶气 该用户已被删除
发表于 2008-12-26 18:49:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-12-26 20:49:08 | 显示全部楼层
不是转的
作者是DCN的一个版主

类似研究区的
http://www.dotacn.com.cn/thread.php?fid=222
回复

使用道具 举报

恶声恶气 该用户已被删除
发表于 2008-12-26 20:53:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

恶声恶气 该用户已被删除
发表于 2008-12-26 20:53:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-12-26 20:54:25 | 显示全部楼层
哪里首发无所谓,lz作为作者,发在哪里都不应认为是转帖
回复

使用道具 举报

恶声恶气 该用户已被删除
发表于 2008-12-26 22:15:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-12-27 15:01:04 | 显示全部楼层
自己转自己的贴。。。理应不是转饿。。。

和转对应的是原创么。。。
回复

使用道具 举报

 楼主| 发表于 2008-12-28 00:03:42 | 显示全部楼层
回复乐意同学:

感觉你好像一直在执着于帖子是转帖还是原创啊 呵呵

首先 谁能给出以下定义:原创,转帖,首发???

非首发=转帖??? 谁告诉你的???  谁定义的???  给点证据好吗???

自己写了个东西 以自己的名义 发表在不同的网站上 这个算是转帖吗???

我确实在不同网站上都发了这个帖子,Dotacn RN ogame 地精研究院 wow8 uuu9都有,这些都是以我的名义发的
http://www.dotacn.com.cn/read.php?tid=55898
http://bbs.replays.net/Message/130283/130283589.html
http://bbs.replays.net/Message/130283/130283591.html
http://bbs.ogame.net/html/Post_220674.html
http://bbs.ogame.net/html/Post_220675.html
http://www.islga.org/bbs/read.php?tid=22952
http://bbs.wow8.org/viewthread.p ... e%3D1&frombbs=1
http://bbs.uuu9.com/viewthread.p ... e%3D1&frombbs=1
百度贴吧也有 不过人家那个才是叫“转帖”的好吧??? 而且是争得了我的同意的
http://tieba.baidu.com/f?kz=518153161

不知道不要瞎说 我也不执着于跟你理论了 算是不占用宝贵的版面了 再多说也就这没意思了。有个论坛公布了它的对帖子的定义 可以去参考一下
http://www.our-sky.com/oubb/thread.php?id=41230

我发在不同的网站就是想看下有没能引起一些更好的想法和结论,因为这个帖子还可以搞得更好些。我一直认为完美的帖子都是集思广益的,一个人再强也毕竟有限(这句话不是对我说的,我一点也不强,相反倒是菜的可以  暂时  恩)。

好 把现有的好的结论发在下面先,算作一个总结吧  o(∩_∩)o...哈哈

感谢:

Dotacn
demoncdw:
很不错的测试!
如果是我的话,我会先取消鼠标滚动屏幕,然后用地狱火技能,向屏幕的4个边角度施放,最后用触发脚本得到4个地狱火的坐标

血条长度的确是和透视无关的,以前我也测试过
公式是:选择缩放*4.5%=占屏幕宽度像素百分比

关于长宽距离,由于受到地形高度影响,所以我觉得结论最好是,镜头高度,镜头面向角度,镜头X轴扇面角度,镜头Y轴扇面角度

地精研究院
疯人¢衰人:
就是在1楼的回复啊  ^_^

RN网友
sd2099833:
从上往下打果然亏,能看到的地方小
稻草grubby:
但是单位感觉大一些,也好控制些
plz.:
都是各种盲区
是不是这点就显出了dota作者们的高明

ogame网友
ice_berg :
很好很强大,楼主辛苦.只是个人认为应该与dota地图里在做个对比,光秃秃的很难有什么距离感.....
wait4u :
深度研究果然强大
我看完了,的确这种深度的研究让人看得有点晕。
建议lz总结一下 这篇帖子代入到dota能给广大玩家有什么帮助就更好了。
Vulcan :
应该用DOTA地图参照 说说距离 。。。 这太技术了 ,不容易实战应用啊~

百度贴吧
也就是说追人的时候往上边拐还是往下边拐影响你能不能追得上
回复

使用道具 举报

发表于 2008-12-28 00:10:25 | 显示全部楼层
lz不好意思,我对乐意同学的冒犯向您道歉了,对不起
回复

使用道具 举报

发表于 2008-12-28 12:55:20 | 显示全部楼层
不过我觉的你这样太麻烦了,还不如用技能来测试,如死亡缠绕,设置他的最远释放距离为1200或600不就能够测试出来啦
回复

使用道具 举报

发表于 2008-12-28 12:57:16 | 显示全部楼层
其实lz主要测试的不是距离有多远,而是屏幕范围的问题吧
回复

使用道具 举报

发表于 2008-12-28 13:01:52 | 显示全部楼层
我知道啊,LZ不是要测试这几种640X480,800X600,1024X768,1280X1024的屏幕吗?
那就设置7个技能,距离分别是640,480,800,600,1024,768,1280。不过这回就不用死亡缠绕了,用可以自动攻击的炙热之箭或被动技能凤凰火焰来测试啊。
回复

使用道具 举报

发表于 2008-12-29 13:21:46 | 显示全部楼层
精确测量。。。和简单测试。。。还素不一样的 饿。。。
回复

使用道具 举报

发表于 2008-12-29 18:51:42 | 显示全部楼层
你这个研究很吃力啊~

讲讲这样做我们实际上能在游戏技巧上得到怎样的提高呢?

不过可以作为一项常识性内容...感谢LZ为公益教育事业做出的贡献
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-3-29 21:19 , Processed in 0.189500 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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