wiki

自定义皮肤 FAQ

这篇文章主要解决自定义皮肤相关的常见问题。

新手入门

自定义皮肤是什么?

自定义皮肤指的是一种简单的图像改变机制,在设置里选中一款皮肤时,osu! 会使用这种机制,加载皮肤中的图像。组装皮肤很容易,但制作皮肤所需的资源就有点困难了。

有人可以制作那个节目或游戏的皮肤吗?

如果你已经翻遍了整个皮肤制作论坛,并且确信你找不到那一款皮肤,那么恭喜你,osu! 上还没有。考虑到这一点,你可以主动制作梦寐以求的皮肤,并把它制作成别人也想要的皮肤!

尽管如此,还请不要在论坛任何地方求皮肤。 如果你不遵守规定,你的帖子就会被删。

我看到有人用的皮肤,该从哪里获取?

首先,不要在论坛里问这样的问题,否则你的帖子大概率会被删。其次,你最好去找那个人要。那个人可能会给你,但并非总是如此。

可以使用别人皮肤中的自定义元素吗?

是的,你可以使用其他皮肤中的元素,制作出的皮肤叫做“混合版皮肤”。然而,**无论是否得到许可,都不允许在皮肤子论坛中发布混合版皮肤!**但你可以把皮肤链接写在个性签名或 me! 页面上。

因为自定义音效文件通常来说会更困难,所以即使原作者没有明确许可,你也可以使用其他皮肤中的音效文件,同时,去感谢原作者的话就没什么问题。

皮肤文件夹里应该有什么东西?

制作自己的皮肤时,你可以在皮肤文件夹里放其他任何文件或者文件夹。osu! 会直接忽略无关文件,这样你就可以在同一文件夹中保存 .xcf.psd 文件,以便日后编辑需要。

但是,你在发布皮肤时应该删除这类文件,这样可以缩小皮肤文件的大小。因为 osu! 会自动处理缺失的元素,如果你恰巧在使用模板皮肤,请删掉未在皮肤中使用的元素。

尽管文件夹里允许放任何东西,但也要注意,taiko(区分大小写)文件夹是专门为 osu!taiko 皮肤保留的,会覆盖 osu!taiko 中的所有元素(以及游玩 osu!taiko 谱面时的某些界面元素)。

如何在 osu! 中重新加载皮肤?

你要先选中自己的皮肤,然后按下 Ctrl + Alt + Shift + S 快捷键,在 osu! 中重新加载皮肤。

你也可以在退出后重新启动 osu!,或者启动更新工具来重新加载皮肤,但在 osu! 中使用快捷键通常快得多!

皮肤组列表是什么?

主页面:谱面上架标准/皮肤组列表

在 osu! 中有超过 200 个元素支持自定义(每个元素的动画帧除外),但你并不需要自定义所有元素。其实,你可以直接删掉不想自定义的元素,osu! 会自动使用默认的元素图像。

也就是说,(谱面上架标准)定义的皮肤组基本指明,如果想要自定义某一组皮肤组中某个元素,必须将组内其他元素一起自定义。比如,如果你在皮肤中只自定义一半默认数字,其余元素使用默认图像。这样的话,玩家可能不会喜欢。尽管以上的皮肤组标准只严格适用于自定义谱面皮肤,但你在自定义自己的皮肤时,也可以考虑这一点。

改编版皮肤算是混合版皮肤吗?

改编版皮肤算是混合版皮肤,因此不能在任何子论坛里发布。

可以重制别人制作的皮肤吗?

是的,你可以制作与他人相似的皮肤。但你必须自己制作资源,显然也不能直接抄袭原皮肤的资源。

为什么没有类似于谱面数据库的皮肤数据库?

有一些第三方项目正尝试去做,但皮肤数据库已在规划中。要了解更多细节,参见 ppy/osu-web#61 - Skin System

分享

如何分享自己的皮肤?

在分享皮肤前,首先确保你已经删除了不使用的文件,可以是默认图像与声音、多余的文件夹以及非图像文件(skin.ini 文件除外)。在此之后,你需要将皮肤导出为 .osk 文件。这样你可以上传此文件,然后在皮肤子论坛里发帖。

  1. 打开 osu!
  2. 打开设置侧栏。
  3. 加载你的皮肤。
  4. 点击 导出 .osk
  5. 在此之后,osu! 会打开新窗口,显示导出的皮肤文件。
  6. .osk 文件重命名为你的皮肤名,然后上传。
  7. 现在就可以分享了!

可以在皮肤子论坛里发布混合版皮肤吗?

