更高分辨率的精灵图,额外像素空间充裕!这是一款模组资源,支持在游戏中使用64x128像素的精灵图,但在游戏中会以32x64像素渲染。这本质上让每个精灵图的分辨率翻倍,同时还能提供……
注意:这是一份
模组资源尽管其他内容包可能需要它,但单独使用时它本身并无效果。
精灵详解
v0.6.1
- 改进菜单和日历精灵的处理方式
V0.6.0
- 已更新至SDV 1.6版本
V0.3.0 版本新增内容:
多亏了Aimon111的请求,现在可以在任意位置自由绘制精灵了。 分辨率:
请参阅下方的 Pixel 替换部分以了解使用方法。安装
将ZIP文件解压到您的设备中
星露谷物语/模组 目录
要求SMAPI内容修补器什么是 精灵详解?《精灵详解》是一款类似于ContentPatcher的SMAPI模组资源,它允许
视觉 将精灵替换为更高分辨率的版本。
多人游戏功能应可正常运行,但所有修改仅作用于客户端。若玩家间模组存在差异,修改内容将无法被其他玩家所见。
未修改的情况下,精灵图像被限制在16x32像素的矩形范围内。
通过这个模组,精灵图将被设定为64x128像素,但在绘制到《星露谷物语》中时,它们会被缩放至32x64像素,以适配原有的显示空间。
实际上,这赋予了绘制更高分辨率精灵的能力,并且提供了额外的高度和宽度来扩展原始精灵。
*阿比感觉有点迷糊*
此外,可以任意用任何图像替换另一张图像:
如何 精灵详解 工作?《精灵细节》遵循了与HDSprites、SpriteMaster等其他高兼容性精灵修改库类似的渲染导向方法。
SiD纹理已加载,但在实际绘制操作之前不会与Stardew的逻辑交互。在绘制过程中,SiD将根据所需规格绘制纹理。
这种方法的优势在于,尺寸、边界或其他逻辑均不受SiD纹理的影响。这确保了与事件系统、路径规划及边界计算保持高度兼容性。
最大的缺点是NPC的碰撞箱完全保持不变。
如果你制作了一个特别宽的精灵,角色仍然能够像以前一样精确地接近。
格斯觉得你可能靠得太近了。
如何使用 详细解析精灵?
对于Mod作者来说,使用方法与其他SMAPI内容包类似:
1.) 创建你的高分辨率精灵表 以下是在Aseprite中的操作方法:
1. 将精灵图的大小增加到400%。
2. 将精灵尺寸调整为32x64
它们应该居中放置
位于精灵区域底部* 一个技巧是,如果在调整高度时按住SHIFT键,它将保持比例和位置不变。
2.) 创建一个content.json文件添加SiD精灵的基本格式:
{
"精灵": [
{
"目标": "必需 {目标资产,这将是基础游戏资产的目录/名称,或其他模组资产所选定的名称}"
"FromFile": "必填 {替换资源的位置}"
"呼吸类型": "{男性|女性|无 - 用于确定哪些像素将用于'呼吸'效果}"
“时间”:{
可选 - ContentPatcher 条件令牌对象
}
},
……
]
}
3.) 确定是否要处理呼吸纹理 《星露谷物语》将为所有"呼吸者"NPC绘制第二层纹理。
SiD提供三种基本选项:
1.) 男性角色 - 将采用与《星露谷物语》原版成年男性NPC相同的精灵图坐标与尺寸(即:以(24, 98)为左上角起点的16x16像素矩形区域)。
2.) 女性角色 - 将沿用原版《星露谷物语》中成年女性NPC的精灵图坐标与尺寸规范(例如以坐标(24, 100)作为16x8矩形区域的左上角定位点)。
3.) 无 - 将完全禁用呼吸纹理效果
或者,您也可以手动指定此纹理的边界,这在您已增加精灵的高度或宽度时尤为有用。
- ChestSourceX - 呼吸纹理X坐标相对于精灵左上角的位置(未经修改的男性SiD精灵为24)
- ChestSourceY - 相对于精灵左上角的呼吸纹理Y轴位置(未修改的男性SiD精灵为98)
- ChestSourceWidth - 要使用的矩形宽度(未修改的男性SiD精灵为16)
- ChestSourceHeight - 要使用的矩形高度(未经修改的男性SiD精灵为16)
- 胸部调整X - 一个表示左右调整呼吸纹理像素数的值。数值越大,纹理越向右移动。
- 胸部调整Y轴 - 一个表示呼吸纹理上下调整像素数的值。数值越大,纹理向下移动。
*ChestAdjustX和ChestAdjustY的数值较难精确确定。它们会影响
来源 呼吸纹理(其
中心点) 并且相对于胸部矩形的默认中心点 (31,106)。
此外,Y值还需要乘以2。例如,若您增加了精灵的高度,却又不想让它们从腹部呼吸:
您可以配置精灵:
{
"目标": "角色/刘易斯"
"FromFile": "assets/Lewis.png",
"胸部来源X":24,
"胸部来源Y轴坐标":89,
胸部源宽度:16
"ChestSourceHeight": 20,
“胸部调整X轴”:0,
“胸部调整Y轴”:-14
}
这将使刘易斯的呼吸变得更加正常:
有两个最终配置选项:
这些是X、Y坐标,对应着精灵将被绘制的位置。
这一点实际上位于精灵的下四分之三处,靠近阴影顶部绘制的位置。
一般来说,默认值适用于16x32尺寸的精灵,但如果您想调整更小或更大的精灵,则需要修改这些数值。
例如,克洛布斯需要设置精灵原点X = 32,精灵原点Y = 82(由于他的精灵图像较矮,默认值112需调整)。
4.) 条件精灵SiD支持 ContentPatcher的条件令牌/查询.使用Sprite时,只需在其中指定一个When属性即可。只有在雨天“何时”:
{
“天气”: “雨”
}
此外,在config.json中指定的任何配置值也将在此区域中可访问。
配置文件{
"启用": "真",
"GusSprite": "SiD"
}
内容.json{
"精灵": [
{
"目标": "角色/格斯"
"来源文件": "assets/gus.png",
"呼吸类型": "男性",
"时间": {
"GusSprite":"SiD"
}
}
]
}
任何自定义的config.json值都会在Mod配置菜单中显示,如果 通用模组配置菜单 已安装。如果你想在Content Patcher查询中使用配置令牌,你需要通过你的ContentPack的UniqueId来引用它。
如果我的内容包的uniqueId是'BleakCodex.CrazyMustacheGus':“何时”:
{
查询:'{{天气}}' = '风暴' 且 {{BleakCodex.CrazyMustacheGus/在风暴期间启用}} = '真'
}
5.) 创建manifest.json文件
跟随
SMAPI 清单格式
您将需要一个指向SiD的ContentPackFor条目。
"ContentPackFor": {
"唯一标识符": "BleakCodex.SpritesInDetail"
},此外,如果您希望使用
内容修补器令牌/条件语句 (When属性),你
必须 添加一个指向版本1.22.0或更高版本的必需依赖项到ContentPatcher。
"依赖项": []
{
“UniqueID”: “Pathoschild.ContentPatcher”
“最低版本”: “1.22.0”
}
]6.) 最后,将你的内容包复制到 Stardew Valley/Mods 文件夹中像素替换借助PixelReplacement功能,您可以使用自定义图像替换部分甚至整个精灵/精灵表。
{
"精灵":{
"目标": {必填 - 目标资产},
"像素替换项": [
{
"FromFile": {必填 - 指向您希望用于绘制的PNG图片目录路径}
"TargetX":{必填 - 要替换的精灵在精灵图上的X坐标}
"TargetY": {必填 - 你想要替换的精灵在精灵图上的Y坐标位置}
}
]
}
}
例如:
这将用位于food/fried_egg.png的文件替换Maps/springobjects表格中(32, 128)位置的煎蛋图像。{
"精灵": [
{
"目标": "地图/春季物品",
"像素替换项": [
{
"来源文件": "food/fried_egg.png",
"目标X": 32,
“目标Y”:128
}
}
]
}该图像将就地渲染,尺寸由《星露谷物语》游戏指定。
这意味着,如果您提供矩形图像而非正方形对象,图像将被压缩以适应所定义的方形区域。
此外,还有
未强制执行尺寸你可以自由选择提供任意分辨率的纹理。
关于性能的简要说明:如果确实需要提升性能,我这里有一些可优化的方案。若您在实际使用中遇到任何性能下降的情况,请随时联系我。不过考虑到您的纹理尺寸并非特别庞大,目前采用的方法应该已经足够高效了。
示例请参考“
巨型疯狂胡须格斯以SiD模组为例
兼容性虽然SiD应该具有高度兼容性,但我仅在Windows版《星露谷物语》上使用最新版本的SMAPI进行过测试。
如果您发现此模组与其他版本兼容,请随时通知我。
Windows✅
Linux ❔
安卓 ❔
苹果电脑❔
分屏 ❔
性能
由于需要渲染额外的像素,这些纹理在技术上确实会带来性能上的损耗。
不过,《星露谷物语》本身对GPU的负荷就很低,因此我认为性能提升空间应该相当大。
另一方面,XNA似乎对精灵图(spritesheet)的大小设定了上限,大约在2048x2048像素左右。
在当前分辨率下,这仍可容纳16行精灵帧,但对其他分辨率设定了上限。
通过添加SpriteReplacement逻辑,可以轻松突破尺寸限制,但这会以性能损耗为代价。
通常建议模组制作者考虑用户实际能够渲染的像素数量。功能请求如果需要,我可以添加额外的精灵分辨率。如果您需要关于条件/令牌集成的额外功能,请通过此处或GitHub与我们联系。
否则,我打算尽可能保持精简,以便未来升级到任何版本的SMAPI时只需小幅调整,尽管它应该已经兼容SMAPI 4.0.0。
来源