19,721
edits
(clarifying the misc. section) |
m (→LODConstants: formatting) |
||
| (13 intermediate revisions by 2 users not shown) | |||
| Line 5: | Line 5: | ||
* ONCP, ONIA, OBPI and OBPM are part of '''ONCC*.oni''' files. | * ONCP, ONIA, OBPI and OBPM are part of '''ONCC*.oni''' files. | ||
* ONCC files are global; they can be found in AE/AEInstaller/vanilla/level0_Final.dat. | * ONCC files are global; they can be found in AE/AEInstaller/vanilla/level0_Final.dat. | ||
==<AirConstants>== | ==<AirConstants>== | ||
| Line 23: | Line 18: | ||
! Description | ! Description | ||
|- | |- | ||
|<FallGravity> | | <FallGravity> | ||
| float | | float | ||
| | | Always 0.55. Used as the speed of a fall when predicting if an attack will hit a target when the attacker is in midair. It seems to be a bug that this is looked at, as <JumpGravity> actually controls the character's gravity while going up <u>and</u> down. | ||
|- | |- | ||
| <JumpGravity> | | <JumpGravity> | ||
| float | | float | ||
| | | Always in range 0.05-0.07. The strength of gravity (as acceleration per frame) for the entire duration of a jump. | ||
|- | |- | ||
| <JumpStartVelocity> | | <JumpStartVelocity> | ||
| Line 41: | Line 36: | ||
| <JetpackAcceleration> | | <JetpackAcceleration> | ||
| float | | float | ||
| Upward acceleration | | Upward acceleration for the duration of time that you hold down JUMP | ||
|- | |- | ||
| <FramesFallGravity> | | <FramesFallGravity> | ||
| int16 | | int16 | ||
| | | Always 7. After this many frames, <FallGravity> is used for the deceleration of a jump when predicting if an attack will hit a target when the attacker is in midair; before that many frames, <JumpGravity> is used for the prediction. It seems to be a bug that this is field is looked at, as <JumpGravity> controls a character's gravity while going up <u>and</u> down. | ||
|- | |- | ||
| <JetpackTimer> | | <JetpackTimer> | ||
| int16 | | int16 | ||
| | | Standard value is 14, but ranges from 4 (Elite Striker) to 20 (Konoko). This misleadingly-named field is the number of frames for which you can continue holding down JUMP to increase the height of your jump. [http://mods.oni2.net/node/83 This mod] vastly increases the value of this field for Barabas. When shapeshifted to him, you can keep ascending by holding JUMP; pressing JUMP multiple times during the time window is also allowed. | ||
|- | |- | ||
| <MaxNoDamageFallingHeight> | | <MaxNoDamageFallingHeight> | ||
| float | | float | ||
| Maximum falling height without damage (see below) | | Maximum falling height without taking damage (see below) | ||
|- | |- | ||
| <MaxDamageFallingHeight> | | <MaxDamageFallingHeight> | ||
| Line 179: | Line 174: | ||
==<LODConstants>== | ==<LODConstants>== | ||
Distances from camera used to choose which [[XML:TRBS|LOD]] (level of detail) to use for a character model. | Distances from camera used to choose which [[XML:TRBS|LOD]] (level of detail) to use for a character model. The numbers are stored as squares of the distance in order to be compared quickly against the square of the current distance from the camera without having to perform any square root operations. | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
| Line 187: | Line 183: | ||
| <Float> | | <Float> | ||
| float | | float | ||
| Always 193,600 (440 | | Always 193,600 (440²). Threshold for Super-Low LOD. If the camera is more than 440 world units (147ft or 44m) from a character, this LOD is selected. | ||
|- | |- | ||
| <Float> | | <Float> | ||
| float | | float | ||
| Always 48,400 (220 | | Always 48,400 (220²). Threshold for Low LOD. If the camera is more than 220 wu (73ft or 22m) from a character, this LOD is selected. | ||
|- | |- | ||
| <Float> | | <Float> | ||
| float | | float | ||
| Always 12,100 (110 | | Always 12,100 (110²). Threshold for Medium LOD. If the camera is more than 110 wu (37ft or 11m) from a character, this LOD is selected. | ||
|- | |- | ||
| <Float> | | <Float> | ||
| float | | float | ||
| Always 0 | | Always 0. This means that the High LOD will always be selected if the camera is 110 wu or less from a character. | ||
|- | |- | ||
| <Float> | | <Float> | ||
| float | | float | ||
| Always 0 | | Always 0. This Super-High LOD is never reached by only looking at camera distance, but continue reading below. | ||
|} | |} | ||
After the above distance-from-camera filter is applied, Oni performs additional calculations which could end up raising or lowering the LOD for this character. See {{SectionLink|Graphics|LOD}} for the details of the logic. | |||
==<HurtSoundConstants>== | ==<HurtSoundConstants>== | ||
| Line 222: | Line 220: | ||
| <PercentageThreshold> | | <PercentageThreshold> | ||
| int16 | | int16 | ||
| Always 15; | | Always 15; minimum damage needed to have maximum chance of playing pain sound (see below for elaboration) | ||
|- | |- | ||
| <Timer> | | <Timer> | ||
| Line 242: | Line 240: | ||
| <DeathChance> | | <DeathChance> | ||
| int16 | | int16 | ||
| Always 100; | | Always 100; chance of playing a death sound | ||
|- | |- | ||
| <VolumeTreshold> | | <VolumeTreshold> | ||
| Line 277: | Line 275: | ||
|} | |} | ||
If the AI is in an alerted state | If the AI is in an alerted state and has not been hurt within the last <Timer> ticks, the odds of playing a pain sound are as follows: if damage being done is at least <PercentageThreshold>, the chance of playing a pain sound is <MaxPercentage>; if less than <PercentageThreshold>, then the chance is <BasePercentage> + (damage done * (<MaxPercentage> - <BasePercentage>)) / <PercentageThreshold>. This ramps up the odds of the pain sound from <BasePercentage> to <MaxPercentage> as the damage runs from 1 HP (38% chance) to 14 HP (86% chance). If the AI is alerted but has already received damage within the last <Timer> ticks, they will not play a pain sound. If the AI was ''not'' in an alerted state before being hit, they will always play a pain sound. | ||
==<AIConstants>== | ==<AIConstants>== | ||
| Line 296: | Line 294: | ||
| <RotationSpeed> | | <RotationSpeed> | ||
| float | | float | ||
| 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 :) | | 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 :) In the vanilla data, it's set to 1 for all ONCCs except for Ninjabots, Ninjas and Mukade, who have the value 2. | ||
|- | |- | ||
| <DazedMinFrames> | | <DazedMinFrames> | ||
| Line 470: | Line 468: | ||
These can be viewed 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). Sample skill settings for one ONCC are shown below. | These can be viewed 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). Sample skill settings for one ONCC are shown below. | ||
The first weapon (weapon 0) is not in the game anymore, whatever it was. Muro's thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade's Devil Star, except '''w10_sni''' is still available). Barabas' Wave Motion Cannon is a bit mixed up since the beam is made of '''w12_ba2''' particles and the grenade is a '''w11_ba1''' particle. | The first weapon (weapon 0) is not in the game anymore, whatever it was. Mutant Muro's thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade's Devil Star, except '''w10_sni''' is still available). Barabas' Wave Motion Cannon is a bit mixed up since the beam is made of '''w12_ba2''' particles and the grenade is a '''w11_ba1''' particle. | ||
{| class="wikitable" style="text-align:center" | {| class="wikitable" style="text-align:center" | ||
| Line 578: | Line 576: | ||
|valign=top| <ImpactModifierName> | |valign=top| <ImpactModifierName> | ||
|valign=top| flag | |valign=top| flag | ||
| Used to choose the correct effect from [[XML:BINA/ONIE#List_of_tags.2C_types.2C_and_flags|ONIE]]; impact name -> material name -> modifier (<Component> probably has to be "Impact") | | Used to choose the correct effect from [[XML:BINA/ONIE#List_of_tags.2C_types.2C_and_flags|ONIE]]; impact name -> material name -> modifier (<Component> probably has to be "Impact"). This appears to have been set in the vanilla data based on the approx. mass of the character, so that Konoko and female cops have "Light", Muro and Thugs have "Medium", and Barabas, Elite Strikers and TCTF SWAT have "Heavy". However some unusual exceptions have been made, as Tankers are set to "Medium" and regular Strikers are "Heavy". | ||
: Any | : Any | ||
: Light | : Light | ||
| Line 665: | Line 663: | ||
|valign=top| <WeaponHand> | |valign=top| <WeaponHand> | ||
|valign=top| flag | |valign=top| flag | ||
| Which hand | | Which hand a character uses to hold their weapon. Only ninjas (including Mukade and the ninjabots) are lefthanded. | ||
: 0 (right) | : 0 (right) | ||
: 1 (left) | : 1 (left) | ||
| Line 675: | Line 673: | ||
|valign=top| <HasSupershield> | |valign=top| <HasSupershield> | ||
|valign=top| int8 | |valign=top| int8 | ||
| | | | ||
Only used by Mutant Muro. When set to 1, the character has a supershield | Only used by Mutant Muro. When set to 1, the character has a [[supershield]]. | ||
|- | |- | ||
| <CantTouchThis> | | <CantTouchThis> | ||
| Line 688: | Line 682: | ||
===<DamageFactors>=== | ===<DamageFactors>=== | ||
The | The float values in these seven tags correspond to damage types (see [[Particle damage types]] for details). Each one is a multiplier against the StunDamage and Knockback parameters of the DamageBlast and DamageChar PAR3 actions, which utilize these DamageTypes. The values range from 0.0-1.0, where 1.0 totally cancels out damage of that type. | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <Float> | | <Float> | ||
| Line 727: | Line 718: | ||
|} | |} | ||
== | ==ONCP: Oni Character Particle (Array)== | ||
* ONCP is used for | * [[OBD:ONCP|ONCPs]] is used for attaching particles to animations. Search for the "Particles" tag in a TRAM XML to see this array. | ||
| Line 743: | Line 734: | ||
</ONCP> | </ONCP> | ||
: <Name> is | : <Name> is used for linking from a TRAM; here are the names available in Oni's data: | ||
:: | :: acid - for Konoko's death event in Vago Biotech (level 3) | ||
:: barabwave - for | :: barabwave - for Barabas' earthquaker | ||
:: blanka - for | :: blanka - for Mutant Muro's repelling lightning attack | ||
:: | :: contrail - for attacks that use colored contrails (character specific <Type>) | ||
:: daodan - Konoko's | :: daodan - for the blast from Konoko's Daodan super-surge | ||
:: daodan2 - Konoko's | :: daodan2 - for the blast from Konoko's final Daodan super-surge at the end of the game | ||
:: | :: death - the dust-like death particle | ||
:: | :: dust - the ground-level particle when player lands from a great height | ||
:: fireball - Mukade's | :: fireball - Mukade's Devil Star | ||
:: flash - attack impact flash | :: flash - attack impact flash | ||
:: | :: glow - colored glow particle for attacks | ||
:: murowave - for | :: murowave - for Mutant Muro's ''ass bomb'' | ||
:: ' | :: snap - for Muro's neck snap move? | ||
:: teleport - for Mukade's teleport animation | :: teleport - for Mukade's teleport animation | ||
:: | :: thud | ||
:: thunderbolt - for | :: thunderbolt - for Mutant Muro's attraction lightning attack | ||
:: | :: trail - white-colored contrail for standard attacks | ||
:: rocket - for | :: rocket - for Barabas' jetpack | ||
:: super_attractor - for MutantMuro | :: super_attractor - for MutantMuro | ||
:: super_glow - | :: super_glow - Daodan glow particle for body | ||
:: super_l_hand - left hand | :: super_l_hand - Daodan glow particle for left hand (<BodyPart>LeftFist) | ||
:: super_r_hand - right hand | :: super_r_hand - Daodan glow particle for right hand (<BodyPart>RightFist) | ||
: <Type> | : <Type> provides the particle class (file name without prefix BINA3RAP and without suffix .oni) | ||
: <BodyPart> means bone | : <BodyPart> means the bone ID; see [[OBD:TRIA#Bones|TRIA]] and [[XML:TRBS]] | ||
:: The bones | :: The bones have these names in XML: | ||
Pelvis | Pelvis | ||
LeftThigh | LeftThigh | ||
| Line 792: | Line 782: | ||
None | None | ||
==ONIA: Oni Character Impact Array== | |||
== | * [[OBD:ONIA|ONIAs]] are used for special attacks, as a kind of extension to [[#CBPI:_Character_Body_Part_Impacts|CBPI]] in ONIEs. See [[XML:BINA/ONIE|ONIE]] for more information. | ||
* ONIA | * <Name> is used for linking from a TRAM. <Type> and <Modifier> are for links to ONIE. "Light", "Medium" and "Heavy" are the possible choices for <Modifier>. | ||
* <Name> is | |||
'''XML structure''' | '''XML structure''' | ||
| Line 809: | Line 796: | ||
[...] | [...] | ||
</ONIA> | </ONIA> | ||
==CBPM: Character Body Part Materials== | ==CBPM: Character Body Part Materials== | ||
* [[OBD:CBPM|CBPMs]] link to [[XML:Mtrl| | * [[OBD:CBPM|CBPMs]] link to [[XML:Mtrl|Mtrls]] which are used by [[XML:BINA/ONIE|ONIEs]]. | ||
'''XML structure''' | '''XML structure''' | ||
The link | The link ID lines up with the bone list in [[OBD:TRIA#Bones|TRIA]]. For example, the eleventh material links to the character's head. | ||
<CBPM id="7"> | <CBPM id="7"> | ||
| Line 843: | Line 828: | ||
</CBPM> | </CBPM> | ||
==CBPI: Character Body Part Impacts== | |||
== | * [[OBD:CBPI|CBPIs]] link to [[XML:Impt|Impts]] which are used by [[XML:BINA/ONIE|ONIEs]]. | ||
* | * Special attacks have their own Impts. See [[#ONIA:_Oni_Character_Impact_Array|ONIA]]. | ||
* Special attacks have | |||
'''XML structure''' | '''XML structure''' | ||
The link | The link ID lines up with the bone list in [[OBD:TRIA#Bones|TRIA]]. For example, the eleventh impact links to the character's head. | ||
<CBPI id="8"> | <CBPI id="8"> | ||
<HitImpacts> | <HitImpacts> | ||
| Line 918: | Line 901: | ||
</CBPI> | </CBPI> | ||
== | ==List of all ONCCs== | ||
barabus | barabus | ||
bdfem_1 | bdfem_1 | ||
| Line 1,043: | Line 1,026: | ||
thug_wh_5 | thug_wh_5 | ||
==New character balance== | |||
==character balance== | To know if a character you're creating is sufficiently balanced, you should compare Oni's vanilla characters against it. Factors that could be taken into account: | ||
* Basic: | |||
** Health | |||
** Block chances (melee profile) | |||
** Attack strength (per combat TRAM) | |||
** Attack speed (frame count per combat TRAM) | |||
* | * Advanced: | ||
* | ** Damage multipliers (<DamageFactors>) | ||
* | ** Average damage of combat animation set | ||
* | ** Average damage per second (DPS) | ||
* | |||
* | |||
* | |||
{{XML}} | {{XML}} | ||