不行,不允许在任何子论坛里发布混合版皮肤。改编版皮肤也是如此。

可以在哪里发布混合版皮肤?

你可以在玩家主页、个性签名、/r/osuskins reddit 子区,或者 osu! 论坛外的其他地方发布。

可以发布重制版皮肤吗?

是的,如果你的重制版皮肤没有抄袭其他皮肤或是使用其他皮肤的资源文件,就不算是混合版皮肤,可以发布。否则,这个皮肤会被算作重制版皮肤,不能发布。

可以在皮肤子论坛里发布 R15 皮肤吗?

可以,但是如果你要发布的话,必须在论坛帖上添加警告。 R15 皮肤可能包括但不限于以下内容:

  • 暗示性或暴露性的内衣
  • 人物穿着泳装和/或比基尼
  • 人物穿着暴露轻薄的衣物

如果要添加提醒,在帖子标题前加上 [R15]、正文前面写上提示即可。

可以在皮肤子论坛里发布 R18 皮肤吗?

不行,禁止在 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.ini 是什么?

主页面:skin.ini

v1.0 和 v2.0+ 是什么?

Skin v1.0 是早期皮肤样式,从启动游戏的皮肤支持开始,到 2013 年 3 月一直在使用。在此之后,skin v2.0 发布,带来了一批全新的皮肤元素,也进行了一些改动。若要浏览皮肤更新日志,请见skin.ini 文章的版本小节

版本的选择也许看起来不太重要,但要明白,旧版皮肤的某些功能可能在最新版本皮肤中不可用,反之亦然。

音频

声音格式层次结构

osu! 所使用的声音格式层次结构如下:

  1. .wav
  2. .mp3
  3. .ogg

osu! 基本会优先使用 .wav 文件,因为与 .mp3.ogg 文件相比,.wav 文件更适合用于循环播放短时长的声音。

图像

应该使用什么格式的图像?

大多数情况下,图像必须使用 .png 格式,但 menu-background.jpg 元素必须使用 .jpg 格式。

除了要使用 .png 格式外,你还应该:

  • 尽可能优化或裁剪图像。osu! 客户端会渲染图像的每个像素,较大的图像,工作负载也会很大!
    • 但请注意,图像的一定区域需要使用透明像素,来与特定元素正确对齐。
  • 尽可能压缩图像。压缩过程通常会除去透明像素相关的不必要信息,明显减小文件大小。

什么是覆盖层?

覆盖层指的是置于其他元素(元素名相同,但没有 overlay-overlay 后缀)上层的元素。一点特别之处在于,覆盖层不会着色。但只有少数元素有覆盖层(可在皮肤元素列表中找到)。

应该基于哪种分辨率制作皮肤?

由于可以使用不同的窗口分辨率游玩 osu!,某些皮肤元素与理想情况相比可能会重叠,也可能距离变大。这意味着并非所有元素都会拉伸、缩放以契合游戏窗口的分辨率。

在制作皮肤时,最好留意以下分辨率。

  • 1024x768(4:3,标准游戏分辨率,游戏基于此分辨率设计)
  • 2048x1536(4:3,HD 缩放下的标准游戏分辨率)
  • 1366x768(16:9,标准宽屏游戏分辨率)
  • 2732x1536(16:9,HD 缩放下的标准宽屏游戏分辨率)
  • 1920x1080(16:9,标准 HD 分辨率)

如果分辨率与上文列出的都不符,游戏则会调整图像,以契合分辨率。大多数元素会为了契合游玩区域而重新缩放,也会以不同的宽高比重新调整位置。

高清图像

当存在时,高清图像用来在较高分辨率下取代常规图像。与常规图像相比,高清图像在较高分辨率下看起来更锐利清晰。游戏会根据所用分辨率自动缩放这些图像。支持 高清图像的分辨率,其高度至少为 800 像素。高清图像的文件名带有 @2x 后缀标记。比如:cursor@2x.png

高清图像在尺寸上是加倍的。比如:常规的 hitcircle.png 精灵图尺寸为 128x128 像素。因此其高清精灵图 hitcircle@2x.png 的尺寸将是 256x256 像素。

每个精灵图都可以有高清副本,甚至所有动画帧都是如此。由于图像数量比常规情况下更多,文件夹或压缩文件的大小会因此增加。

事实上,与常规精灵图相比,高清图像的画布面积要大 4 倍,因此,其文件可能也会比较大。osu! 使用的基本分辨率模式共有两种,每种模式各偏好使用一种图像,它们分别是 LowResolutionHighResolution

  • LowResolution 模式使用常规图像,忽略高清图像(也被称作标准皮肤)。
  • HighResolution 模式优先使用高清图像。如果高清图像不可用,则使用常规图像作为备选项(也被称作高清皮肤)。

