mcpField
G
godot-theme-easter

godot-theme-easter

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

关于 godot-theme-easter

面向 Godot 项目的复活节主题技能,指导将季节性视觉、音效与交互效果叠加到现有主题上。通过日期激活门、设置退出选项和按目标选择材质方案,约束季节效果的启用方式。

主要功能

  1. 01按日期和设置控制主题激活
  2. 02统一管理柔和色彩令牌
  3. 03运行时为界面应用主题样式
  4. 04替换季节性界面音效
  5. 05提供粒子、光标和动画效果

适用场景

  1. 01为游戏界面添加限时复活节主题
  2. 02为收藏物添加闪光或弹跳反馈
  3. 03替换标准界面音效与鼠标光标

安装

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

$npx skills add https://github.com/thedivergentai/game-dev-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