【免费下载链接】Tyranor-Next

多引擎视觉小说(Galgame)聚合启动器,面向 Android 平台。内置 Kirikiri / ONScripter / Tyrano / Artemis / Siglus / FVP 六套引擎运行环境,并支持 Ren'Py、RPG Maker RGSS 外置 APK 引擎模块与 PSP / Nintendo Switch 外置模拟器跳转(PPSSPP / Eden),可识别和启动多类游戏,提供游戏库管理、封面获取、存档镜像、引擎参数调节等一体化体验。

项目地址: https://gitcode.com/gh_mirrors/ty/Tyranor-Next
点击查看 免费下载

Tyranor-Next 是一款面向 Android 的多引擎视觉小说(Galgame)聚合启动器,其内置的玻璃系 UI 主题在 Jetpack Compose 中实现了从玻璃拟态(Glassmorphism)到液态玻璃(Liquid Glass)的完整演进:三档外观风格(默认 / 复古玻璃 / 高级玻璃)+ 三档导航栏样式(默认 / 液态玻璃·经典 / 液态玻璃·透镜),全部即时生效、低版本自动降级。本文带你从视觉原理到 Compose 实现机制,看清这套玻璃主题是如何一层层画出来的。

Tyranor-Next 应用界面截图:首页、游戏、引擎、设置四个标签页

外观风格与导航样式:两个正交的玻璃开关

Tyranor-Next 把「玻璃」拆成了两条互不干扰的维度:

维度可选档位持久化取值
外观风格(整窗材质)默认 / 复古玻璃 / 高级玻璃default / glass / glass_advanced
导航栏样式(底部导航)默认 / 液态玻璃·经典 / 液态玻璃·透镜default / liquid_glass / liquid_glass_enhanced

两者正交组合,意味着你可以「高级玻璃底图 + 透镜导航」或「复古玻璃 + 经典液态导航」任意搭配。档位定义收口在单一事实源 AppearanceStyle.kt 的枚举里,持久化值一旦发布永不变更,保证老用户升级后外观设置不丢失。

Tyranor-Next 应用功能地图:外观风格与导航样式两档全局视觉能力

切换步骤:如何打开玻璃主题

进入「设置 → 应用设置」,你会看到两张下拉卡片:

  1. 外观风格:默认 / 复古玻璃 / 高级玻璃,切换即时全 App 生效并持久化;
  2. 导航栏样式:默认 / 液态玻璃·经典 / 液态玻璃·透镜(透镜档仅 Android 13+ 显示)。

值得注意的是,玻璃风格下「外观模式」与「色调切换」会被置灰禁用(背景已固定为深色画面),而「色调轮盘」保持可用——你换的主题色会实时渗入背景环境光。完整决策过程见 玻璃风格主题计划方案.md 与 高级玻璃外观风格计划方案.md。

复古玻璃:用四层渐变堆出「有颜色的暗」

复古玻璃(glass 档)刻意不做真模糊——因为它的背景本身只是一张渐变图,对纯渐变做高斯模糊视觉差异极小,却要付出整条 blur 管线开销。它的做法在 GlassStyle.kt 的 glassPageBackground 里,用 drawWithCache 一次性缓存四层 Brush 叠画:

  • 三档竖向渐变:冷灰顶 #24262B → 中灰 #17191D → 近黑 #0A0B0D,比单段两点渐变多出中间过渡,观感不「闷」;
  • 顶部白色环境光:圆心略高于屏幕顶端的 4% 白径向光晕,只做微弱层次;
  • 主题色对角环境光:右上主光斑(26% 主题色 alpha)+ 左下辅光斑(12%),让玻璃面「有颜色可透」,且随色调轮盘实时变色。

卡片与弹窗则用 80%~95% 深色半透明玻璃面(GlassSurface / GlassPanel 色板,见 Color.kt)+ 统一的 0.5dp 发丝描边 glassBorder 勾出悬浮轮廓。圆角也从默认的 8dp 跳到 32dp,由 AppShapes.kt 统一收口,避免 20 多处字面量散落。

高级玻璃:游戏封面变成整窗的模糊壁纸

高级玻璃(glass_advanced 档)才是「复刻系统级材质」的一档,核心洞察来自对参考图的拆解:模糊只做一次,卡片只是浅色磨砂膜。如果让每张卡片各自模糊背后内容,会产生 N 条 RenderEffect 管线且模糊度随位置漂移——所以高级玻璃把模糊上移到了整窗背景。

背景底图由 AmbientBackdrop.kt 生成,流程如下:

  1. 从游戏库取最多 6 张封面,拼成 288×432 的 2×3 马赛克小图;
  2. 对小图做多轮盒式模糊(boxBlurArgb,全 API 一致、不依赖 RenderEffect)——小图模糊后放大铺满天然平滑,成本一次性、无逐帧开销;
  3. 根背景按 cover 缩放铺满,叠 58% 黑色压暗 scrim + 四角暗角,保证白色文字可读。

