跳至正文
Dommine的博客 Dommine的博客 Dommine的博客

关于音乐、技术与生活

Dommine的博客 Dommine的博客 Dommine的博客

关于音乐、技术与生活

  • 首页
  • 文章
  • 灵感
  • 随笔
  • 资料站
  • 关于
  • 首页
  • 文章
  • 灵感
  • 随笔
  • 资料站
  • 关于
关

搜索

  • https://www.facebook.com/
  • https://twitter.com/
  • https://t.me/
  • https://www.instagram.com/
  • https://youtube.com/
Subscribe
家/游戏/第二课:运动与战斗空间的 Metrics
游戏

第二课:运动与战斗空间的 Metrics

Avatar photo
作者 dommine
2026年8月31日 3 分钟阅读
0

这节课的核心问题不是:

玩家能跳多远?

而是:

玩家能不能根据空间外观,准确预测自己接下来能做什么?

这个差别非常重要。


一、先建立一个新概念:Affordance

你以后会经常见到这个词。

可以简单理解为:

一个物体或空间,看起来“允许”你做什么。

比如:

  • 一个平台看起来像能跳上去;
  • 一堵矮墙看起来像能翻;
  • 一个窗口看起来像能射击;
  • 一个窄洞看起来像能钻;
  • 一块突出边缘看起来像能抓住。

如果它看起来能做,但实际上不能:

玩家会觉得游戏在骗人。

如果它看起来完全不能做,但玩家莫名其妙能做到:

世界尺度也会变得不可信。

所以 Metrics 的一个真正目标是:

让视觉语言和玩法能力逐渐一致。


二、跳跃不是一个数字,而是三个区间

假设玩家最大奔跑跳跃距离最终测出来是 3.4m。

千万不要以后所有坑都做:

3.3m。

😂

应该建立三个区域。

例如纯示意:

0m ──────────────── 2.0m
      安全区

2.0m ────────────── 2.8m
      注意区

2.8m ────────────── 3.4m
      极限区

它们分别承担不同关卡功能。

安全跳

玩家几乎不用思考:

跑过去,跳。

用途:

  • 保持移动节奏;
  • 轻量平台移动;
  • 不希望玩家真的失败的场景。

注意跳

玩家站到边缘:

嗯……应该可以。

用途:

  • 制造一点风险;
  • 让玩家认真操作;
  • 探索路线。

极限跳

玩家:

这真的能过去?

用途:

  • 隐藏路线;
  • 技巧奖励;
  • Sequence Break;
  • 高风险捷径。

极限跳不能成为普通导航语言。

否则玩家每次移动都像考试。


三、真正要测试的是“起跳状态”

以后 OffMap 至少要区分:

原地跳
行走跳
奔跑跳
奔跑 + 极限边缘起跳

甚至如果以后滑铲、坡度、动量都稳定了:

高速状态跳跃
斜坡辅助跳跃

可能又是另一组 Metrics。

但现在不要急着把它们正式化。

先记录当前玩家。


四、跳跃测试场怎么搭

继续放在:

levels/
	level_design_gym/
		metrics_zoo.tscn

增加一个:

Jump_Test

里面做平行坑。

比如:

Gap_100
Gap_150
Gap_200
Gap_250
Gap_300
Gap_350
Gap_400

单位按 Godot 默认:

1 unit ≈ 1 meter

如果你们项目本身也是这个尺度。

然后每个坑都测试三次左右,不要只成功一次就下结论。


五、记录“可靠距离”而不是世界纪录

假设:

3.4m 偶尔能跳过去。

但:

3.0m 基本每次都可以。

那么对于普通关卡:

3.0m 比 3.4m 更重要。

所以 Metrics 表里最好出现:

项目距离
舒适奔跑跳?
需要认真操作?
当前可靠极限?
理论极限?

“理论极限”通常只对:

高技巧路线

有意义。


六、高度也要建立语言

第一课我们已经测平台高度。

现在进一步分类。

例如最后可能得到:

0 ~ 0.3m
几乎被理解为地面起伏

0.3 ~ 0.8m
明显台阶

0.8 ~ 1.4m
需要跳跃

1.4 ~ X
困难但可达

>X
普通跳跃不可达

具体数字我们不预设。

你们自己测。

然后这里就会出现非常重要的:

可达性语言

以后玩家看到:

1.2m 平台

多次经验告诉他:

我能上去。

看到:

2.5m 光滑墙面

经验告诉他:

普通跳跃不行。

于是他不需要:

到每堵墙前疯狂按空格。

