OSU!皮肤制作教程(三)

您所在的位置:网站首页 osu下载教程 OSU!皮肤制作教程(三)

OSU!皮肤制作教程(三)

2023-08-14 12:03| 来源: 网络整理| 查看: 265

前两章讲的内容和方法对于其它三个模式的皮肤制作其实已经足够了,结合元素信息列表便能制作自己的皮肤了。

但如果只是用之前skin.ini里的三节和文件名替换,只能对mania的面板做外观上的部分改变,不能改变演奏面板的大小、轨道宽度、轨道间距、击打位置等,但这些往往都是十分重要的。

本篇便会对如何制作osu!mania皮肤进行详细介绍,内容比较长,可能会涉及到定位问题,请务必亲自尝试和调试。

(与wiki同步,本教程在v2.5+版本下制作而成)

注意:教程全部内容主要以4K为示范,其它键数可以其为参照制作

演奏面板/舞台

舞台

本来这部分是想留到下期讲的,但因为本篇的较多设置需要用到定位,所以干脆放在这里讲完。

osu!mania模式的skin.ini下,横纵坐标的位置并不是按像素来计算的,而是有自己的单位长度,这个单位长度随游戏屏幕大小的变化而按比例变化。

左上角为坐标原点,向下/右为正方向

游戏区域,高度固定为480单位,宽度的计算方式如下:

分辨率=宽×高

宽度=高度(480)÷高×宽

出现小数的情况自行取近似值

由于宽度受画面比例的影响,所以在制作皮肤时,请确保可以让使用不同分辨率游玩的玩家均可正常使用此皮肤(即位置变化不能过大以至于影响正常游戏),可适当制作@2x图片;或是指定使用该皮肤所需要的分辨率,让玩家自行选择。

这也便可以理解为什么演奏面板总是位于左边了

演奏面板

osu!mania下,皮肤的大部分修改均位于演奏面板上,所以在此单独介绍一下此面板。

首先是关于每个轨道的编号,以4k为例。

4k模式下的轨道编号

从左到右、从零开始的连续自然数。4k下是0~3,xk下为0~(x-1)

其次是在默认情况下的相关数据:

面板左端距游戏左边缘136单位

每条轨道间由白色细线间隔,宽度为2单位

每条轨道宽度均为30单位,间距为0

之后的内容中将介绍如何修改演奏面板上各元素的属性(包括位置、颜色、间距等)

skin.ini配置

首先,要想指定xk的配置,请在skin.ini下输入如下内容(以4k为例):

[Mania]

Keys: 4

如果要指定多个xk,则按如下格式:

[Mania]

Keys:4

[Mania]

Keys: 5

[Mania]

Keys: 6

……

如果你想配置4k时的相关设置,请在Keys: 4所在的节设置指令。

可用指令详解

(事例以4k为例)

判定

HitPosition

设置击打位置,会影响音符的击打高度、判定线的位置、击打闪光位置(非stagelight)等相关元素位置

位置对比,注意蓝色闪光位置要通过其它参数调整(LightPosition)

注意:数值范围0~480,但只有240~480范围有效果,无法将判定位置调至面板的上半部分

//例如

HitPosition: 400

轨道

ColumnStart

设置演奏面板的起始位置,数字所代表的位置为面板左端的横向位置,默认为136

//例如

ColumnStart: 136

ColumnRight

设置演奏面板能到达的最右边的位置(从右到左计算),如果设置了此项:

ColumnStart < ColumnRight:演奏面板的最右端将不会超过ColumnRight所到达的数值,如果ColunmStart+面板宽度 > ColumnRight-ColumnStart,则面板将会按比例缩放,但右端的生命条仍然保持原大小;若ColunmStart+面板宽度  ColumnRight:演奏面板左端位置会等于ColumnRight设置的数值,演奏面板的最右端将不会超过ColumnStart所到达的数值(如果ColunmRight+面板宽度 > ColumnStart-ColumnRight,则面板将会按比例缩放)

如果未设置此项,则该值默认为19

//例如

ColumnRight: 19

ColumnSpacing

数字代表每个轨道之间的间距,默认为0(xk,就按顺序填写x-1个数字,用半角逗号分隔,第n个数字代表轨道n-1与轨道n之间的距离)

//例如

ColumnSpacing: 10,10,10

