Skip to content

Noteskin Metrics

Alexander Griffin edited this page Apr 10, 2020 · 4 revisions

This is a page that explains all the lines in a noteskin metrics.ini. The metrics.ini is a file that tells the game how the noteskin should act. You can see every command it supports in the common noteskin folder.

Here is an easy list with explanation about what command does what in the metrics.ini. And the values you can give them.

[Global]

Global is the first group we define in the noteskin, Under this group we can define the fallback noteskin. A fallback noteskin is a noteskin this noteskin uses to be based on, So if you got a noteskin thats just a simple modification of an existing skin you can use this to make it use assets from the original.

FallbackNoteSkin

the line FallbackNoteSkin is usally defined as FallbackNoteSkin=common this means it will read the assets from the common noteskin. We do this so we dont duplicate a load of code or assets, And incase we are missing something it will use the common assets instead of erroring the game.

[NoteDisplay]

NoteDisplay tells the game how to animate the noteskin and how to display the noteskin in the game, With this you can set the anumation length, The colour offset, The amount of colours and even how it should display the holds on reverse gameplay.

DrawHoldHeadForTapsOnSameRow

This is a boolean that tells the game to draw the HoldHead sprite for taps when they are on the same row as a hold start, So when you got a hold that starts at beat 0, and a TapNote next to the Hold on beat 0, when this is set to DrawHoldHeadForTapsOnSameRow=1 it will change the TapNote to a HoldHead.

DrawRollHeadForTapsOnSameRow

Same as above, But this one is just for RollHead's.

TapHoldRollOnRowMeansHold

This line is used to define if we want to display HoldHead's instead of RollHead's for TapNote's on the same row.

AnimationIsBeatBased

We use this line to define if we want the animations to be beatbased, If they arnt beat based it will be seconds based.

###AnimatonLength

We use This to define the lenght of animations, If we want an animation to display every beat we just set it to 1, but seeing most people want to have 4 animations in between they usally set it to 4.

Versions:

  • TapNoteAnimationLength
  • TapMineAnimationLength
  • TapLiftAnimationLength
  • TapFakeAnimationLength
  • HoldHeadAnimationLength
  • HoldTopCapAnimationLength
  • HoldBottomCapAnimationLength
  • HoldBodyAnimationLength
  • HoldTailAnimationLength

###AnimationIsVivid

Here we can set using a boolean if the animation if vivid, This means that an animation has a offset based on which subbeat its on, So for example a 8th will have a diffrent offset than a 4th.

Versions:

  • TapNoteAnimationIsVivid
  • TapMineAnimationIsVivid
  • TapLiftAnimationIsVivid
  • TapFakeAnimationIsVivid
  • HoldHeadAnimationIsVivid
  • HoldTopCapAnimationIsVivid
  • HoldBodyAnimationIsVivid
  • HoldBottomCapAnimationIsVivid
  • HoldTailAnimationIsVivid

###NoteColorTextureCoordOffset#

Here we set the x or y offset for the subbeat colours, If we have a file thats 1x8, So thats 1 sprite in width and 8 sprites in height, We can tell the game that from 0 to 1 what the offset is for the colours, So we got 8, So for example we set it to TapNoteNoteColorTextureCoordSpacingY=.125, Which will make it so every sprite is offsetted by .125 which is 1/8 for TapNote.

Versions:

  • TapNoteNoteColorTextureCoordSpacingX
  • TapNoteNoteColorTextureCoordSpacingY
  • TapMineNoteColorTextureCoordSpacingX
  • TapMineNoteColorTextureCoordSpacingY
  • TapLiftNoteColorTextureCoordSpacingX
  • TapLiftNoteColorTextureCoordSpacingY
  • TapFakeNoteColorTextureCoordSpacingX
  • TapFakeNoteColorTextureCoordSpacingY
  • HoldHeadNoteColorTextureCoordSpacingX
  • HoldHeadNoteColorTextureCoordSpacingY
  • HoldTopCapNoteColorTextureCoordSpacingX
  • HoldTopCapNoteColorTextureCoordSpacingY
  • HoldBodyNoteColorTextureCoordSpacingX
  • HoldBodyNoteColorTextureCoordSpacingY
  • HoldBottomCapNoteColorTextureCoordSpacingX
  • HoldBottomCapNoteColorTextureCoordSpacingY
  • HoldTailNoteColorTextureCoordSpacingX
  • HoldTailNoteColorTextureCoordSpacingY