这就是良好的空间语言。


七、一个新手非常容易犯的错误:到处放“差一点能上去”的高度

这种最烦。

比如角色稳定只能跳上 1.4m。

结果地图到处都是:

1.5m~1.6m。

玩家每次都会觉得:

“是不是我操作不好?”

然后:

跳
跳
跳
跳

最后发现:

根本上不去。

这其实是一种非常糟糕的信息噪音。

所以不能只考虑:

“不可达。”

还要考虑:

看起来是否明确不可达。


八、坠落 Metrics:危险必须可以被阅读

我们之前聊的黑洞例子,是一种故意让高度未知的特殊场景。

但大多数普通高台:

高度应该具有一定可预测性。

所以建立:

Fall_Test

例如:

Fall_100
Fall_200
Fall_300
Fall_400
Fall_500
Fall_600
Fall_800
Fall_1000

测试:

  • 完全安全;
  • 有落地反馈但不伤血;
  • 轻伤;
  • 重伤;
  • 接近致命;
  • 必死。

九、但更重要的是记录心理阈值

你站在:

3m 高处。

你的第一感觉是什么?

完全敢跳
有一点犹豫
感觉危险
感觉肯定会死

然后和真实规则对比。

比如:

高度玩家直觉实际
2m安全安全
4m有点危险安全
6m很危险轻伤
10m感觉必死致命

如果大体一致:

世界容易理解。

如果:

高度看起来实际
3m小落差当场暴毙

那玩家会很难建立空间直觉。


十、这里就连接到“风险设计”

假设未来一个捷径:

正常路线
→ 5 分钟

跳下去
→ 30 秒
→ 损失 40% HP

这就是一个很简单的:

Health for Time

交易。

玩家可以自行判断:

我现在血够不够?

这就是很好的软锁/资源决策。

而不是:

“这里是捷径按钮。”


十一、第三人称游戏真正麻烦的地方:玩家视点 ≠ 玩家身体

现在进入这一课非常重要的部分。

第三人称:

        Camera
           ●
          /
         /
 Player ●

玩家实际上在通过 Camera 理解世界。

但是:

  • 碰撞体在 Player;
  • 枪口在武器;
  • Camera 在身后/侧后方。

所以同一个空间同时要满足:

身体能过

镜头能看

武器能射

这就是为什么第三人称空间设计比你想象中复杂很多。


十二、窗口是一个极好的测试对象

想象:

Camera
   ●
    \
     \
 Player ● —— Gun →

██████     ██████
      WINDOW
██████     ██████

Camera 可以看见目标:

准星在敌人身上。

但是枪口可能:

啪。

打在窗框。

这正是我们之前已经实际遇到过的问题。

而现在不要把它只理解为:

Shooting bug。

它其实也是:

Level Metrics + Camera Framing 问题。


十三、所以要建 Window Zoo

在 metrics_zoo.tscn 里增加:

Window_Test

至少研究三个变量:

窗台高度

例如:

0.6m
0.8m
1.0m
1.2m
1.4m

窗口宽度

0.5m
0.8m
1.2m
1.8m

墙厚

0.2m
0.4m
0.8m
1.2m

第三个非常容易被忽略。


十四、为什么墙厚也重要?

看俯视:

薄墙:

────   ────
       ↑
      窗口

厚墙:

████      ████
████      ████
████      ████

窗口其实变成一条小隧道。

玩家站偏一点:

Camera
   ●
    \
     \   看得见
      \

Gun ● ──X████

于是:

Camera 看得到。

枪口路径却被内侧窗框挡住。

所以以后真正的第三人称战斗窗口,不只是:

洞多大?

还要考虑:

墙多厚?


十五、Window Test 要怎么测

拿现有手枪。

站:

A. 正中央

射。

B. 靠窗口左边

射。

C. 靠窗口右边

射。

D. 离窗口很近

射。

E. 后退两三米

射。

F. 横向移动过程中

连续观察。

记录三种状态:

视觉明确可射击
↓
视觉有点模糊
↓
视觉上像能射,但实际枪口被挡

最后一种尤其重要。

因为它就是:

误导性 Affordance。


十六、这会成为以后 Line-of-Fire Feedback 的测试标准

我们之前已经决定以后可能做:

Line-of-Fire Feedback。

这张 Metrics Zoo 以后就是非常好的回归测试场。

例如:

Window_Thin_Wide
Window_Thick_Wide
Window_Thin_Narrow
Window_Thick_Narrow

等 Line-of-Fire UI 做好以后:

