18,970
edits
Paradox-01 (talk | contribs) mNo edit summary |
(added explanation of ThrowDanger, DazedMinFrames, DazedMaxFrames and Importance; added missing flags) |
||
(21 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{XML_OBJC_Header | type=MELE | {{XML_OBJC_Header| prev=FLAG | type=MELE | next=NEUT | name=Melee Profile}} | ||
{{finish}} | {{finish}} | ||
== | ==General information== | ||
* The | * The XML on this page was tested with OniSplit v'''0.9.61.0'''. | ||
* BINACJBOMelee Profile. | * 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 [https://www.youtube.com/watch?v=NQE-LjM9GqM parkouring Mukade] (see [[Special:Permalink/13881|HERE]] and search for "taped" for the beginning of his technical explanation). | |||
== | ==File structure== | ||
[...] | |||
==Melee IDs== | |||
{| class="wikitable" width="100%" | |||
! 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. | |||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width= | ! width=32px| ID | ||
! | ! style="text-align:left"| Name | ||
|- | |||
| 120 * | |||
| Rayman | |||
|- | |||
| 121 * | |||
| Casey | |||
|- | |||
| 122 * | |||
| Hayate/Hanako | |||
|- | |||
| 123 * | |||
| Jester | |||
|- | |||
| 124 * | |||
| Kojiro | |||
|- | |||
|125* | |||
| Sarai | |||
|- | |- | ||
| | |126* | ||
| | | BGI_Hammer | ||
|- | |- | ||
| | |} | ||
| | |||
| | ==Tags== | ||
{| class="wikitable" width="100%" | |||
!width=150px| XML tag | |||
!width=120px| Content type | |||
! Description | |||
|- | |- | ||
| <Objects> | | <Objects> | ||
| - | | - | ||
| Holds the melee profiles, starting with <MELE Id="..."> and ending with </MELE> | | Holds the melee profiles, starting with <MELE Id="..."> and ending with </MELE>. | ||
|- | |- | ||
| <MELE Id="..."> | | <MELE Id="..."> | ||
Line 53: | Line 223: | ||
| <MeleeId> | | <MeleeId> | ||
| integer | | integer | ||
| | | Used by ONCC and CHAR. | ||
|- | |- | ||
| <Name> | | <Name> | ||
| | | char[64] | ||
| | | Space for notes. | ||
|- | |- | ||
| <CharacterClass> | | <CharacterClass> | ||
| | | char[64] | ||
| | | <font color="#777777">ONCC</font>file_name<font color="#777777">.oni</font> (without file suffix and prefix) | ||
|- | |- | ||
| <Notice> | | <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> | | <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> | | <BlockSkill> | ||
| | | - | ||
| | | | ||
|- | |- | ||
| <Single> | | <Single> | ||
| | | int32 | ||
| | | One-on-one blocking skill as percentage; how often an AI blocks an incoming attack when facing one enemy. | ||
|- | |- | ||
| <Group> | | <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> | | <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> | | <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> | | <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> | | <BlockedButHasStagger> | ||
| | | float | ||
| | | AI's chance to perform a technique which will stagger the target if the target blocks it. | ||
|- | |- | ||
| <BlockedButHasBlockstun> | | <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> | | <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> | | <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> | | <DazedMinFrames> | ||
| | | int16 | ||
| | | Minimum "down" time when character is knocked down. | ||
|- | |- | ||
| <DazedMaxFrames> | | <DazedMaxFrames> | ||
| | | int16 | ||
| | | Maximum "down" time when character is knocked down. | ||
|- | |- | ||
| <Attacks> | | <Attacks> | ||
Line 125: | Line 307: | ||
<Maneuvers> | <Maneuvers> | ||
| - | | - | ||
| Use special single tags if you don't want content for one of | | Use special single tags if you don't want content for one of these parts: | ||
: <Attacks /> | : <Attacks /> | ||
: <Evades /> | : <Evades /> | ||
: <Maneuvers /> | : <Maneuvers /> | ||
You must use them in the above order; for instance OniSplit will not accept Maneuvers, Attacks, Evades. | |||
|- | |- | ||
| <Technique> | | <Technique> | ||
| | | - | ||
| | | | ||
|- | |- | ||
| <Name> | | <Name> | ||
| | | char[64] | ||
| | | Space for notes (used to hold technique's name) | ||
|- | |- | ||
| <Flags> | | <Flags> | ||
Line 144: | Line 326: | ||
: None | : None | ||
: Interruptible | : Interruptible | ||
: | : GenerousDir | ||
: Fearless | |||
See [[OBD:BINA/OBJC/MELE|OBD page]] for explanations. | |||
|- | |- | ||
| <Weight> | | <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> | | <Importance> | ||
| | | int32 | ||
| | | Unused. | ||
|- | |- | ||
| <RepeatDelay> | | <RepeatDelay> | ||
| | | int32 | ||
| | | In frames; after a technique is used, it is ignored by the engine for this time interval. | ||
|- | |- | ||
| <Moves> | | <Moves> | ||
| | | - | ||
| Can | | Can hold Position, Attack, Throw, Maneuver and Evade tags. | ||
|} | |} | ||
===<Moves> tags=== | |||
The parameters of Maneuver and Position are float values. | |||
* <Attack Type="..." /> | * <Attack Type="..." /> | ||
Line 253: | Line 437: | ||
JR_P | JR_P | ||
JR_K | JR_K | ||
</pre> | |||
Labels: | |||
<pre> | |||
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 | |||
</pre> | </pre> | ||
Line 280: | Line 481: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
Advance | <Maneuver Type="Advance" Duration="..." MinRange="..." ThresholdRange="..." /> | ||
Retreat | <Maneuver Type="Retreat" Duration="..." MaxRange="..." ThresholdRange="..." /> | ||
CircleLeft | <Maneuver Type="CircleLeft" Duration="..." MinAngle="..." MaxAngle="..." /> | ||
CircleRight | <Maneuver Type="CircleRight" Duration="..." MinAngle="..." MaxAngle="..." /> | ||
Pause | <Maneuver Type="Pause" Duration="..." /> | ||
Crouch | <Maneuver Type="Crouch" Duration="..." /> | ||
Jump | <Maneuver Type="Jump" Duration="..." /> | ||
Taunt | <Maneuver Type="Taunt" Duration="..." /> | ||
RandomStop | <Maneuver Type="RandomStop" Chance="..." /> | ||
GetUpForward | <Maneuver Type="GetUpForward" Duration="..." /> | ||
GetUpBackward | <Maneuver Type="GetUpBackward" Duration="..." /> | ||
GetUpRollLeft | <Maneuver Type="GetUpRollLeft" Duration="..." /> | ||
GetUpRollRight | <Maneuver Type="GetUpRollRight" Duration="..." /> | ||
BarabasWave | <Maneuver Type="BarabasWave" MaxRange="..." /> | ||
</pre> | </pre> | ||
Line 331: | Line 526: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
RunForward | <Position Type="RunForward" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
RunLeft | <Position Type="RunLeft" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
RunRight | <Position Type="RunRight" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
RunBack | <Position Type="RunBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
JumpUp | <Position Type="JumpUp" /> | ||
JumpForward | <Position Type="JumpForward" /> | ||
JumpLeft | <Position Type="JumpLeft" /> | ||
JumpRight | <Position Type="JumpRight" /> | ||
JumpBack | <Position Type="JumpBack" /> | ||
StartToCrouch | <Position Type="StartToCrouch" /> | ||
Crouch | <Position Type="Crouch" /> | ||
Stand | <Position Type="Stand" /> | ||
CloseForward | <Position Type="CloseForward" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
CloseLeft | <Position Type="CloseLeft" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
CloseRight | <Position Type="CloseRight" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
CloseBack | <Position Type="CloseBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
RunJumpForward | <Position Type="RunJumpForward" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
RunJumpLeft | <Position Type="RunJumpLeft" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
RunJumpRight | <Position Type="RunJumpRight" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
RunJumpBack | <Position Type="RunJumpBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
</pre> | </pre> | ||
{{XML}} | {{XML}} |