IF
you are swapping the animation of gill to better perform the grab, you have to
arefully reason. it is not easy as it was not easy for me to decide, BUT the
easiest way is to change the animation Within the state that the enemy creates.
As an example I am going to use KFM and make so that HE will grab Gill right
when the side is Different.
While Gill will be grabbed HE will be in the player's statedef, AND ALL THE TRIGGERS will "act" Oppositely to normal, as a matter of facts they are related to the enemy.
Therefore IF you want gill to Change animation tough the being grabbed state you have to think as if you are the enemy and you are grabbing p1.
The following is KFM throw the enemy state.
;---------------------------------------------------------------------------
;Thrown by Kung Fu Throw
; (a custom gethit state)
; Description: This is the state that the opponent changes to after being
; hit by KFM's throw HitDef. The important thing here is to use a
; ChangeAnim2 controller. The difference between ChangeAnim2 and
; ChangeAnim is that ChangeAnim2 changes the player's animation to
; an action in the AIR file of the attacker (in this case, kfm.air),
; whereas ChangeAnim always changes the player to an action in his
; own AIR file. Look at Action 820 in kfm.air for some extra
; comments.
[Statedef 820]
type = A
movetype= H
physics = N
velset = 0,0
[State 820, 1]
type = ChangeAnim2
Trigger1 = Time = 0
value = 820
;In case attacker loses binding on player for any reason, this controller
;guarantees that the player will never get stuck in this thrown state.
[State 820, 2]
type = SelfState
trigger1 = !gethitvar(isbound)
value = 5050
;This is how the state should become.
;---------------------------------------------------------------------------
;Thrown by Kung Fu Throw
; (a custom gethit state)
; Description: This is the state that the opponent changes to after being
; hit by KFM's throw HitDef. The important thing here is to use a
; ChangeAnim2 controller. The difference between ChangeAnim2 and
; ChangeAnim is that ChangeAnim2 changes the player's animation to
; an action in the AIR file of the attacker (in this case, kfm.air),
; whereas ChangeAnim always changes the player to an action in his
; own AIR file. Look at Action 820 in kfm.air for some extra
; comments.
[Statedef 820]
type = A
movetype= H
physics = N
velset = 0,0
[State 820, 1]
type = ChangeAnim2
Trigger1 = Time = 0
value = 820
[State 820, Gill gets grabbed]
type = ChangeAnim2
Trigger1 = Time = 0 && enemy,facing = -1
value = ifelse(p1name = Gill || p3name = "Gill", "#-of-opposite-animation" 821, 820)
;In case attacker loses binding on player for any reason, this controller
;guarantees that the player will never get stuck in this thrown state.
[State 820, 2]
type = SelfState
trigger1 = !gethitvar(isbound)
value = 5050
This way the CPU will be deceived, is Kind of like saying 2 times NO and making therefore an affirmation. Gill is considered as player 2, BUT since HE is in the enemy state, THE ONLY WAY that HE will be Able to understand IF HE is the one being thrown will be for him to check as himself.
Basically IF you consider the fact that p1Name is an ALIAS for the Name trigger, and IF you Consider the fact that Gill is grabbed and therefore dragged INSIDE the enemy state files In a state in which, the used Triggers ALREADY refer to an enemy. Placing a P2name = "Gill" Would cause a character to check HIS name!
Enemy, p2name="gill" will always be wrong UNLESS the character that has this code is Gill. Is basically like saying trigger1 = 1 inside a character with the same name as the parameter.
Well I guess I got you confused, and I swear I’m as confused as you, BUT the code works and all you Have to do is produce the "different" animation(s).
Let us have fun ONCE AGAIN with KFM.
The following is the AIR file part of the throw, action number 820.
;-----------------------------------
; Thrown by Kung Fu Throw (animation for opponent)
; Note: Use ONLY the required frames documented in spr.txt and spr.gif.
; It is important to be restricted to the required frames so that
; the throw animation will look correct for any given character.
; Notice that the animation timings are synchronized to KFM's
; throw animation (action 810).
;
[Begin Action 820]
5000, 0, 0,0, 2
5010, 0, 0,0, 3
5010,10, 0,0, 10
5010,10, 0,0, 5
5010, 0, 0,0, 3
5061, 0, 0,0, 4
5071, 0, 0,0, 4
5071,10, 0,0, 3
5071,20, 0,0, 3
5031, 0, 0,0, 3, HV
5011, 0, 0,-40, 5, HV
Clsn2: 2
Clsn2[0] = -26,-38, 6,-69
Clsn2[1] = 18,-81,-12,-55
5030,40, 0,0, 5
Clsn2: 1
Clsn2[0] = -26,-32, 20,-66
5030,30, 0,0,-1
; NOW let us COPY AND PASTE right under the original one
; And edit this and make gill alias other side grab.
[Begin Action 821]; KFM specific case.
5000, 0, 0,0, 2
5010, 0, 0,0, 3
5010,10, 0,0, 10
5010,10, 0,0, 5
5010, 0, 0,0, 3
5061, 1, 0,0, 4
5071, 1, 0,0, 4
5071,11, 0,0, 3
5071,21, 0,0, 3
5031, 1, 0,0, 3, HV
5011, 1, 0,-40, 5, HV
Clsn2: 2
Clsn2[0] = -26,-38, 6,-69
Clsn2[1] = 18,-81,-12,-55
5030,41, 0,0, 5
Clsn2: 1
Clsn2[0] = -26,-32, 20,-66
5030,31, 0,0,-1
;---------------------------------------
YES as you can see it was that easy!
Examine carefully.
5061, 0, 0,0, 4 and 5061, 1, 0,0, 4
5071,10, 0,0, 3 and 5071,11, 0,0, 3
YES! I made the SFF SO THAT you can do this! All the required animations are even numbers, AND they go in basis of 10 to 10! So all you do is Add 1 to whatever the required animation is! I’m still going to give you a chart.
0 = 1
10 = 11
20 = 21
30 = 31
40 = 41
50 = 51
These are the ones that change, IF you happen to find another value that is an odd number WHEN Either the grab will make all characters or most of them disappear OR you are editing the wrong Animation.
BE CAREFULL, the changing OF ALL OR PART of the animation may wary from character to character! Some animation may just be right, while other may not be, all you have to do is change the Values until you actually find the right ones! With KFM this is the reason why only some of the animations change. To make gill work properly you will have to change also the normal throw, see (#) at the End of the txt for further details
Once you have changed the values you have to sprint one last time and search for a
Free animation number. To do so, open up the air file with a text editor again and press on the keyboard ctrl-F: This will bring up the search tab. Now is up to you to choose a number for this animation.
As a default case, I would use Odd numbers AND i would search for a number that is Between One and ten animations from the original grab one.
To search for an animation number copy and paste this line in the finder bar:
Begin Action #####
Then change the #### with the number you desire to search. IF the text is moved then an answer" Will be identified. This means that you have to search for another animation hence the rior one
Was occupied.
Once you find the value just change it in! here is kfm's final Animation for to grab Gill. Ho and btw I was luck and kfm did not have animation 821 nor 822
;------------------:Gill sides adjustment:------------------
;
; Thrown by Kung Fu Throw (animation for opponent)
; Note: Use ONLY the required frames documented in spr.txt and spr.gif.
; It is important to be restricted to the required frames so that
; The throw animation will look correct for any given character.
; Notice that the animation timings are synchronized to KFM's
; throw animation (action 810).
;
[Begin Action 820]
5000, 0, 0,0, 2
5010, 0, 0,0, 3
5010,10, 0,0, 10
5010,10, 0,0, 5
5010, 0, 0,0, 3
5061, 0, 0,0, 4
5071, 0, 0,0, 4
5071,10,
0,0, 3
5071,20, 0,0, 3
5031, 0, 0,0, 3, HV
5011, 0, 0,-40, 5, HV
Clsn2: 2
Clsn2[0] = -26,-38, 6,-69
Clsn2[1] = 18,-81,-12,-55
5030,40, 0,0, 5
Clsn2: 1
Clsn2[0] = -26,-32, 20,-66
5030,30, 0,0,-1
;(***) Gill being thrown.
[Begin Action 821]; Gill Being Thrown
5000, 1, 0,0, 2
5010, 1, 0,0, 3
5010,11, 0,0, 10
5010,11, 0,0, 5
5010, 1, 0,0, 3
5061, 1, 0,0, 4
5071, 1, 0,0, 4
5071,11, 0,0, 3
5071,21, 0,0, 3
5031, 1, 0,0, 3, HV
5011, 1, 0,-40, 5, HV
Clsn2: 2
Clsn2[0] = -26,-38, 6,-69
Clsn2[1] = 18,-81,-12,-55
5030,41, 0,0, 5
Clsn2: 1
Clsn2[0] = -26,-32, 20,-66
5030,31, 0,0,-1
;---------------------------------------
Ho and you can copy and past both things in KFM's Files B) just be sure to OVER WRITE the previous state if you copy it all on. otherwise copy from where the sign (***) is downwards.
You can paste this ANYWERE in kfm's AIR FILE. BUT I recommend placing it under the original state just as i have done here.
You can also paste the Grab code, BUT first remove this: "#-of-opposite-animation"
(#) NOW to make Gill become PERFECT and be grabbed to perfection, you have to make another Animations for the “normal” state flip around the first images. (Mathematical opposite way)
So copy THIS grab code in the cns under the previous one (it changes the original grab)
[State 820, Gill gets grabbed2]
type = ChangeAnim2
Trigger1 = Time = 0 && enemy,facing = 1
value = ifelse(P1name = "Gill" || p3name = "Gill" , 822, 820)
; And this in the air file.
[Begin Action 822]
5000, 1, 0,0, 2
5010, 1, 0,0, 3
5010,11, 0,0, 10
5010,11, 0,0, 5
5010, 1, 0,0, 3
5061, 0, 0,0, 4
5071, 0, 0,0, 4
5071,10, 0,0, 3
5071,20, 0,0, 3
5031, 0, 0,0, 3, HV
5011, 0, 0,-40, 5, HV
Clsn2: 2
Clsn2[0] = -26,-38, 6,-69
Clsn2[1] = 18,-81,-12,-55
5030,40, 0,0, 5
Clsn2: 1
Clsn2[0] = -26,-32, 20,-66
5030,30, 0,0,-1
NOW gill will be grabbed as it's needed to be B)
UNIVERSAL CHANGE:
Remember to edit this correctly.
Follow the steps.
A) Find which the throw state is, Try searching for Throw OR Grab in the cns files.
B) once the part is found, THEN examine the Hitdef and find this parameter: "p2stateno =" With out "" that is XD, anyhow select and copy and paste the numbers that follow it.
C) search again by writing StateDef #### (were #### is the number you have just copied before.)
D) Add this parameter AND change it's values!
[State ####, Gill gets grabbed]
type = ChangeAnim2
Trigger1 = Time = 0 && enemy,facing = -1
value = ifelse(p1name = Gill || p3name = "Gill", #-of-opposite-animation, #-of-normal-animation)
;the
#### number is the same once again.
E) now open the air file with a text editor, and search for the Animation value of the ChangeAnim2 that is contained in the statedef of the being thrown state.
F) copy and paste this animation right under the original one.
G) renumber the animations (second value) using this table:
0 = 1
10 = 11
20 = 21
30 = 31
40 = 41
50 = 51
the format: 0,CHANGE-THIS, 0, 0, 1
H) find the animation value to use for your modification and rename the action that you copied to it.
I) Now change the " #-of-opposite-animation " and the " #-of-normal-animation " in the IfElse value as they say. (the first one must be changed to the "new" one, while the econd one must remain identical as the previous one.
NOTES: see if the grab is KFM like, YOU will also need to get gill to over-ride it's being grabbed normal animation as well, Therefore the parameter to add to kfm stated at the (#) point Will come in handy in this case. I can't explain with words what and how to do because it's different for every char's throw, since they are all different. trial and error is the best way as always. IF you know what a mathematical inverse is then Just know that making gill's be thrown animation is like an inverse, since ONE MUST be he inverse of the other.
I can say that you will need the extra parameter IF the grab starts on the ground at the wrong side. the "Right" side to be grabbed is p1's side (left) on the ground, BUT kfm lips you over! therefore you have to flip the animations as well.
Anyhow Congratulations, IF you proceeded correctly now Gill will be grabbed in the Right way from this character.
SINCE in NOT against global Mugen ethics to make Patches, I will myself "update" some sf3 characters that are out to interact as wanted by Gill. This patches will respect the ORIGINAL AUTHOR WORK. They construction and composition can be verified and found by any one how wants to in the Mugenation forum: WWW.mugenation.com/forum/indx.php you can also request patches for particular chars that you are not able to get to work.
There is a topic in the TUTORIAL section that explains HOW all patches should be made to RESPECT
the original authors work.
Also if you have or had troubles and can’t quite solve them with this "changing the animation" Thing, I can be found at mostly all times On the Mugenation forum, @ WWW.mugenation.com/forum/indx.php
I Hope that you will enjoy my Gill B)
SlayerGatsu.