XML:ONCC: Difference between revisions
Jump to navigation
Jump to search
Paradox-01 (talk | contribs) mNo edit summary |
Paradox-01 (talk | contribs) (some copy paste) |
||
Line 12: | Line 12: | ||
* ONCP, ONIA, OBPI and OBPM are part of '''ONCC*.oni''' files. | * ONCP, ONIA, OBPI and OBPM are part of '''ONCC*.oni''' files. | ||
* ONCC files can be found in Edition/GameDataFolder/level0_Final | * ONCC files can be found in Edition/GameDataFolder/level0_Final | ||
* The XML tags are more or less self-explanatory - if not, look at the [[OBD:ONCC|hex page]].<br>Things that still need deeper explanation: | |||
: <CoverConstants> | |||
: <AutoFreezeConstants> | |||
: <LODConstants> | |||
==<AirConstants>== | |||
{| | |||
{{table}} | |||
|width=200px|<FallGravity> | |||
| downwards velocity? (always 0.55) | |||
|- | |||
| <JumpGravity> | |||
| downward gravity acceleration | |||
|- | |||
| <JumpStartVelocity> | |||
| starting velocity for a simple (tap) JUMP | |||
|- | |||
| <MaxVelocity> | |||
| limit velocity for jumping and gravity flight | |||
|- | |||
| <JetpackAcceleration> | |||
| upward acceleration (jetpack) if you hold JUMP | |||
|- | |||
| <FramesFallGravity> | |||
| upward acceleration (jetpack) if you hold JUMP | |||
|- | |||
| <JetpackTimer> | |||
| time during which you can use the jetpack | |||
|- | |||
| <MaxNoDamageFallingHeight> | |||
| maximal falling height without damage | |||
|- | |||
| <MaxDamageFallingHeight> | |||
| 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 | |||
==<ShadowConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <Texture> | |||
| shadow texture (TXMP) | |||
|- | |||
| <MaxHeight> | |||
| height where the shadow fades out completely | |||
|- | |||
| <FadeHeight> | |||
| | |||
|- | |||
| <SizeMax> | |||
| | |||
|- | |||
| <SizeFade> | |||
| | |||
|- | |||
| <SizeMin> | |||
| | |||
|- | |||
| <AlphaMax> | |||
| transparency of the shadow for the first part of a jump | |||
|- | |||
| <AlphaFade> | |||
| transparency of the shadow for the second part of a jump | |||
|} | |||
==<JumpConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <JumpDistance> | |||
| | |||
|- | |||
| <JumpHeight> | |||
| | |||
|- | |||
| <JumpDistanceSquares> | |||
| | |||
|} | |||
==<CoverConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <RayIncrement> | |||
|always the same (40) | |||
|- | |||
| <RayMax> | |||
| always the same (300) | |||
|- | |||
| <RayAngle> | |||
| always the same (0.017453 = PI/180) | |||
|- | |||
| <RayAngleMax> | |||
| always the same (1.57 = PI/2) | |||
|} | |||
==<AutoFreezeConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <DistanceXZ> | |||
| always the same (5) | |||
|- | |||
| <DistanceY> | |||
| always the same (1) | |||
|} | |||
==<InventoryConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <HypoRegenerationRate> | |||
| (inverse) hypo regeneration rate in frames per health point; overhealth regeneration rate is not affected by this | |||
if rate = 60; if a hypo restores 50HP then we get 60/1 * 50 = 3000 frames (50s)<br> | |||
if rate = 6; if a hypo restores 50HP then we get 6/1 * 50 = 300 frames (5s)<br> | |||
if rate = 0 it becomes rate = 1 at runtime, so regeneration will still take 50 frames (< 1s) | |||
|} | |||
==<LODConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <Float> | |||
| always the same; (193600) this is 440 squared | |||
|- | |||
| <Float> | |||
| always the same; (48400) this is 220 squared | |||
|- | |||
| <Float> | |||
| always the same; (12100) this is 110 squared | |||
|- | |||
| <Float> | |||
| always the same; (0) | |||
|- | |||
| <Float> | |||
| always the same; (0) | |||
|} | |||
==<HurtSoundConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <BasePercentage> | |||
| | |||
|- | |||
| <MaxPercentage> | |||
| | |||
|- | |||
| <PercentageThreshold> | |||
| | |||
|- | |||
| <Timer> | |||
| | |||
|- | |||
| <MinTimer> | |||
| | |||
|- | |||
| <MaxLight> | |||
| | |||
|- | |||
| <MaxMedium> | |||
| | |||
|- | |||
| <DeathChance> | |||
| | |||
|- | |||
| <VolumeTreshold> | |||
| | |||
|- | |||
| <MediumTreshold> | |||
| | |||
|- | |||
| <HeavyTreshold> | |||
| | |||
|- | |||
| <MinVolume> | |||
| | |||
|- | |||
| <LightSound> | |||
| | |||
|- | |||
| <MediumSound> | |||
| | |||
|- | |||
| <HeavySound> | |||
| | |||
|- | |||
| <DeathSound> | |||
| | |||
|} | |||
==<AIConstants>== | |||
{| | |||
{{table}} | |||
|width=200px| <Flags> | |||
| | |||
: NoStartleAnim | |||
: EnableMeleeFireDodge | |||
: ShootDodge | |||
: RunAwayDodge | |||
: NotUsed | |||
|- | |||
| <RotationSpeed> | |||
| | |||
|- | |||
| <DazedMinFrames> | |||
| | |||
|- | |||
| <DazedMaxFrames> | |||
| | |||
|- | |||
| <DodgeReactFrames> | |||
| | |||
|- | |||
| <DodgeTimeScale> | |||
| | |||
|- | |||
| <DodgeWeightScale> | |||
| | |||
|- | |||
| see [[#<Targeting>|<Targeting>]] | |||
| | |||
|- | |||
| see [[#<WeaponSkills>|<WeaponSkills>]] | |||
| | |||
|- | |||
| <DeadMakeSureDelay> | |||
| | |||
|- | |||
| <InvestigateBodyDelay> | |||
| | |||
|- | |||
| <LostContactDelay> | |||
| | |||
|- | |||
| <DeadTauntChance> | |||
| | |||
|- | |||
| <GoForGunChance> | |||
| | |||
|- | |||
| <RunPickupChance> | |||
| | |||
|- | |||
| <CombatId> | |||
| | |||
|- | |||
| <MeleeId> | |||
| | |||
|- | |||
| see [[OBD_talk:SNDD#step_1:_preparing_the_TRAM|SNDD talk page]] | |||
| | |||
|- | |||
| <HostileThreatDefiniteTimer> | |||
| | |||
|- | |||
| <HostileThreatStrongTimer> | |||
| | |||
|- | |||
| <HostileThreatWeakTimer> | |||
| | |||
|- | |||
| <FriendlyThreatDefiniteTimer> | |||
| | |||
|- | |||
| <FriendlyThreatStrongTimer> | |||
| | |||
|- | |||
| <FriendlyThreatWeakTimer> | |||
| | |||
|- | |||
| <EarshotRadius> | |||
| | |||
|} | |||
===<Targeting>=== | |||
{| | |||
{{table}} | |||
|width=200px| <StartleMissAngle> | |||
| | |||
|- | |||
| <StartleMissDistance> | |||
| | |||
|- | |||
| <PredictAmount> | |||
| | |||
|- | |||
| <PredictPositionDelayFrames> | |||
| | |||
|- | |||
| <PredictDelayFrames> | |||
| | |||
|- | |||
| <PredictVelocityFrames> | |||
| | |||
|- | |||
| <PredictTrendFrames> | |||
| | |||
|} | |||
===<WeaponSkills>=== | |||
{| | |||
{{table}} | |||
|width=200px| <RecoilCompensation> | |||
| | |||
|- | |||
| <BestAimingAngle> | |||
| | |||
|- | |||
| <ShotGroupError> | |||
| | |||
|- | |||
| <ShotGroupDecay> | |||
| | |||
|- | |||
| <ShootingInaccuracyMultiplier> | |||
| | |||
|- | |||
| <MinShotDelay> | |||
| | |||
|- | |||
| <MaxShotDelay> | |||
| | |||
|} | |||
===<VisionConstants>=== | |||
{| | |||
{{table}} | |||
|width=200px| <CentralDistance> | |||
| | |||
|- | |||
| <PeripheralDistance> | |||
| | |||
|- | |||
| <VerticalRange> | |||
| | |||
|- | |||
| <CentralRange> | |||
| | |||
|- | |||
| <CentralMax> | |||
| | |||
|- | |||
| <PeripheralRange> | |||
| | |||
|- | |||
| <PeripheralMax> | |||
| | |||
|} | |||
==ONCV, death particle, TRBS, TRMA, TRAC, TRAS, health, daodan, etc.== | |||
{| | |||
{{table}} | |||
|width=200px| <Variant> | |||
| ONCV name | |||
|- | |||
| <Particles> | |||
| ONCP instance number | |||
|- | |||
| <Impacts> | |||
| ONIA instance number | |||
|- | |||
| <ImpactModifierName> | |||
| | |||
|- | |||
| <Impacts> | |||
| Holds a lot <ONCCImpact><Name>...</Name></ONCCImpact> | |||
|- | |||
| <DeathParticle> | |||
| | |||
|- | |||
| <BodySet> | |||
| TRBS file | |||
|- | |||
| <BodyTextures> | |||
| TRMA file | |||
|- | |||
| <BodyMaterials> | |||
| [[#CBPM: character body part materials|CBPM]] instance number | |||
|- | |||
| <BodyImpacts> | |||
| [[#CBPI: character body part impacts|CBPI]] instance number | |||
|- | |||
| <FightModeTimer> | |||
| | |||
|- | |||
| <IdleAnimation1Timer> | |||
| | |||
|- | |||
| <IdleAnimation2Timer> | |||
| | |||
|- | |||
| <Health> | |||
| | |||
|- | |||
| <FeetBones> | |||
| | |||
|- | |||
| <MinBodySizeFactor> | |||
| | |||
|- | |||
| <MaxBodySizeFactor> | |||
| | |||
|- | |||
| <DamageFactors> | |||
| | |||
|- | |||
| <BossShieldProtectAmount> | |||
| | |||
|- | |||
| <Animations> | |||
| | |||
|- | |||
| <AimingScreens> | |||
| | |||
|- | |||
| <AIRateOfFire> | |||
| | |||
|- | |||
| <DeathDeleteDelay> | |||
| | |||
|- | |||
| <WeaponHand> | |||
| | |||
|- | |||
| <HasDaodanPowers> | |||
| | |||
|- | |||
| <HasSupershield> | |||
| | |||
|- | |||
| <CantTouchThis> | |||
| | |||
|} | |||
Revision as of 09:42, 10 April 2012
The xml code on this page is based on onisplit v0.9.61.0 |
ONCC: Oni character class
general information
- ONCP, ONIA, OBPI and OBPM are part of ONCC*.oni files.
- ONCC files can be found in Edition/GameDataFolder/level0_Final
- The XML tags are more or less self-explanatory - if not, look at the hex page.
Things that still need deeper explanation:
- <CoverConstants>
- <AutoFreezeConstants>
- <LODConstants>
<AirConstants>
<FallGravity> | downwards velocity? (always 0.55) |
<JumpGravity> | downward gravity acceleration |
<JumpStartVelocity> | starting velocity for a simple (tap) JUMP |
<MaxVelocity> | limit velocity for jumping and gravity flight |
<JetpackAcceleration> | upward acceleration (jetpack) if you hold JUMP |
<FramesFallGravity> | upward acceleration (jetpack) if you hold JUMP |
<JetpackTimer> | time during which you can use the jetpack |
<MaxNoDamageFallingHeight> | maximal falling height without damage |
<MaxDamageFallingHeight> | 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
<ShadowConstants>
<Texture> | shadow texture (TXMP) |
<MaxHeight> | height where the shadow fades out completely |
<FadeHeight> | |
<SizeMax> | |
<SizeFade> | |
<SizeMin> | |
<AlphaMax> | transparency of the shadow for the first part of a jump |
<AlphaFade> | transparency of the shadow for the second part of a jump |
<JumpConstants>
<JumpDistance> | |
<JumpHeight> | |
<JumpDistanceSquares> |
<CoverConstants>
<RayIncrement> | always the same (40) |
<RayMax> | always the same (300) |
<RayAngle> | always the same (0.017453 = PI/180) |
<RayAngleMax> | always the same (1.57 = PI/2) |
<AutoFreezeConstants>
<DistanceXZ> | always the same (5) |
<DistanceY> | always the same (1) |
<InventoryConstants>
<HypoRegenerationRate> | (inverse) hypo regeneration rate in frames per health point; overhealth regeneration rate is not affected by this
if rate = 60; if a hypo restores 50HP then we get 60/1 * 50 = 3000 frames (50s) |
<LODConstants>
<Float> | always the same; (193600) this is 440 squared |
<Float> | always the same; (48400) this is 220 squared |
<Float> | always the same; (12100) this is 110 squared |
<Float> | always the same; (0) |
<Float> | always the same; (0) |
<HurtSoundConstants>
<BasePercentage> | |
<MaxPercentage> | |
<PercentageThreshold> | |
<Timer> | |
<MinTimer> | |
<MaxLight> | |
<MaxMedium> | |
<DeathChance> | |
<VolumeTreshold> | |
<MediumTreshold> | |
<HeavyTreshold> | |
<MinVolume> | |
<LightSound> | |
<MediumSound> | |
<HeavySound> | |
<DeathSound> |
<AIConstants>
<Flags> |
|
<RotationSpeed> | |
<DazedMinFrames> | |
<DazedMaxFrames> | |
<DodgeReactFrames> | |
<DodgeTimeScale> | |
<DodgeWeightScale> | |
see <Targeting> | |
see <WeaponSkills> | |
<DeadMakeSureDelay> | |
<InvestigateBodyDelay> | |
<LostContactDelay> | |
<DeadTauntChance> | |
<GoForGunChance> | |
<RunPickupChance> | |
<CombatId> | |
<MeleeId> | |
see SNDD talk page | |
<HostileThreatDefiniteTimer> | |
<HostileThreatStrongTimer> | |
<HostileThreatWeakTimer> | |
<FriendlyThreatDefiniteTimer> | |
<FriendlyThreatStrongTimer> | |
<FriendlyThreatWeakTimer> | |
<EarshotRadius> |
<Targeting>
<StartleMissAngle> | |
<StartleMissDistance> | |
<PredictAmount> | |
<PredictPositionDelayFrames> | |
<PredictDelayFrames> | |
<PredictVelocityFrames> | |
<PredictTrendFrames> |
<WeaponSkills>
<RecoilCompensation> | |
<BestAimingAngle> | |
<ShotGroupError> | |
<ShotGroupDecay> | |
<ShootingInaccuracyMultiplier> | |
<MinShotDelay> | |
<MaxShotDelay> |
<VisionConstants>
<CentralDistance> | |
<PeripheralDistance> | |
<VerticalRange> | |
<CentralRange> | |
<CentralMax> | |
<PeripheralRange> | |
<PeripheralMax> |
ONCV, death particle, TRBS, TRMA, TRAC, TRAS, health, daodan, etc.
<Variant> | ONCV name |
<Particles> | ONCP instance number |
<Impacts> | ONIA instance number |
<ImpactModifierName> | |
<Impacts> | Holds a lot <ONCCImpact><Name>...</Name></ONCCImpact> |
<DeathParticle> | |
<BodySet> | TRBS file |
<BodyTextures> | TRMA file |
<BodyMaterials> | CBPM instance number |
<BodyImpacts> | CBPI instance number |
<FightModeTimer> | |
<IdleAnimation1Timer> | |
<IdleAnimation2Timer> | |
<Health> | |
<FeetBones> | |
<MinBodySizeFactor> | |
<MaxBodySizeFactor> | |
<DamageFactors> | |
<BossShieldProtectAmount> | |
<Animations> | |
<AimingScreens> | |
<AIRateOfFire> | |
<DeathDeleteDelay> | |
<WeaponHand> | |
<HasDaodanPowers> | |
<HasSupershield> | |
<CantTouchThis> |
ONCP: character particle
- ONCP is used for giving particle to animations. Search for "Particles" tag in TRAM file.
XML structure
<ONCP id="3"> <Particles> <ONCPParticle> <Name>...</Name> <Type>...</Type> <BodyPart>...</BodyPart> </ONCPParticle> [...] </Particles> </ONCP>
- <Name> is anchor for TRAM link; vanilla names:
- acid - for death event in bio lab (level 3)
- barabwave - for Baraba's earthquaker
- blanka - for one of MutantMuro's special attacks
- contrail - for colored heavy attacks (character specific <Type>)
- daodan - Konoko's daodan blow
- daodan2 - Konoko's daodan blow (last level)
- death
- dust
- fireball - Mukade's devil star
- flash - attack impact flash
- glow - colored glow particle for attacks
- murowave - for MutantMuro's ass bomb
- snap - health indicator particle ?
- teleport - for Mukade's teleport animation
- thud
- thunderbolt - for one of MutantMuro's special attacks
- trail - white color contrail for standard attacks
- rocket - for Baraba's jetpack
- super_attractor - for MutantMuro
- super_glow - body daodan glow particle
- super_l_hand - left hand daodan glow particle (<BodyPart>LeftFist)
- super_r_hand - right hand daodan glow particle (<BodyPart>RightFist)
- <Type> provide particle (file name without prefix BINA3RAP and without suffix .oni)
- <BodyPart> means bone Id, see TRIA; also allowed: "KillImpact"
ONIA: Oni character impact array
- ONIA is used for special attacks as kind of extension to CBPI in ONIE.
- <Name> is anchor for TRAM link, <Type> and <Modifier> are links for ONIE. "Light", "Medium" and "Heavy" are possible modifier.
- See ONIE for more information.
XML structure
<ONIA id="4"> <Impacts> <ONIAImpact> <Name>...</Name> <Type>Bar_Super_Punch</Type> <Modifier>Heavy</Modifier> </ONIAImpact> [...] </ONIA>
CBPM: character body part materials
XML structure
The link Id is equal to bone list in TRIA. For example: eleventh material links to character's head.
<CBPM id="7"> <Materials> <Link>MtrlCloth</Link> <Link>MtrlCloth</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlCloth</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlCloth</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> <Link>MtrlArmor</Link> </Materials> </CBPM>
CBPI: character body part impacts
- They link to Impt files which are used by ONIE.
- Special attacks have there own Impt files. See ONIA.
XML structure
The link Id is equal to bone list in TRIA. For example: eleventh material links to character's head.
<CBPI id="8"> <HitImpacts> <Link>ImptKick_Hit</Link> <Link>ImptKick_Hit</Link> <Link>ImptKick_Hit</Link> <Link>ImptKick_Hit</Link> <Link>ImptKick_Hit</Link> <Link>ImptKick_Hit</Link> <Link>ImptKick_Hit</Link> <Link>ImptKick_Hit</Link> <Link>ImptPunch_Hit</Link> <Link>ImptHead_Hit</Link> <Link>ImptHead_Hit</Link> <Link>ImptHead_Hit</Link> <Link>ImptPunch_Hit</Link> <Link>ImptPunch_Hit</Link> <Link>ImptPunch_Hit</Link> <Link>ImptHead_Hit</Link> <Link>ImptPunch_Hit</Link> <Link>ImptPunch_Hit</Link> <Link>ImptPunch_Hit</Link> </HitImpacts> <BlockedImpacts> <Link>ImptKick_Blocked</Link> <Link>ImptKick_Blocked</Link> <Link>ImptKick_Blocked</Link> <Link>ImptKick_Blocked</Link> <Link>ImptKick_Blocked</Link> <Link>ImptKick_Blocked</Link> <Link>ImptKick_Blocked</Link> <Link>ImptKick_Blocked</Link> <Link>ImptPunch_Blocked</Link> <Link>ImptHead_Blocked</Link> <Link>ImptHead_Blocked</Link> <Link>ImptHead_Blocked</Link> <Link>ImptPunch_Blocked</Link> <Link>ImptPunch_Blocked</Link> <Link>ImptPunch_Blocked</Link> <Link>ImptHead_Blocked</Link> <Link>ImptPunch_Blocked</Link> <Link>ImptPunch_Blocked</Link> <Link>ImptPunch_Blocked</Link> </BlockedImpacts> <KilledImpacts> <Link>ImptKick_Killed</Link> <Link>ImptKick_Killed</Link> <Link>ImptKick_Killed</Link> <Link>ImptKick_Killed</Link> <Link>ImptKick_Killed</Link> <Link>ImptKick_Killed</Link> <Link>ImptKick_Killed</Link> <Link>ImptKick_Killed</Link> <Link>ImptPunch_Killed</Link> <Link>ImptHead_Killed</Link> <Link>ImptHead_Killed</Link> <Link>ImptHead_Killed</Link> <Link>ImptPunch_Killed</Link> <Link>ImptPunch_Killed</Link> <Link>ImptPunch_Killed</Link> <Link>ImptHead_Killed</Link> <Link>ImptPunch_Killed</Link> <Link>ImptPunch_Killed</Link> <Link>ImptPunch_Killed</Link> </KilledImpacts> </CBPI>
special ONCC overview
"Here you can download the complete overview of all used different ONCC files as a text file.
Copy it to a spreadsheet calculation program like Excel." - ssg