20,509
edits
Paradox-01 (talk | contribs) m (workaround: add a new root particle) |
m (→The Scarlett case: marked dead link) |
||
| (8 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 63: | Line 110: | ||
===The Scarlett case=== | ===The Scarlett case=== | ||
Scarlett bound | Scarlett bound mad_x01 to a character animation (<nowiki>http://oni.bungie.org/forum/viewtopic.php?id=2991</nowiki>, dead link) which spawns the particle at global 0; 0; 0. | ||
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.) | ||
Creating and renaming particle clones would be ideal to introduce the actual changes so that the originals aren't affected. However, over here, the new explosion file isn't recognized which leads to new questions and investigations. But for now, ... not now. | Creating and renaming particle clones would be ideal to introduce the actual changes so that the originals aren't affected. However, over here, the new explosion file isn't recognized which leads to new questions and investigations. But for now, ... not now. | ||
==Discussion on <StopIfBreakable />== | ==Discussion on <StopIfBreakable />== | ||
| Line 79: | Line 125: | ||
: ''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).'' | ||