Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 1/7/13 17:06

Sarevok
Member
Registered: 1/7/13

Changing the key sequence for character's moves

Is there a way to change the key sequence for character's moves?  Say I wanted to change Crescent Moon key sequence to something different and easier to perform than "forward, then forward + kick" , would that be possible and how would I accomplish this?

Offline

#2 1/7/13 17:21

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Changing the key sequence for character's moves

I don't know the answer to your question but I don't think so unless you change the move's type all together ... but just a note crescent moon kick is kick kick then forward+kick simultaneously not forward then forward+kick ..
also there's a fix that makes konoko's crescent moon kick a bit easier to pull off .. her TRAMKONCOMcomb_k_k is supposed to link to TRAMKONCOMcomb_k_k_kfw .. the vanilla one doesn't.


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

#3 1/7/13 18:06

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Changing the key sequence for character's moves

Do we know for sure that the link makes a difference?  geyser considered that claim to be suspect.  Oni might just be building the link in memory at runtime if it doesn't exist.  After all, a link can only be present or not, so you would expect the move would simply work or not work.

Unfortunately, I don't know how moves' key sequences are determined, so I can't contribute anything meaningful to the question, but I'm sure someone here knows.


byproducts are fine, but where's the beef?

Offline

#4 3/7/13 0:11

Loser
Member
From: somewhere in da Czech Republic
Registered: 14/1/07

Re: Changing the key sequence for character's moves

Sarevok
It is possible to change the key combination but as Samer very correctly pointed out, it is only doable via changing the AnimType, so for example Konoko would do Crescent Moon Kick instead of the Kick Forwad. Is that what you are asking for?


Iritscen
Iritscen, based on empiric observations, I guess Oni utilizes Mealy Finite State Machine with hardcoded transitions between nodes (AnimTypes).

That means you are most probably right about transitions between attacks in "combos" (for example P->PP->PPP, or K->K->Kfw) - those transitions don't require any link in a TRAM file, they always exist.


Now for the transition mechanism. In order to transit from one AnimType to another (let' say from currently playing "K" TRAM to the following "KK" TRAM), the correct input (simple Kick key in the example) must be entered either:

  • within the last 10 frames of the currently playing TRAM (in the example within the last 10 frames of the "K" TRAM)

  • within the first 8 frames of the next non-consencutive AnimType (in the example let the "K" TRAM finish, character transits to "Stand", then within the very first 8 frames of the Stand press the Kick key).

However, there's a catch with transitions between AnimTypes. Bungie folks correctly predicted some attack moves could end up having so short windup and recovery windows it would break down the whole combat system (simple punch spam). So they incorporated TRAM links and SOFT / HARD pauses.

If soft or hard pause is set to be non-zero in a some TRAM, then from the beginning of that TRAM all "key inputs" for the character are blocked (be it player's keyboard key inputs or AIs' simulated inputs). Even those inputs which continue the combo in the hardcoded MFSM are blocked, most probably because the pause calls something similar to BSL command "input 0/1", but only locally for the performing character. After the TRAM finishes, the input is still kept blocked for the number of frames specified in the TRAM's hard/soft pause field. After the required number of frames pass, the input is finally unblocked.
NOTE:
Personally I don't know the functional difference between pauses, to me they always looked the same. Maybe it's just a development relic and in the released version they are both wired to the same function. Maybe.
/NOTE

Back to TRAM link stuff. In fact pauses don't have to block entirely all inputs. If a TRAM link is specified to a valid TRAM animation, then the AnimType which the link points to is allowed to bypass the effect of the pause IF the correct input is entered within the last 10 frames of the currently playing (softpausing) TRAM. Please note that for this feature, the second combo method (first 8 frames of the implicit transit TRAM) DOES NOT APPLY. Only last 10 frames of the currently playing TRAM works.


And now finally for the Crescent Moon Kick. In vanilla Oni, Konoko's KK has a soft pause of "1" and a TRAM link only to the KKK. However remember, in the hardcoded MFSM the link to the KKKfw is present.
Player executes two kicks, so the character's MFSM state is now KK. From this situation:

  • If the player inputs the Kick key input within the last 10 of current or the first 8 of the implicit next, then soft pause is ignored and Konoko nails the KKK (with her heel right in the gut).

  • If the player inputs the Kick Forward input within the last 10 of current, then the soft pause of 1 frame blocks it and nothing happens.

  • If the player inputs the Kick Forward input within the first 8 of the implicit next (minus the 0th frame of the next, which is "soft paused" by the soft pause of 1), then the hardcoded MFSM behavior kicks in and Konoko perfroms the KKKfw.

The behavior described above is the reason why is the KKKfw in the vanilla so difficult to pull off. Player must enter the Kick Forward command exactly in the narrow 7 frame window right AFTER the KK ends.
Also, since the AI2 MELE code is most probably relying on TRAM links, a failure to provide the TRAM link in a combo sequence makes the part of the combo following after the missing TRAM link inaccessible for the AI MELE purposes.

Last edited by Loser (3/7/13 0:27)


"I am just a mere reflection of what I would be."

Offline

#5 3/7/13 7:40

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Changing the key sequence for character's moves

Hmm, interesting, I've never seen that explained before.  But wouldn't the soft pause of 1 on KK only prevent the player from inputting another move for the first frame of the animation (also, the wiki says the pauses are in ticks, not frames)?


byproducts are fine, but where's the beef?

Offline

#6 3/7/13 14:33

Loser
Member
From: somewhere in da Czech Republic
Registered: 14/1/07

Re: Changing the key sequence for character's moves

The wiki maybe says it is in ticks, however my tests were performed in a developer single step mode. Unless "ticks" are frozen with frames as well, I stay convinced the measurement unit is a frame, not a tick.

The soft pause's "frames of disabled input" are added after the softpausing animation ends. If the KK animation has a soft pause of "1", then input is blocked from the beginning of the KK animation till the end of the KK animation and then after the KK animation ends, engine will still keep input blocked for extra 1 frame, even tough the AnimType State Machine already transits from the KK AnimType to some other AnimType (Stand most probably, as that is an implicit state when no input is registered by the State Machine).

Key is to realize there are two independent systems:

  • A hard/soft pause system, which can disable inputs from being registered by the State Machine.
     

  • An AnimType Finite State Machine, which changes AnimTypes of the character, based on the contemporary AnimType and contemporary registered input. "Stand" is the implicit state of the AnimType Finite State Machine. From "Stand", pressing Punch key (and having no other constraints) makes the AnimType FSM transit from "Stand" to "P" (and character performs P animation). From the "P" state, our dear AnimType FSM can transit either back to "Stand" state if no other input is pressed, or transit to "PP" state if Punch key is again registered within the allowed time interval. And so on and so on. Transits are hardcoded, as is this whole AnimType Finite State Machine.

Last edited by Loser (3/7/13 16:55)


"I am just a mere reflection of what I would be."

Offline

#7 3/7/13 17:51

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Changing the key sequence for character's moves

Okay, I gotcha.


byproducts are fine, but where's the beef?

Offline

Board footer

Powered by FluxBB