moving on to next phase of "battle of legends" hitsparks/fx

Started by goldeneragaming, January 11, 2016, 09:36:58 PM

Previous topic - Next topic

goldeneragaming

I've decided to give every character on my roster the same hitsparks/fx thanks to a suggestion by rei

I think I have some experience in this field because of the parry hitsparks but am I correct in my assumption that all I have to do is find the animation for each char and replace it with one of my choosing?

Is that all I have to do?

If so would there be a word in the code that I could use to get me the correct animation faster?

Do you all have any tips?

thanks

XGargoyle

you can create your own fightfx.sff file, place it in tge data folder and have all your characters use them instead


XGargoyle: Battle posing since 1979
http://xgargoyle.mgbr.net
http://www.pandorabots.com/pandora/talk?botid=e71c0d43fe35093a  <-- Please click that link
http://paypal.me/XGargoyle  <-- Donations welcome!

goldeneragaming

Quote from: XGargoyle on January 11, 2016, 10:10:38 PM
you can create your own fightfx.sff file, place it in tge data folder and have all your characters use them instead

That sounds much better!

How would I do that?

JustNoPoint

See the hitspark parameter of the HitDef. S1234 means it's looking in the character's air file. Remove the S from the digits and it looks in the fightfx

goldeneragaming

Quote from: Just No Point on January 11, 2016, 10:28:51 PM
See the hitspark parameter of the HitDef. S1234 means it's looking in the character's air file. Remove the S from the digits and it looks in the fightfx

thanks!

goldeneragaming

Quote from: Just No Point on January 11, 2016, 10:28:51 PM
See the hitspark parameter of the HitDef. S1234 means it's looking in the character's air file. Remove the S from the digits and it looks in the fightfx

wait what?

Where am I supposed to look?

I checked the fight.def and the system.def

can't seem to find anything

JustNoPoint

Hitdef
It's used to make the hitting portions of the attack.

fightfx.air is where fightfx anims are stored

goldeneragaming

#7
Quote from: Just No Point on January 11, 2016, 11:34:56 PM
Hitdef
It's used to make the hitting portions of the attack.

fightfx.air is where fightfx anims are stored

ok I went to that thread and read a bunch of stuff. I'm guessing you want me to look at the "sparkno" and remove the S?

I searched in "The Batman" by cybaster because it's the first one in my chars folder.

I opened his system.cns and searched for "hitdef." I found a number of states and under the states I found the sparkno.

the issue I'm having is the sparkno says -1

no S1234

so what do I do now?

Also, I'm going to download a kof fightfx so just replace the one in my data folder right?

Cyanide

You would make the fightFX.Air exactly the same as you make any other air file. The problem you have now, is obviously that cybaster is using the helper hitspark method, which probably isn't going to work super well with the fightfx method. You can do it, it's just more work and a total pain.

I would suggest rather than the fightFX method, which is nice and global and sensible, as you are working with other peoples stuff and they will be using different methods.

Add your FX to their SFF files, then create the animations and simply swap the numbers used. So for example if batmans light hit spark is anim 6000, you would change that value to 8000 and set your new hitsparks animation to 6000. Then you don't need to change any code.

This has probably been done for HR sparks alongside a low res character. Dunno if the fightFX takes its own resolution now, it might. There would still be work to be done around removing the helper FX method though which would still be kinda obnoxious.


In M.U.G.E.N there is no magic button

They say a little knowledge is a dangerous thing, but it's not one half so bad as a lot of ignorance.

goldeneragaming

Quote from: Cyanide on January 12, 2016, 12:57:06 AM
You would make the fightFX.Air exactly the same as you make any other air file. The problem you have now, is obviously that cybaster is using the helper hitspark method, which probably isn't going to work super well with the fightfx method. You can do it, it's just more work and a total pain.

I would suggest rather than the fightFX method, which is nice and global and sensible, as you are working with other peoples stuff and they will be using different methods.

Add your FX to their SFF files, then create the animations and simply swap the numbers used. So for example if batmans light hit spark is anim 6000, you would change that value to 8000 and set your new hitsparks animation to 6000. Then you don't need to change any code.

This has probably been done for HR sparks alongside a low res character. Dunno if the fightFX takes its own resolution now, it might. There would still be work to be done around removing the helper FX method though which would still be kinda obnoxious.

