Official Ask Anyone Frame Things Thread

Magus420

Smash Master
Joined
Dec 13, 2003
Messages
4,541
Location
Close to Trenton, NJ Posts: 4,071
Shield Stuff

____________________________________________________________

Variable Shield Input
Digital/Max Analog = 1 (140/140)
Z Shield = 0.35 (49/140)
Min Analog = 0.30714 (43/140)
-- Range of analog 0.00-1.00 is analog increments 0-140. 0-42 (0.00-0.30) are ignored
-- If dip under 0.30 while shield remains up, use last > 0.30 amount


____________________________________________________________

Shield Size
Shield Size = {[(Shield Health * Analog Effect) / 60] * 0.85 + 0.15} * Shield Size Attribute * Model Scale
-- Analog Effect = 1 - {0.5 * [(Analog Shield - 0.3) / 0.7]}

Max Shield Health = 60
Shield Break Health = 30 (does not regen while dazed)
Max Shield Health Scale = 1
Min Shield Health Scale = 0.15
Powershield Reflect Collision Scale = 0.75

-- Mario Shield Size: 10.75
-- Mario Model Scale: 1.1

Full Health (60)
Code:
Analog  Size	Actual
------------------------
0.30	10.75	11.825
0.30714	10.7034	11.7737
0.35	10.4237	11.466
0.50	9.44464	10.3891
0.65	8.46563	9.31219
1.00	6.18125	6.79938

30 Health
Code:
Analog  Size
-----------------
0.30	6.18125
0.30714	6.15795
0.35	6.01808
0.50	5.52857
0.65	5.03906
1.00	3.89688

15 Health
Code:
Analog  Size
-----------------
0.30	3.89688
0.30714	3.88523
0.35	3.81529
0.50	3.57054
0.65	3.32578
1.00	2.75469

0 Health
Code:
Analog  Size
-----------------
0.30	1.6125
0.30714	1.6125
0.35	1.6125
0.50	1.6125
0.65	1.6125
1.00	1.6125

____________________________________________________________

Shield Degeneration/Regeneration
Shield Degeneration = (Analog Effect + 0.1) * 0.14
-- Analog Effect = 1.9 * [(Analog Shield - 0.3) / 0.7]

Shield Regeneration = 0.07

Code:
Analog  Degen
-----------------
0.30714	0.01672
0.35	0.03300
0.50	0.09000
0.65	0.14700
1.00	0.28000

____________________________________________________________

Shield Damage
Shield Damage = [(floor(Damage) + Shield Damage Param) * (Analog Effect + 0.7)] * X
-- Analog Effect = 0.2 * {1 - [(Analog Shield - 0.3) / 0.7]}
-- X = 1 for Normal, 0 for Powershield


Min Shield (0.307143)
Code:
Damage  S.Damage
-----------------
01	0.898
02	1.7959
03	2.6939
04	3.5918
...
50	44.898
Shield Damage = (Damage + Shield Damage Param) * 0.89796


Z Shield (0.35)
Code:
Damage  S.Damage
-----------------
01	0.8857
02	1.7714
03	2.6571
04	3.5429
...
50	44.2857
Shield Damage = (Damage + Shield Damage Param) * 0.885714


Half Shield (0.65)
Code:
Damage  S.Damage
-----------------
01	0.8
02	1.6
03	2.4
04	3.2
...
50	40.0
Shield Damage = (Damage + Shield Damage Param) * 0.8


Hard Shield (1.0)
Code:
Damage  S.Damage
-----------------
01	0.7
02	1.4
03	2.1
04	2.8
...
50	35.0
Shield Damage = (Damage + Shield Damage Param) * 0.7

____________________________________________________________

Shield Stun
Shield Stun = {[floor(Damage) * (Analog Effect + 0.3)] * 1.5} + 2
-- Analog Effect = 0.65 * {1 - [(Analog Shield - 0.3) / 0.7]}
--- Yoshi is unaffected by shield stun
--- NOTE: Due to the way the game calculates the animation speed for the 20 frame stun animation [(Animation Frames + 0.1) / ShieldStun], it causes the actual resulting stun time to be 1 less than calculated shieldstun if:
20.1 / ShieldStun * floor{ShieldStun} >= 20
On full 1.00 shield input that happens with damages of 20,29,40, 49, 58, and 60 for example.


Code:
80092DA0:  C084028C	lfs	f4,652(r4)	# f4=1.5
80092DA4:  EC421828	fsubs	f2,f2,f3	# f2=Damage (floored). last step of an int->float cast
80092DA8:  C0040290	lfs	f0,656(r4)	# f0=2
80092DAC:  807D0028	lwz	r3,40(r29)
80092DB0:  EC220072	fmuls	f1,f2,f1	# f1=0.3 on hard shield
80092DB4:  EFE4007A	fmadds	f31,f4,f1,f0
Code:
Analog  f1 (Analog effect + 0.3)
-----------------
0.30714 0.943367
0.35    0.903571
0.50    0.764285
0.65    0.625
1.00    0.300