###AdditionTextureCoordOffset#

Same as above but for AdditionalNote's, Like if we got a 2x8 where the second row is additional arrows, We can use this metrics to define it like TapNoteAdditionTextureCoordOffsetX=0.5

Versions

  • TapNoteAdditionTextureCoordOffsetX
  • TapNoteAdditionTextureCoordOffsetY
  • TapMineAdditionTextureCoordOffsetX
  • TapMineAdditionTextureCoordOffsetY
  • TapLiftAdditionTextureCoordOffsetX
  • TapLiftAdditionTextureCoordOffsetY
  • TapFakeAdditionTextureCoordOffsetX
  • TapFakeAdditionTextureCoordOffsetY
  • HoldHeadAdditionTextureCoordOffsetX
  • HoldHeadAdditionTextureCoordOffsetY
  • HoldTopCapAdditionTextureCoordOffsetX
  • HoldTopCapAdditionTextureCoordOffsetY
  • HoldBodyAdditionTextureCoordOffsetX
  • HoldBodyAdditionTextureCoordOffsetY
  • HoldBottomCapAdditionTextureCoordOffsetX
  • HoldBottomCapAdditionTextureCoordOffsetY
  • HoldTailAdditionTextureCoordOffsetX
  • HoldTailAdditionTextureCoordOffsetY

###NoteColorCount

The amount of colours enabled for subbeats, In sm5 its set to 8, If you want it to support 192nd's like sm3.9, Set it to TapNoteNoteColorCount=9

Versions:

  • TapNoteNoteColorCount
  • TapMineNoteColorCount
  • TapLiftNoteColorCount
  • TapFakeNoteColorCount
  • HoldHeadNoteColorCount
  • HoldTopCapNoteColorCount
  • HoldBodyNoteColorCount
  • HoldBottomCapNoteColorCount
  • HoldTailNoteColorCount

###NoteColorType

Here we got 3 options to define how the colours will display, The 3 options are

  • Denominator < Colour by note type.
  • Progress < Colour by progress.
  • ProgressAlternate < Colour by progress, except the frame boundaries are slightly later. So if we just want it the original mode we set it for example TapNoteNoteColorType=Denominator

Versions:

  • TapNoteNoteColorType
  • TapMineNoteColorType
  • TapLiftNoteColorType
  • TapFakeNoteColorType
  • HoldHeadNoteColorType
  • HoldTopCapNoteColorType
  • HoldBodyNoteColorType
  • HoldBottomCapNoteColorType
  • HoldTailNoteColorType

UseStretchHolds

StretchHolds are a feature that will stretch the HoldBody across the lenght of the hold. We do this so we can have nice gradient holds from 1 colour to the other, If it is set to 0, it will use the normal repeating hold image instead of stretching it.

UseShrinkHolds

ShrinkHilds work together with StretchHolds, And make the hold shrink when the Head goes closer to the Tail.

StartDrawingHoldBodyOffsetFromHead

Set the offset of the top of the body, We do this if we got a TopCap thats higher than 32px, If its exactly 32px you'd prob want to set it to 0.

StopDrawingHoldBodyOffsetFromTail

Set the offset of the botton of the body, Its the same as above but for the BottomCap, Most Dance Noteskins have a 64x64px BottomCap, So its set to StopDrawingHoldBodyOffsetFromTail=-32 Which will move the body up by 32px, So its not too long.

HoldLetGoGrayPercent

The percentage at which the hold diffuses, It's from 1 to 0, 1 Being totally dark.

HoldHeadIsAboveWavyParts

Make it so the HoldHead draws above the HoldBody.

HoldTailIsAboveWavyParts

Make it so the HoldTail is above the HoldBody.

FlipHeadAndTailWhenReverse

When this is set to 1, It will put the hold head at the bottom of the Hold (The start of the body) on reverse.

FlipHoldBodyWhenReverse

This will flip the BottomCap,TopCap and Body around when we play on reverse.

TopHoldAnchorWhenReverse

Change the Anchor draw order when reverse.

HoldActiveIsAddLayer

Add an extra layer when Hold is Active.