Tyranor-Next 游戏库数据与封面管线:封面缓存如何被高级玻璃背景复用

卡片层在 AdvancedGlassStyle.kt 中实现三层光学装饰:

  • 浅色磨砂膜:14% 白的 AdvancedGlassSurface,通透但不发白;
  • 上亮下暗渐变描边:20% 白渐变到 5% 白的发丝线 + 顶边高光条,模拟光源自上方掠过;
  • 加色受光内描边:45° 对角白色高光用 BlendMode.Plus 混合、描边加宽后裁剪到形状内侧——这正是系统导航栏那圈亮边的来源。

弹窗和抽屉是独立 window,采不到主窗口背景,方案很巧妙:从页面背景「取色」——把模糊底图按高度三等分求平均色,向深色基底压暗后生成竖向渐变,面板呈现「页面背景的磨砂版」。库内无封面时则退化为主题色软色斑,观感仍是「被模糊过的」。

液态玻璃导航:三层采样 + 折射透镜

底部导航是「液态玻璃」观感的重头戏,两档实现难度天差地别:

液态玻璃·经典(LiquidGlassNavigation.kt):基于 backdrop 库对页面内容做 vibrancy + blur 采样,呈现「看穿」的毛玻璃质感;选中项是一枚跟随手指的主题色玻璃焦点胶囊,支持长按后左右拖动切页。Android 12+ 才有实时模糊,低版本自动退回不透明实底,画面不变形。

液态玻璃·透镜(ui/common/glass/ 目录,8 个文件独立实现):Android 13+ 专属的高保真档,三层采样结构为「可见栏 / 采样副本 / 移动透镜」。它的光学细节几乎全部来自真机调校并固化在 GlassBottomBarSpec.kt 的参数契约里,几个典型取舍值得品味:

  • 模糊半径从 18dp 一路收到 3dp:初版模糊太重,背景糊成一块平板「毫无玻璃感」;低模糊反而让图标边缘保留高频对比,色散才有东西可分离;
  • 彩虹色散挂在整栏而非滑块:栏体又宽又矮,上下边缘是长直边,色散沿边连续铺开成一条自然彩虹带;若挂在滑块小胶囊上只会得到「异常彩虹纹」;
  • 弹簧而非动画:运动控制器是「一个帧循环 + 五个自写弹簧积分器」,按压体积(78/56 倍缩放)、赴按速度(约 50–80ms 覆盖最远三槽)、抓滑块延时(110ms 轻点/按住分离)全部参数化,并有触觉反馈。

完整调校记录见 液态玻璃增强计划方案.md §6 的逐条差异清单。

性能与版本降级:为什么老设备也不卡

玻璃主题的每一个「好看」背后都有一次「要不要付出管线开销」的权衡,Tyranor-Next 的策略是把模糊尽量做一次性、把运行时开销压到零:

元素模糊策略版本要求
复古玻璃背景不模糊,纯渐变 + 光晕全 API
高级玻璃底图离线对小图盒式模糊,逐帧零开销全 API
高级玻璃弹窗跨窗口取色渐变替代采样全 API
液态玻璃·经典backdrop 实时采样Android 12+(RenderEffect)
液态玻璃·透镜实时采样 + AGSL 折射Android 13+(RuntimeShader)

透镜档还内置了 AGSL 运行期探测 + 熔断:3 个候选着色器全过才启用,任何一个失败立即回退经典档,且回退路径本身不再依赖 AGSL(见 GlassShaderSupport.kt)——避免「从一个会崩的档退回另一个会崩的档」。窗口极窄(单槽不足 24dp)时则干脆不渲染透镜档,杜绝「点不中」的伪可用状态。

所有玻璃逻辑均由 isGlass 门控,默认风格下行为与改造前逐像素一致,切回即回滚。

结语

Tyranor-Next 的玻璃系主题展示了一条成熟的 Compose 主题工程路径:视觉档位收敛为枚举(AppearanceStyle.kt)、色板与形状收口单一来源(Color.kt、AppShapes.kt)、绘制抽成可复用的 Modifier(GlassStyle.kt、AdvancedGlassStyle.kt)、参数固化为可单测的契约(GlassBottomBarSpec.kt),再叠加全 API 一致的降级设计。想要动手改造或新增自己的玻璃档位,从 theme/ 目录与这三份方案文档入手即可——它们记录了从决策、调参到实机验收修正的完整过程。

【免费下载链接】Tyranor-Next

多引擎视觉小说(Galgame)聚合启动器,面向 Android 平台。内置 Kirikiri / ONScripter / Tyrano / Artemis / Siglus / FVP 六套引擎运行环境,并支持 Ren'Py、RPG Maker RGSS 外置 APK 引擎模块与 PSP / Nintendo Switch 外置模拟器跳转(PPSSPP / Eden),可识别和启动多类游戏,提供游戏库管理、封面获取、存档镜像、引擎参数调节等一体化体验。

项目地址: https://gitcode.com/gh_mirrors/ty/Tyranor-Next
点击查看 免费下载
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