# 无极缩放：SLG游戏的镜头设计解析

> 无极缩放是一种镜头移动的机制，在手游《万国觉醒》上被应用而广为人知，玩家可通过手指的拖拽，镜头从微观视角一路上升到宏观视角，对策略游戏来说，是一种加分的设计机制。

- Author: Charliefoo
- Published: 2021-11-18
- Last modified: 2021-11-18
- Canonical: https://foo-z.com/blog/design12/
- Category: 设计思考
- Tags: 游戏设计, 无极缩放, 资源管理, 信息分层, 策略游戏

# 讨论无极缩放的设计

## 1、什么是无极缩放？

无极缩放是一种镜头移动的机制，在手游《万国觉醒》上被应用而广为人知，玩家可通过手指的拖拽，镜头从微观视角一路上升到宏观视角，对策略游戏来说，是一种加分的设计机制。

使用了无极缩放设计的游戏，玩家能体验到无缝的摄像机切换，摄像机都架设在一个场景下，切换时没有场景加载动画，不会打断玩家的体验。

但是，使用了无极缩放，也会给设计套上了枷锁，在数据处理、场景管理，交互优化等方面，需要处理不少事情。

- \*PS：\*\*下文中案例使用万国觉醒、三战等业界经典的SLG手游，涉及的参数，为了案例说明，并不代表实际参数。

## 2、缩放

我们先从缩放本身说起，镜头能进行上下缩放，意味着设计者需要考虑规划多个层级的单位和信息显示，结合场景物件和世界单位控件制定一套管理规则。

以《万国觉醒》举例，大致敲定3个层级，从玩家主城 → 世界 → 天下

- 玩家主城

![](https://blog-1259751088.cos.ap-shanghai.myqcloud.com/uPic/JF0xnb.png)

- 世界

![](https://blog-1259751088.cos.ap-shanghai.myqcloud.com/uPic/1CYNSn.png)

- 天下

![](https://blog-1259751088.cos.ap-shanghai.myqcloud.com/uPic/uJvjeg.png)

基于上述层级，策划需要涉及每个层级能出现的单位（包括UI、特效等）

主城：显示玩家主城的内容

世界：显示大世界上的内容

天下：把大世界上的内容，图标化显示

让自己代入镜头的视角，给无极缩放设计位移的高度值，例如0~1000，设计好层级的分段，例如：

主城层级：0~100

世界层级：101~500

天下层级：501~1000

再把规划好的内容分配到这些镜头层级内，设计一个基于层级的资源管理队列机制（这个机制要充分参考TA和美术的建议，需要小伙伴们给出专业的意见）

无极缩放过程中的镜头可停留在每一个高度下，所以必须考虑在每个镜头下表现。万国觉醒做了很多效果的处理，让玩家感觉不再突兀。

1、玩家处于最低的镜头下，拖动镜头离开主城范围，做了一个上升的镜头动画，规避不同镜头高度下，地图的精度问题。

2、从玩家主城回到世界的过程中，会做切换动画处理，玩家主城和田矿会做建筑形态的变化。例如农田做了从一片田收缩成一块田的过渡效果。

3、万国的切换动画使用了统一主建筑碰撞周边建筑消失的规则。最终返回世界层级上时，只显示主殿建筑。这个效果应用范围在主城到世界的层级之间，玩家主城、建筑、树林、野怪等建筑都使用了，更微观的角度，能呈现的细节更多。

## 3、信息

再来讨论游戏进行了无极缩放，玩家关注的信息从自身、到周边地区、到州内、最终到世界范围。策划需要控制信息的显示，参考资源管理队列，设定大世界场景UI显示规则。

如《万国觉醒》里做了多个层级的规划，每个层级设定了建筑效果和UI显示。

### 3.1 设定默认层级

什么是默认层级？标准是玩家进入游戏的默认镜头高度，设为默认层级，这镜头高度需要和其他部门小伙伴同步，作为默认设计标准。

敲定默认层级后，整理出这个层级下世界上所有单位显示规则，这规则分为几个维度：

1. 带逻辑功能的建筑，包含在不同逻辑状态下的显示规则
2. 场景的物件，可能会有碰撞、透明等细节规则
3. 世界单位上的UI、特效显示、状态变化规则

地编美术也会基于默认高度做规划，确保默认高度下，玩家能看到的效果时最丰富的。

### 3.2 地图分层LOD

无极缩放设计，摄像机会进行高度的运动，意味着出现在画面范围内的物件会增加，这时候需要一种技术和管理策略来控制，确保呈现给玩家的画面能达到预期效果。

LOD是这个问题的一种解法，让一个物体在相机距离不同的情况下，显示不同的模型，从而节省性能的开销。

> LOD是Level Of Details的缩写即多层次细节。在计算机图形学中，LOD就是为了支持当物体远离观察者或者物体的重要程度不同，位置不同，速度不同或者视角相关的参数不同需要减少渲染3D模型的复杂度

延伸阅读：[探索游戏中的LOD技术](https://zhuanlan.zhihu.com/p/51944864)

通过对场景进行LOD分层，预设好场景物件的质量精度，可以让场景效果和性能开销达到一个平衡的状态。

### 3.3 信息分层

策划在设计时，也需要根据LOD层级的思路，控制每个层级的显示信息（场景物件、单位和UI）

当摄像机往上移动时，观察到的视角内容越来越多，根据层级，需要制定不同的显示规则，处理模型和UI，控制玩家在画面里看到的单位信息。

![](https://blog-1259751088.cos.ap-shanghai.myqcloud.com/uPic/1P42qR.png)

再根据每个单位罗列出行为，给每个行为制定显示规则，这套规则需要考虑到通用性和管理成本，让规则保持一致，尽量减少特殊处理，不然后期维护成本大增。

## 4、管理工具

### 4.1 资源管理队列

在大世界类的游戏项目中，世界场景上的美术资产和数据都是海量的，因此，需要设定规则让美术资产和数据都能以规则的形式去呈现

场景管理参考LOD的分层思路，把场景内的资源分配在LOD1~4的层级里，制定资源管理表，并和美术TA同步，基于这个表的基础上，确定渲染层级和队列

策划在此基础上，梳理罗列出基于LOD不同层级物件，制定好显示的优先级。

![](https://blog-1259751088.cos.ap-shanghai.myqcloud.com/uPic/Vjuhv6.png)

每个物件分配层级和高度，再细化到物件上的子元素，例如UI、特效等效果。和TA（程序）美术一起制定渲染队列的规则，划分层级，分配高度

![](https://blog-1259751088.cos.ap-shanghai.myqcloud.com/uPic/T9SPBO.png)

把大世界上全部物件罗列出来，单一物件定好显示层级和高度，在玩法单位上，会挂载多个对象，例如部队、UI、特效等等，如全局管理策略不合适，需要针对某个单位制定单独的显示规则

设定好层级显示规则后，再针对每个对象设定一个优先度，优先度高的对象会在加载时，优先进行显示，确保整体呈现出来的画面效果预期可控。

## 5、总结

这篇文章简单罗列了项目在使用无极缩放之后的设计思路，以及给遇到的问题列了一下我的解法。后续会写一篇续集，聊一下使用了这个设计之后，美术风格选择和性能上的压力。

> 💡 感谢您的观看！欢迎分享文章，或是来信与我交流。

> 本站 RSS地址已更新，麻烦读者朋友们重新订阅一次喔！
