8,452
edits
Paradox-01 (talk | contribs) m (workaround: add a new root particle) |
Paradox-01 (talk | contribs) mNo edit summary |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__TOC__ | __TOC__ | ||
==Particle statistics== | |||
http://paradox.oni2.net/wiki/particle_statistics.txt | |||
==Particle subtype investigation== | |||
TXMP was shown to have 3 types. Similar can be expected from particle. | |||
Due to their huge number a statistic approach might be suitable. | |||
This would be best to be carried out with a programmed tool. | |||
We could look for common traits (tags and tag values). | |||
Expected types | |||
* decal | |||
* lensflare | |||
* 3d object | |||
* contrail | |||
* damage dealer | |||
* General purpose particle (helper particle for location, orientation, attractor, emitter, event, used as emitter or in between a chain) | |||
Beside that there are optional features like "owning damage" which requires the property to be set in each file of the particle chain. | |||
So particles are best to be seen as "teams" not "individuals". | |||
===Decals=== | |||
For example files with <HasDecalState>True could be investigated for shared structure and values. | |||
The result will be probably that Attractors, Emitters, Events aren't not only used for them but disabled (proof by testing). | |||
So only appearance and maybe variables apply for them. | |||
Seems to be always the same with decals: | |||
<Properties> | |||
<HasDecalState>true | |||
<Appearance> | |||
<DisplayType>Decal | |||
Properties based on observation: | |||
* hosting 3d surface must be in tolerance range (10 units) | |||
* <CollideWithChars> .. is ignored by decals | |||
* <TexGeom> .. links to TXMP file | |||
* <Alpha> .. alpha level is ignored when TXMP has adaptiveAlpha flag | |||
* <Tint> .. is ignored by decals | |||
==Exploring Mad Bomber particle== | ==Exploring Mad Bomber particle== | ||
Line 21: | Line 68: | ||
+-- mad_x01 from <Events><Lifetime><CollisionEffect><Effect>, self: <TexGeom>lensflare01 (really visible?) | +-- mad_x01 from <Events><Lifetime><CollisionEffect><Effect>, self: <TexGeom>lensflare01 (really visible?) | ||
| | | | ||
+-- mad_f01 from <Emitters><Emitter><Class>, self: <TexGeom>lensflare01 ( | +-- mad_f01 from <Emitters><Emitter><Class>, self: <TexGeom>lensflare01 (really visible?) | ||
+-- mad_f02 from <Emitters><Emitter><Class>, self: <TexGeom>smoke | +-- mad_f02 from <Emitters><Emitter><Class>, self: <TexGeom>smoke | ||
+-- mad_f03 from <Emitters><Emitter><Class>, self: <TexGeom>bloodyfoot | +-- mad_f03 from <Emitters><Emitter><Class>, self: <TexGeom>bloodyfoot | ||
Line 43: | Line 90: | ||
* Each "count" textured particle comes with its own timer sound | * Each "count" textured particle comes with its own timer sound | ||
* "x" particle holds an sbg sound | * "x" particle holds an sbg sound | ||
* " | * "e03" seems to provide a safety distance towards level geometry: <WallOffset>0.2</WallOffset> | ||
* | * "p04" seems obsolete, main content seems to be a "Sprite" texture but it's invisible, same texture is used by "p03" | ||
Line 67: | Line 114: | ||
I don't know yet what's wrong with the spawning but obviously its supposed to work differently. | I don't know yet what's wrong with the spawning but obviously its supposed to work differently. | ||
That bug (or new "feature") can be avoided by introducing a new root emitter. For tests I used | That bug (or new "feature") can be avoided by introducing a new root emitter. For tests I used h2h_powerup_e01a (<nowiki>https://dl.dropboxusercontent.com/u/139715/OniGalore/BINA3RAP_Talk/BINA3RAPh2h_powerup_e01a.xml</nowiki>, dead link) (Syndicate compound level, daodan blast). | ||
For <SelfImmune>1 to take effect, x01 <HasDamageOwner> must be set to "true". (h2h_powerup_e01a has that already. A complete ''chain of ownage'' is essential.) | For <SelfImmune>1 to take effect, x01 <HasDamageOwner> must be set to "true". (h2h_powerup_e01a has that already. A complete ''chain of ownage'' is essential.) | ||
Line 79: | Line 126: | ||
: ''Within the HitWall PAR3 event, ''[<StopIfBreakable />]'' stops the exection of all PAR3 actions listed BELOW this PAR3 action if the HitWall was called against a breakable material (in vanilla Oni, the only breakable material is glass).'' | : ''Within the HitWall PAR3 event, ''[<StopIfBreakable />]'' stops the exection of all PAR3 actions listed BELOW this PAR3 action if the HitWall was called against a breakable material (in vanilla Oni, the only breakable material is glass).'' | ||
edits