19,687
edits
| Paradox-01 (talk | contribs) m (typo) |  (noted that dazed frame fields are apparently ignored by engine) | ||
| (18 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%" | {| class="wikitable" width="100%" | ||
| ! Id | ! Id | ||
| Line 155: | Line 157: | ||
| |} | |} | ||
| ===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=32px|  | ! width=32px| ID | ||
| ! style="text-align:left"| Name | ! style="text-align:left"| Name | ||
| |- | |- | ||
| | 120  | | 120 | ||
| | Rayman | | Rayman | ||
| |- | |- | ||
| | 121  | | 121 | ||
| |  | | Casey | ||
| |- | |- | ||
| | 122  | | 122 | ||
| |  | | Hayate/Hanako | ||
| |- | |- | ||
| | 123  | | 123 | ||
| | Jester | | Jester | ||
| |- | |- | ||
| | 124  | | 124 | ||
| |  | | Kojiro | ||
| |- | |||
| | 125 | |||
| | Sarai | |||
| |- | |||
| | 126 | |||
| | BGI_Hammer | |||
| |- | |||
| |} | |} | ||
| ==Tags== | |||
| == | |||
| {| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
| !width=150px| XML tag | !width=150px| XML tag | ||
| !width=120px|  | !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 229: | Line 227: | ||
| | <Name> | | <Name> | ||
| | char[64] | | char[64] | ||
| |  | | Space for notes. | ||
| |- | |- | ||
| | <CharacterClass> | | <CharacterClass> | ||
| Line 237: | Line 235: | ||
| | <Notice> | | <Notice> | ||
| | integer | | 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> | ||
| Line 245: | Line 243: | ||
| | <Base> | | <Base> | ||
| | int32 | | int32 | ||
| | Dodge base  | | Dodge base as percentage; determines how often AI tries to dodge incoming attacks. | ||
| |- | |- | ||
| | <Extra> | | <Extra> | ||
| | int32 | | int32 | ||
| | Dodge extra  | | Dodge extra as percentage; adds extra chance to dodge incoming attack. | ||
| |- | |- | ||
| | <ExtraDamageThreshold> | | <ExtraDamageThreshold> | ||
| Line 261: | Line 259: | ||
| | <Single> | | <Single> | ||
| | int32 | | int32 | ||
| |  | | One-on-one blocking skill as percentage; how often an AI blocks an incoming attack when facing one enemy. | ||
| |- | |- | ||
| | <Group> | | <Group> | ||
| | int32 | | int32 | ||
| | Group blocking skill  | | 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 | | 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 | | 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 | | 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 | | float | ||
| |  | | AI's chance to perform a technique which will stagger the target if the target blocks it. | ||
| |- | |- | ||
| | <BlockedButHasBlockstun> | | <BlockedButHasBlockstun> | ||
| | float | | 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 | | 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 | | 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 | | int16 | ||
| |  | | Minimum "down" time when character is knocked down. Ignored. | ||
| |- | |- | ||
| | <DazedMaxFrames> | | <DazedMaxFrames> | ||
| | int16 | | int16 | ||
| |  | | Maximum "down" time when character is knocked down. Ignored. | ||
| |- | |- | ||
| | <Attacks> | | <Attacks> | ||
| Line 309: | 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> | ||
| Line 321: | Line 319: | ||
| | <Name> | | <Name> | ||
| | char[64] | | char[64] | ||
| |  | | Space for notes (used to hold technique's name) | ||
| |- | |- | ||
| | <Flags> | | <Flags> | ||
| Line 327: | Line 325: | ||
| | | | | ||
| : None | : None | ||
| : Interruptible  | : Interruptible | ||
| :  | : GenerousDir | ||
| : Fearless | |||
| See [[OBD:BINA/OBJC/MELE|OBD page]] for explanations. | |||
| |- | |- | ||
| | <Weight> | | <Weight> | ||
| | int32 | | int32 | ||
| | Techniques with higher  | | 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 | | int32 | ||
| |  | | Unused. | ||
| |- | |- | ||
| | <RepeatDelay> | | <RepeatDelay> | ||
| | int32 | | 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 437: | 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 531: | Line 548: | ||
| <Position Type="RunJumpBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | <Position Type="RunJumpBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." /> | ||
| </pre> | </pre> | ||
| {{XML}} | {{XML}} | ||