19,502
edits
m (image was duplicate upload; switching to original upload before deleting it) |
m (→LODConstants: formatting) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 183: | Line 183: | ||
| <Float> | | <Float> | ||
| float | | float | ||
| Always 193,600 ( | | 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 ( | | 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 ( | | 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. This means that the High LOD will always be selected if the camera is | | 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> | ||
Line 202: | Line 202: | ||
|} | |} | ||
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 | 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 220: | 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 275: | 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 294: | 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 576: | 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 673: | 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 1,032: | Line 1,028: | ||
==New character balance== | ==New 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: | 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: | ||
* Health | * Basic: | ||
* Attack strength (per TRAM) | ** Health | ||
* Attack speed (frame count | ** Block chances (melee profile) | ||
* | ** Attack strength (per combat TRAM) | ||
* | ** Attack speed (frame count per combat TRAM) | ||
* Damage multipliers (<DamageFactors>) | * Advanced: | ||
* | ** Damage multipliers (<DamageFactors>) | ||
** Average damage of combat animation set | |||
** Average damage per second (DPS) | |||
{{XML}} | {{XML}} |