XML:BINA/ONIE: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
(head shot mod (w1_tap + w2_sap), maybe even AE worthy)
Line 1: Line 1:
=[[OBD:BINA/ONIE|BINA/ONIE]]: impact effects=
=[[OBD:BINA/ONIE|BINA/ONIE]]: impact effects=
==XML notes==
More than one particle possible in particle part.
==Visual guides: weapon, melee, environment==
==Visual guides: weapon, melee, environment==
Note about philosophy in here:
Note about philosophy in here:
:These visual guides don't claim be hundred percent right in technical way. I can't look into engine. But they should give a good hint which files are worth to care about and how to debug a mistake: going through all important files, e.g. ''Could it be that my new texture not registered in TMBD?''
:These visual guides don't claim be hundred percent right in technical way. I can't look into engine. But they should give a good hint which files are worth to care about and how to debug a mistake: going through all important files, e.g. ''Could it be that my new texture is not registered in TMBD?''
:However, if you think you should add information or shape this in a more accurate way then do it. =)
:However, if you think you should add information or shape this in a more accurate way then do it. =)


Line 143: Line 147:




<!--==Step-by-step examples==
==examples==
<!--
===Particle - Environment===
===Particle - Environment===
-->
===Particle - Character===
===Particle - Character===
===Character - Character (normal attack)===
===Character - Character (special attack)===
===Character - Environment===


==Mod ideas==
====Extra damage for head hits====
===Revision of Loser's h2w particle system ?===
Okay, here's a beta. w1_tap and w2_sap deals additional damage, amount depends on material "head"/"helmet". Feel free to extend/tweak/criticize.
:Problem 1: shield absorbs particle
: [http://mods.oni2.net/index.php?q=node/71 >> put files into level0_Final]
:Problem 2: permanent use of CPU




Rough draft:
'''damage overview:'''
* ONCC(ONCP) provide particle which is lunched by specific animation (Striker super punch) (to avoid lunching permanently particle).
            <Particle>
                <StartFrame>75</StartFrame>
                <EndFrame>114</EndFrame>
                <Bone>Head</Bone>
                <Name>h2w_co_e01</Name>
            </Particle>
* Character hits wall with head.
* Particle collides with environment.
* Texture material is looked up.
* ONIE decide what particle to start. (Might be different for metal and breakable glass.)
* Weapon-like particle is lunched and hits Character.
* ONIE checks what to do when hitting character or shield. (Let's hope particle goes through shield when there's no shield data.)-->
<!--* If this is not possible then maybe to create a damaging particle inside the shield (when it was hit) by toying with xyz location whereby a good vector is forced to exist by character as attractor. Yeah... -_- (Particle which hit shield dies (delay possible?). Die event is used to emit a new particle, location: died_particle+xyz)--><!--
* Final hitting particle has:
                <DamageChar>
                    <Damage>7</Damage>
                    <StunDamage>64</StunDamage>
                    <KnockBack>12</KnockBack>
                    <DamageType>2</DamageType>
                    <SelfImmune>0</SelfImmune>
                    <CanHitMultiple>0</CanHitMultiple>
                </DamageChar>


w1_tap
: helmet: 4-5 damage; 0.6-1.7 knockback
: head: 8-10 damage; 1.7-2.8 knockback


===Extra damage for head hits===
w2_sap
The beta exists in term of weapons but particle's collision radius went nuts. An effective radius can hit other characters.


The solution might be to reduce the radius to minimal possible number, let particle be attracted by nearest character and set speed to maximum.
: helmet: 2-3 damage; 0.3-0.8 knockback
: head: 4-5 damage; 0.8-1.4 knockback




====Through weapons====
'''basic modifications / new files:'''
Default: +0
Helmet: +4 (damage adding particle is released on specific material)
Head: +8 (damage adding particle is released on specific material)


<font size="-1">
<font size="-1">
Line 204: Line 182:
  </Oni>
  </Oni>
   
   
------------------------------------------------------------------------
   
   
  '''MtrlHead.xml'''
  '''MtrlHead.xml'''
Line 214: Line 193:
  </Oni>
  </Oni>
   
   
------------------------------------------------------------------------
   
   
  '''ONCC'''joetunn_0T.xml (Helmet is registered in eleventh link)
  '''ONCCelite_hard_01.xml''' (Helmet is registered in eleventh link)
   
   
  [...]
  [...]
Line 225: Line 205:
  [...]
  [...]
   
   
------------------------------------------------------------------------
   
   
  BINA3RAPhithead_e01.xml
  '''BINA3RAPhitheadW2_e01.xml'''
  [...]
  [...]
        <Events>
            <HitCharacter>
                <DamageChar>
                    <Damage>
                        <Random Min="4" Max="5" />
                    </Damage>
                    <StunDamage>0</StunDamage>
                    <KnockBack>
                        <Random Min="0.8" Max="1.4" />
                    </KnockBack>
                    <DamageType>0</DamageType>
                    <SelfImmune>1</SelfImmune>
                </DamageChar>
                <Die />
            </HitCharacter>
            <Create>
                <FindAttractor>
                    <DelayTime>0.1</DelayTime>
                </FindAttractor>
                <AttractHoming>
                    <TurnSpeed>400</TurnSpeed>
                    <PredictPosition>10</PredictPosition>
                    <HorizontalOnly>0</HorizontalOnly>
                </AttractHoming>
            </Create>
        </Events>
    [...]
   
   
------------------------------------------------------------------------
 
BINA3RAPhithead_e01.xml, BINA3RAPhithelmet_e01.xml, BINA3RAPhithelmetW2_e01.xml similar to above
   
   
  BINA3RAPhithelmet_e01.xml
  ------------------------------------------------------------------------
[...]
   
   
  BINAEINOimpact_effects.xml (beta only includes modifications for w1_tap)
  '''BINAEINOimpact_effects.xml'''
   
   
  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
Line 285: Line 292:
</font>
</font>


<!--
===Character - Character (normal attack)===
===Character - Character (special attack)===
===Character - Environment===
-->


====Through melee====
==Mod ideas==
...
*How about melee attacks dealing more damage on head/helmet?
 
*Footprints in snow. Should be possible through character-environment collision plus decals or particle which becomes fixed to the ground.
 
===Footprints in snow===
Should be possible through character-environment collision plus decals.-->

Revision as of 22:10, 9 May 2009

BINA/ONIE: impact effects

XML notes

More than one particle possible in particle part.


Visual guides: weapon, melee, environment

Note about philosophy in here:

These visual guides don't claim be hundred percent right in technical way. I can't look into engine. But they should give a good hint which files are worth to care about and how to debug a mistake: going through all important files, e.g. Could it be that my new texture is not registered in TMBD?
However, if you think you should add information or shape this in a more accurate way then do it. =)


overview of involved files when modding ONIE in relation to weapons
if weapon shall have impact effect on environment if weapon shall have impact effect on characters

ONWC-ONIE-AKEV_preview.png

  • weapon fires a particle
  • particle creates a sound and hits textured environment
  • texture’s material name is looked up in TMBD (decals do not work)
  • material file is looked up (can hold parent material)
  • effect is chosen from ONIE by weapon and material
  • if parent material* exists then it is possible that a second effect is lunched
  • ONIE effect leads to a particle and sound file which means the effect (however, sound can be also played from released particle)

* Loser’s material “Explosive” has “Glass” as parent material which shatters objects when hit; this can destroy any object - not just the "glassworld".

ONWC-ONIE-ONCC_preview.png

  • weapon fires a particle
  • particle creates a sound and hits character part
  • character part has an Id (probably through TRIA), Id is sent to CBPM
  • material file is looked up (can hold parent material)
  • effect is chosen from ONIE by weapon and material
  • ONIE effect leads to a particle and sound file which means the effect (however, sound can be also played from released particle)
  • it seems that effects on characters cannot be created through TMBD (still you can see a not working test there called "Character")
  • custom materials can be used for characters in case they are registered in ONIE


overview of involved files when modding ONIE in relation to animations
special attack normal attack

ONCC-ONIE-ONCC_sp-a_TN.png

  • Character performs special attack and shouts attack's name (registered in ONCC).
  • TRAM holds link to ONIA, for example: Eliflash1
  • ONIA holds impact type, for example: <Type>Eli_Super_Kick</Type>
  • Impact file is looked up, data is sent to ONIE.
  • Okay, back to TRAM which hits enemy.
  • Enemy's bone is hit, TRIA is looked up and data sent to CBPM.
  • CBPM checks material, data is sent to ONIE.
  • So, final effect is chosen from impact type and material.
  • Particle and sound becomes released.

ONCC(ONIA) holds special attack modifier information (Any/Light/Medium/Heavy) for ONIE.

Main difference is that ONIA is not used here but CBPI.

ONCC-ONIE-ONCC_n-a_TN.png


Hurt sounds:

So far, I'm not sure how hurt sounds (Light/Medium/Heavy) are chosen to be played.


overview of involved files when modding ONIE in relation to characters
if character hits ground something left ?

ONCC-ONIE-AKEV_preview.png

  • Character hits textured environment.
  • Texture is registered in TMBD and leads to material for ONIE.
  • The bone Id is used for the character's impact.
  • Now actual impact file (Impt) is looked up.
  • Effect (particle and sound) is chosen from impact and the material: trough ONIE.

For example, this is used when running around. Every step will trigger a step sound, different to ground's material: dirt, snow, metal, etc..

ONCC holds impact modifier information (Any/Light/Medium/Heavy) for ONIE.

  • Footstep_Walk
  • Footstep_RunMain
  • Footstep_Crouch
  • Fall_Slide
  • Fall_Land
  • Fall_LandHard
  • Fall_Knockdown
  • Fall_Knockdown
  • Fall_Knockdown
  • Footstep_Turn
  • Footstep_RunStart
  • Footstep_SingleStep
  • Footstep_RunStop
  • Footstep_WalkStop
  • Footstep_RunSprint


examples

Particle - Character

Extra damage for head hits

Okay, here's a beta. w1_tap and w2_sap deals additional damage, amount depends on material "head"/"helmet". Feel free to extend/tweak/criticize.

>> put files into level0_Final


damage overview:

w1_tap

helmet: 4-5 damage; 0.6-1.7 knockback
head: 8-10 damage; 1.7-2.8 knockback

w2_sap

helmet: 2-3 damage; 0.3-0.8 knockback
head: 4-5 damage; 0.8-1.4 knockback


basic modifications / new files:

MtrlHelmet.xml

<?xml version="1.0" encoding="utf-8"?>
<Oni Version="0.9.37.0">
    <Instance id="0" type="Mtrl">
        <ParentMaterial>MtrlArmor</ParentMaterial>
    </Instance>
</Oni>

------------------------------------------------------------------------

MtrlHead.xml

<?xml version="1.0" encoding="utf-8"?>
<Oni Version="0.9.37.0">
    <Instance id="0" type="Mtrl">
        <ParentMaterial>MtrlFlesh</ParentMaterial>
    </Instance>
</Oni>

------------------------------------------------------------------------

ONCCelite_hard_01.xml (Helmet is registered in eleventh link)

[...]
    <Instance id="3" type="CBPM">
        <Materials>
            [...]
            <Link>MtrlHelmet</Link>
            [...]
[...]

------------------------------------------------------------------------

BINA3RAPhitheadW2_e01.xml
[...]
       <Events>
           <HitCharacter>
               <DamageChar>
                   <Damage>
                       <Random Min="4" Max="5" />
                   </Damage>
                   <StunDamage>0</StunDamage>
                   <KnockBack>
                       <Random Min="0.8" Max="1.4" />
                   </KnockBack>
                   <DamageType>0</DamageType>
                   <SelfImmune>1</SelfImmune>
               </DamageChar>
               <Die />
           </HitCharacter>
           <Create>
               <FindAttractor>
                   <DelayTime>0.1</DelayTime>
               </FindAttractor>
               <AttractHoming>
                   <TurnSpeed>400</TurnSpeed>
                   <PredictPosition>10</PredictPosition>
                   <HorizontalOnly>0</HorizontalOnly>
               </AttractHoming>
           </Create>
       </Events>
   [...]

------------------------------------------------------------------------
 
BINA3RAPhithead_e01.xml, BINA3RAPhithelmet_e01.xml, BINA3RAPhithelmetW2_e01.xml similar to above

------------------------------------------------------------------------

BINAEINOimpact_effects.xml

<?xml version="1.0" encoding="utf-8"?>
<Oni Version="0.9.37.0">
    <ImpactEffects>
        [...]
        <Impact Name="w1_tap">
            [...]
            <Material Name="Helmet">
                <ImpactEffect>
                    <Component>Impact</Component>
                    <Modifier>Any</Modifier>
                    <Sound>
                        <Name>ap_hit_hard</Name>
                        <AICanHear>false</AICanHear>
                        <AISoundType>0</AISoundType>
                        <AISoundRadius>0</AISoundRadius>
                    </Sound>
                    <Particles>
                        <Particle>
                            <Name>hithelmet_e01</Name>
                            <Orientation>0</Orientation>
                            <Location>0</Location>
                        </Particle>
                    </Particles>
                </ImpactEffect>
            </Material>
            <Material Name="Head">
                <ImpactEffect>
                    <Component>Impact</Component>
                    <Modifier>Any</Modifier>
                    <Sound>
                        <Name>ap_hit_body</Name>
                        <AICanHear>false</AICanHear>
                        <AISoundType>0</AISoundType>
                        <AISoundRadius>0</AISoundRadius>
                    </Sound>
                    <Particles>
                        <Particle>
                            <Name>hithead_e01</Name>
                            <Orientation>0</Orientation>
                            <Location>0</Location>
                        </Particle>
                    </Particles>
                </ImpactEffect>
            </Material>
            [...]


Mod ideas

  • How about melee attacks dealing more damage on head/helmet?
  • Footprints in snow. Should be possible through character-environment collision plus decals or particle which becomes fixed to the ground.