XML:BINA/OBJC/MELE

From OniGalore
< XML:BINA‎ | OBJC
Jump to navigation Jump to search
MELE : Melee Profile
XML modding tips
  • See HERE to start learning about XML modding.
  • See HERE if you are searching for information on how to handle object coordinates.
  • See HERE for some typical modding errors and their causes.
XML.png
XML

AKEV << Other file types >> CONS

TMBD << Other BINA >> ONIE

FLAG << Other OBJC >> NEUT

switch to OBD page

Unfinished building-60px.jpg

This page is unfinished. Can you fill in any missing information?
If it is not clear which part of the page is unfinished, ask on the talk page.

General information

  • The XML on this page was tested with OniSplit v0.9.61.0.
  • There is only one global "BINACJBOMelee Profile" stored in level0_Final in vanilla Oni.
  • A local file can also be used (stored in level'xx'_Final) for level-specific melee profiles. However, please note that if a character is spawned and does not have a profile in the local file, the global one is NOT read. In other words, the local file completely replaces the level0_Final one.
  • It was partly through MELE modding that Loser was able to create his famous video of parkouring Mukade (see HERE and search for "taped" for the beginning of his technical explanation).

File structure

[...]

Melee IDs

Id Name Id Name Id Name Id Name Id Name Id Name
0 Security_Guard 10 TANKER_Medium 20 ELITE_Medium 30 MURO_Final 40 NINJABOT_Train2 50 -
1 TCTF_Lite 11 BLACKOPS_Lite 21 ELITE_Hard 31 MURO_Mutant 41 NINJABOT_PowPlant 51 -
2 STRIKER_Easy 12 BLACKOPS_Swat 22 KONOKO 32 GRIFFIN 42 - 52 -
3 THUG_Air 13 TCTF_Swat 23 BARABAS Rsrch D 33 STRIKER_Mini 43 - 53 -
4 COMGUY 14 ELITE_Easy 24 RED_Hard 34 COP Male 44 - 45 -
5 STRIKER_Medium 15 TANKER_Hard 25 BARABAS TCTF D 35 COP Female 45 - 55 TANKER_Easy2
6 STRIKER_Hard 16 RED_Medium 26 NINJA_Medium 36 THUG_Mfg 46 - 56 TANKER_Medium2
7 TANKER_Easy 17 MADBOMBER 27 NINJA_Hard 37 THUG_Neuro 47 - 57 TANKER_Hard2
8 RED_Easy 18 NINJABOT_Train1 28 NINJA_Super 38 THUG_Pow 48 - 58 -
9 NINJA_Easy 19 SNIPER 29 MURO_Dream 39 THUG_Wh 49 - 59 -

New IDs

These IDs are available when Custom Characters Melee Profile (AE mod package 23901) is installed, which customizes the global melee file.

ID Name
120 * Rayman
121 * Casey
122 * Hayate/Hanako
123 * Jester
124 * Kojiro
125* Sarai
126* BGI_Hammer

Tags

XML tag Content type Description
<Objects> - Holds the melee profiles, starting with <MELE Id="..."> and ending with </MELE>.
<MELE Id="..."> integer Ignore this.
<Header> -
<Flags> flag Ignore this.
<Position> float x3 Ignore this.
<Rotation> float x3 Ignore this.
<OSD> -
<MeleeId> integer Used by ONCC and CHAR.
<Name> char[64] Space for notes.
<CharacterClass> char[64] ONCCfile_name.oni (without file suffix and prefix)
<Notice> integer Read as a percentage; how often the AI registers an incoming attack; without noticing it, the AI will not block or dodge.
<Dodge> -
<Base> int32 Dodge base as percentage; determines how often AI tries to dodge incoming attacks.
<Extra> int32 Dodge extra as percentage; adds extra chance to dodge incoming attack.
<ExtraDamageThreshold> int32 Amount of damage dealt to character (or incoming in one strong attack) for Dodge extra activation.
<BlockSkill> -
<Single> int32 One-on-one blocking skill as percentage; how often an AI blocks an incoming attack when facing one enemy.
<Group> int32 Group blocking skill as percentage; appears to be the chance that an AI will try to block attacks coming from multiple enemies.
<NotBlocked> float AI's chance for choosing a technique that the target cannot block at the moment of the technique start (e.g. Striker's forward kick against a crouching enemy, finishing off a staggered enemy, or simply attacking a running enemy).
<MustChangeStance> float AI's chance to perform a technique which will force enemy to change his stance (stand/crouch) if he wants to defend against the technique.
<BlockedButUnblockable> float AI's chance to use an attack which is unblockable attack even if the enemy is in the correct defensive stance to "guard" against it.
<BlockedButHasStagger> float AI's chance to perform a technique which will stagger the target if the target blocks it.
<BlockedButHasBlockstun> float AI's chance to perform technique which will block-stun target if the target blocks it (forced to stay in block pose for more than one cycle of the idle block animation).
<Blocked> float AI's chance to perform a technique even though the target is in the correct to block it at the moment of the technique's start.
<ThrowDanger> float A throwing-into-danger weight multiplier; how many times more likely it is that the AI will want to throw its target if the throw will place the target into a danger square.
<DazedMinFrames> int16 Minimum "down" time when character is knocked down.
<DazedMaxFrames> int16 Maximum "down" time when character is knocked down.
<Attacks>