ColumnWidth

数字代表每个轨道的宽度(有几个轨道就按顺序填几个数字,用半角逗号分隔),默认为30

//例如

ColumnWidth: 65,30,30,65

线

ColumnLineWidth

数值代表分隔线的粗细,xk下一共有x+1条分隔线,分别是两个轨道之间的分隔线和轨道左右两端的分隔线。

有几条分隔线就按顺序写几个数字,第n个数字代表从左到右第n条分隔线的宽度

默认所有数字均为2

//例如

ColumnLineWidth: 3,2,2,2,3

BarlineHeight

数值代表小节线的宽度,设置为0则隐藏小节线,默认为1.2

Note下面的细线就是小节线

//例如

BarlineHeight: 1.2

反馈

ComboPosition

数字代表连击数显示位置(竖直方向),如果有多个面板(如co-op模式),则连击数会同时显示在两个面板上(无法改变)

//例如

ComboPosition: 250

ScorePosition

数字代表准确度评价(彩300、黄300等)显示位置(竖直方向)

//例如

ScorePosition: 325

SeparateScore

数字(1或0)代表开启/关闭此功能,即在有多个面板时(如co-op模式),准确度评价将会在两个面板击中音符时分别显示。

开启该功能关闭该功能(右边击中音符)

//例如

SeparateScore: 1

LightPosition

设置stagelight高度,一般建议与HitPosition相同

此时HitPosition=240,LightPosition=300

//例如

LightPosition: 400

特殊风格

SpecialStyle

数值将决定是否使用特殊键(黄色的轨道)及使用位置,奇数键模式下默认使用且用于中间的键。

这项设置很迷,自己摸索吧,不是所有的轨道都可以被设置为特殊键的。

//例如

SpecialStyle: 2

ComboBurstStyle

数值将决定连击提示图的显示方式:

0:从左边出现

1:从右边出现

2:左右两边随机出现(就像osu!主模式一样)

3及以上:不出现

若不设置则默认一直从右边出现

//例如

ComboBurstStyle: 2

颜色

ColourColumnLine

设置分隔线颜色(R,G,B(a))

//例如

ColourColumnLine: 233,233,233

ColourBarline

设置小节线颜色(R,G,B(a))

//例如

ColourBarline: 233,233,233

更多命令详见元素列表

利用配置文件替换元素

接下来的内容便是osu!mania特有,且非常方便的配置文件指定替换元素

简单来说,假如你想在不同的键数下导入不一样的按键样式,你的文件是这么摆的:

Skins/

+-- My Skin/

|   +-- mania/

|   |   +-- keyC.png

|   |   +-- keyCD.png

|   |   +-- keyD.png

|   |   +-- keyDD.png

|   |   +-- keyL.png

|   |   +-- keyLD.png

|   |   +-- keyU.png

|   |   +-- keyUD.png

|   |   +-- keyR.png

|   |   +-- keyRD.png

|   +-- skin.ini

你想在4k时使用CCDL的样式,5k时使用CDLUR的样式,则你应该在skin.ini下这么写:

[Mania]

Keys: 4

KeyImage0: mania/keyC

KeyImage0D: mania/keyCD

KeyImage1: mania/keyC

KeyImage1D: mania/keyCD

KeyImage2: mania/keyD

KeyImage2D: mania/keyDD

KeyImage3: mania/keyL

KeyImage3D: mania/keyLD

 

[Mania]

Keys: 5

KeyImage0: mania/keyC

KeyImage0D: mania/keyCD

KeyImage1: mania/keyD

KeyImage1D: mania/keyDD

KeyImage2: mania/keyL

KeyImage2D: mania/keyLD

KeyImage3: mania/keyU

KeyImage3D: mania/keyUD

KeyImage4: mania/keyR

KeyImage4D: mania/keyRD

要理解上例并不难,我们把这句话拆成几部分理解:

元素图片: 相对路径

元素图片:即告诉游戏你现在要用文件替换哪个元素

相对路径:你要用哪个文件替换该元素

元素图片的一般格式:

按键:

KeyImage+轨道编号(见前文第二张图)(空闲状态)

KeyImage+轨道编号+D(按下状态)

音符:

NoteImage+轨道编号(单键)

NoteImage+轨道编号+H(面条的开头)

NoteImage+轨道编号+L(面条的身体)