每个窗口跑一遍。

看看提示是不是和实际弹道一致。

所以这个 Gym 不只是学习作业。

以后真的会变成:

开发工具。


十七、接下来是掩体高度

建立:

Cover_Test

例如:

Cover_060
Cover_080
Cover_100
Cover_120
Cover_140
Cover_160

测试:

  • 玩家身体暴露多少;
  • Camera 是否还能看见前方;
  • 枪口是否被挡;
  • 敌人是否能打到;
  • 玩家是否自然理解它是掩体。

十八、掩体也存在“视觉承诺”

如果:

玩家整个胸口都露在外面

但敌人怎么都打不到:

很怪。

如果:

玩家看起来完全蹲在石墙后面

但 Hitbox 还露了一大片:

更怪。

所以掩体需要让:

Visual
Collision
Combat Hitbox
Camera
Ballistics

大体讲同一种语言。


十九、第三人称 Camera 会制造“假安全感”

比如:

        Camera ●

█████████████
        Player ●

Camera 已经越过墙角看到敌人。

但玩家身体还完全藏着。

这不是一定有问题。

第三人称游戏天生就允许:

Peeking。

但你需要知道它存在。

否则设计 stealth / enemy vision 时,很容易突然发现:

玩家可以躲在墙后用上帝视角观察整个房间。

这可能是:

  • 你接受的游戏特性;
  • 需要限制的特性;
  • 需要设计空间去适应的特性。

但首先要:

测出来。


二十、做一个 Corner Test

这个非常推荐。

████████
       █
Player █
   ●   █
       █
       █       Enemy ●

让玩家躲墙角。

测试:

玩家身体完全不露的时候,Camera 能看到多大范围?

然后:

玩家移动多少以后,枪口才真正获得射线?

这里你会第一次非常直观地看到:

Camera Visibility
≠
Line of Fire
≠
Body Exposure

三个完全不同的空间概念。

这对以后做战斗关卡特别重要。


二十一、于是战斗空间至少有三张“隐形地图”

这是很重要的理论。

玩家走进一个房间,其实存在:

Movement Map

我能走到哪里?


Visibility Map

我能从哪里看到哪里?


Ballistics Map

我能从哪里真正射到哪里?

这三张图经常重合。

但不总是。

例如窗口:

Movement:
不能穿墙

Visibility:
可以穿窗口看

Ballistics:
取决于枪口和窗框

好的战斗空间,本质上就在玩这三个关系。


二十二、再加敌人以后还有第四张

Threat Map

站在哪里会被敌人威胁?

例如:

        Sniper
           ●
           |
           |
██████     |     █████
安全       |      安全
           |
         危险

然后玩家才会利用:

  • 掩体;
  • flank;
  • 高低差;
  • 时间;
  • 敌人注意力。

Encounter Design 就开始出现了。

但我们现在还不正式进入。

下一单元才会重点讲。


二十三、多人 Metrics 现在只需要提前留一个问题

以后两个人:

P1 ●       ● P2

很多当前舒服的空间:

可能立刻不舒服。

比如:

  • 一个人舒服的门;
  • 一个人舒服的楼梯;
  • 一个人舒服的掩体;
  • 一个人舒服的战斗房。

所以现在在 Metrics 表里先留:

Solo Comfortable
Co-op Comfortable

两列。

哪怕目前多人系统还没真正做完,也提前知道:

“舒适”不是绝对值。


二十四、这一课最终要开始建立第一份正式 Metrics Sheet

不要现在填数字,我先给你结构。

OffMap Level Design Metrics v0.1

Player Movement

MetricSafeStandardRiskyLimit
Horizontal jump
Vertical reach
Fall height

Navigation

MetricTightNormalComfortableLarge
Door width
Corridor width
Room size

Combat

MetricLowStandardHigh
Cover height
Window sill
Window width
Wall thickness

Camera

记录:

最低可接受走廊;

角落窥视程度;

窗口近距离问题;

SpringArm 明显收缩的位置。

这部分甚至不一定全是数字。

可以写观察。


二十五、不要把 Metrics Sheet 当圣经

假设最后:

Normal corridor = 3m。

这绝对不意味着:

全游戏走廊必须 3m。

真正用途是:

我现在要普通空间
→ 3m 附近作为起点

我想压迫
→ 故意低于标准

我想打大规模战斗
→ 故意高于标准

所以 Metrics Sheet 是:

参照系。

有了标准,你才知道自己什么时候是在有意识地偏离标准。


第二课作业

这次增加四块:

D. Jump Test

