这篇文章主要解决自定义皮肤相关的常见问题。
自定义皮肤指的是一种简单的图像改变机制,在设置里选中一款皮肤时,osu! 会使用这种机制,加载皮肤中的图像。组装皮肤很容易,但制作皮肤所需的资源就有点困难了。
如果你已经翻遍了整个皮肤制作论坛,并且确信你找不到那一款皮肤,那么恭喜你,osu! 上还没有。考虑到这一点,你可以主动制作梦寐以求的皮肤,并把它制作成别人也想要的皮肤!
尽管如此,还请不要在论坛任何地方求皮肤。 如果你不遵守规定,你的帖子就会被删。
首先,不要在论坛里问这样的问题,否则你的帖子大概率会被删。其次,你最好去找那个人要。那个人可能会给你,但并非总是如此。
是的,你可以使用其他皮肤中的元素,制作出的皮肤叫做“混合版皮肤”。然而,**无论是否得到许可,都不允许在皮肤子论坛中发布混合版皮肤!**但你可以把皮肤链接写在个性签名或 me! 页面上。
因为自定义音效文件通常来说会更困难,所以即使原作者没有明确许可,你也可以使用其他皮肤中的音效文件,同时,去感谢原作者的话就没什么问题。
制作自己的皮肤时,你可以在皮肤文件夹里放其他任何文件或者文件夹。osu! 会直接忽略无关文件,这样你就可以在同一文件夹中保存 .xcf
或 .psd
文件,以便日后编辑需要。
但是,你在发布皮肤时应该删除这类文件,这样可以缩小皮肤文件的大小。因为 osu! 会自动处理缺失的元素,如果你恰巧在使用模板皮肤,请删掉未在皮肤中使用的元素。
尽管文件夹里允许放任何东西,但也要注意,taiko
(区分大小写)文件夹是专门为 osu!taiko 皮肤保留的,会覆盖 osu!taiko 中的所有元素(以及游玩 osu!taiko 谱面时的某些界面元素)。
你要先选中自己的皮肤,然后按下 Ctrl
+ Alt
+ Shift
+ S
快捷键,在 osu! 中重新加载皮肤。
你也可以在退出后重新启动 osu!,或者启动更新工具来重新加载皮肤,但在 osu! 中使用快捷键通常快得多!
主页面:谱面上架标准/皮肤组列表
在 osu! 中有超过 200 个元素支持自定义(每个元素的动画帧除外),但你并不需要自定义所有元素。其实,你可以直接删掉不想自定义的元素,osu! 会自动使用默认的元素图像。
也就是说,(谱面上架标准)定义的皮肤组基本指明,如果想要自定义某一组皮肤组中某个元素,必须将组内其他元素一起自定义。比如,如果你在皮肤中只自定义一半默认数字,其余元素使用默认图像。这样的话,玩家可能不会喜欢。尽管以上的皮肤组标准只严格适用于自定义谱面皮肤,但你在自定义自己的皮肤时,也可以考虑这一点。
改编版皮肤算是混合版皮肤,因此不能在任何子论坛里发布。
是的,你可以制作与他人相似的皮肤。但你必须自己制作资源,显然也不能直接抄袭原皮肤的资源。
有一些第三方项目正尝试去做,但皮肤数据库已在规划中。要了解更多细节,参见 ppy/osu-web#61 - Skin System。
在分享皮肤前,首先确保你已经删除了不使用的文件,可以是默认图像与声音、多余的文件夹以及非图像文件(skin.ini
文件除外)。在此之后,你需要将皮肤导出为 .osk
文件。这样你可以上传此文件,然后在皮肤子论坛里发帖。
导出 .osk
。.osk
文件重命名为你的皮肤名,然后上传。不行,不允许在任何子论坛里发布混合版皮肤。改编版皮肤也是如此。
你可以在玩家主页、个性签名、/r/osuskins reddit 子区,或者 osu! 论坛外的其他地方发布。
是的,如果你的重制版皮肤没有抄袭其他皮肤或是使用其他皮肤的资源文件,就不算是混合版皮肤,可以发布。否则,这个皮肤会被算作重制版皮肤,不能发布。
可以,但是如果你要发布的话,必须在论坛帖上添加警告。 R15 皮肤可能包括但不限于以下内容:
如果要添加提醒,在帖子标题前加上 [R15]
、正文前面写上提示即可。
不行,禁止在 osu! 中发布含有 R18 内容的皮肤。就这样。
如果你在 osu! 社区中发布 R18 皮肤,请小心因此收到惩罚。从另一方面讲,如果你在 osu! 社区范围外发布,没人会追究你。R18 皮肤可能包括但不限于以下内容:
如果你不知道如何写看起来友好的帖子,可以使用下面的模板。
[centre][size=150][color=#cc5288]{皮肤名称}[/color][/size]
[size=150]{在这里写 1-3 句话,简要描述你的皮肤}[/size]
[box=Screenshots]
[size=150]Song selection
[img]https://example.com/图片链接.png[/img]
Mod selection menu
[img]https://example.com/图片链接.png[/img]
Ranking screen
[img]https://example.com/图片链接.png[/img]
osu! gameplay
[img]https://example.com/图片链接.png[/img][/size][/box]
[url=https://example.com/皮肤下载链接.osk]Download link[/url][/centre]
在帖子里加入游玩过程、选歌界面等地方的截图真的很重要。许多人在盲目下载你的皮肤之前,想要先看看皮肤大概的样子!你可以用 upppy 或 imgur 上传截图。
主页面:skin.ini
Skin v1.0 是早期皮肤样式,从启动游戏的皮肤支持开始,到 2013 年 3 月一直在使用。在此之后,skin v2.0 发布,带来了一批全新的皮肤元素,也进行了一些改动。若要浏览皮肤更新日志,请见skin.ini 文章的版本小节。
版本的选择也许看起来不太重要,但要明白,旧版皮肤的某些功能可能在最新版本皮肤中不可用,反之亦然。
osu! 所使用的声音格式层次结构如下:
.wav
.mp3
.ogg
osu! 基本会优先使用 .wav
文件,因为与 .mp3
和 .ogg
文件相比,.wav
文件更适合用于循环播放短时长的声音。
大多数情况下,图像必须使用 .png
格式,但 menu-background.jpg
元素必须使用 .jpg
格式。
除了要使用 .png
格式外,你还应该:
覆盖层指的是置于其他元素(元素名相同,但没有 overlay
或 -overlay
后缀)上层的元素。一点特别之处在于,覆盖层不会着色。但只有少数元素有覆盖层(可在皮肤元素列表中找到)。
由于可以使用不同的窗口分辨率游玩 osu!,某些皮肤元素与理想情况相比可能会重叠,也可能距离变大。这意味着并非所有元素都会拉伸、缩放以契合游戏窗口的分辨率。
在制作皮肤时,最好留意以下分辨率。
如果分辨率与上文列出的都不符,游戏则会调整图像,以契合分辨率。大多数元素会为了契合游玩区域而重新缩放,也会以不同的宽高比重新调整位置。
当存在时,高清图像用来在较高分辨率下取代常规图像。与常规图像相比,高清图像在较高分辨率下看起来更锐利清晰。游戏会根据所用分辨率自动缩放这些图像。支持 高清图像的分辨率,其高度至少为 800 像素。高清图像的文件名带有 @2x
后缀标记。比如:cursor@2x.png
。
高清图像在尺寸上是加倍的。比如:常规的 hitcircle.png
精灵图尺寸为 128x128 像素。因此其高清精灵图 hitcircle@2x.png
的尺寸将是 256x256 像素。
每个精灵图都可以有高清副本,甚至所有动画帧都是如此。由于图像数量比常规情况下更多,文件夹或压缩文件的大小会因此增加。
事实上,与常规精灵图相比,高清图像的画布面积要大 4 倍,因此,其文件可能也会比较大。osu! 使用的基本分辨率模式共有两种,每种模式各偏好使用一种图像,它们分别是 LowResolution 和 HighResolution。
与动画元素相比,结算屏幕优先使用静态皮肤元素。也就是说,如果一个元素同时存在动画与静态两个版本,则层次结构如下:
然而,osu!mania 的结算屏幕是例外。也就是说,如果一个元素同时存在动画与静态两个版本,则层次结构如下:
注:在 osu!mania 中,osu! 会忽略 skin.ini
文件中指定的路径,只会使用根目录(加载皮肤元素的文件夹)中的图像。
首先查阅元素列表,看看目标元素能不能使用动画。如果可以的话,你就可以开始制作动画了。为此,你需要让动画的每一帧各对应一个静态图像。在此之后,将每一帧的名称改为元素名,后加连字符(-
),然后带上序号(从 0 开始)。其余帧方法同上。
比如,如果你想给 scorebar-colour.png
添加动画,就要将第一帧命名为 scorebar-colour-0.png
,第二帧是 scorebar-colour-1.png
,然后第三帧是 scorebar-colour-2.png
,以此类推。
注:并非所有元素的名称与帧叙述间都有连字符(-
)。对于动画名称,请查阅元素列表。
各个元素动画的帧率不一致。一些元素用的是 skin.ini 文件中定义的数值,有些用的是客户端定义的值,而其余的基于谱面的 BPM(每分钟拍数)。因此,给皮肤元素添加动画是个反复试错的过程(对于解决此问题的方法,参见下一节)。
当你的动画速度太快或太慢时,有两种方式可以修复:
skin.ini
中的 AnimationFramerate
参数。
pippidon
、hitcircleoverlay
)。你的皮肤里需要有 cursormiddle.png
元素。如果你不想添加它的话,也可以使用透明图像。
如果你想要去除某个元素,要先用透明图像替代它,然后重新加载你的皮肤。
有两种方法:
打击闪光
。lighting.png
的透明图像。要去掉例子,只需删除 particle50.png
、particle100.png
和 particle300.png
这三个文件即可,不需要使用透明图像。
在皮肤中添加名为 sliderendcircle.png
的透明图像。
添加透明图像,文件名如下:
hit300-0.png
hit300g-0.png
hit300k-0.png
你必须拥有 osu! 支持者标签,才能在主菜单中看到自定义的背景图像。要想快速改变背景,你可以将 .png
或 .jpg
格式的图像文件拖放进 osu!(主菜单)中。这张图像会覆盖所选皮肤文件夹中的背景图像。
主文章:高清图像
打开 skin.ini 文件,将 Version
改成 2.1
及以上。
主页面:skin.ini
有三类不同的打击音效,使用的前缀分别是:normal
、soft
和 drum
。所有音效都有如下后缀之一:-hitnormal
、-hitwhistle
、-hitfinish
和 -hitclap
。
如果要禁用音效,可以先找到不喜欢的音效,然后用其他音效替换。
要修复这个问题,你就要将 HitCircleOverlap
的数值改成默认数字图像的宽度。比如,自定义元素图像的尺寸是 60x70 像素(宽度乘高度),这个值就应该设置成 60。