____________________________________________________________

Shield Knockback
Defender Shield KB = {[floor(Damage) * (Defender Analog Effect + 0.09)] + 0.4} * X
-- Defender Analog Effect = 0.195 * {1 - [(Analog Shield - 0.3) / 0.7]}
-- X = 0.6 for Normal, 1 for Powershield
--- Maximum = 2


Defender (Yoshi) Shield KB = (floor(Damage) * Defender Analog Effect) + 0.4
-- Defender Analog Effect = 0.3 * {1 - [(Analog Shield - 0.3) / 0.7]}
--- Maximum = n/a


Attacker Shield KB = (floor(Damage) * Attacker Analog Effect) + 0.02
-- Attacker Analog Effect = (Analog Shield - 0.3) * 0.1]
--- Maximum = n/a


Min Shield (0.307143)
Code:
Damage  Defendr Attackr
-------------------------
01      0.40981 0.0207143
02      0.57961 0.0214286
03      0.74942 0.0221429
Defender Shield KB = (Damage * 0.169806) + 0.24
Attacker Shield KB = (Damage * 0.0007143) + 0.02

Z Shield (0.35)
Code:
Damage  Defendr Attackr
-------------------------
01      0.40264 0.025
02      0.56529 0.030
03      0.72793 0.035
04      0.89057 0.040
05      1.05321 0.045
Defender Shield KB = (Damage * 0.162644) + 0.24
Attacker Shield KB = (Damage * 0.005) + 0.02

Lightish Shield (0.50)
Code:
Damage  Defendr Attackr
-------------------------
01      0.37757 0.04
02      0.51514 0.06
03      0.65271 0.08
Defender Shield KB = (Damage * 0.137571) + 0.24
Attacker Shield KB = (Damage * 0.02) + 0.02

Half Shield (0.65)
Code:
Damage  Defendr Attackr
-------------------------
01      0.3525  0.055
02      0.4650  0.09
03      0.5775  0.125
Defender Shield KB = (Damage * 0.1125) + 0.24
Attacker Shield KB = (Damage * 0.035) + 0.02

Hard Shield (1.0)
Code:
Damage  Defendr Attackr
-------------------------
01      0.294   0.090
02      0.348   0.160
03      0.402   0.230
04      0.456   0.300
05      0.510   0.370
06      0.564   0.440
07      0.618   0.510
08      0.672   0.580
09      0.726   0.650
10      0.780   0.720
11      0.834   0.790
12      0.888   0.860
13      0.942   0.930
14      0.996   1.000
15      1.050   1.070
16      1.104   1.140
17      1.158   1.210
18      1.212   1.280
19      1.266   1.350
20      1.320   1.420
21      1.374   1.490
22      1.428   1.560
23      1.482   1.630
24      1.536   1.700
...
50      2.000   3.520
Defender Shield KB = (Damage * 0.054) + 0.24
Attacker Shield KB = (Damage * 0.07) + 0.02

Power Shield (1.0)
Code:
Damage  Defendr Attackr
-------------------------
01      0.490   0.090
02      0.580   0.160
03      0.670   0.230
04      0.760   0.300
05      0.850   0.370
06      0.940   0.440
07      1.030   0.510
08      1.120   0.580
09      1.210   0.650
10      1.300   0.720
11      1.390   0.790
12      1.480   0.860
13      1.570   0.930
14      1.660   1.000
15      1.750   1.070
16      1.840   1.140
17      1.930   1.210
18      2.000   1.280
19      2.000   1.350
20      2.000   1.420
21      2.000   1.490
22      2.000   1.560
23      2.000   1.630
24      2.000   1.700
...
50      2.000   3.520
Defender Shield KB = (Damage * 0.09) + 0.4
Attacker Shield KB = (Damage * 0.07) + 0.02

Yoshi (0.307143)
Code:
Damage  Defendr Attackr
-------------------------
01      0.69694 0.0207143
02      0.99388 0.0214286
03      1.29082 0.0221429
...
50      15.2469 0.0557142
Defender (Yoshi) Shield KB = (Damage * 0.296939) + 0.4
Attacker Shield KB = (Damage * 0.0007143) + 0.02

Yoshi (1.0)
Code:
Damage  Defendr Attackr
-------------------------
01      0.400   0.090
02      0.400   0.160
03      0.400   0.230
...
50      0.400   3.520
Defender (Yoshi) Shield KB = (Damage * 0) + 0.4
Attacker Shield KB = (Damage * 0.07) + 0.02

____________________________________________________________
 