OK, I think I understand.

I'm going to go with these hitsparks:

Spoiler (click to show)

so I add those files into the data folder and change the chars hitdef for the ones that allow me.

Certain chars, like cybasters for example are going to need me to import the sprites and put my own animation number/change the code animations as well.

ok I think I got it but I'll be back if I have more problems :)

As always thanks everyone!

goldeneragaming

sigh..........

I want to use these:

http://mugenguild.com/forum/topics/capcom-vs-snk-2-hitsparks-explods-180613-150513.0.html

I can't seem to import the animations for the batmans guard..... ugh this is such a headache because I don't know what to do.

I hope I'm not annoying everyone too much with this.

goldeneragaming

#11
The only thing I can think to do right now is to add the sprites and then add each individual sprite over the animation.

I downloaded the cvs2 sprites from phantom of the server so I know this is possible but it will take forever plus there's certain sparks that are going to be randomly chosen by me

EDIT:

Nevermind because I can add all of the sprites in one huge dump of 1 thousand sprites and work from there....

EDIT 2:

fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

EDIT 3:

ok so I was able to change one hitspark because it had the anim and I simply switched the sprites to the ones I want.

However, I went into batmans normals and attempted to change the hitsparks for his attacks and was met with this:

Spoiler (click to show)
[State 200, 1]
type = HitDef
trigger1 = animelem = 3
attr = S, NA
damage = 27, 0
animtype = light
guardflag = MA
hitflag = MAF
priority = 2, Hit
pausetime = 10,10
guard.pausetime = 10,10
sparkno = -1
;sparkxy = -1
sparkxy = var(35) := ceil(80*const(size.yscale)/0.5), var(36) := ceil(-104*const(size.yscale)/0.5)
hitsound = s5, 0
guardsound = S6,0
ground.type = High
ground.slidetime = 7
ground.hittime  = 7
ground.velocity = -3
airguard.velocity = -1.9,-.8
;air.type = High   
air.velocity = ifelse(prevstateno!=200,-2,-5),-2
air.hittime = 12
air.animtype = back
getpower= 70,35

[State 200, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

I don't see any anim or S1234 and I can't read what is possibly causing the hitspark

JustNoPoint

Var(35) and 36 are used in a helper. You'll have to find the helper and it's animation will be the hitspark being used.

goldeneragaming

Quote from: Just No Point on January 12, 2016, 12:56:47 PM
Var(35) and 36 are used in a helper. You'll have to find the helper and it's animation will be the hitspark being used.

that's going to be a pain but I'll get right on it!

goldeneragaming

I succesfully changed cybasters batmans sparks into cvs2 sparks! :)

I tried to do chun lin by jpmorphman but those hitsparks look really close to cvs2 so I'm going to leave them.

I'd doing jamxx muteki and I've run into some problems.

Muteki doesn't have the char nice and organized like cybaster and since it is a guilty gear char the hitsparks are quite different.

I typed in "hitdef" in her .cns and got this:

Spoiler (click to show)
[State 200, 1]
type = HitDef
trigger1 = animelemtime(1) >= 0
trigger1 = (!movecontact && !movereversed)
persistent = 1
attr = A, HP
damage = 0, 0
animtype = l
guardflag = MA
hitflag = MA-
pausetime = 0,6
guard.pausetime = 0, 6
sparkno = -1
guard.sparkno = -1
hitsound = s200, 2
guardsound = s150, 4
ground.type = High
ground.slidetime = ifelse(enemynear,statetype = C,11,10)
ground.hittime = ifelse(enemynear,statetype = C,9,8)
guard.slidetime = 9
guard.hittime = 8
ground.velocity = -7*var(0),-5
airguard.velocity = -2.9*var(0),-.8
air.velocity = ifelse(root,var(56),-8,-7)*var(0),ifelse(root,var(56),-2,-5)*root,fvar(5)
yaccel = 0.52
fall = 1
airguard.ctrltime = 13
fall.recovertime = 6 + ifelse(root,var(58)=2,20,ifelse(root,var(56),7,ceil(ifelse(root,var(21),50,25)*root,fvar(25))))
palfx.time = 1
palfx.add = 0,0,0
getpower = 0,0
sprpriority = 5
p2facing = 1*var(0)


any ideas?

thanks again for the help

XGargoyle



