OBD:BINA/OBJC/MELE

From OniGalore
< OBD:BINA‎ | OBJC
Revision as of 15:12, 19 July 2014 by Iritscen (talk | contribs) (OBJC means "Objects", not "Object Collection")
Jump to navigation Jump to search
ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
FURN << Other OBJC >> NEUT
MELE : Melee profile
XML tutorial
Overview @ Oni Stuff
OBD.png

General settings

Bin r m1.gif


Offset Type Raw Hex Value Description
0x00 char[4] 43 4A 42 4F OBJC objects
0x04 int32 84 75 02 00 161156 size of the complete melee part from this position in bytes
0x08 int32 27 00 00 00 39 object list version
0x0C int32 28 15 00 00 5416 size of the following element in bytes
First element (black outline)
0x00 char[4] 45 4C 45 4D MELE melee
0x04 int32 76 02 00 00 630 old file ID
0x08 int32 00 00 00 00 0 unknown
0x0C float B3 F3 2A 43 170.951950 x-position of unknown
0x10 float C7 0D 71 C1 -15.065864 y-position (height) of unknown
0x14 float CF 29 38 42 46.040829 z-position of unknown
0x18 float 00 00 00 00 0.000000 rotation on the x-axis in degrees
0x1C float 00 00 00 00 0.000000 rotation on the y-axis in degrees
0x20 float 00 00 00 00 0.000000 rotation on the z-axis in degrees


Profile part

