mcpField
G
godot-theme-easter

godot-theme-easter

github.com/thedivergentai设计与 UI912236 次安装2 周前更新
代码仓库

关于 godot-theme-easter

面向 Godot 项目的季节性复活节主题工具包,按日期和设置控制启用状态。包含 UI 配色、音效替换、粒子效果与收集物交互脚本。

主要功能

  1. 01日期、设置与开发覆盖激活门控
  2. 02统一的柔和色彩令牌
  3. 03运行时 UI 主题注入
  4. 04季节性音效资源替换
  5. 05彩屑、闪光与弹性动画
  6. 06网格材质和调色板覆盖

适用场景

  1. 01为游戏 UI 添加限时复活节主题
  2. 02按玩家设置关闭季节性视觉效果
  3. 03为收集物添加闪光、抖动和庆祝效果
  4. 04替换节日活动期间的标准 UI 音效

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thedivergentai/game-design-agentic-skills --skill godot-theme-easter

安装后在 Claude Code 中输入/godot-theme-easter确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
migration-notes.md
seasonal-implementation-recipes.md
scripts/
bouncy_egg_component.gd
easter_camera_pop_juice.gd
easter_confetti_canon_vfx.gd
easter_custom_cursor_manager.gd
easter_egg_collection_tracker.gd
easter_mesh_painter_override.gd
easter_palette_override.gd
easter_pastel_color_palette.gd
easter_runtime_ui_themer.gd
easter_seasonal_activation_gate.gd
easter_seasonal_audio_swapper.gd
easter_shimmer_vfx_emitter.gd
easter_squash_stretch_juice.gd
easter_wobble_physics_body.gd
seasonal_material_swapper.gd

详细介绍

概述

季节性「复活节化」工具包:明亮的粉彩色、活泼的动感和蛋/兔子图标——由日历和设置控制。