NoteImage+轨道编号+T(面条的结尾)

准确度评价:

Hit0(miss)

Hit50(50)

Hit100(100)

Hit200(200)

Hit300(黄300)

Hit300g(彩300)

其它:

StageBottom(舞台底部遮挡)

StageHint(判定线)

StageLeft(面板左边)

StageLight(轨道被按下时的亮光)

StageRight(面板右边)

WarningArrow(曲子开头掉下的箭头)

相对路径格式要求:

以皮肤文件夹最外层为起始开始写路径,文件名写前缀,不保留动画数字和扩展名,比如:C://osu!/Skins(osu!皮肤文件夹)/My Skin(你做的皮肤)/mania/5k.png 应写成 mania/5k

如果是动画,按照动画要求写了三个文件(5k-0~2.png),则直接在相对路径里写5k

举例,5k模式下:

你的皮肤文件:

Skins/

+-- My Skin/

|   +-- mania/

|   |   +-- hold/

|   |   |   +-- left/

|   |   |   |   +-- long-0.png

|   |   |   |   +-- long-1.png

|   |   |   |   +-- note-0.png

|   |   |   |   +-- note-1.png

|   |   |   |   +-- note-2.png

|   |   |   |   +-- note-3.png

|   |   |   +-- down/

|   |   |   |   +-- head-0.png

|   |   |   |   +-- head-1.png

|   |   |   |   +-- head-2.png

|   |   |   |   +-- head-3.png

|   |   |   |   +-- long-0.png

|   |   |   |   +-- long-1.png

|   |   |   |   +-- tail-0.png

|   |   |   |   +-- tail-1.png

|   |   |   |   +-- tail-2.png

|   |   |   |   +-- tail-3.png

|   |   |   +-- middle/

|   |   |   |   +-- long-0.png

|   |   |   |   +-- long-1.png

|   |   |   |   +-- note-0.png

|   |   |   |   +-- note-1.png

|   |   |   |   +-- note-2.png

|   |   |   |   +-- note-3.png

|   |   |   +-- up/

|   |   |   |   +-- head-0.png

|   |   |   |   +-- head-1.png

|   |   |   |   +-- head-2.png

|   |   |   |   +-- head-3.png

|   |   |   |   +-- long-0.png

|   |   |   |   +-- long-1.png

|   |   |   |   +-- tail-0.png

|   |   |   |   +-- tail-1.png

|   |   |   |   +-- tail-2.png

|   |   |   |   +-- tail-3.png

|   |   |   +-- right/

|   |   |   |   +-- long-0.png

|   |   |   |   +-- long-1.png

|   |   |   |   +-- note-0.png

|   |   |   |   +-- note-1.png

|   |   |   |   +-- note-2.png

|   |   |   |   +-- note-3.png

|   +-- skin.ini

由上可知每一个元素都使用了动画,则应该这样写:

[Mania]

Keys: 5

NoteImage0H: mania/hold/left/note

NoteImage0L: mania/hold/left/long

NoteImage0T: mania/hold/left/note

NoteImage1H: mania/hold/down/head

NoteImage1L: mania/hold/down/long

NoteImage1T: mania/hold/down/tail

NoteImage2H: mania/hold/middle/note

NoteImage2L: mania/hold/middle/long

NoteImage2T: mania/hold/middle/note

NoteImage3H: mania/hold/up/head

NoteImage3L: mania/hold/up/long

NoteImage3T: mania/hold/up/tail

NoteImage4H: mania/hold/right/note

NoteImage4L: mania/hold/right/long

NoteImage4T: mania/hold/right/note

看起来很啰嗦,其实实际上操作起来并不难,可以自己实践一下,这个方法对mania模式皮肤制作很有帮助。

由于把下一篇的内容放在一起讲完了,所以本文看起来会非常长,但也请耐心看完(否则我岂不是白写这么多(>﹏<))。

下期内容还没想好,中间会更新附录和ex(补充说明),尤其是附录,对皮肤的制作起到了字典的作用,请认真阅读。

现在元素列表已经翻译完了两个网页,还有四个QAQ。。。

加油吧!

——Wshine

2019.7.17

感谢@菲卡提诺Official(假装@)对本文的补充和改错~

寒假抽一天出来更新颜色参数

元旦快乐~

——Wshine

2020.1.1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3