OBD:ONCC
Jump to navigation
Jump to search
ONI BINARY DATA |
---|
OFGA << Other file types >> ONCP |
ONCC : Oni Character Class |
Character file |
Struct def for OUP |
Overview @ Oni Stuff |
TXT overviews (672 kB each) : "," decimals or "." decimals |
0x00 - 0x27
The examples provided are konoko_generic.ONCC from level3_Final
Offset | Hex | Translation | Meaning |
---|---|---|---|
0x00 | 01 DF 03 00 | 991 | 00991-konoko_generic.ONCC |
0x04 | 01 00 00 06 | 3 | level 3 |
0x08 | CD CC 0C 3F | 0.550000 | downwards velocity? (unknown, always 0.55) |
0x0C | 8F C2 75 3D | 0.060000 | downward gravity acceleration |
0x10 | CD CC 8C 3F | 1.100000 | starting velocity for a simple (tap) JUMP |
0x14 | 00 00 80 C0 | -4.000000 | limit velocity for jumping and gravity flight |
0x18 | 8F C2 F5 3C | 0.030000 | upward acceleration (jetpack) if you hold JUMP |
0x1C | 07 00 | 7 | gravity timer? (unknown, always 7) |
0x1E | 14 00 | 20 | jetpack timer; time during which you can use the jetpack |
0x20 | 00 00 34 42 | 45.000000 | maximal falling height without damage |
0x24 | 00 00 07 43 | 135.000000 | maximal falling height with damage |
- Units
- times are in frames
- heights are in world units
- velocities are in world units per frames
- accelerations are in world units per frames squared
- Downwards velocity
- could correspond to the steady push experienced when neither jumping nor falling
- would be roughly equivalent to the starting velocity of a fall
- although the value .55 seems right, the "sinking" seems to be hardcoded now
- Gravity timer
- Seems to be hardcoded now (could be the time until gravity switches on)
- Jetpack timer
- You can press JUMP multiple times during the time window (quite fun!)
- Falling height
- let FH1 be the height at 0x20
- let FH2 be the height at 0x24
- let BH be the base health of the character
- let FH be the actual falling height
- then, if FH > FH2, the character is killed
- if FH < FH1, the character takes no damage
- if FH1 < FH < FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH
0x28-0x4B
0x28 | 01 F8 03 00 | 1016 | link to 01016-shadow1.TXMP |
0x2C | 00 00 40 41 | 12.000000 | height where the shadow fades out completely |
0x30 | 00 00 00 41 | 8.000000 | height where the diameter of the shadow decreases and the shadow fades out half |
0x34 | 00 00 C0 40 | 6.000000 | height where the diameter of the shadow decreases |
0x38 | 00 00 90 40 | 4.500000 | height where the diameter of the shadow decreases |
0x3C | 00 00 40 40 | 3.000000 | height where the diameter of the shadow decreases |
0x40 | 30 00 | 48 | transparency of the shadow for the first part of a jump |
0x42 | 30 00 | 48 | transparency of the shadow for the second part of a jump |
0x44 | 00 00 C8 41 | 25.000000 | unknown; always the same |
0x48 | 16 | 22 | unknown |
0x49 | 06 | 6 | unknown; always the same |
0x4A | AD DE | dead | blank filler (always there) |
0x4C-0x67
0x4C | 00 00 20 42 | 40.000000 | unknown; always the same |
0x50 | 00 00 96 43 | 300.000000 | unknown; always the same |
0x54 | 35 FA 8E 3C | 0.017453 | unknown; always the same |
0x58 | DB 0F C9 3F | 1.570796 | unknown; always the same |
0x5C | 00 00 A0 40 | 5.000000 | unknown; always the same |
0x60 | 00 00 80 3F | 1.000000 | unknown; always the same |
0x64 | 06 00 | 6 | (inverse) hypo regeneration rate in frames per hitpoint |
0x66 | AD DE | dead | blank filler (always there) |
- Hypo regeneration
- 1 hitpoint per 6 frames is 10 hitpoints per second
- (same setting for all characters)
0x68-0x91
0x68 | 00 10 3D 48 | 193600.000000 | unknown; always the same |
0x6C | 00 10 3D 47 | 48400.000000 | unknown; always the same |
0x70 | 00 10 3D 46 | 12100.000000 | unknown; always the same |
0x74 | 00 00 00 00 | 0.000000 | unknown; always the same |
0x78 | 00 00 00 00 | 0.000000 | unknown; always the same |
0x7C | 23 00 | 35 | unknown; always the same |
0x7E | 5A 00 | 90 | unknown; always the same |
0x80 | 0F 00 | 15 | unknown; always the same |
0x82 | 78 00 | 120 | unknown; always the same |
0x84 | 23 00 | 35 | unknown; always the same |
0x86 | 01 00 | 1 | unknown; always the same |
0x88 | 02 00 | 2 | unknown; always the same |
0x8A | 64 00 | 100 | unknown; always the same |
0x8C | 0A 00 | 10 | unknown; always the same |
0x8E | 0C 00 | 12 | unknown; always the same |
0x90 | 16 00 | 22 | unknown; always the same |
0x92-0x127
0x92 | 00 | 0 | runtime only: if 1 sound pointers have been set |
0x93 | DE | dead | blank filler (always there) |
0x94 | 00 00 00 3F | 0.500000 | unknown; always the same (sound volume?) |
0x98 | konoko_hurt_light + null char + blank filler |
hurt light sound (08121-konoko_hurt_light.imp.OSBD of level 0) | |
0xB8 | konoko_hurt_medium + null char + blank filler |
hurt medium sound (08123-konoko_hurt_medium.imp.OSBD of level 0) | |
0xD8 | konoko_hurt_heavy + null char + blank filler |
hurt heavy sound (08119-konoko_hurt_heavy.imp.OSBD of level 0) | |
0xF8 | konoko_death + null char + blank filler |
death sound (08115-konoko_death.imp.OSBD of level 0) | |
0x118 | 00 00 00 00 | 0 | runtime only: pointer to hurt light sound |
0x11C | 00 00 00 00 | 0 | runtime only: pointer to hurt medium sound |
0x120 | 00 00 00 00 | 0 | runtime only: pointer to hurt heavy sound |
0x124 | 00 00 00 00 | 0 | runtime only: pointer to death sound |
0x128-0x137
0x128 | 17 00 00 00 | 23 | unknown |
0x12C | 00 00 80 3F | 1.000000 | AI rotation speed factor |
0x130 | 06 00 | 6 | unknown |
0x132 | 18 00 | 24 | unknown |
0x134 | 0F 00 | 15 | unknown |
0x136 | 00 00 | 0 | unknown; always the same |
- AI rotation speed factor
- reference rotation speed is about 1 turn (360�) per second
- the setting is only effective if the AI is in control
- so it's a bit like the AI's mouse sensitivity :)
- (thanks to Loser)
0x138 - 0x15B
0x138 | 00 00 80 3F | 1.000000 | unknown |
0x13C | 00 00 80 3F | 1.000000 | unknown |
0x140 | 00 00 00 3F | 0.500000 | unknown; always the same |
0x144 | 00 00 C8 41 | 25.000000 | unknown; always the same |
0x148 | 00 00 80 3F | 1.000000 | unknown; always the same |
0x14C | 00 00 00 00 | 0 | unknown |
0x150 | 05 00 00 00 | 5 | unknown |
0x154 | 0F 00 00 00 | 15 | unknown |
0x158 | 3C 00 00 00 | 60 | unknown |
0x15C - 0x293
- SHOOTING SKILLS
These can be reviewed with e.g. ai2_skill_select konoko_generic w1_tap and then either ai2_skill_show (prints to console) or ai2_skill_save (prints to file)
- Fields
- recoil compensation amount, between 0 and 1 (float)
- best aiming angle, in radians (float)
- shot grouping error (float)
- shot grouping decay (float)
- shooting inaccuracy multiplier (float)
- minimum delay between shots, in frames (short)
- maximum delay between shots, in frames (short)
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro's thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade's ball, except w10_sni is still available) (w12_ba2 and w11_ba1 are a bit mixed up : the beam is made of w12_ba2 particles, and the grenade is a w11_ba1 particle...)
See screenshot for the raw hex (example is konoko_generic from level3_Final)
Weapon | Offset | recoil | bestangle | error | decay | inaccuracy | delays |
---|---|---|---|---|---|---|---|
w0_sec | 0x15C/0x173 | 0.0 | 0.000000 | 0.00 | 1.0 | 1.0 | 0 - 0 |
w1_tap | 0x174/0x18B | 0.0 | 0.000000 | 0.40 | 0.4 | 0.0 | 30 - 45 |
w2_sap | 0x18C/0x193 | 0.3 | 0.013962 | 0.13 | 1.0 | 1.0 | 0 - 0 |
w3_phr | 0x194/0x20B | 0.3 | 0.010472 | 0.05 | 0.5 | 1.0 | 0 - 0 |
w4_psm | 0x20C/0x213 | 0.3 | 0.015707 | 0.03 | 0.2 | 1.0 | 0 - 0 |
w5_sbg | 0x214/0x22B | 0.3 | 0.001745 | 0.00 | 0.1 | 1.0 | 0 - 0 |
w6_vdg | 0x22C/0x233 | 0.3 | 0.001745 | 0.13 | 0.9 | 1.0 | 0 - 0 |
w7_scc | 0x234/0x24B | 0.3 | 0.001745 | 0.05 | 0.1 | 1.0 | 0 - 0 |
w8_mbo | 0x24C/0x253 | 0.3 | 0.005236 | 0.01 | 0.5 | 1.0 | 0 - 0 |
w9_scr | 0x254/0x26B | 0.3 | 0.010472 | 0.04 | 0.5 | 1.0 | 0 - 0 |
w10_sni | 0x26C/0x273 | 0.0 | 0.000000 | 0.00 | 1.00 | 1.00 | 0 - 0 |
w11_ba1 | 0x274/0x28B | 0.0 | 0.000000 | 0.00 | 1.0 | 1.0 | 0 - 0 |
w12_ba2 | 0x28B/0x293 | 0.0 | 0.000000 | 0.00 | 1.0 | 1.0 | 0 - 0 |
0x294 - 0x2AF
0x294 | 5A 00 00 00 | 90 | unknown; always the same |
0x298 | F0 00 00 00 | 240 | unknown; always the same |
0x29C | B4 00 00 00 | 180 | unknown; always the same |
0x2A0 | 28 00 00 00 | 40 | unknown; always the same |
0x2A4 | 37 00 00 00 | 55 | unknown |
0x2A8 | 3C 00 00 00 | 60 | unknown |
0x2AC | 00 00 | 0 | unknown |
0x2AE | 16 00 | 22 | unknown |
0x2B0-0x3FB
0x2B0 | 64 | 100 | "taunt" sound slot is used |
0x2B1 | 00 | 0 | "alert" sound slot is empty |
0x2B2 | 00 | 0 | "startle" sound slot is empty |
0x2B3 | 00 | 0 | "checkbody" sound slot is empty |
0x2B4 | 00 | 0 | "pursue" sound slot is empty |
0x2B5 | 00 | 0 | "cower" sound slot is empty |
0x2B6 | 64 | 100 | "superpunch" sound slot is used |
0x2B7 | 64 | 100 | "superkick" sound slot is used |
0x2B8 | 00 | 0 | "super3" sound slot is empty |
0x2B9 | 00 | 0 | "super4" sound slot is empty (always the same) |
0x2BA | 00 00 | 0 | probably a blank filler (always the same) |
0x2BC | c17_99_28konoko | "taunt" sound (04760-c17_99_28konoko.aif.SNDD of level 0) | |
0x2DC | not used | "alert" sound | |
0x2FC | not used | "startle" sound | |
0x31C | not used | "checkbody" sound | |
0x33C | not used | "pursue" sound | |
0x35C | not used | "cower" sound | |
0x37C | c18_79_14konoko | "superpunch" sound (04766-c18_79_14konoko.aif.SNDD of level 0) | |
0x39C | c18_79_15konoko | "superkick" sound (04767-c18_79_15konoko.aif.SNDD of level 0) | |
0x3BC | not used | "super3" sound (only the superninja uses this slot) | |
0x3DC | not used | "super4" sound (never used in Oni) |
0x3FC
00 80 ED 43 | 475.000000 | eyeshot; you can make it visible with the script command ai2_showvision = 1 |
00 00 16 43 | 150.000000 | earshot; you can make it visible with the script command ai2_showvision = 1 |
7D 1B 44 3F | 0.766044 | unknown |
F3 B3 51 3F | 0.819152 | unknown |
E8 D5 12 3F | 0.573576 | unknown |
D5 D0 31 3E | 0.173648 | unknown; always the same |
6B 61 D8 BE | 0.422618 | unknown; always the same |
B4 00 00 00 | 180 | unknown; always the same |
84 03 00 00 | 900 | unknown; always the same |
10 0E 00 00 | 3600 | unknown; always the same |
10 0E 00 00 | 3600 | unknown; always the same |
50 46 00 00 | 18000 | unknown; always the same |
A0 8C 00 00 | 36000 | unknown; always the same |
00 00 80 3F | 1.000000 | unknown; always the same |
01 FB 03 00 | 1019 | link to 01019-konoko.ONCV : defines variants and upgrades |
01 F9 03 00 | 1017 | link to 01017-.ONCP : lists the particles available for this character (trails, flashes, etc) |
01 FA 03 00 | 1018 | link to 01018-.ONIA : lists the special impact sounds (used for special combat moves) |
00 00 00 00 | 0 | unknown; always the same |
Light | modifier; either hardcoded or defunct (only visible in pm_mod_type.WMM_, level 0) edit: WMDD says: Effects found for Impact x on Material y with Modifier: pm_mod_types | |
Footstep_Walk | walk impact (04124-Footstep_Walk.Impt of level 0); always the same; without the impacts you can't hear the steps of a character | |
FF FF | 65535 | unknown; always the same |
Footstep_RunMain | run impact (04129-Footstep_RunMain.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Footstep_Crouch | crouch impact (04123-Footstep_Crouch.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Fall_Slide | fall slide impact (04122-Fall_Slide.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Fall_Land | fall land impact (04119-Fall_Land.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Fall_LandHard | land hard impact (04120-Fall_LandHard.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Fall_Knockdown | fall knockdown impact (04118-Fall_Knockdown.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Fall_Knockdown | fall knockdown impact (04118-Fall_Knockdown.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Fall_Knockdown | fall knockdown impact (04118-Fall_Knockdown.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Footstep_Turn | turn impact (04135-Footstep_Turn.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Footstep_RunStart | run start impact (04131-Footstep_RunStart.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Footstep_SingleStep | single step impact (04134-Footstep_SingleStep.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Footstep_RunStop | run stop impact (04133-Footstep_RunStop.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Footstep_WalkStop | walk stop impact (04137-Footstep_WalkStop.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
Footstep_RunSprint | run fast impact (04130-Footstep_RunSprint.Impt of level 0); always the same | |
FF FF | 65535 | unknown; always the same |
00 00 | 0 | unknown; always the same |
not used | special death particles; only the mad bomber use it | |
00 00 00 00 | 0 | unknown; always the same |
00 00 00 00 | 0 | unknown; always the same |
01 E6 03 00 | 998 | link to 00998-konoko_body_high.TRBS |
01 E7 03 00 | 999 | link to 00999-konoko002_high_texture_generic.TRMA |
01 E8 03 00 | 1000 | link to 01000-.CBPM |
01 EC 03 00 | 1004 | link to 01004-.CBPI |
2C 01 00 00 | 300 | fight mode timer in 1/60 seconds |
30 75 00 00 | 30000 | 1st idle animation timer in 1/60 seconds (Thanks to Loser for this info.) |
30 75 00 00 | 30000 | 2nd idle animation timer in 1/60 seconds (Thanks to Loser for this info.) |
C8 00 00 00 | 200 | basic health of the character model; extra health informations for every unique character you'll find in the Character.BINA file |
48 00 00 00 | 72 | unknown; always the same |
00 00 80 3F | 1.000000 | minimal body size factor (Thanks to geyser for this info.) |
00 00 80 3F | 1.000000 | maximal body size factor (Thanks to geyser for this info.) |
00 00 00 00 | 0.000000 | unknown; always the same |
00 00 00 00 | 0.000000 | unknown; always the same |
00 00 00 3F | 0.500000 | unknown |
00 00 80 3E | 0.250000 | unknown |
00 00 00 00 | 0.000000 | unknown; always the same |
00 00 00 00 | 0.000000 | unknown; always the same |
00 00 00 00 | 0.000000 | unknown; always the same |
00 00 00 3F | 0.500000 | unknown |
01 F6 03 00 | 1014 | link to 01014-konoko_animations.TRAC |
01 F7 03 00 | 1015 | link to 01015-konoko_screens.TRSC |
1E 00 | 30 | unknown; always the same |
00 00 | 0 | time between death and deletion, in frames (about 3 seconds for mad bomber) |
00 | 0 | unknown |
01 | 1 | unknown |
00 | 0 | unknown |
00 | 0 | unknown |
AD DE AD DE | dead | not used; always the same |
- Last 4 bytes before the blank filler
- Something to do with left-hand/right-hand aiming (must be consistent with TRSC link)
Overview table
Maybe split it up and insert the pieces after every section's header.
ONI BINARY DATA |
---|
OFGA << Other file types >> ONCP |
ONCC : Oni Character Class |