Last edited:

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158
I was just using the numbers you gave me. Truthfully, 2 frames of shieldhitlag and 5 frames of stun is impossible in the game. Shieldhitlag is calculated the same as regular hitlag as floor[dmg/3+3]. It has a minimum of 3. Shieldstun is calculated by the formula you mentioned, floor((dmg + 4.45)/2.235).


I think you're interpreting it correctly. Let's use a real example though. Marth's uair does 7 frames of shieldhitlag and 7 frames of shieldhitstun. Marth hits Peach's shield with uair. They are both frozen for 7 frames of shieldhitlag. Peach can shield SDI if she wants. After those 7 frames, Marth starts moving as he exits shieldhitlag. Peach enters shieldhitstun and cannot do anything for 7 frames.
I think it all makes sense now, but I'm confused as to why in this link http://smashboards.com/threads/captain-falcon-shield-pressure-data-wip.308010/ if you look in the "low short hop knee" category, it displays

24 / 24 Knee hits
25 / hitlag
26 / hitlag
27 / hitlag
28 / hitlag
29 / hitlag
30 / hitlag
31 / hitlag
32 / hitlag
33 / landlag
34 / landlag
35 / landlag
36 / landlag
37 / landlag
38 / landlag
39 / landlag
40 / landlag
41 / landlag
42 / 25
43 / Stun ends

for kneeing on a shield. Knee does 18 damage. The fact that it's electrical has no influence on shield hitlag/shieldstun. (18/3 + 3) = 9 damage of hitlag (from frame 24 to 32). After hitlag, just like in your example, the defender will experience shieldstun. So far everything makes sense.

Shieldstun = floor ((18+4.45)/2.35 ) = 9 frames of shieldstun. In the link I quoted, frames 33 to 43 are shieldstun which is 11 frames. 9 doesn't equal 11 though, so am I missing something?
 

Sycorax

Smash Ace
Joined
Jul 7, 2014
Messages
501
Location
Atlanta, GA
Shieldstun = floor ((18+4.45)/2.35 ) = 9 frames of shieldstun.
Your forumula is wrong, it should be floor ((18+4.45)/2.235) which = 10. That's still not equal to 11. I checked in debug mode and they got their frames wrong. Falcon's fair does 10 frames of shieldstun. I think they just accidentally colored "43 / Stun ends" wrong.

Technically, Shield Stun = {[floor(Damage) * (Analog Effect + 0.3)] * 1.5} + 2 where Analog Effect = 0.65 * {1 - [(Analog Shield - 0.3) / 0.7]}
 
Last edited:

Roukiske

Smash Journeyman
Joined
Oct 13, 2014
Messages
377
Location
CA
Anyone know if any of Fox's dair variations (fullhop/shorthop/fastfall or not) can be shield grabbed (whoever has the fastest) if used up close, L-cancelled, and shined right after? I don't care about post shine, just shield grabbed in between the dair and shine.
 

Vestboy_Myst

NJ TO & Peach knitwit
Moderator
Rankings Team
Joined
Jan 10, 2014
Messages
607
Location
NJ
here's an interesting optimization problem:

lets say peach is under the inner corner of one of YS/DL/PS/BF's side plats, and fox is standing on the platform at the outside corner (rolled to that edge). Between the following options, which is the fastest way to cover the vertical (jump up to platform + land) and horizontal (travelling the length of the plat) distance? Lets assume that shes going for a regrab techchase and therefore only needs to get within her grab box range

1) jump straight up onto the inner corner > horizontal waveland toward fox
2) diagonal jump past the midpoint of plat > DJL next to fox

DJL is obviously superior to waveland when its done in-place, but adding in the horizontal vector makes it a bit trickier. i'd imagine its stage dependent, and my gut reaction is that higher platforms (DL/BF) would favor Opt 1 since it is less distance traveled in her slow jump, but I'm not sure if her waveland speed makes up for it. Perhaps Opt 2 is a straight up improvement on some of the stages?

If anyone needs me to clarify or draw a diagram I can

some data on DJL (vertical jump) http://smashboards.com/threads/dj-land-onto-platform-stage-specifics.385827/

edit:
realized there were a few other questions i am unsure about that pertain to this
-are diagonal DJLs easier / harder or the same as vertical jumps (in terms of input window)?
-are diagonal DJLs possible on ALL platform heights?
-is just running to the outer corner then doing a vertical jump to DJL (Opt 3) faster than both for all platform heights?
-ive been assuming all diagonal jumps were still her standard 'neutral jump' for the whole post, but at an angle. What about her other jump animations (like her 'backflip' if she was falcon) ? do they make the DJL input any harder/easier? could they make it possible to DJL sooner than neutral jump?

paging some of the frame jockeys @Vesne @DarkRijin Sycorax Sycorax schmooblidon schmooblidon
 
Last edited:

Sycorax

