OBD talk:ONCP

From OniGalore
Revision as of 19:50, 22 March 2022 by Iritscen (talk | contribs) (→‎murowave, blanka, thunderbolt and super_attractor: seems that we've had this wrong for a long time)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Overview of Vanilla ONCPs

The ONCPs are not named, so the below tables list the names of the ONCCs that typically refer to the ONCP.

First five types

acid env_splash_e01a
dust h2h_dust_e01
trail h2h_trail_e01
snap h2h_snap_e01
thud h2h_thud_e01

The types "acid", "dust", "trail", "snap" and "thud" are present in every ONCC's ONCP, always with the same PAR3 references, listed in the table on the right.

Of the 124 ONCCs in Vanilla Oni, the following 34 have minimal ONCPs that contains only the five basic types:

  • bd_# (#=1-5) and bdfem_# (#=1-4),
  • generic_male_# (#=1-6) and generic_female_# (#=1-9),
  • CopfemA# (#=1-2) and CopmaleA# (#=1-4),
  • SH_generic, SH_dream_lab, Shinzom_generic
  • sniper_generic
Body part override
All of the basic particles are triggered from TRAM, so the "body part override" at ONCP level is mostly 0xFFFF (None).
The only exception is "snap", which uses 0x8000 (same as 0xFFFF but with a management of hit/kill flashes).
As a further exception, the ONCPs of security_guard_1 and security_guard_2 use 0xFFFF for "snap", not 0x8000.

Contrail and glow

Another two widespread particle types are "contrail" and "glow".

Every combatant character has them (except for plain-clothed cops and snipers).

Contrails and glows are triggereg from TRAM on specific body parts, to the "body part override" ID for "contrail" and "glow" is always None (0xFFFF).

ONCC \ part. type contrail glow
security_guard_# h2h_trail_e01 h2h_glow_e01
thug_*_# h2h_thutrail_e01 h2h_thuglow_e01
griffin_* h2h_gritrail_e01 h2h_griglow_e01
comguy_#, mad_bomber h2h_comtrail_e01 h2h_comglow_e01
TCTF_lite_1,
TCTF_lite_blackops_1
h2h_tcltrail_e01 h2h_tclglow_e01
TCTF_swat_1,
TCTF_swat_blackops_1
h2h_swttrail_e01 h2h_swtglow_e01
tanker_*_1 h2h_tantrail_e01 h2h_tanglow_e01
striker_*_#,
striker_dream_lab
h2h_strtrail_e01 h2h_strglow_e01
red_*_# h2h_redtrail_e01 h2h_redglow_e01
elite_*_#, barabus h2h_elitrail_e01 h2h_eliglow_e01
konoko_generic, k3, k4_* h2h_kontrail_e01 h2h_konglow_e01
muro_generic,
mutantmuro
h2h_murtrail_e01 h2h_murglow_e01
ninjabot, ninja_*_# h2h_nintrail_e01 h2h_ninglow_e01
super_ninja_1 h2h_snitrail_e01 h2h_sniglow_e01

Special particles

In addition to "contrail", "glow" and the 5 basic particles, there are several kinds of special/rare particles.

flash

Unique to Elite Strikers and Barabas, never actually used (redundant of the Eliflash1 impact?).

The PAR3 reference is h2h_eliflash_e01, attachment is specified in TRAM (body part override 0xFFFF).

teleport and fireball

Used exclusively by Mukade, but available for all Ninja as well as "ninjabots".

The PAR3 reference is teleport_e01 for "teleport" and w10_sni_e01 for "fireball".

Attachment is specified in TRAM for both (body part override 0xFFFF).

super_glow

Exclusive to Konoko (all variants), Muro and Mutant Muro. Triggered by overpower, hence an explicit body part override 0x0000 (pelvis).

The PAR3 reference is superglow_e01 for Konoko, murosuperglow_e01 for Muro and muroglow_e01 for Mutant Muro.

super_l_hand and super_r_hand

Exclusive to Konoko (all variants) and Muro (not Mutant Muro). Triggered by overpower, with an explicit body part override.

The body part override ID is 0x000E (left hand) for "super_l_hand" and 0x0012 (right hand) for "super_r_hand".

The PAR3 references (same for both hands) are super_e01 for Konoko and murosuper_e01 for Muro.

daodan and daodan2

Exclusive to Konoko (all variants), used for "powerup" animations in Chapters 6, 7, 11 and 14.

Attachment is specified in TRAM (body part override 0xFFFF) for both "daodan" and "daodan2".

The PAR3 reference is h2h_powerup_e01 for "daodan" and h2h_powerup_e01a for "daodan2".

powerup, rocket and barabwave

Exclusive to Barabas, used for regeneration, Earthquaker and jetpack FX. Attached through TRAM (body part override 0xFFFF).

The PAR3 reference is powerup_e01 for "powerup", barab_e01 for "rocket" and barwave_e01 for "barabwave".

murowave, blanka, thunderbolt and super_attractor

Exclusive to Mutant Muro, used for his superpowers: "butt-quake", "thunderbolt" (attractive lightning) and "blanka" (repulsive lightning).

The PAR3 references are murowave_e01 for "murowave", w14_muro_e01 for "blanka", w13_muro_e01 for "thunderbolt" and super_e02 for "super_attractor".

All the particles are triggered from TRAM (body part override 0xFFFF), with the exception of "super_attractor", attached to the chest (0x0008).

death

Allows characters to disappear in a spectacular "dream flash" that leaves behind a creepy ghost shape (TXMPskull). The PAR3 reference is death_e01.

Used in CHAPTER 11 . DREAM DIVER for Griffin, Muro and Konoko, therefore available for muro_generic, griffin generic and k4_G.

Also available for all Konoko variants (not available for griffin_swat or mutantmuro!) as well as for comguy_# and mad_bomber.

The availability of spectacular "dream-death" for Comguy types is intriguing, possibly hinting at Kojiro-like story elements.

Sharing across ONCCs

As a rule the Vanilla ONCPs are shared by ONCCs that have a common ONCV, e.g., if a level has all nine Striker ONCCs, then there will be three copies of the Striker ONCP: one shared by striker_easy_# ONCCs, another shared by striker_med_# ONCCs, and a third one shared by striker_hard_# ONCCs.

However, this is not always enforced. Thus, in leve1_Final of English Oni, striker_easy_1 and striker_easy_3 share the same ONCP and striker_easy_2 has a different one, and there are two different ONCPs for the five thug_wh_# ONCCs.

This variable optimization is the main source of discrepancy in .dat file sizes across different language versions of Oni, along with alternative sound takes left behind by localization teams).

OniSplit optimizes ONCP parenting upon -import and makes sure that all the ONCCs in a .dat file link to the same unique ONCP whenever possible.