讨论无极缩放的设计
type
status
date
slug
summary
tags
category
icon
password

1、什么是无极缩放?

无极缩放是一种镜头移动的机制,在手游《万国觉醒》上被应用而广为人知,玩家可通过手指的拖拽,镜头从微观视角一路上升到宏观视角,对策略游戏来说,是一种加分的设计机制。
使用了无极缩放设计的游戏,玩家能体验到无缝的摄像机切换,摄像机都架设在一个场景下,切换时没有场景加载动画,不会打断玩家的体验。
但是,使用了无极缩放,也会给设计套上了枷锁,在数据处理、场景管理,交互优化等方面,需要处理不少事情。
  • *PS:**下文中案例使用万国觉醒、三战等业界经典的SLG手游,涉及的参数,为了案例说明,并不代表实际参数。

2、缩放

我们先从缩放本身说起,镜头能进行上下缩放,意味着设计者需要考虑规划多个层级的单位和信息显示,结合场景物件和世界单位控件制定一套管理规则。
以《万国觉醒》举例,大致敲定3个层级,从玩家主城 → 世界 → 天下
  • 玩家主城
notion image
  • 世界
notion image
  • 天下
    • notion image
基于上述层级,策划需要涉及每个层级能出现的单位(包括UI、特效等)
主城:显示玩家主城的内容
世界:显示大世界上的内容
天下:把大世界上的内容,图标化显示
让自己代入镜头的视角,给无极缩放设计位移的高度值,例如0~1000,设计好层级的分段,例如:
主城层级:0~100
世界层级:101~500
天下层级:501~1000
再把规划好的内容分配到这些镜头层级内,设计一个基于层级的资源管理队列机制(这个机制要充分参考TA和美术的建议,需要小伙伴们给出专业的意见)
无极缩放过程中的镜头可停留在每一个高度下,所以必须考虑在每个镜头下表现。万国觉醒做了很多效果的处理,让玩家感觉不再突兀。
1、玩家处于最低的镜头下,拖动镜头离开主城范围,做了一个上升的镜头动画,规避不同镜头高度下,地图的精度问题。
2、从玩家主城回到世界的过程中,会做切换动画处理,玩家主城和田矿会做建筑形态的变化。例如农田做了从一片田收缩成一块田的过渡效果。
3、万国的切换动画使用了统一主建筑碰撞周边建筑消失的规则。最终返回世界层级上时,只显示主殿建筑。这个效果应用范围在主城到世界的层级之间,玩家主城、建筑、树林、野怪等建筑都使用了,更微观的角度,能呈现的细节更多。

3、信息

再来讨论游戏进行了无极缩放,玩家关注的信息从自身、到周边地区、到州内、最终到世界范围。策划需要控制信息的显示,参考资源管理队列,设定大世界场景UI显示规则。
如《万国觉醒》里做了多个层级的规划,每个层级设定了建筑效果和UI显示。

3.1 设定默认层级

什么是默认层级?标准是玩家进入游戏的默认镜头高度,设为默认层级,这镜头高度需要和其他部门小伙伴同步,作为默认设计标准。
敲定默认层级后,整理出这个层级下世界上所有单位显示规则,这规则分为几个维度:
  1. 带逻辑功能的建筑,包含在不同逻辑状态下的显示规则
  1. 场景的物件,可能会有碰撞、透明等细节规则
  1. 世界单位上的UI、特效显示、状态变化规则
地编美术也会基于默认高度做规划,确保默认高度下,玩家能看到的效果时最丰富的。

3.2 地图分层LOD

无极缩放设计,摄像机会进行高度的运动,意味着出现在画面范围内的物件会增加,这时候需要一种技术和管理策略来控制,确保呈现给玩家的画面能达到预期效果。
LOD是这个问题的一种解法,让一个物体在相机距离不同的情况下,显示不同的模型,从而节省性能的开销。
LOD是Level Of Details的缩写即多层次细节。在计算机图形学中,LOD就是为了支持当物体远离观察者或者物体的重要程度不同,位置不同,速度不同或者视角相关的参数不同需要减少渲染3D模型的复杂度
通过对场景进行LOD分层,预设好场景物件的质量精度,可以让场景效果和性能开销达到一个平衡的状态。

3.3 信息分层

策划在设计时,也需要根据LOD层级的思路,控制每个层级的显示信息(场景物件、单位和UI)
当摄像机往上移动时,观察到的视角内容越来越多,根据层级,需要制定不同的显示规则,处理模型和UI,控制玩家在画面里看到的单位信息。
notion image
再根据每个单位罗列出行为,给每个行为制定显示规则,这套规则需要考虑到通用性和管理成本,让规则保持一致,尽量减少特殊处理,不然后期维护成本大增。

4、管理工具

4.1 资源管理队列

在大世界类的游戏项目中,世界场景上的美术资产和数据都是海量的,因此,需要设定规则让美术资产和数据都能以规则的形式去呈现
场景管理参考LOD的分层思路,把场景内的资源分配在LOD1~4的层级里,制定资源管理表,并和美术TA同步,基于这个表的基础上,确定渲染层级和队列
策划在此基础上,梳理罗列出基于LOD不同层级物件,制定好显示的优先级。
notion image
每个物件分配层级和高度,再细化到物件上的子元素,例如UI、特效等效果。和TA(程序)美术一起制定渲染队列的规则,划分层级,分配高度
notion image
把大世界上全部物件罗列出来,单一物件定好显示层级和高度,在玩法单位上,会挂载多个对象,例如部队、UI、特效等等,如全局管理策略不合适,需要针对某个单位制定单独的显示规则
设定好层级显示规则后,再针对每个对象设定一个优先度,优先度高的对象会在加载时,优先进行显示,确保整体呈现出来的画面效果预期可控。

5、总结

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

© ChaCat 2019-2023