Smash Ace
Joined
Jul 7, 2014
Messages
501
Location
Atlanta, GA
Anyone know if any of Fox's dair variations (fullhop/shorthop/fastfall or not) can be shield grabbed (whoever has the fastest) if used up close, L-cancelled, and shined right after? I don't care about post shine, just shield grabbed in between the dair and shine.
It really doesn't matter how Fox jumps before he dairs. What matters is how soon he started the dair before he landed. I can describe the details more if you want, but the gist is that, since it is a multi-hit move making it hard to land on the frame after it hits shield, there is a 2/3 chance the the dair will be able to be shield grabbed. Your opponent isn't going to be able to know if a grab is possible or not, so it's a crap shoot if they try to go for it.

Edit: 2/3

here's an interesting optimization problem:

lets say peach is under the inner corner of one of YS/DL/PS/BF's side plats, and fox is standing on the platform at the outside corner (rolled to that edge). Between the following options, which is the fastest way to cover the vertical (jump up to platform + land) and horizontal (travelling the length of the plat) distance? Lets assume that shes going for a regrab techchase and therefore only needs to get within her grab box range

1) jump straight up onto the inner corner > horizontal waveland toward fox
2) diagonal jump past the midpoint of plat > DJL next to fox

DJL is obviously superior to waveland when its done in-place, but adding in the horizontal vector makes it a bit trickier. i'd imagine its stage dependent, and my gut reaction is that higher platforms (DL/BF) would favor Opt 1 since it is less distance traveled in her slow jump, but I'm not sure if her waveland speed makes up for it. Perhaps Opt 2 is a straight up improvement on some of the stages?

If anyone needs me to clarify or draw a diagram I can

some data on DJL (vertical jump) http://smashboards.com/threads/dj-land-onto-platform-stage-specifics.385827/

edit:
realized there were a few other questions i am unsure about that pertain to this
-are diagonal DJLs easier / harder or the same as vertical jumps (in terms of input window)?
-are diagonal DJLs possible on ALL platform heights?
-is just running to the outer corner then doing a vertical jump to DJL (Opt 3) faster than both for all platform heights?
-ive been assuming all diagonal jumps were still her standard 'neutral jump' for the whole post, but at an angle. What about her other jump animations (like her 'backflip' if she was falcon) ? do they make the DJL input any harder/easier? could they make it possible to DJL sooner than neutral jump?

paging some of the frame jockeys @Vesne @DarkRijin Sycorax Sycorax schmooblidon schmooblidon
You misunderstand Melee physics. It is not the case that jumping at an angle lowers your vertical velocity in order to contribute to horizontal velocity (like it would in the real world). Instead, when you jump, there is an initial vertical velocity, and an initial horizontal velocity. The vertical velocity is always there as essential to the jump lol. The horizontal velocity comes from residual momentum from the grounded state plus the analog jump effect. Therefore, it takes the same amount of time to reach a platform regardless of whether you jump completely vertically or not. Because of this, the waveland method is always slower. The ten frames of lag are simply not made up for by the increased speed of a waveland. Under any platform, Peach can get to a certain desirable spot the quickest by dashing, then jumping, then using analog control to aim where she wants to go. I'm not even sure the dashing is necessary.

-are diagonal DJLs easier / harder or the same as vertical jumps (in terms of input window)?
The same.

-are diagonal DJLs possible on ALL platform heights?
Of the legal stages, yes. Like I said above, vertical height is not diminished by horizontal momentum.

-is just running to the outer corner then doing a vertical jump to DJL (Opt 3) faster than both for all platform heights?
I don't understand the situation you're describing.

-ive been assuming all diagonal jumps were still her standard 'neutral jump' for the whole post, but at an angle. What about her other jump animations (like her 'backflip' if she was falcon) ? do they make the DJL input any harder/easier? could they make it possible to DJL sooner than neutral jump?
The difference in the bottom of the ECB is minuscule. On Battlefield it doesn't make a difference. I doubt any other stage does. There may be tiny sections on Yoshi's where you get an extra frame, but it'd be TAS level precision.

Edit: "Frame Jockey" :088: :3 Lol, can you change my status from "Smash Apprentice" to "Frame Jockey"? Does mod power allow you to do that?
 
Last edited:

Vestboy_Myst

NJ TO & Peach knitwit
Moderator
Rankings Team
Joined
Jan 10, 2014
Messages
607
Location
NJ
It really doesn't matter how Fox jumps before he dairs. What matters is how soon he started the dair before he landed. I can describe the details more if you want, but the gist is that, since it is a multi-hit move making it hard to land on the frame after it hits shield, there is a 1/3 chance the the dair will be able to be shield grabbed. Your opponent isn't going to be able to know if a grab is possible or not, so it's a crap shoot if they try to go for it.