Offset Type Raw Hex Value Description
0x24 int32 09 00 00 00 9 melee ID
0x28 char[64] NINJA_Easy space for notes
0x68 char[64] ninja_easy_1 character class name (reference to a ninja_easy_1.ONCC file)
0xA8 int32 64 00 00 00 100 notice in percent; how often AI registeres incoming attack; without noticing it, AI will not block or dodge
0xAC int32 64 00 00 00 100 Dodge base in percent; determines how often AI tries to dodge incoming attacks
0xB0 int32 1E 00 00 00 30 Dodge extra in percent; adds extra chance to dodge incoming attack
0xB4 int32 05 00 00 00 5 Dodge damage amount; amount of damage dealt to character (or incoming in one strong attack) for Dodge extra activation
0xB8 int32 0F 00 00 00 15 1 vs 1 blocking skill in percent; specifies how often AI blocks incoming attack when blocking one enemy
0xBC int32 14 00 00 00 20 Group blocking skill in percent; looks like amount of possibility that AI will try to block attacks incoming from more enemies
0xC0 float 00 00 00 40 2.000000 not blocked; modifier of an AI2 chance for performing such a technique aganist its target that target is not able to block at the moment of the technique start ( striker's kick forward aganist crouching enemy or finishing off staggered enemy or simply attacking running enemy )
0xC4 float 33 33 33 3F 0.700000 must change stance; modifier for a chance to perform technique which will force enemy to change his stance if he wants to defend the technique( stand/crouch )
0xC8 float 00 00 C0 3F 1.500000 blocked but unblockable; modifier for a chance to perform technique which contains unblockable attack even if enemy is in correct defensive stance to "guard" the technique
0xCC float 9A 99 99 3F 1.200000 blocked but has stagger; modifier for a chance to perform technique which will get blocked but target will be block-staggered
0xD0 float 33 33 33 3F 0.700000 blocked but has blockstun; modifier for a chance to perform technique which will get blocked, but target will be block-stunned ( will be forced to stay in block pose for more than one cycle of idle block animation )
0xD4 float 00 00 00 3F 0.500000 blocked; modifier for a chance to perform a technique even tough this technique aims for target which is in correct stance and ready to block this technique at the moment of the technique's start
0xD8 float 00 00 00 40 2.000000 throw danger; still unknown but it has something to do with probability of being thrown; when set very high, AI2 with this MELE is almost unthrowable
0xDC int16 3C 00 60 unknown; always the same
0xDE int16 5A 00 90 unknown
0xE0 int32 1A 00 00 00 26 number of attack techniques
0xE4 int32 06 00 00 00 6 number of evade/dodge techniques
0xE8 int32 07 00 00 00 7 number of maneuver/position techniques (sum of all techniques = amount of elements of the technique part
0xEC int32 6D 00 00 00 109 number of moves (amount of elements of the move part)
Info about whether technique will be considered as "low", "high", "unblockable" or whether it causes block-stagger or block-stun is obtained from technique's move's TRAM's attack part (see OBD:TRAM/raw0x14).
Techniques
They are listed right after the profile's header. Their number is specified in the header, and their size is 88 bytes each.
Moves
They are listed right after the techniques. Their number is specified in the header, and their size is 16 bytes each.

Technique part

Bin r m2.gif


Offset Type Raw Hex Value Description
First element (grey outline)
0x00 char[64] Spinning Suplex space for notes (technique's name)
0x40 bitset32 00 00 00 00 0 flags; see below
0x44 int32 50 00 00 00 80 weight; techniques with higher weight are prefered by engine, if more techniques that can be used at one moment; have same weight, engine calls them in order as they are listed in MELE
0x48 int32 0A 00 00 00 10 unknown
0x4C int32 58 02 00 00 600 repeat delay in frames; after technique is used, it is ignored by engine for this time interval
0x50 int32 02 00 00 00 2 number of moves used by this technique
0x54 int32 57 00 00 00 87 position of the first move for this technique in the move part


Technique flags
  • 00 - nothing;
  • 01 - Interruptible; execution of moves in this technique is interrupted (technique is taken by engine as finished) when enemy is outside range, which specified by position move (which has to be first in the series of moves; it is the third parameter of the position moves ) or by maneuver move (again the third parameter).
  • 02 - GenerousDir; here comes neccessary background for explaining its behavior:
Melee attack or maneuver techniques are enlisted for potential use only if their position move allows it, that means for example an attack technique with CloseLeft position move will not be listed for potential use if the enemy is in front of the A.I. character. However, techniques with GenerousDir flag are listed for potential use not only when position move criteria is met, but also when the enemy is in one of the two neighbouring positions. So melee technique with CloseLeft position move and Generous Dir flag will be enlisted for potential use if the enemy is on the left side of the A.I., and also if the enemy is in the back of the A.I. or in front of the A.I. character. When the melee technique is picked for use, A.I. character positions itself to meet position move criteria (it turns its left side towards enemy in order to use a techique with CloseLeft position move).
Meaning of this flag explains Tanker's behavior. His sidestep run kicks have this flag set, that's why Tanker can turn his left/right side towards the enemy and perform sidestep run kick attack.
  • ??? 03 - Fearless ???; never used in melee profiles. Question is whether this bit really exists or if the name is just a development relic from Blue Box Beta dev files.


For everybody's convenience, I've grouped the techniques with the 0x40 field set to 1 HERE.
geyser 00:00, 20 November 2006 (CET)
0x40 set to 2
This is true for the following techniques :
  • Furies :
    • Body Surf Front
    • Running Kick
    • Running Punch
  • Ninjas :
    • Lightning Stomp
  • Strikers :
    • Jump Kick
    • Running_Kick
    • Running_Punch
  • Tankers :
    • Circle Left
    • Circle Right
    • Run/Dive-Left
    • Run/Dive-Right
    • Run/Drop Kick
    • Run/Jump Kick
    • Run/Jumpkick Back
    • Run/Jumpkick Left
    • Run/Jumpkick Right
    • Slide
For an exhaustive listing (complete with actual classes), see HERE.
That has to be either "Fearless" or "Generous Dir" (whatever that means).
"Somebody better investigate soon." ^^
geyser 00:00, 20 November 2006 (CET)

Move part

Bin r m3.gif


Offset Type Raw Hex Value Description
First element (grey outline)
0x00 int32hb 04 00 00 20 4, 32 move id, move type


the move id belongs to the move type; these move IDs are possible

the move type comes as a high byte; the following types are possible (values in dec):


00 - attack
16 - position
32 - maneuver
48 - evade
64 - throw


0x04 float CD CC 4C 3F 0.800000 move parameter 1 (in this case, "min" : something like the minimum duration of the "Pause")
0x08 float 00 00 00 00 0 move parameter 2 (in this case, none : "Pause" only takes one parameter)
0x0C float 00 00 00 00 0 move parameter 3 (in this case, none : "Pause" only takes one parameter)


Move types
00 - Attack, struct array starts at 0x140A88 in the English EXE
16 - Position, struct array starts at 0x1435B0 in the English EXE
32 - Maneuver, struct array starts at 0x143AB0 in the English EXE
48 - Evade, struct array starts at 0x143E30 in the English EXE
64 - Throw, struct array starts at 0x144370 in the English EXE


Notes

There are 45 melee profiles.

ONCC lookup

It seems that typing different ONCC model names here allows the melee profile to use some "trademark" moves:
  • all ninjas (easy, med, hard) and super_ninja_1 ONCCs allow p_p_k_k_k_k combo
edit: ninja easy doesn't use the p_p_k_k_k_k combo. Where did you get this from? Ssg 12:55, 24 December 2008 (CET)
  • konoko_generic and all red (fury) classes allow p_p_k combo, kick/kick back/run kick behind/run kick throws, k_k_kfw combo
  • all tanker classes allow kick/kick back/run kick behind/run kick throws
  • muro and mutant_muro classes allow p_p_p_p combo.

If you know something else, feel free to complete it. The question about this "trademark" moves is: is it specified in the ONCC or somewhere else ???

All profiles in order of appearance in the list

1 2 3 4 5
NINJA_Easy Security_Guard TCTF_Lite STRIKER_Easy COMGUY
THUG_Air STRIKER_Medium STRIKER_Hard TANKER_Easy2 BLACKOPS_Lite
BLACKOPS_Swat TCTF_Swat ELITE_Easy MADBOMBER NINJABOT_Train1
RED_Easy SNIPER RED_Medium KONOKO BARABAS Rsrch D
BARABAS TCTF D TANKER_Medium2 TANKER_Hard2 MURO_Dream MURO_Final
MURO_Mutant NINJA_Super NINJA_Medium NINJA_Hard RED_Hard
ELITE_Medium ELITE_Hard GRIFFIN STRIKER_Mini COP Male
COP Female THUG_Mfg THUG_Neuro THUG_Pow THUG_Wh
NINJABOT_Train2 NINJABOT_PowPlant TANKER_Easy TANKER_Medium TANKER_Hard
41 42 43 44 45


All profiles sorted by ID

The IDs start at 0 and increase by 1 for every next profile with the exception of the last 3, the IDs of which are 55, 56, 57 (instead of 42, 43, 44)


0 1 2 3 4
Security_Guard TCTF_Lite STRIKER_Easy THUG_Air COMGUY
STRIKER_Medium STRIKER_Hard TANKER_Easy RED_Easy NINJA_Easy
TANKER_Medium BLACKOPS_Lite BLACKOPS_Swat TCTF_Swat ELITE_Easy
TANKER_Hard RED_Medium MADBOMBER NINJABOT_Train1 SNIPER
ELITE_Medium ELITE_Hard KONOKO BARABAS Rsrch D RED_Hard
BARABAS TCTF D NINJA_Medium NINJA_Hard NINJA_Super MURO_Dream
MURO_Final MURO_Mutant GRIFFIN STRIKER_Mini COP Male
COP Female THUG_Mfg THUG_Neuro THUG_Pow THUG_Wh
NINJABOT_Train2 NINJABOT_PowPlant TANKER_Easy2 TANKER_Medium2 TANKER_Hard2
40 41 55 56 57


Bluebox screenshot

308_edit_melee.png


ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
FURN << Other OBJC >> NEUT
MELE : Melee profile
[[OBD:File types/{{{family}}}|{{{family}}} file]]