结算屏幕打击结果层次结构

与动画元素相比,结算屏幕优先使用静态皮肤元素。也就是说,如果一个元素同时存在动画与静态两个版本,则层次结构如下:

  1. 静态图像。
  2. 动画的第零帧。
  3. 默认图像。

然而,osu!mania 的结算屏幕是例外。也就是说,如果一个元素同时存在动画与静态两个版本,则层次结构如下:

  1. 皮肤根目录中动画的第零帧。
  2. 皮肤根目录中的静态图像。
  3. 默认图像。

注:在 osu!mania 中,osu! 会忽略 skin.ini 文件中指定的路径,只会使用根目录(加载皮肤元素的文件夹)中的图像。

动画

如何给元素添加动画?

首先查阅元素列表,看看目标元素能不能使用动画。如果可以的话,你就可以开始制作动画了。为此,你需要让动画的每一帧各对应一个静态图像。在此之后,将每一帧的名称改为元素名,后加连字符(-),然后带上序号(从 0 开始)。其余帧方法同上。

比如,如果你想给 scorebar-colour.png 添加动画,就要将第一帧命名为 scorebar-colour-0.png,第二帧是 scorebar-colour-1.png,然后第三帧是 scorebar-colour-2.png,以此类推。

注:并非所有元素的名称与帧叙述间都有连字符(-)。对于动画名称,请查阅元素列表。

各个元素动画的帧率不一致。一些元素用的是 skin.ini 文件中定义的数值,有些用的是客户端定义的值,而其余的基于谱面的 BPM(每分钟拍数)。因此,给皮肤元素添加动画是个反复试错的过程(对于解决此问题的方法,参见下一节)。

动画速度太快/太慢了,该如何修复?

当你的动画速度太快或太慢时,有两种方式可以修复:

  1. 如果动画速度太快,可以将总帧数加倍(如果速度太慢,可以将其减半)
    • 比如,使第零帧与第一帧显示相同图像(这样此图像会持续显示 2 帧),第二帧与第三帧显示第二张图像,以此类推。
    • 这种方法会让动画稍微变慢(或变快);但动画的播放速度仍然一致,也就意味着即使你调整了一个动画的速度,可能有别的动画速度仍然偏快(偏慢)。
  2. 使用 skin.ini 中的 AnimationFramerate 参数。
    • 这个参数影响所有动画,但某些动画除外(比如 pippidonhitcircleoverlay)。

自定义皮肤

如何让光标拖出长轨迹?

你的皮肤里需要有 cursormiddle.png 元素。如果你不想添加它的话,也可以使用透明图像。

我删除了一个元素,但它仍然出现!我该如何去掉它?

如果你想要去除某个元素,要先用透明图像替代它,然后重新加载你的皮肤

如何去掉点击物件后出现的闪光?

有两种方法:

  • 设置 中禁用打击闪光
  • 在皮肤中使用名为 lighting.png 的透明图像。
我想去掉点击后出现的粒子!

要去掉例子,只需删除 particle50.pngparticle100.pngparticle300.png 这三个文件即可,不需要使用透明图像。

如何去掉滑条尾的圆圈?

在皮肤中添加名为 sliderendcircle.png 的透明图像。

如何隐藏 300 分的打击结果?

添加透明图像,文件名如下:

  • hit300-0.png
  • hit300g-0.png
  • hit300k-0.png

如何给主菜单设置背景?

你必须拥有 osu! 支持者标签,才能在主菜单中看到自定义的背景图像。要想快速改变背景,你可以将 .png.jpg 格式的图像文件拖放进 osu!(主菜单)中。这张图像会覆盖所选皮肤文件夹中的背景图像。

@2x 是干什么的?

主文章:高清图像

皮肤里的太鼓位置不对!

打开 skin.ini 文件,将 Version 改成 2.1 及以上。

如何改变连击颜色?

主页面:skin.ini

如何禁用打击音效?

有三类不同的打击音效,使用的前缀分别是:normalsoftdrum。所有音效都有如下后缀之一:-hitnormal-hitwhistle-hitfinish-hitclap

如果要禁用音效,可以先找到不喜欢的音效,然后用其他音效替换。

我用圆点取代了数字,但在连击大于 10 的时候,出现了两个点!

要修复这个问题,你就要将 HitCircleOverlap 的数值改成默认数字图像的宽度。比如,自定义元素图像的尺寸是 60x70 像素(宽度乘高度),这个值就应该设置成 60。