You misunderstand Melee physics. It is not the case that jumping at an angle lowers your vertical velocity in order to contribute to horizontal velocity (like it would in the real world). Instead, when you jump, there is an initial vertical velocity, and an initial horizontal velocity. The vertical velocity is always there as essential to the jump lol. The horizontal velocity comes from residual momentum from the grounded state plus the analog jump effect. Therefore, it takes the same amount of time to reach a platform regardless of whether you jump completely vertically or not. Because of this, the waveland method is always slower. The ten frames of lag are simply not made up for by the increased speed of a waveland. Under any platform, Peach can get to a certain desirable spot the quickest by dashing, then jumping, then using analog control to aim where she wants to go. I'm not even sure the dashing is necessary.

-are diagonal DJLs easier / harder or the same as vertical jumps (in terms of input window)?
The same.

-are diagonal DJLs possible on ALL platform heights?
Of the legal stages, yes. Like I said above, vertical height is not diminished by horizontal momentum.

-is just running to the outer corner then doing a vertical jump to DJL (Opt 3) faster than both for all platform heights?
I don't understand the situation you're describing.

-ive been assuming all diagonal jumps were still her standard 'neutral jump' for the whole post, but at an angle. What about her other jump animations (like her 'backflip' if she was falcon) ? do they make the DJL input any harder/easier? could they make it possible to DJL sooner than neutral jump?
The difference in the bottom of the ECB is minuscule. On Battlefield it doesn't make a difference. I doubt any other stage does. There may be tiny sections on Yoshi's where you get an extra frame, but it'd be TAS level precision.

Edit: "Frame Jockey" :088: :3 Lol, can you change my status from "Smash Apprentice" to "Frame Jockey"? Does mod power allow you to do that?
Sycorax Sycorax OOPS lol...
I had NO IDEA that it disobeyed real world physics like that! I'm a physics major too, so I didn't even bother thinking otherwise. i always pictured typical vectors when i heard the horizontal/vertical speed stuff... I'm happy that you were able to realize that was what I was going for, and thanks for answering thoroughly. I must get to work on DJLing asap

for Opt 3, i was describing techchasing a fox rolling to the outer edge by running UNDER the platform a bit toward fox, then doing a straight up DJL to regrab (basically Opt 1 in reverse: horizontal THEN vertical movement)

also yeah, you know, a frame jockey! surely someone else has heard this term before. I don't think I can give you the title sadly, but it could make a good banner someday. you guys are basically melee physicists

Frame Jockey [fraym jok-ee] (n) (pl: jockeys)
a) one with a public reputation for their knowledge and manipulation of frame data in a videogame, who then uses this talent to improve current methods of play and to educate the general public
b) a horserider used for scapegoating
"Kadano and Magus are frame jockeys renowned for their work on Smashboards"
 

Sycorax

Smash Ace
Joined
Jul 7, 2014
Messages
501
Location
Atlanta, GA
I don't think I can give you the title sadly
Agonyyyy!

Also, upon further thought, there may be situations in which the waveland is preferable to the DJL. If you're trying to cover tech options on reaction, DJL may be too slow (despite taking fewer frames to become actionable on a platform) because it requires reacting at an earlier time. With the waveland method, you can jump first regardless of their tech option and then waveland a certain way on reaction to their tech option. With the DJL method, you need to react at the moment of your analog jump input which is a good 10 frames or more earlier than the waveland reaction.

On further thought though, it is usually rather obvious where they will land. Therefore, you could option select DJL at their landing and be ready to cover tech in place or tech rolls on reaction. Reacting to tech rolls should be rather easy on platforms and often possible with dash grab (which I think is preferable to dash attack).
 

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,337
What matters is how soon he started the dair before he landed. I can describe the details more if you want, but the gist is that, since it is a multi-hit move making it hard to land on the frame after it hits shield, there is a 1/3 chance the the dair will be able to be shield grabbed. Your opponent isn't going to be able to know if a grab is possible or not, so it's a crap shoot if they try to go for it.
Actually it's shield grabbable 2/3 of the times if we assume each gap between hit and landing is equally likely. Dair does 3 frames of stun and 9 frames of landing lag, so only in the perfect scenario the fox would be able to shine on the frame the grab hitbox comes out and dodge it with the shine intangibility.

In my experience dair is very vulnerable to shield grabs. I won't say it's impossible to learn certain shffl timings that lead to frame perfect landings, but it definitely isn't easy.
 

Sycorax

Smash Ace
Joined
Jul 7, 2014
Messages
501
Location
Atlanta, GA
Discovery:

We all know forbidden smash DI prevents the bottom of your ECB from colliding with the floor. However, when you SDI straight down, but the ground is less than 6mm below the bottom of your ECB, instead of the SDI not happening, your TopN bone will be lowered to the floor. Often times, in the air, your ECB is raised above your TopN bone and this quirk is useless. However, if you are in the first 10 frames of going airborne, say, from your jump, when the bottom of your ECB is attached to your TopN bone, you can SDI down towards the ground to become adjacent to the ground, and then ASDI down to collide with the ground. The SDI still won't cause a collision with the ground. It will merely lower you to be level with the ground. Later, you can ASDI to collide with the ground.
 
