魔兽地图编辑器吧 关注:65,403贴子:3,842,040

关于碰撞的一切(伪)

只看楼主收藏回复

编辑器中与碰撞相关的项目有很多,但是它们互相之间的对应关系很糟糕,因此本篇实用的结论会很少(但并不是没有)。


IP属地:北京1楼2016-07-16 11:59回复
    答案是矿工采集。没错,农民自动返回时会被物品卡位,娜迦农民如果隔海采集金矿也无法正常自动返回。
    接下来是物体编辑器中的单位-移动类型,它们有:
    没有—触发中的“关闭碰撞”
    步行—地面
    骑马—地面
    漂浮(陆)—地面
    漂浮(水)—海面
    飞行—飞行
    两栖—两栖
    注:
    1.“没有”的寻路使用的是“步行”的
    2.“步行”和“骑马”没有发现区别,据说与转身相关
    3.漂浮(陆)不会响应地雷引爆技能,可以设置飞行高度,也会有对应的倾斜角
    4.飞行单位拥有空中视野,与诱捕类技能作用时也会有不同效果,转身时会倾斜
    5.两栖单位自动根据所在位置的可通行性添加/删除swim动画名
    6.以上移动类型都有其对应的寻路类型
    可以看到不同的移动类型不止对应了不同的碰撞类型,还有其他很多细节的不同。很遗憾,这里没有和“荒芜之地”、“可建造”以及“矿工采集”对应的类型。


    IP属地:北京3楼2016-07-16 12:00
    回复
      2025-08-26 17:44:29
      广告
      不感兴趣
      开通SVIP免广告
      触发判断单位类型
      触发器布尔值中的“是飞行单位”、“是地面单位”对应的是移动类型而非“作为目标允许”或是“碰撞类型”。因此常出现的问题如下:
      移动类型为“两栖(以及“没有”、“海面”)”的单位既不是“飞行”也不是“地面”,因此较好的判断单位是否为地面单位的方法是“是飞行单位=true”而非“是地面单位=false”,建筑同理。
      被网下来的空军在触发中仍被判断为飞行单位,因此更好的判断单位在地上的方法是“是飞行单位=false or 是被束缚的=true”。


      IP属地:北京7楼2016-07-16 12:05
      回复
        单位碰撞大小
        war3中单位的碰撞形状是一个正方形(因此可以很简单的卡位,是正方形这点可以通过摆两个碰撞体积大的单位,一个绕另一个走几圈来感受)一个,物编中设置的是其边长且实际游戏中只能是8(最小单元格,和物品占地相同)的整数倍。不是整数倍的向下取整,最小为8。但是不要以为31和16是完全一样的,因为这个数值还影响到单位被攻击/释放技能时碰撞的计算,此时单位碰撞是按照圆形计算的而且数值不会向8取整。因此即使如飞行和没有这样和单位没有碰撞的单位设置碰撞体积也是有意义的。此外直接在编辑器中摆放单位也是按照圆形碰撞计算的。


        IP属地:北京8楼2016-07-16 12:05
        收起回复
          建筑碰撞大小
          建筑的距离判断(被攻击/释放技能)是根据其“路径纹理的红色区域”和“碰撞体积的圆形”叠加而成的范围进行的,因此建筑的“碰撞体积”一项并非无用,相反,原版商店建筑的碰撞体积明显太小,显然是玻璃渣的临时工所为。


          IP属地:北京9楼2016-07-16 12:06
          回复
            与单位的碰撞
            碰撞类型为飞行/矿工采集/可建造的单位与其他单位没有碰撞,这也是为什么没有路径纹理的建筑物即使碰撞体积不小也无法卡位。


            IP属地:北京10楼2016-07-16 12:06
            回复
              寻路部分
              单位的寻路类型对应于单位的移动类型,仅有飞行/海面/地面/两栖四种寻路类型,每种寻路类型默认绕过自己不能通过的地形(和路径纹理,当然这两者表现起来其实没有什么区别),对与单位的碰撞另行处理,结果就是当我们更改了单位的碰撞类型后(用关闭碰撞/龙卷风漫步者/地雷引爆/疾风步等),寻路变得很蠢,解决方法应该是把物编中单位的移动类型改为飞行/两栖之类有着比较“聪明”的寻路的类型,然后再用以上技能改变他们的碰撞类型,但可惜能修改出来的碰撞类型只有飞行和可建造,而且之前也提到了移动类型会影响单位的许多属性,所以实际上基本没救。


              IP属地:北京13楼2016-07-16 12:08
              回复
                虽然内容不少,但相关研究其实还差很多,本篇仍然仅仅是“抛砖引玉”的程度,不同类型的地图需要找到最适合自己的碰撞类型使用方法。


                IP属地:北京15楼2016-07-16 12:12
                回复
                  2025-08-26 17:38:29
                  广告
                  不感兴趣
                  开通SVIP免广告
                  建议加精


                  IP属地:北京来自Android客户端16楼2016-07-16 12:47
                  回复
                    蠢新表示不明覺厲…(ง •̀_•́)ง


                    来自Android客户端17楼2016-07-16 14:19
                    回复
                      表示看不懂


                      IP属地:湖北18楼2016-07-16 14:26
                      回复
                        谢邀


                        IP属地:湖北19楼2016-07-16 14:30
                        回复
                          菜何必


                          IP属地:上海来自手机贴吧20楼2016-07-16 14:39
                          收起回复
                            神精


                            IP属地:上海来自Android客户端21楼2016-07-16 14:43
                            回复
                              2025-08-26 17:32:29
                              广告
                              不感兴趣
                              开通SVIP免广告
                              前排。。。火钳刘明


                              IP属地:上海来自Android客户端22楼2016-07-16 14:52
                              回复