XML talk:TRAM: Difference between revisions

m
updating "What we know and not know" (Stand vs Idle anim types) + variant fallback
(removing obsolete ITO notes)
m (updating "What we know and not know" (Stand vs Idle anim types) + variant fallback)
Line 15: Line 15:
: This gives us two options of how to think of the situation: either consider <FromState> being usually the <CurrentState>, or states exist only between anims and serve as transition rules.
: This gives us two options of how to think of the situation: either consider <FromState> being usually the <CurrentState>, or states exist only between anims and serve as transition rules.


Linking to a followup '''state allows for multiple choices''' of what specific animation comes next. For example there's a rare chance that Mai will sneeze if she idles for a long time.
Linking to a followup '''state allows for multiple choices''' of what specific animation comes next. An anim is picked up randomly from a pool of valid animations. Their '''probability or <Weight> is determined by TRAC''' - the anim collection.


An anim is picked up randomly from a pool of valid animations. Their '''probability or <Weight> is determined by TRAC''' - the anim collection.
The Ninja's Moonwalk animation (taunt2) has only a 5% Chance of getting picked up.


             <TRACAnimation>
             <TRACAnimation>
                 <Weight>100</Weight>
                 <Weight>100</Weight>
                 <Animation>TRAMKONOKOidle1</Animation>
                 <Animation>TRAMNINCOMtaunt1</Animation>
             </TRACAnimation>
             </TRACAnimation>
             <TRACAnimation>
             <TRACAnimation>
                 <Weight>100</Weight>
                 <Weight>5</Weight>
                 <Animation>TRAMKONOKOidle2</Animation>
                 <Animation>TRAMNINCOMtaunt2</Animation>
             </TRACAnimation>
             </TRACAnimation>
There's also a rare chance that Mai will sneeze if she stands for a long time.


Here's the sneeze animation with Weight 100, but the real chance of getting picked up is still low. Why?
Here's the sneeze animation with Weight 100, but the real chance of getting picked up is still low. Why?
Welcome to the world of Oni <s>bugs</s> mysteries.


             <TRACAnimation>
             <TRACAnimation>
Line 37: Line 37:
             </TRACAnimation>
             </TRACAnimation>


A working example of <Weight> is the Ninja Moonwalk named taunt2.
That's because all '''idle anims''' are in fact of '''type Stand''' while Konoko '''idle_spec3''' is of '''type Idle'''.


            <TRACAnimation>
The chance of idle type anims to be picked up is determined by ONCC values in <IdleAnimation1Timer> and <IdleAnimation2Timer>.
                <Weight>100</Weight>
                <Animation>TRAMNINCOMtaunt1</Animation>
            </TRACAnimation>
            <TRACAnimation>
                <Weight>5</Weight>
                <Animation>TRAMNINCOMtaunt2</Animation>
            </TRACAnimation>


To let an character flow from one anim state to another the <ToState> is used.
Anyway, to let an character flow from one anim state to another the <ToState> is used.


Let's say a SBG grenade hit Konoko, TRAMKONOKOblownup1 is played, meaning she falls to her back.
Let's say a SBG grenade hit Konoko, TRAMKONOKOblownup1 is played, meaning she falls to her back.
Line 72: Line 65:
Since KONCOMgetup_lt has <ToState>Standing and <Varient>Combat the following idle animation must also have <Varient>Combat.
Since KONCOMgetup_lt has <ToState>Standing and <Varient>Combat the following idle animation must also have <Varient>Combat.


So, next anim played will be KONCOMidle1 or KONCOMidle2.
So, next anim played will be KON'''COM'''idle1 or KON'''COM'''idle2.
 
Konoko will eventually calm when her ONCC<FightModeTimer> run down and then KON'''OKO'''idle1 or KON'''OKO'''idle2 will be played.
 
Actually the COMidle will continue until an non-combat animation will break that loop.
 
That is the fallback behavior of anims getting looked up: if the engine cannot find an animation for an active variant (or "mode") it will choose the normal (non-variant) version.


[...]
[...]
8,288

edits