Last edited:

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
Anyone have step by step instructions of how to calculate DI angle from control stick X and Y, then how that angle is applied to the trajectory (how the stick angle turns into a degree offset? or something like that), and also how the angle translates into SDI and ASDI X and Y.

I know Trajectory DI has a maximum offset of 18 degrees in either direction, and how the more perpendicular the angle, the higher the offset, but not the precise maths.
 

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158
I have kind of a simple question... If I spam fox's dair on a shield, the timing to fast fall and L-cancel should be 100% identical to spamming dair onto a character not shielding right? Because the only thing different between the 2 is shieldstun, which only the defender experiences after hitlag. The hitlag on the attacker (me) should be the exact same right? It seems like dairing on a shield is a bit slower but i dont know if that's just in my head
 

Kadano

Magical Express
Moderator
Premium
Joined
Feb 26, 2009
Messages
2,161
Location
Vienna, Austria
I have kind of a simple question... If I spam fox's dair on a shield, the timing to fast fall and L-cancel should be 100% identical to spamming dair onto a character not shielding right? Because the only thing different between the 2 is shieldstun, which only the defender experiences after hitlag. The hitlag on the attacker (me) should be the exact same right? It seems like dairing on a shield is a bit slower but i dont know if that's just in my head
The timing is not always 100% the same due to damage staling. For example, a fresh dair will cause 4 frames of hitlag on hit (assuming you connect the sweetspot), but only 3 frames of hitlag for all subsequent hits. A fresh dair on shield will deal 4 frames of hitlag with every hit (again assuming you always connect the sweetspot).

(In Melee, multi-hit moves add to the stale queue with every single part-hit that deals damage.)
 
Last edited:

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158
So the stale queue only contains hits that connect to an actual character (not their shield) right? And if i'm understanding correctly, if a multi-hit move is 3 parts, if i hit with the first part and the first part stales, but miss the last 2 parts, the next time i hit with the same move, only the first part is staled?
 

Traivlin

Smash Rookie
Joined
Sep 25, 2015
Messages
24
I know Trajectory DI has a maximum offset of 18 degrees in either direction, and how the more perpendicular the angle, the higher the offset, but not the precise maths.
It's 18*sin²(x), where x is the angle at which you hold the analog stick in relation to the launch trajectory.
18*sin(90)*sin(90) = 18, so that would be perpendicular DI.
 

Kadano

Magical Express
Moderator
Premium
Joined
Feb 26, 2009
Messages
2,161
Location
Vienna, Austria
So the stale queue only contains hits that connect to an actual character (not their shield) right? And if i'm understanding correctly, if a multi-hit move is 3 parts, if i hit with the first part and the first part stales, but miss the last 2 parts, the next time i hit with the same move, only the first part is staled?
Only hits that deal damage add to the staling queue, yes.
There is no distinction between the individual hits. Dealing damage with a hit adds its attack into the staling queue. However, an attack will be only staled once even if multiple hits of a single execution connect and deal damage.
 
Last edited:

Vestboy_Myst

NJ TO & Peach knitwit
Moderator
Rankings Team
Joined
Jan 10, 2014
Messages
607
Location
NJ
Only hits that deal damage add to the staling queue, yes.
There is no distinction between the individual hits. Dealing damage with a hit adds its attack into the staling queue.
does pummeling during a grab count toward the stale queue?
and i guess that means counter moves don't unless triggered
 

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,337
That's exactly what I meant. Sorry, if I wasn't clear enough.
The function you posted depends only on the angle, and it doesn't work for weak inputs. It's correct for full inputs though. Expanded function:

18*(sin(x)*L)² where x is the angle and L is the length of the input.
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
How does it determine perpendicular distance?

I tried using trig and came up with

x = x input
y = y input
a = perpendicular angle
p = perpendicular distance

p = cos(a-arctan(x/y))*sqrt(x^2+y^2)

and it was sooo wrong edit: my b, changing it to arctan makes it sooo right

edit: wait is tanh the same as tan-1 ? my trig so rusty. oh **** they are not, arc was the abbreviation i forgot.
 
Last edited:

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,337
schmooblidon schmooblidon
p = sin(a)*sqrt(x^2+y^2) where a is the angle between launch angle and your control stick input and x,y represent their respective control stick values. (L = sqrt(x^2+y^2) in the function I previously posted)
 
Last edited:

Sycorax

Smash Ace
Joined
Jul 7, 2014
Messages
501
Location
Atlanta, GA
The function you posted depends only on the angle, and it doesn't work for weak inputs. It's correct for full inputs though. Expanded function:

