|
|
本帖最后由 鼓掌之间 于 2026-8-18 11:04 编辑
转自:https://www.nexusmods.com/stardewvalley/mods/35690
一个独立专用框架,用于制作自定义动态窗户,可以显示天气特效、蝴蝶在室内飞舞,还支持交互开启窗户。
需求
Content Patcher:https://bbs.3dmgame.com/thread-6550823-1-1.html
SMAPI‑星露谷物语MOD开发接口:https://bbs.3dmgame.com/thread-6549454-1-1.html
安装方法
安装最新版本的SMAPI:https://bbs.3dmgame.com/thread-6549454-1-1.html
将MOD文件夹解压到星露谷物语/Mods目录下。
通过SMAPI启动游戏。
使用方法
直接安装即可,所有有效窗户上都会显示天气效果。如果你希望在游戏内修改粒子相关参数,强烈推荐安装GMCM配置菜单。我在尽量贴近原版游戏风格的同时调整了特效速度,让整体效果更贴近现实。
内容
全景背景:
背景会根据农舍内窗户的摆放位置动态变化,长条背景素材可以打造沉浸式、连贯的窗外世界。
窗帘:
窗帘功能仍在开发中。我计划扩展该框架的窗帘制作接口,让像素画师可以自由制作专属窗帘资源包。目前自带的默认窗帘,可以展示接入框架后窗帘的动态摆动效果。
前往罗宾的商店,花费2500金币即可购买窗帘。
将窗帘放置在已启用的动态窗户上方,即可体验风吹窗帘的效果。
右键打开窗帘与窗户;窗帘、窗户均处于开启状态时右键会关闭窗户。按住鼠标右键可以关闭窗帘。
该功能完全支持手柄操作。
调色盘:
站在窗帘附近,按下左Alt键+鼠标右键即可调出调色盘。窗帘素材需要为灰度图,调色盘才能正确上色。后续版本会优化,可在保留窗帘关键元素色彩的同时使用灰度调色。
天气粒子效果:
下雨特效,包含降雨与闪电闪光,和游戏内真实闪电同步触发。
晴天特效:微尘在窗前飘荡,光束角度与色彩会随一天时间发生改变。
大风落叶特效:窗户打开时树叶会吹进屋内。
降雪特效:窗户打开时雪花飘入室内。
温室现已接入框架,拥有沉浸式大窗户效果。
夏季夜晚少数情况会有萤火虫在窗外飞舞。
春、夏季的午后,偶尔会有蝴蝶在窗外飞舞。
(后续会增加更多效果)
开窗交互:
走到窗户前方,按下交互按键(一般为鼠标右键)即可打开窗户。
开启窗户可触发:
原版窗户新增自定义动画
小型生物进入屋内(可配置)
‑蝴蝶
‑夏季夜晚,刮风、晴天或雨天时的萤火虫
‑冬季呼出白气
‑树叶飘入室内
‑雪花飘入室内
‑雨水粒子飘入室内
‑开启的窗门前会生成水洼
(后续会增加更多效果)
兼容性
目前仅会和修改温室、阳光房窗格素材的MOD产生冲突。
经过测试可兼容的温室MOD包括但不限于:
绿洲温室
15×15温室
艾莉的温室
SVE扩展温室
如果你在温室或阳光房看到黑色虚空画面,代表与修改该区域的MOD存在冲突。打开GMCM配置菜单,把温室/阳光房下拉选项改为“原版”,等待游戏一帧刷新,就会加载原版素材恢复正常。
注意:如果你使用的自定义地图MOD修改过窗格色调,切换回原版后该自定义色调会失效,因为本MOD内置保存了原版纹理资源。
设置选项
该MOD不安装GMCM也可以正常运行,但强烈建议搭配使用。你可以开关各类显示效果,调整粒子速度、透明度等配置参数。
卸载方式
直接从星露谷物语/Mods文件夹删除本MOD文件夹即可。游戏中途新增或移除本MOD都是安全的。
面向内容创作者
该框架现已正式可用。你只需编写简单的JSON文件(类似Content Patcher,但专门适配本MOD),就可以把自定义窗户、动画、音效接入窗户引擎。
下面演示制作[DW]内容资源包的流程:
按以下步骤操作:
制作素材:全新窗框、窗外背景、窗户音效、温室背景等素材。
搭建文件夹:和普通SMAPI MOD一样,创建独立文件夹并配置manifest.json清单文件。
核心配置文件:除素材与清单文件外,你还需要一份dw‑content.json。
该文件是注册各类资源的指令清单。哪怕文件内容为空,Dynamic Windows也可以识别你的资源包。
操作完成。
如何编写dw‑content.json?你可以下载可选文件中的[DW]创作者模板,或者参考下方示例。该系统支持注册自定义窗户、定义动画关键帧、家具窗户全景背景包、温室背景包。
json
{
"WindowLayouts": {
"你的_匹配ContentPatcher的家具ID名称": {
"EntryZone": { "X": 16, "Y": 32, "Width": 32, "Height": 48 },
"Animation": {
"AnimationAsset": "assets/anim_{{Season}}.png",
"FrameWidth": 16,
"Speed": 1.0,
"OpenSound": "doorCreak",
"CloseSound": "doorCreakReverse"
}
}
},
"GreenhouseBG": {
"{{Season}}": "assets/backgrounds/greenhouse/bg_ex1.png"
},
"Backgrounds": {
"spring": "assets/skies/spring_meadow.png",
"{{Season}}": "assets/skies/generic_{{Season}}.png"
}
}
关键概念
WindowLayouts:用于注册新增家具。键名(例如“你的_匹配ContentPatcher的家具ID名称”)必须和Content Patcher加载的家具内部ID完全一致。支持{{ModID}}变量。举个例子,注册一个不可交互无动画窗户,只需要填写"{{ModId}}_TemplateWindow1": {},就完成注册。
EntryZone:定义生物(蝴蝶等)飞入的窗口缺口区域。如果不填写该字段,代表窗户不可交互。粒子特效依旧可以透过窗户显示,但没有动画与入口区域,无法开启窗户。
注意:只填写EntryZone但不配置动画,会判定窗户为永久开启,类似阳台或者墙体洞口。配置动画但不填写EntryZone,会自动把窗户下半部分作为生物入口。
Animation:选填。配置此项可以设置精灵图、播放速度、音效。同样支持{{Season}}季节变量,可以为冬夏设置不同动画。
GreenhouseBG:温室背景替换,沿用原有逻辑,整合进新配置结构。
注意:你依旧需要Content Patcher的content.json,把窗户素材加载进游戏。
下载地址:
|
评分
-
1
查看全部评分
-
|