Logo

Prevent noteskin rotation, and change freeze body offsets

Register Log In Back To Forums

Post #1 · Posted at 2015-05-26 10:21:27pm 8.9 years ago

Offline MadkaT
MadkaT Avatar Member
820 Posts
Not Set
Reg. 2009-11-24


Last updated: 2015-05-26 10:24pm
Hello friends, I'm making the DDR official noteskins, and I have two little problems. Sorry for my ignorance.

The first thing I need to do is to prevent the Right arrow generation by rotating the down arrow one, this cause the original Angelfish noteskin, in the right position only has an horizontal mirror applied, and not a 270 degrees rotation, left is SM, right is DDR dump positions:

http://i.imgur.com/L8lzlvt.jpg

The second item that I want to know. Is there a way to change the inital offset of the body form a shock arrow? Some noteskins have not aligned the body of the freese arrow to the center of the tile, and they look strange, an example of this is the pixel, arrow, on the right side, I've colores in blue, the start of the body, it need to be lower:

http://i.imgur.com/PX0bgRP.jpg

That is mainly the troubles that I have, if someone could help me, it would be highly appreciated. Big Grin Thanks for reading!

Post #2 · Posted at 2015-05-27 02:21:58pm 8.9 years ago

Offline Mad Matt
Mad Matt Avatar Member
65 Posts
United States
Reg. 2011-10-26

Quote: MadkaT
Is there a way to change the inital offset of the body form a hold arrow?
There is a NoteSkin metric to control that called "StartDrawingHoldBodyOffsetFromHead". You can put NoteSkin metrics under the tag [NoteDisplay] to apply to all columns, or under the tag [ButtonName] (e.g. [Left] ) to apply to a single column.

Quote: MadkaT
The first thing I need to do is to prevent the Right arrow generation by rotating the down arrow one, this cause the original Angelfish noteskin, in the right position only has an horizontal mirror applied, and not a 270 degrees rotation
This is a little more complicated, because it could be coming from several different locations and there are more potential ways to handle it.

Assuming you copied another noteskin as a base, it comes from the NoteSkin.lua through the NoteSkin's fallback. If you look in the NoteSkin.lua it probably begins with something like "local ret = ... or {}". This means that it starts with the table returned by it's fallback skin's NoteSkin.lua. So to know what the table fully contains, you'll have to trace back until you reach the "common" NoteSkin ( /NoteSkins/Common/common ).

If you look at the Load function from the table returned by the common NoteSkin, you'll notice that right before returning the actor definition it says "t.BaseRotationZ = ret.Rotate[sButton]". The first thing to do is to change the z rotation. If your NoteSkin.lua delcares a "Rotate" table, you'll have to change it's rotation value for the right arrow from ( either 270 or -90 ) to 90. Otherwise, it's being set in one of the fallbacks for your NoteSkin, so you can probably simply declare ret.Rotate.Right = 90 to override that part of the table.

The next thing you have to do is to make all right arrows mirror horizontally. There are 2 ways to do this: either BaseRotationY = 180, or BaseZoomX = -1; You can alter the results of the load function doing something like this:

local load = ret.Load;

function ret.Load()
local t = load();
if Var "Button" == "Right" then
t.BaseRotationY = -1
end
return t;
end


You can add more conditionals as needed to control which elements are affected.

Post #3 · Posted at 2015-05-27 10:24:02pm 8.9 years ago

Offline MadkaT
MadkaT Avatar Member
820 Posts
Not Set
Reg. 2009-11-24

Thanks, the freeze offset is working so nice, I'll test the arrow rotation those week.
Register Log In Back To Forums

0 User(s) Viewing This Thread (Past 15 Minutes)

©2006-2024 Zenius -I- vanisher.com -5th style- IIPrivacy Policy
Web Server: 2% · Database: 4% · Server Time: 2024-04-23 10:35:46
This page took 0.004 seconds to execute.
Theme: starlight · Language: englishuk
Reset Theme & Language