News:

MFG's Character of the Month: October 2026 Nominations

Main Menu

Multiple Transformations

Started by All-Star, August 17, 2020, 10:42:46 PM

Previous topic - Next topic

All-Star

Hello everyone,I have a question to ask.How do you make multiple transformations for a character?
I watched Ryon's tutorial on a transformations.,however it was just for one.Can someone help
me figure this out for multiple forms.I achieved one form thanks to his tutorial,but how do I
do say 2 of them.Thanks for your time.

airforce111

HEres one way I do it. Set a var I would use 10000 and 20000 as the values. You have your first transformation as the main mugen animation numbers. Then for trasnformation 2, just add animations that are all the same numebrs but plus 10000, and then for 2000 etc. Example:

Walk is anim 20, your 2nd transformation walk should be numbered 10020, 3rd form should be 20020, etc. Remember to set your var for each.

Then for any anim: controllers, just add a "+var" whatever value you set it to. Heres an example character I made using this:
https://www.youtube.com/watch?v=LMOAKTVL2-c

When he is in transform state 1500, I set var(0) value to 10000, then in his common cns or wherever necessary, ill put where the anim number appears in changeanim controllers +var(0). Example:

Statedef 0 has this:

[State 0, 1]
type = ChangeAnim
trigger1 = Anim != 0+var(0) && Anim != 5+var(0)
trigger2 = Anim = 5+var(0) && AnimTime = 0 ;Turn anim over
value = 0+var(0)

I add a var(0), which will add 10000, which pinpoints to animation 10020 if transformed. Do this for any anim controller you may see. Then any triggers or moves should only triggerall if var(0)=10000 in that form. Repeat

Cyanide

Note that in custom states (ie throws) your character will revert. There is no fix for this outside of a full game.


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.

airforce111

another alternative would be to migrate to ikemen go and use the new "RemapSprite" SCTRL in that engine that changes on a sprite level so you never have to worry about being in a custom state in transformation. Other than that, in mugen I used to have 800 lines of custom state codes in 1 of my characters for every characters grapple in my full game.

All-Star

Hello airforce111,I didn't understand your first comment well enough.Can you be a bit more descriptive.

Alright,I'll give you this,my taunt makes my char transform.Here's what I have:
;---------------------------------------------------------------------------
; Taunt
; CNS difficulty: easy
[Statedef 195]
type = S
ctrl = 0
anim = 195
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 195, 1]
type = CtrlSet
trigger1 = Time = 40
value = 1

[State 0, VarSet]
type = VarSet
trigger1 = animtime = 0
v = 10
value = 1

[State 195, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1



As for my standing state,I have this:
; Stand
[Statedef 0]
type = S
physics = S
sprpriority = 0

[State 0, 1]
type = ChangeAnim
trigger1 = Anim != 0 && Anim != 5
trigger2 = Anim = 5 && AnimTime = 0 ;Turn anim over
value = 0

[State 0, 2]
type = VelSet
trigger1 = Time = 0
y = 0

[State 0, 3] ;Stop moving if low velocity or 4 ticks pass
type = VelSet
trigger1 = abs(vel x) < Const(movement.stand.friction.threshold)
trigger2 = Time = 4
x = 0

[State 0, 4] ;Are you dead?
type = ChangeState
trigger1 = !alive
value = 5050
ctrl = 0

airforce111

First, are your animations organized like this?

0-5900 = form 1
10000 - 15900 = form 2
20000 - 25900 = form 3

Remember, each form should follow the same numbers you have mapped, but just with 10000 added for form 1, and 20000 added for form 2.

E.G. your being hit animation is 5000, so that means in form 2, you're being hit animation should be 15000, form 3, being hit animation should be 25000 etc, do this for any moves you need it for, but it is MANDATORY in get hit animations.

If its organized like that, varset whatever var # you want thats not taken, with a value of 10000 for form 1 and make it trigger wherever you plan to transform in whatever state or situation. Maybe when you transform, you go into state 2000, that means varset it in state 2000 (just an example).

For all your get hit states, then just make sure to add "+var(whatever var number you set it to)" into any changeanim values, and wherever else you might need it. I'm not sure if I can break it down any further without sounding like Im just repeating myself. Since everyones situations with transform are unique, all I can really explain is the get hit states, whatever moves or animations you do in the other forms are entirely up to you. Some use different state numbers in different forms, some use the same state numbers but just different form animations, like I said that's up to you.