XGargoyle: Battle posing since 1979
http://xgargoyle.mgbr.net
http://www.pandorabots.com/pandora/talk?botid=e71c0d43fe35093a  <-- Please click that link
http://paypal.me/XGargoyle  <-- Donations welcome!

goldeneragaming

#16
Successfully gave cybasters "The Batman" hitsparks from cvs2.


Spoiler (click to show)


successfully gave Jam from guilty gear the hitsparks from cvs2...I'm only missing the supers which should be easy.

Spoiler (click to show)

I'm quite confident in my ability to do the rest but maybe we should keep this open in case I run into problems with other chars?

Thanks again!

goldeneragaming

#17
finished batmans and gave the actual cvs 2 hitsparks, these will be the normals:

Spoiler (click to show)

finished jam + millia and these will be the supers/specials

Spoiler (click to show)



having problems with jmorphmans chunli:

Her hitdef looks like

Spoiler (click to show)

[State 200, HitDef]
type = HitDef
trigger1 = !var(16) && (var(15) < 1 || var(20))
trigger1 = AnimElem = 2
forceNoFall = !var(20)
attr = S, NA
hitFlag = MAF
guardFlag = M
priority = 4, Hit
damage = ceil(ifElse(fvar(11) * 14 < 7, 7, fvar(11) * 14)), 0
getpower = 72 * !var(20), 36 * !var(20)
givepower = 36, 36
pauseTime = ifElse(var(20), 4, 8), ifElse(var(20), 4, 8)
guard.pauseTime = ifElse(var(20), 4, 8), ifElse(var(20), 4, 8)
animType = Light
air.animType = Back
fall.animType = Back
ground.type = High
air.type = Low
ground.hitTime = 12 + 2 * var(9)
ground.slideTime = 12 + 2 * var(9)
guard.hitTime = 12
air.hitTime = 120
ground.velocity = ifElse(var(20), -2.41, -4.49), 0
ground.cornerPush.velOff = 0
guard.velocity = ifElse(var(20), -2.41, -4.49)
guard.cornerPush.velOff = 0
air.velocity = -4.31, -7.36
air.cornerPush.velOff = 0
yAccel = 0.4
fall = 0
fall.recover = 1
fall.recoverTime = 120
hitSound = -1 + 0 * (var(31) := 0)
guardSound = -1 + 0 * (var(32) := 0)
sparkNo = -1 + 0 * (var(33) := 8010)
guard.sparkNo = -1 + 0 * (var(34) := 8000)
sparkXY = -10 + 0 * (var(35) := 52), var(36):= -75
palFX.time = 12 * var(9)
palFX.add = 255,255,255
palFX.sinAdd= -255,-255,-255,48

statedef for the light hitspark(which I am focusing on for this help) looks like

Spoiler (click to show)

[StateDef 8010]
type = A
physics = N
moveType = I
anim = 8010
velSet = 0,0
sprPriority = 5

[State 8010, Assert: NoShadow]
type = AssertSpecial
trigger1 = 1
flag = NoShadow
ignoreHitPause = 1

[State 8010, AngleSet]
type = AngleSet
trigger1 = !Time
value = 30 * (Random % 12)

[State 8010, AngleAdd]
type = AngleAdd
trigger1 = 1
value = 30

[State 8010, Scale]
type = AngleDraw
trigger1 = Time < 10
scale = 0.3 - (Time * 0.03), 0.3 - (Time * 0.03)
ignoreHitPause = 1

[State 8010, Scale]
type = AngleDraw
trigger1 = Time >= 10
scale = 0,0
ignoreHitPause = 1

[State 8010, Transparency]
type = Trans
trigger1 = 1
trans = AddAlpha
alpha = 256,256
ignoreHitPause = 1

[State 8010, Center Explod]
type = Explod
trigger1 = !Time
anim = 8011
ID = 1
posType = P1
facing = ifElse(Random < 500, -1, 1)
vFacing = ifElse(Random < 500, -1, 1)
sprPriority = 5
removeTime = 16
pauseMoveTime = -1
superMoveTime = -1

[State 8010, Scale Center Explod]
type = ModifyExplod
trigger1 = NumExplod(1)
ID = 1
scale = 0.15 + (0.009375 * Time), 0.15 + (0.009375 * Time)
trans = AddAlpha
alpha = 256 - (16 * Time),256