18*(sin(x)*L)² where x is the angle and L is the length of the input.
I wonder if the game actually calculates angles or not. It may not be "technically correct" to say that DI is done with angles. Trying to solve for the perpendicular distance between the control stick input and the line of trajectory could be done using angles and trig, or with lines, points, and linear algebra.

I know barely anything about coding, but if they wanted to do trig functions in code they'd probably do some sort of Taylor series polynomial expansion that was truncated at some point to yield enough significant digits. That seems inefficient compared to linear algebra equations. I don't know the exact math for the linear algebra, but it would require like one or two matrices and the distance formula.
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
schmooblidon schmooblidon
p = sin(a)*sqrt(x^2+y^2) where a is the angle between launch angle and your control stick input and x,y represent their respective control stick values. (L = sqrt(x^2+y^2) in the function I previously posted)
Ohhh I think I get it. So that basically means p = sin(90-a-arctan(x/y))*sqrt(x^2+y^2) on mine, but how do I get the angle without having to do 90-a-arctan(x/y), feel like I'm missing something obvious.
 

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158
Ohhh I think I get it. So that basically means p = sin(90-a-arctan(x/y))*sqrt(x^2+y^2) on mine, but how do I get the angle without having to do 90-a-arctan(x/y), feel like I'm missing something obvious.
why are you're using arctan(x/y) in the first place? Let's say an attack sends you upwards, and you hold stick 50 degrees right. arctan (x/y) is the same as a. 90 - 2a =/= a. The formula you're using and the one magus/tau khan provided are completely different... ???
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
why are you're using arctan(x/y) in the first place? Let's say an attack sends you upwards, and you hold stick 50 degrees right. arctan (x/y) is the same as a. 90 - 2a =/= a. The formula you're using and the one magus/tau khan provided are completely different... ???
This is starting to get confusing, cos we are using a for different things.

I use a-arctan(x/y) (where a = launch angle) to calculate the angle between the control stick input and the launch angle.
 

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158
Oh yeah we're using the definition of a differently. But if we do assume a is the launch angle, a-arctan(x/y) is not the angle between the control stick input and the launch angle though. a-arctan(y/x) is. I don't really see a reason to use a as a launch angle though, all you need to know is the angle you're DI'ing relative to the launch angle
 
Last edited:

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
Oh yeah we're using the definition of a differently. But if we do assume a is the launch angle, a-arctan(x/y) is not the angle between the control stick input and the launch angle though. a-arctan(y/x) is. I don't really see a reason to use a as a launch angle though, all you need to know is the angle you're DI'ing relative to the launch angle


Green is the launch angle/perpendicular. Red is the controller input point.

I want to find the blue angle, I know a, and I calculate theta by doing arctan(x/y)

I want to calculate DI'ed trajectory from only x and y input values.
 
Last edited:

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158


Green is the launch angle/perpendicular. Red is the controller input point.

I want to find the blue angle, I know a, and I calculate theta by doing arctan(x/y)

I want to calculate DI'ed trajectory from only x and y input values.
Oh so according to your diagram, yeah you can use inverse tan to find theta, and then you can find the angle between your DI and your launch trajectory. If you're given nothing but x, y, and launch trajectory with the "a" you mentioned, I don't think there's an easier way to find that angle in between. When you actually encounter a launch trajectory in smash though, wouldn't it make sense to just think of what angle you want to Di relative to the launch trajectory so you don't even have to worry about doing trig and just plug that angle into 18*(sin(x)*L)²?

You called the variable "a" a perpendicular angle in an earlier post which is different than what your diagram is showing, but I'm just assuming it will always be less than 90 degrees no matter what quadrant it's in?
 
Last edited:

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
Oh so according to your diagram, yeah you can use inverse tan to find theta, and then you can find the angle between your DI and your launch trajectory. If you're given nothing but x, y, and launch trajectory with the "a" you mentioned, I don't think there's an easier way to find that angle in between. When you actually encounter a launch trajectory in smash though, wouldn't it make sense to just think of what angle you want to Di relative to the launch trajectory so you don't even have to worry about doing trig and just plug that angle into 18*(sin(x)*L)²?

You called the variable "a" a perpendicular angle in an earlier post which is different than what your diagram is showing, but I'm just assuming it will always be less than 90 degrees no matter what quadrant it's in?
I'm building a trajectory simulator with gentlefox and I think it'd be more intuitive to calculate with x and y inputs, so I can just give the user a control stick pretty much (could even allow gc controller adapter maybe) to set the angle to see the altered trajectory. There is also the deadzones to consider.

Ah ye that was because I was drawing out an example that I was simultaneously testing on 20XX, and the x and y inputs I choose and attack's angle made sense to use the perpendicular. So yeah it's pretty much just use which ever line is in the same quadrant so you get less than 90.
 

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,337
Ohhh I think I get it. So that basically means p = sin(90-a-arctan(x/y))*sqrt(x^2+y^2) on mine, but how do I get the angle without having to do 90-a-arctan(x/y), feel like I'm missing something obvious.
I think you have use arctan and use the launch angle, you're not missing anything. For me it would be more natural to solve the angle as the difference of the control stick angle and launch angle compared to a base line, in this case horizontal line. So I'd do sin(arctan(y/x) - a)*sqrt(x^2+y^2), but it's still basically the same as arctan(y/x) = 90 - arctan(x/y).
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
Ok I think I got it working!

