用途
该工具包用于在 Godot 项目中应用经典复活节季节性叠加:柔和的马卡龙色调、富有弹性的动效、彩蛋与兔子图标元素,并通过日历日期与玩家设置进行门控,仅在合适的时间窗口内生效。适用于发布节日皮肤、四月活动,或在不修改共享 .mesh/.tres 资源的前提下实现彩蛋寻宝的动效。
主要能力
- 激活门控:提供日期窗口、
Disable Seasonal Themes退出选项(通过user://settings.cfg)以及开发覆盖(Dev Override)。设置变化时需调用refresh_activation(),且不应用_process轮询日历。 - 主题注入:通过
easter_runtime_ui_themer.gd在 UI 树上批量应用柔和色样式,色值来自easter_pastel_color_palette.gd(PINK、BLUE、YELLOW、MINT、PURPLE)。 - 音频替换:
easter_seasonal_audio_swapper.gd将标准 UI 音效映射为季节性音频流。 - 动效与 VFX:包括挤压拉伸(
easter_squash_stretch_juice.gd)、闪光效果(easter_shimmer_vfx_emitter.gd)、彩纸炮(easter_confetti_canon_vfx.gd)、摄像机 FOV 弹跳(easter_camera_pop_juice.gd)、蛋形摇摆物理(easter_wobble_physics_body.gd)等。 - 3D 上色:
easter_mesh_painter_override.gd使用surface_override实现季节性 3D 材质替换,保留基础资源不变。 - 自定义光标:
easter_custom_cursor_manager.gd替换系统鼠标指针为复活节图标,并需设置hotspot。 - 收集追踪:
easter_egg_collection_tracker.gd通过信号追踪隐藏物品的收集进度。
使用方式
季节性引导按顺序执行:
- 门控:挂载
easter_seasonal_activation_gate.gd,在_ready和设置变化时调用refresh_activation()。 - 主题:门控激活时,使用
easter_runtime_ui_themer.gd并配合调色板令牌。 - 音频:使用
easter_seasonal_audio_swapper.gd映射标准 UI 音效到季节性音频流。 - 动效:在前三步通过后叠加彩纸、闪光、光标、摇摆脚本;门控关闭时完全跳过第 2–4 步。
对于替代上色器,按上下文二选一:3D 网格季节色调使用 easter_mesh_painter_override.gd;2D/modulate 或已接线的材质槽替换使用 easter_palette_override.gd 或 seasonal_material_swapper.gd,且不要在同一目标上同时接线。
适用场景
适合节日皮肤发布、四月活动、彩蛋寻宝类玩法,以及需要在不改动共享资源的前提下按实例做季节性覆盖的 UI 与 3D 场景。
限制与规则
- 不要在
_process中运行日期检查,应在_ready或事件触发时通过门控运行一次Time.get_date_dict_from_system()。 - 不要修改原始 .mesh 或 .tres 资源,应使用
surface_override或duplicate()。 - 不要忽略“无季节性”开关,应始终在设置中提供
Disable Seasonal Themes选项。 - 避免锐利边缘与高对比黑色;不要对弹出使用标准线性缩放,应使用
TRANS_ELASTIC或TRANS_QUART;不要对复活节粒子使用 billboarding。 - 前置要求:在基础
Theme资源存在前,不要加载 godot-ui-theming;季节性叠加注入 StyleBox 覆盖,而非替代基础主题创作。 - 官方文档与相关技能链接可参考原文,包含 GUI skinning、主题编辑器、粒子系统、Tween、Environment 等。