Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 08/06/19 13:08

Delano762
Member
From: Poland
Registered: 12/29/10
Website

Creating Just Frame and Delayed animations - Tutorial

THEORETICAL OVERVIEW OF JUST FRAME AND DELAYED ANIMATIONS

Most, if not all directional attacks in Oni, and those are forward, right, left, back kicks and punches, along with crouch forward attacks, seem to start from two animations states: the "base" one, that the character remains in at the time (e.g Standing or Crouch), and the "transitional" state, that the character enters after pressing a directional button (e.g. RunStart). For example, Konoko's forward kick (KONCOMkick_fw) looks like this in XML:

            <FromState>Standing</FromState>
            <ToState>Standing</ToState>
            //...
            <Shortcuts>
                <Shortcut>
                    <FromState>RunStart</FromState>
                    <Length>6</Length>
                    <ReplaceAtomic>yes</ReplaceAtomic>
                </Shortcut>
            </Shortcuts>

What this means, is that KONCOMkick_fw is triggered in two ways:
1) From the Standing state, that is, when Konoko is standing. There's a window of exactly one frame to do this.
2) From the RunStart state, when Konoko begins to run. This gives you (at least in theory it should), a couple of frames to execute the kick.

What this also means, is that KONCOMkick_fw, a single animation, uses two animation states, from which it can be triggered.

What this allows you to do, is to make KONCOMkick_fw start only from one of these states, and use the remaining one as a slot for a new forward kick. That means you can have two different forward kicks, instead of just one! This applies, or at least should apply, to all directional attacks in the game, and also modifier attacks (e.g. low kicks and punches), and even throws.

If you do this trick, you'll get two resulting animations:
1) One that starts from the "base" state, called a Just Frame (JF) animation, because as stated above, you have just one frame to execute it. The term itself is taken from Tekken notation. If you want to make a JF animation, then I highly recommend adding a "JF" suffix to its name.
2) One that starts from the "transitional" state, called a Delayed animation. In order to execute it, you must wait at least one frame after pressing a directional key before pressing an attack key.

While the idea of having just one frame to press a directional and an attack key at once may sound extremely hard, it's actually fairly easy to do, provided that you don't have an awful PS/2 keyboard from 2002 like I do. I also have a cheap 10 or 15$ USB keyboard, and it gets the job done well, so you don't really need a gaming keyboard for JFs in Oni. What's really hard is using the move you want during combat, as things get heated and you start spamming keys.

If you want to try this concept out in-game, you can download New Combat Moves for Konoko mod, which includes a JF forward punch and kick, while turning the vanilla ones into delayed attacks. You can also see another proof of concept video, which shows Konoko's final punch in her Triple-Hit Haymaker added as a JF forward punch.

There are many things you can do by dividing existing animations into JFs and delayed anims. You could make completely new moves, or take existing ones and make JF versions of them that do more damage, and/or are sped up with s10k's TRAM Speed Up Animation tool.


BRIEF OVERVIEW ON CREATING JUST FRAME AND DELAYED ANIMATIONS BY DIVIDING EXISTING ANIMATIONS

    1 ) Figure out what do you want to do - a JF or a delayed animation, a directional attack, modifier attack or a throw, a new animation from scratch, a JF version of an existing move, or some new idea of your own, that no one has ever tried before.
    2 ) Do some research, check if your idea will actually work - grab some random vanilla kick or punch, modify its FromState, Shortcut and if needed also ToState tags, to the same values that your new animation will have. Load the game up and see if you can execute it. This is the most important step if you're making a new animation from a scratch. You don't want to waste a day or a week, only to figure out that your animation will not work.
    3 ) Create your animation/TRAM.
    4 ) Modify the states of the new animation and the old animation in one of two ways:
            A) Modify the old animation and set it to the state you want, (doesn't matter if it's through FromState or Shortcuts) and the new to the remaining state. At this moment, use this method for throws, as method B seems to give them trouble, and that remains to be researched.
            B) Set the desired state of the new animation, and leave the old animation. In the TRAC, set the Weight tag of the old animation to 0. This way, whenever you try to trigger the new animation, Oni will have to choose between the old and new animation, since they are the same kind of move triggered from the same state. But it will always choose the new animation, as it has bigger weight (the default is 100). This is the better method, as it will allow you to avoid editing vanilla animations, and consequently avoid potential mod conflicts. You will also edit the TRAC either way, as you need to add your new animation to it.
    5 ) If you want to make a throw, see the next paragraph.
    6 ) That's it, there's your JF/Delayed animation!

THROWS

If you're making a throw, you can divide them as well, but you can do only a limited number of throws in Oni, at least at this moment.
Throws in Oni consist of the source animation (the one that comes from the attacker) and the target animation. Oni knows which target animation it should pick through ThrownX animation types, which are tagged in the source animations in the TargetType tag, and in target animations in the Type and AimingType tags. There are only 17 ThrownX types in Oni, of which only 4 are unused. So that means you can do only 4 new throws for Konoko. 5 if the "Throw" type would work, and more for other characters, since most of them don't have as many throws as Konoko does, and that means they have more unused ThrownX types.
So if you wanted to make a lot of new disarms and regular throws, and also JF/Delayed throws, you're gonna have to choose which ones you want the most. Unless someone finds a way to duplicate ThrownX types in Oni.

Last edited by Delano762 (08/06/19 14:08)


Circus Afro, Circus Afro, Polka Dot, Polka Dot!

Offline

#2 08/06/19 15:08

s10k
Member
Registered: 01/14/07
Website

Re: Creating Just Frame and Delayed animations - Tutorial

Thanks Delano, I really appreciate that people create tutorials for modding. They are always useful, even if not now, somebody in the future will be very glad for this information.

Offline

#3 08/09/19 18:08

onibge
Member
Registered: 07/29/19

Re: Creating Just Frame and Delayed animations - Tutorial

Delano,  I'm trying to recreate Oni with UPBGE  game engine.

I will save huge time if someone from Oni community helps me by providing me with animations. I don't have windows

little video
streamable.com/m6be1

Offline

Board footer

Powered by FluxBB