必须首先阅读: easter_seasonal_activation_gate.gd——日期范围、「Disable Seasonal Themes」退出选项(user://settings.cfg)和开发覆盖。设置更改时调用 refresh_activation();切勿在 _process 中轮询日历。

前置条件: 在存在基础 Theme 资源之前,不要加载 godot-ui-theming——季节性叠加层会注入 StyleBox 覆盖,而不是取代基础 Theme 的编写工作。

季节性引导(按顺序)

  1. 开关 — 附加 easter_seasonal_activation_gate.gd;在 _ready 和设置更改时调用 refresh_activation()。
  2. 主题 — 若开关已启用:必须使用 easter_runtime_ui_themer.gd,并采用 easter_pastel_color_palette.gd 中的色彩令牌。
  3. 音频 — 必须使用 easter_seasonal_audio_swapper.gd,将标准 UI 音效映射为季节性音频流。
  4. 动感效果 — 仅在步骤 1–3 通过后,才叠加彩纸/闪光/光标/摇晃脚本(开关关闭时,完全跳过步骤 2–4)。

决策树——替代绘制器(任选其一)

场景使用不要同时接入
通过 surface_override 为 3D 网格添加季节性着色easter_mesh_painter_override.gd在同一网格上使用 easter_palette_override.gd
已接入 2D/modulate 或材质槽替换easter_palette_override.gd 或 seasonal_material_swapper.gd在同一目标上使用 mesh_painter

核心组件(专家级复活节工具)

easter_seasonal_activation_gate.gd

必须使用——支持日期判断、退出选项和开发覆盖的管理器。

easter_pastel_color_palette.gd

粉彩色 Color 令牌的唯一事实来源——不要在 SKILL 正文或零散脚本中硬编码十六进制色值列表。

easter_runtime_ui_themer.gd

运行时主题注入器,用于在整个 UI 树中批量应用粉彩样式。

easter_squash_stretch_juice.gd

使用 Tweens 实现的专家级「挤压与拉伸」逻辑,打造有机的蛋状交互效果。

easter_shimmer_vfx_emitter.gd

专业级「隐藏物品」闪光效果,带有加色混合和缩放曲线。

easter_egg_collection_tracker.gd

用于追踪隐藏物品的专家级注册表,通过信号实现进度通知。

easter_mesh_painter_override.gd

使用表面覆盖进行季节性 3D 材质替换,同时保留基础资源。

easter_wobble_physics_body.gd

由不稳定性驱动的物理实体,实现「蛋状」摇晃移动。

easter_camera_pop_juice.gd

沉浸式 FOV「冲击」逻辑,突出收集或弹出事件。

easter_confetti_canon_vfx.gd

庆祝用彩纸爆炸效果,包含多色粉彩碎片。

easter_custom_cursor_manager.gd

将系统鼠标光标替换为主题复活节图标的专家级逻辑。

easter_seasonal_audio_swapper.gd

动态音频资源加载器,用季节性变体替换标准 UI 音效。

easter_palette_override.gd / seasonal_material_swapper.gd

替代绘制器——请参阅上方的 决策树——替代绘制器;每个目标选择一条路径。

视觉指南

  • 颜色: 从 easter_pastel_color_palette.gd 导入色彩标记(PINK、BLUE、YELLOW、MINT、PURPLE)——切勿在功能中随意罗列十六进制颜色值。
  • 形状: 使用圆角(corner_radius > 8–12)。避免尖锐边缘和高对比度的黑色。
  • VFX: 通过 confetti/shimmer 脚本添加彩纸、闪光和缎带效果。

切勿这样做(复活节专家规则)

美学与动感
  • 切勿使用尖锐边缘或高对比度的黑色——复活节美学偏好圆角(corner_radius > 12)和柔和的粉彩色调。
  • 切勿使用标准线性缩放来制作弹跳效果——线性缩放会显得“机械”。始终对有机彩蛋使用 TRANS_ELASTIC 或 TRANS_QUART。
  • 切勿对复活节粒子使用面向摄像机的效果——在近距离 UI 或 VR 中,面向摄像机的闪光看起来很扁平。请使用基于网格的粒子或轴向旋转。
逻辑与性能
  • 切勿修改原始 .mesh 或 .tres 资源——替换共享资源上的材质,会影响游戏中的每个实例。始终使用 surface_override 或 duplicate()。
  • 切勿在 _process 中检查日期——每帧检查系统日历会造成浪费。请在 _ready 时或通过激活门控响应事件时调用一次 Time.get_date_dict_from_system()。
  • 切勿忽略“非季节主题”切换项——有些玩家不喜欢季节性覆盖。请始终在设置中提供“停用季节主题”选项(通过门控的 ConfigFile 键连接)。

高级主题化钩子

  • 动态 Z 顺序: 使用 RenderingServer.canvas_item_set_draw_index(),无需重新设置节点父级即可将已收集的彩蛋粒子动态移到 UI 堆栈前方。
  • 物理插值: 对受物理驱动的彩蛋使用 TRANS_ELASTIC 补间时,调用 RenderingServer.canvas_item_reset_physics_interpolation(),避免弹跳动画首帧出现视觉“抖动”。
  • StyleBox 覆盖: 使用 Control.add_theme_stylebox_override("panel", my_stylebox),而不要修改全局 Theme,以将季节性更改限制在特定 UI 模块中。

复活节专家实现

1. 自定义鼠标光标(动感)

必须: easter_custom_cursor_manager.gd——始终设置 hotspot(兔耳尖端/底部)。

2. 主题音效加载器

必须: easter_seasonal_audio_swapper.gd——使用原始 AudioStream → 季节性 AudioStream 配对的资源映射。

3. 世界环境覆盖(春日辉光)

在过渡期间对 Environment 的环境光/色调映射/雾效进行补间——切勿在帧中途硬切颜色。

func _apply_spring_env(env: Environment) -> void:
    var tween := create_tween()
    tween.tween_property(env, "ambient_light_color", EasterPastelColorPalette.YELLOW, 2.0)
    tween.tween_property(env, "tonemap_exposure", 1.2, 2.0)
    tween.tween_property(env, "fog_light_color", EasterPastelColorPalette.BLUE, 2.0)

深入配方(按需查阅)

LLM 忽略规则:如果通用 Agent 在阅读前不会知道某项内容,就将其放在这里或 scripts/ 中——切勿删除,只能移动。

主题参考资料
光标/音频/环境配方seasonal-implementation-recipes.md

参考资料

渐进式披露:仅在研究特定 API 时打开官方文档链接; 将工作分派给相关领域时再加载相关技能——不要预加载整个技能网络。

官方文档
相关技能
前置条件
补充技能
下游/使用者
主模块
  • godot-master — 季节主题的库路由器和镜像模块入口。

评论

支持 Markdown