E. Fall Test

F. Window Test

G. Cover + Corner Test

仍然放在:

levels/
	level_design_gym/
		metrics_zoo.tscn

仍然:

不需要新 GDScript。


你真正需要记录的不是全部数字,而是这些问题

Jump

什么距离可以无脑跳?

什么距离需要认真操作?

什么距离属于极限?


Fall

玩家什么时候开始犹豫?

实际伤害什么时候开始?

视觉直觉和伤害规则是否一致?


Window

Camera 认为可以射击,枪口实际上不行的范围有多严重?

墙厚对此影响多大?


Cover

哪个高度玩家自然理解为掩体?

Visual / Hitbox / Ballistics 是否一致?


Corner

玩家完全不暴露身体时,能通过 Camera 获得多少信息?

这个以后对敌人 AI 和遭遇设计会特别重要。


第二课的真正毕业标准

不是:

“我测出了跳跃最大 3.27m。”

而是你看到一个灰盒空间以后开始能说:

“这个坑是普通移动,不应该失败。”

“这个坑明显是在要求技巧。”

“这个窗口看起来能射,但当前枪口大概率会碰墙。”

“这个墙角允许玩家安全观察,所以敌人放这里会产生这种行为。”

也就是说,你开始从:

看几何形状

变成:

看玩家行为。

这就是 Metrics 真正开始转化成 Level Design 的时刻。

标签:

MetricsOffMap关卡设计战斗空间

系列阅读

游戏关卡设计入门

第 2 / 4 课

  1. 游戏关卡设计入门
  2. Metrics 与 Blockout
  3. 运动与战斗空间的 Metrics
  4. Wayfinding 与玩家注意力
  5. 机制教学与玩家知识
上一篇Metrics 与 Blockout 下一篇Wayfinding 与玩家注意力
Avatar photo
作者

dommine

关注我
其他文章
上一个

第一课:Metrics 与 Blockout

下一个

第三课:Wayfinding 与玩家注意力

暂无评论!成为第一个。

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

目录
  • 一、先建立一个新概念:Affordance
  • 二、跳跃不是一个数字,而是三个区间
    • 安全跳
    • 注意跳
    • 极限跳
  • 三、真正要测试的是"起跳状态"
  • 四、跳跃测试场怎么搭
  • 五、记录"可靠距离"而不是世界纪录
  • 六、高度也要建立语言
    • 可达性语言
  • 七、一个新手非常容易犯的错误:到处放"差一点能上去"的高度
  • 八、坠落 Metrics:危险必须可以被阅读
  • 九、但更重要的是记录心理阈值
  • 十、这里就连接到"风险设计"
  • 十一、第三人称游戏真正麻烦的地方:玩家视点 ≠ 玩家身体
  • 十二、窗口是一个极好的测试对象
  • 十三、所以要建 Window Zoo
    • 窗台高度
    • 窗口宽度
    • 墙厚
  • 十四、为什么墙厚也重要?
  • 十五、Window Test 要怎么测
    • A. 正中央
    • B. 靠窗口左边
    • C. 靠窗口右边
    • D. 离窗口很近
    • E. 后退两三米
    • F. 横向移动过程中
  • 十六、这会成为以后 Line-of-Fire Feedback 的测试标准
  • 十七、接下来是掩体高度
  • 十八、掩体也存在"视觉承诺"
  • 十九、第三人称 Camera 会制造"假安全感"
  • 二十、做一个 Corner Test
  • 二十一、于是战斗空间至少有三张"隐形地图"
    • Movement Map
    • Visibility Map
    • Ballistics Map
  • 二十二、再加敌人以后还有第四张
    • Threat Map
  • 二十三、多人 Metrics 现在只需要提前留一个问题
  • 二十四、这一课最终要开始建立第一份正式 Metrics Sheet
    • OffMap Level Design Metrics v0.1
      • Player Movement
      • Navigation
      • Combat
      • Camera
  • 二十五、不要把 Metrics Sheet 当圣经
  • 第二课作业
  • 你真正需要记录的不是全部数字,而是这些问题
    • Jump
    • Fall
    • Window
    • Cover
    • Corner
  • 第二课的真正毕业标准

近期文章

  • iOS 18 → iOS 27 入门指南
  • 第四课:机制教学与玩家知识
  • 第三课:Wayfinding 与玩家注意力
  • 第二课:运动与战斗空间的 Metrics
  • 第一课:Metrics 与 Blockout
Copyright 2026 — Dommine的博客. All rights reserved. Blogsy WordPress Theme