[State 8010, Streaks Explod]
type = Explod
trigger1 = !Time
anim = 8012
ID = 2
posType = P1
facing = ifElse(Random < 500, -1, 1)
vFacing = ifElse(Random < 500, -1, 1)
sprPriority = 5
removeTime = 16
pauseMoveTime = -1
superMoveTime = -1

[State 8010, Scale Streaks Explod]
type = ModifyExplod
trigger1 = NumExplod(2)
ID = 2
scale = 0.15 + (0.009375 * Time), 0.15 + (0.009375 * Time)
trans = AddAlpha
alpha = 256 - (16 * Time), 256

[State 8010, Impact Explod]
type = Explod
trigger1 = !Time
anim = 8014
ID = 4
posType = P1
facing = ifElse(Random < 500, -1, 1)
vFacing = ifElse(Random < 500, -1, 1)
sprPriority = 3
removeTime = 8
pauseMoveTime = -1
superMoveTime = -1

[State 8010, Scale Impact Explod]
type = ModifyExplod
trigger1 = NumExplod(4)
ID = 4
scale = 0.3 - (0.0375 * Time), 0.3 - (0.0375 * Time)
trans = AddAlpha
alpha = 128 - (16 * Time), 256

[State 8010, Remove Explods]
type = RemoveExplod
trigger1 = Time >= 16

[State 8010, End]
type = DestroySelf
trigger1 = Time >= 16

hitsparks helper looks like

Spoiler (click to show)

[State -2, Hit Sparks]
type = Helper
triggerAll = (StateNo != 1230 && StateNo != 3401) || (StateNo = 1230 && P2Dist x >= 0) || (StateNo = 3401 && P2Dist x >= 0)
triggerAll = MoveContact = 1 && var(30) = HitPauseTime
trigger1 = MoveHit = 1 && NumEnemy
trigger1 = var(33) = 8010 || var(33) = 8011 || var(33) = 8012 || var(33) = 8013 || var(33) = 8014
trigger2 = MoveGuarded = 1 && NumEnemy
trigger2 = var(34) = 8000 || var(34) = 8001
helperType = Normal
stateNo = ifElse(MoveGuarded, var(34), var(33))
ID = 8000
name = "Spark"
postype = P1
pos = ifElse(P2Dist x < 0, 0, ifElse(P2Dist x < var(35), ceil(P2Dist x), var(35))), var(36)
facing = -1
ownPal = 1
pauseMoveTime = 65535
superMoveTime = 65535
ignoreHitPause = 1

I don't want this to look shitty but so far the best thing I could think of doing was adding one frame of the anim where this edit has a frame available. Issue is it looks like shit compare to the others.

I tried adding adding the full frames of the anim to the light hitspark and it looked like shit because it only read the first frame so I tried searching until I found the time and adding seconds to that while deleting the other frames so that my main frame would stay unchanged but that also looked liked shit.

I tried resizing the anim so that it was the same size as those used by the char but that also looked like shit.

This isn't to rag on jmorphmans edit at all because it's one of the most fantastic I've seen but I can't edit it as easily as I could mutekis and cybasters.

any help?

I could just put one frame and have it look bad but at least match the rest of the cast but I would rather not

EDIT: got the one frame to look good so I'm going to keep it.

goldeneragaming

New problem:

I'm doing the hitsparks for Ibuki by GM and the super animation looks fantastic so far but the first hit attack I tried looks like this:

Spoiler (click to show)
Spoiler (click to show)


I went into the .cns and found the anim number which had a scale param so I deleted it.

Then I found the var and searched for that until I eventually deleted the scale there.

It still looks like that.

Any idea?

Cyanide

Normally scales decrease the size of things, not increase them. You are potentially looking at the wrong things if deleting scale lines is making no difference.

This is where "understanding" is important. You don't quite know what those lines did, you don't even know if they were the right ones. They were probably necessary and if they are in any way assigned to an animation value rather than a time or something, and you've used a different animation, things are going to break (well, not exactly, that still works, it just looks wrong)

Follow it through. Use 1 attack. Find out whether it creates an explod, a hitspark or a helper, follow the states. Follow the variables. Find out why it works the way it does. Then sort out how to change it.


In M.U.G.E.N there is no magic button

They say a little knowledge is a dangerous thing, but it's not one half so bad as a lot of ignorance.