SuperAPI AI 工具集

tinyworld-opacity-torch

设计与创作

查看项目

更新于 10-30 12:08

技能介绍

Tiny World Visibility — Sticky Preview Reveal 是 Tiny World Builder 中的可见性控制模块,用于管理家园棋盘、预览棋盘以及镜头平移过程中的显示行为。它取代了旧版的“不透明度火炬”机制,改为粘性预览揭示模型。

用途 该技能用于处理幽灵棋盘、多人预览棋盘、平移、幽灵可见性、拼图揭示,以及当前 Tiny World 周围任何与可见性相关的行为调整。

主要能力

  • 家园棋盘始终全量渲染,永不淡出、永不缩放弹入。
  • 预览单元格在进入镜头目标周围的可见方形区域前保持隐藏,一旦进入即被揭示,并在本次会话余下时间内永久保持(记录 userData.revealed = true)。
  • 所有图块以全彩渲染,desaturateMaterial() 已变为空操作,不再出现灰度或褪色图块。
  • 揭示过渡使用 tickOpacityTransitions(dt) 以 dt * 20 的速率缓动,过渡期间缩放按 0.6 + 0.4 * currentOpacity 变化,图块在 200 毫秒内从 60% 增长到完整大小。
  • userData.landing 下落动画优先,落地期间跳过缩放弹入。
  • 左键仅通过 pickTile 编辑中央家园棋盘;预览棋盘不得设置可编辑的 userData.gx/gz。
  • 右键拖拽、空格+拖拽平移,左键拖拽环绕。
  • 平移不受限制,panCameraByPixels/panCameraByCells 与小地图点击跳转不再调用 clampTargetToHomeBoard();该限制仅保留给 Autoexpand 关闭时的显式重置。Autoexpand 关闭时平移超出家园棋盘会显示空水域/天空,需开启 Autoexpand 才能揭示预览棋盘。
  • 家园棋盘带有细深色地线边框,无论预览世界揭示多少,用户始终能看到可编辑区域的边界。
  • 预览距离/窗口在首次加载和棋盘尺寸变化时根据 GRID 自动缩放:小棋盘可预览更远,大棋盘保持更紧的邻居预加载距离/窗口以保障性能;用户仍可在“设置 → 世界”中覆盖。
  • 景观模式下的幽灵棋盘抑制必须限定在真正激活的 isLandscapeMeshActive() 引擎;退出地形/景观模式后,正常 Autoexpand 应立即恢复经典预览幽灵棋盘。
  • 预览对象始终保持全保真,不得以廉价代理盒、锥体或金字塔渲染房屋/树木/作物/岩石/动物;若网格尺寸对全量预览棋盘而言开销过大,应通过 renderBudgetForGrid() 减少或禁用预览环。

使用方式 该模块通过 opacityAtWorldPosition(x, z) 返回可见性,revealOpacityFor(root) 包装并加入粘性逻辑;每帧更新循环(updateGhostRenderBubble、updateHomeBoardFade)调用 revealOpacityFor 而非直接调用 opacityAtWorldPosition。updateHomeBoardFade 对网格内单元格直接短路为不透明度 1。

适用场景 适用于调整家园棋盘与预览棋盘的显示、平移揭示、拼图式逐格揭示、多人预览可见性等行为;也适用于景观模式下的动态裁剪与平移。

限制 Autoexpand 关闭时,平移超出家园棋盘不会揭示预览棋盘,仅显示空水域/天空。预览对象不得降级为代理几何体,性能问题应通过 renderBudgetForGrid() 调整预览环数量解决。