There are a bunch of ifs that need to be addressed, here is the code in javascript if anyone is interested

Code:
       var angleConversion = Math.PI / 180;
       //used to convert degrees to radians

       var deadzone = false;
        if (x < 0.2875 && x > -0.2875){
          x = 0;
        }
        if (y < 0.2875 && y > -0.2875){
          y = 0;
        }

        if (x == 0 && y < 0){
          diAngle = 270;
        }
        else if (x == 0 && y > 0){
          diAngle = 90;
        }
        else if (x == 0 && y == 0){
          deadzone = true;
        }
        else {
          diAngle = Math.atan(y/x) * (180 / Math.PI);
          if (x < 0){
            diAngle += 180;
          }
          else if (y < 0) {
            diAngle += 360;
          }
        }

        if (!deadzone){
          var rAngle = launchAngle - diAngle;
          if (rAngle > 180){
            rAngle -= 360;
          }

          var pDistance = Math.sin(rAngle * angleConversion) * Math.sqrt(x*x+y*y);

          var angleOffset = pDistance * pDistance * 18;
          if (angleOffset > 18){
            angleOffset = 18;
          }

          if (rAngle < 0 && rAngle > -180){
              angleOffset *= -1;
          }
        }
        else {
          var angleOffset = 0;
        }

        return (launchAngle - angleOffset);
Thanks for all your help guys! If anyone wants to test it out, I'll PM you a link.
 
Last edited:

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158
Only hits that deal damage add to the staling queue, yes.
There is no distinction between the individual hits. Dealing damage with a hit adds its attack into the staling queue.
Hold on... Just so I'm 100% understanding correctly, if I hit a Fox dair with 3 hits, the 2nd hit will have reduced damage, and the 3rd will have more reduced damage because all hits add to the staling queue right?
 

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,337
No, when the first hit connects, the attack will be added to the stale queue, so the consecutive hits do a bit less dmg (unless the move was already fully staled ofc). However the attack is only added once to the queue even if it hits multiple times, so the 3rd hit will do exact same dmg as 2nd hit with fox dair.
 

tauKhan

Smash Lord
Joined
Feb 9, 2014
Messages
1,337
Can anyone ( Kadano Kadano , schmooblidon schmooblidon ) figure out why I can combo fox dair into turn utilt on DK in practice mode. When I calculate the expected hitstun using drill properties (30 WDSK, 100 KBG, 0 BKB) in the formula, the result is 15,57. The result apparently includes 1 frame of hitlag in the value, so the stun should be 14 frames. Dair should have 9 frames of landing lag and utilt comes out frame 5, so turn utilt shouldn't come out faster than frame 15, and the combo shouldn't work. Where do I go wrong?
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
Can anyone ( Kadano Kadano , schmooblidon schmooblidon ) figure out why I can combo fox dair into turn utilt on DK in practice mode. When I calculate the expected hitstun using drill properties (30 WDSK, 100 KBG, 0 BKB) in the formula, the result is 15,57. The result apparently includes 1 frame of hitlag in the value, so the stun should be 14 frames. Dair should have 9 frames of landing lag and utilt comes out frame 5, so turn utilt shouldn't come out faster than frame 15, and the combo shouldn't work. Where do I go wrong?
Magus physics repeats your results, so I don't believe there is an error in your calculations.

I think training mode considers it a combo if hit on the first actionable frame. Tested a bunch of other scenarios like it and it counted it as a combo.
 

Bones0

Smash Legend
Joined
Aug 31, 2005
Messages
11,147
Location
Jarrettsville, MD
Yeah, Training Mode gives an extra frame of leniency for combos. If you're testing grounded combos you can always just hold shield for the defender to make sure you're not crazy.
 

reverie2

Smash Apprentice
Joined
May 3, 2015
Messages
158
Couple questions...
1. Can you tech during hitlag or does it have to be hitstun only
2. What is the earliest you can tech falcon's up-b? I've been doing it as soon as falcon releases me. when I'm like adjacent to a wall I miss it all the time. Does falcon's up-b incur hitlag?
3. For special attacks like fox's up-b and side b here http://smashboards.com/threads/complete-fox-hitboxes-and-frame-data.285177/ there are both land lag and landfallspecial lag. Do I just add both those up to get the total landing lag? I'm looking at the marth frame data thread here http://smashboards.com/threads/complete-marth-hitboxes-and-frame-data.285324/ and it only has landfallspecial lag
 
Top