XML talk:BINA/PAR3: Difference between revisions

m
no edit summary
m (workaround: add a new root particle)
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 (rally visible?)
                 +-- 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
* "e3" seems to provide a safety distance towards level geometry: <WallOffset>0.2</WallOffset>
* "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 [https://dl.dropboxusercontent.com/u/139715/OniGalore/BINA3RAP_Talk/BINA3RAPh2h_powerup_e01a.xml h2h_powerup_e01a] (Syndicate compound level, daodan blast).
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).''


'''Example of <StopIfBreakable /> not stopping a later action:'''
modified BINA3RAPw8_mbo_p01
            <HitWall>
                '''<StopIfBreakable />'''
                <ImpactEffect>
                    <ImpactType>w8_mbo</ImpactType>
                    <ImpactModifier>2</ImpactModifier>
                </ImpactEffect>
                <Die />
            </HitWall>
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_used.wmv
            <HitWall>
                <ImpactEffect>
                    <ImpactType>w8_mbo</ImpactType>
                    <ImpactModifier>2</ImpactModifier>
                </ImpactEffect>
                <Die />
            </HitWall>
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_not_used.wmv
: Side note: There's no visible effect (like decal) on the breakable glass because of ONIE.
For better visibility we can also repeat the two tests with a plasma effect.
            <HitWall>
                '''<StopIfBreakable />'''
                <ImpactEffect>
                    <ImpactType>w3_phr</ImpactType>
                    <ImpactModifier>0</ImpactModifier>
                </ImpactEffect>
                <Die />
            </HitWall>
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_used_phr3_alt.wmv
            <HitWall>
                <ImpactEffect>
                    <ImpactType>w3_phr</ImpactType>
                    <ImpactModifier>0</ImpactModifier>
                </ImpactEffect>
                <Die />
            </HitWall>
https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_not_used_phr3_alt.wmv




8,452

edits