<Evades>


<Maneuvers>

- Use special single tags if you don't want content for one of these parts:
<Attacks />
<Evades />
<Maneuvers />

You must use them in the above order; for instance OniSplit will not accept Maneuvers, Attacks, Evades.

<Technique> -
<Name> char[64] Space for notes (used to hold technique's name)
<Flags> flag
None
Interruptible
GenerousDir
Fearless

See OBD page for explanations.

<Weight> int32 Techniques with higher weights are preferred by the engine, when there is more than one technique that can be used at the moment; when they have the same weight, the engine calls them in the order in which they're listed in MELE.
<Importance> int32 Unused.
<RepeatDelay> int32 In frames; after a technique is used, it is ignored by the engine for this time interval.
<Moves> - Can hold Position, Attack, Throw, Maneuver and Evade tags.

<Moves> tags

The parameters of Maneuver and Position are float values.

  • <Attack Type="..." />
P
PP
PPP
PPPP
PF
PL
PR
PB
PD
PF_PF
PF_PF_PF
PL_PL
PL_PL_PL
PR_PR
PR_PR_PR
PB_PB
PB_PB_PB
PD_PD
PD_PD_PD
K
KK
KKK
KKKF
KF
KL
KR
KB
KD
KF_KF
KF_KF_KF
KL_KL
KL_KL_KL
KR_KR
KR_KR_KR
KB_KB
KB_KB_KB
KD_KD
KD_KD_KD
PPK
PKK
PKP
KPK
KPP
KKP
PK
KP
PPKK
PPKKK
PPKKKK
HP
HPF
HK
HKF
CS_P
CS_K
C_P1
C_P2
C_PF
C_K1
C_K2
C_KF
GETUP_KF
GETUP_KB
R_P
R_K
RB_P
RB_K
RL_P
RL_K
RR_P
RR_K
R_SLIDE
J_P
J_K
JF_P
JF_PB
JF_K
JF_KB
JB_P
JB_K
JL_P
JL_K
JR_P
JR_K

Labels:

P = punch
K = kick
F = forward
B = backward
L = left
R = right
J = jumping
H = heavy (i.e., super move)
C = crouching
CS = crouch start (starting from a crouch)
D = downward?
GETUP, SLIDE = self-explanatory
R = running


  • <Evade Type="..." />
JumpForward
JumpForward2
JumpBack
JumpBack2
JumpLeft
JumpLeft2
JumpRight
JumpRight2
RunJumpForward
RunJumpForward2
RunJumpBack
RunJumpBack2
RunJumpLeft
RunJumpLeft2
RunJumpRight
RunJumpRight2
RollForward
RollBackward
RollLeft
RollRight
<Maneuver Type="Advance" Duration="..." MinRange="..." ThresholdRange="..." />
<Maneuver Type="Retreat" Duration="..." MaxRange="..." ThresholdRange="..." />
<Maneuver Type="CircleLeft" Duration="..." MinAngle="..." MaxAngle="..." />
<Maneuver Type="CircleRight" Duration="..." MinAngle="..." MaxAngle="..." />
<Maneuver Type="Pause" Duration="..." />
<Maneuver Type="Crouch" Duration="..." />
<Maneuver Type="Jump" Duration="..." />
<Maneuver Type="Taunt" Duration="..." />
<Maneuver Type="RandomStop" Chance="..." />
<Maneuver Type="GetUpForward" Duration="..." />
<Maneuver Type="GetUpBackward" Duration="..." />
<Maneuver Type="GetUpRollLeft" Duration="..." />
<Maneuver Type="GetUpRollRight" Duration="..." />
<Maneuver Type="BarabasWave" MaxRange="..." />


  • <Throw Type="..." />
P_Front
K_Front
P_Behind
K_Behind
RP_Front
RK_Front
RP_Behind
RK_Behind
P_FrontDisarm
K_FrontDisarm
P_BehindDisarm
K_BehindDisarm
RP_FrontDisarm
RK_FrontDisarm
P_FrontRifDisarm
K_FrontRifDisarm
P_BehiindRifDisarm
K_BehiindRifDisarm
RP_FrontRifDisarm
RK_FrontRifDisarm
RP_BehindRifDisarm
RK_BehindRifDisarm
Tackle
<Position Type="RunForward" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunLeft" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunRight" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="JumpUp" />
<Position Type="JumpForward" />
<Position Type="JumpLeft" />
<Position Type="JumpRight" />
<Position Type="JumpBack" />
<Position Type="StartToCrouch" />
<Position Type="Crouch" />
<Position Type="Stand" />
<Position Type="CloseForward" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="CloseLeft" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="CloseRight" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="CloseBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunJumpForward" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunJumpLeft" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunJumpRight" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunJumpBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />