SWHC (File Format): Difference between revisions

imported>Jackoalan
imported>Jackoalan
Line 3: Line 3:
Swooshes are characterized as dynamically-generated, trailing ''triangle-strips'' "brushed" into space.
Swooshes are characterized as dynamically-generated, trailing ''triangle-strips'' "brushed" into space.


== SWHC Keys ==
== Properties ==


'''Scope''' is one of (''Constant'', ''System'')
Particle generator properties are assembled into a [[Particle Script|particle script]]
 
file tagged with <code>SWSH</code>. Any of the following properties are loaded into a
* ''Constant'' parameters are evaluated once initially and retained within the system.
''description'' class for constructing an arbitrary number of ''particle generators''.
* ''System'' parameters are evaluated per-system, per-frame.


{| class="wikitable"
{| class="wikitable"
!FourCC
! FourCC
!Scope
! Type
!Data Type
! Description
!Description
! Scope
!Notes
! Notes
|-
! MP1
|<code>CRND</code>
! MP2
|
! MP3
|<code>bool</code>
! DKCR
|
! DKCTF
|
|-
|<code>ORNT</code>
|
|<code>bool</code>
|
|
|-
|<code>ZBUF</code>
|
|<code>bool</code>
|
|
|-
|<code>AALP</code>
|
|<code>bool</code>
|
|
|-
|<code>TEXW</code>
|
|<code>bool</code>
|
|
|-
|<code>WIRE</code>
|
|<code>bool</code>
|
|
|-
|-
|<code>SPLN</code>
{{ParticlePropertyRow|PSLT|IntElement|Particle System Lifetime|System Init|Count of frames to emit new particle instances|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|TIME|RealElement|Time Multiplier|Pre Particles Update|Factor that defines number of evaluation frames per real frame|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>float</code>
{{ParticlePropertyRow|LRAD|RealElement|Left Radius|Particle Update|Radius of swoosh cross-section's left side|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|RRAD|RealElement|Right Radius|Particle Update|Radius of swoosh cross-section's right side|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|LENG|IntElement|Length|System Init|Maximum history of swoosh sections to retain (must be at least 2)|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|-
{{ParticlePropertyRow|COLR|ColorElement|Color|Particle Creation and Update|Modulation color of swoosh surfaces|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>VLSn</code>
{{ParticlePropertyRow|SIDE|IntElement|Side Count|System Init|Count of swoosh cross-section sides (2 for plane, 3+ for extruded prism)|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|IROT|FloatElement|Instance Rotation|Particle Creation|Rotation bias evaluated for new particle instances (in degrees)|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>bool</code>
{{ParticlePropertyRow|ROTM|FloatElement|Rotation Master|Particle Update|Rotation bias evaluated per particle instance, per frame (in degrees)|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
| Something n:[1-2]
{{ParticlePropertyRow|POFS|VectorElement|Particle Offset|Particle Creation|Local translation bias evaluated for new particle instances|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|IVEL|VectorElement|Particle Offset|Particle Creation|Relative velocity evaluated for new particle instances|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|-
{{ParticlePropertyRow|NPOS|VectorElement|Particle Offset|Particle Update|Local translation bias updated per particle instance, per frame|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>IVEL</code>
{{ParticlePropertyRow|VELM|ModVectorElement|Velocity 1|Particle Update|Continuous position and velocity source of particle instances|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|VLM2|ModVectorElement|Velocity 2|Particle Update|Second position and velocity source evaluated after VELM|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>float3</code>
{{ParticlePropertyRow|SPLN|IntElement|Spline Segments|System Init|Count of intra-frame faces to draw per particle connection, using tricubic spline interpolation|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|TEXR|UVElement|Texture|System Render|Texture and UV source for swoosh surfaces|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|TSPN|IntElement|Texture Span|System Render|Count of particle instances over which to scale UV coordinate cycle|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|-
{{ParticlePropertyRow|LLRD|BoolElement|Left Radius for Right|System Init|Use LRAD value for RRAD|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>IROT</code>
{{ParticlePropertyRow|CROS|BoolElement|Cross|System Init|Intersect surfaces across cross-section verts, as opposed to a non-intersecting prism|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|VLS1|BoolElement|Local Velocity 1|System Init|Evaluate VELM in particle-local space|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>float</code>
{{ParticlePropertyRow|VLS2|BoolElement|Local Velocity 2|System Init|Evaluate VLM2 in particle-local space|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|SROT|BoolElement|Single Rotation|System Init|Update IROT per particle instance, per frame and ignore ROTM, otherwise once per system update|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|WIRE|BoolElement|Single Rotation|System Init|Render surfaces as triangle wireframe|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|-
{{ParticlePropertyRow|TEXW|BoolElement|{{unknown}}|System Init|Unused|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>SROT</code>
{{ParticlePropertyRow|AALP|BoolElement|Additive Alpha|System Init|Draw using additive alpha blending|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|ZBUF|BoolElement|Z-buffer Update|System Init|Enable Z-buffer updates|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|<code>bool</code>
{{ParticlePropertyRow|ORNT|BoolElement|View Orient|System Init|Render surface facing view (2-SIDE only, no SPLN)|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
{{ParticlePropertyRow|CRND|BoolElement|View Orient|System Init|Use current CPU time for random seed, rather than 99|{{check}}|{{nocheck}}|{{nocheck}}|{{nocheck}}|{{nocheck}}}}
|
|}
|-
|<code>CROS</code>
|
|<code>bool</code>
|
|
|-
|<code>SIDE</code>
|
|<code>int</code>
|
|
|-
|<code>COLR</code>
|
|<code>float4</code>
|
|
|-
|<code>LENG</code>
|
|<code>int</code>
|
|
|-
|<code>LLRD</code>
|
|<code>bool</code>
|
|
|-
|<code>RRAD</code>
|
|<code>float</code>
|
|
|-
|<code>LRAD</code>
|
|<code>float</code>
|
|
|-
|<code>TIME</code>
|
|<code>float</code>
|
|
|-
|<code>TSPN</code>
|
|<code>float</code>
|
|
|-
|<code>TEXR</code>
|
|<code>int</code> ([[TXTR (File Format)|TXTR]] ref), <code>ATEX</code>
|
|
|-
|<code>VLM2</code>
|
|<code>float3</code>
|
|
|-
|<code>VELM</code>
|
|<code>float3</code>
|
|
|-
|<code>NPOS</code>
|
|<code>float3</code>
|
|
|-
|<code>POFS</code>
|
|<code>float3</code>
|
|
|-
|<code>ROTM</code>
|
|<code>float</code>
|
|
|-
|<code>PSLT</code>
|
|<code>int</code>
|
|
|-
 
[[Category:File Formats]]
[[Category:Metroid Prime]]
[[Category:Metroid Prime 2: Echoes]]
[[Category:Metroid Prime 3: Corruption]]
[[Category:Donkey Kong Country Returns]]
Anonymous user