Difference between revisions of "PyPRP:Footstep Decals"

m (Waveset Surfaces)
(Corrected incorrect change)
Line 79: Line 79:
 
                 waveset:
 
                 waveset:
 
                   - <waveset ref(same name as waveset surface)>
 
                   - <waveset ref(same name as waveset surface)>
                 initu: <initial size of puddle in U-axis>
+
                 initu: <initial size of ripple in U-axis>
                 initv: <initial size of puddle in V-axis>
+
                 initv: <initial size of ripple in V-axis>
                 finalu: <final size of puddle in U-axis>
+
                 finalu: <final size of ripple in U-axis>
                 finalv: <final size of puddle in V-axis>
+
                 finalv: <final size of ripple in V-axis>

Revision as of 16:47, 26 May 2008

NOTE: This feature is not yet available in a release version of PyPRP. It is currently functional in the trunk version from the SVN, however, it's use and interface is subject to change without notice, and may be different at the time of release.

Introduction

Footstep material
Dynamic footprints

Plasma has the ability to add footprint decals to visual surfaces that your avatar steps on. The only requirement for using this feature is setting up a material to represent a footprint.

Setting up the materials

The simplest way to do this is to create a hidden plane somewhere in your age, and texture it with a simple footprint texture. The texture should be partially transparent, and generally foot-shaped. It can be a simple dark mark, or a sandy imprint like those found in Minkata.

You can make your footprint texture quite small, a texture 128x64 pixels will give you plenty of detail (if you want detail).

Make the background totally transparent and the footprint partially transparent (depending on how "strong" you want the footprint to appear). A detailed footprint should look something similar to this:

Footprint.jpg


Once you have created and named this material in blender, you simply need to set up the footprint manager.

Scripting

Add the following script to any object, for instance, one of the surfaces you intend to have footprints on. Fill in the blanks with the name of the material you created, and the names of all the objects you want footprints to appear on in the targets list.

<object name>:
    logic:
        actions:
          - type: footmgr
            footmgr:
                matpreshade: <material ref>
                matrtshade: <material ref>
                targets:
                  - <object name>
                  - <object name>

Activator surfaces

Non-Waveset Surfaces

Puddles are used to create the ripples in water caused by the avatar walking through a surface. To add them, either add the water plane the "targets" list, or, if you are using a waveset; see below. The material references should point to a circular ripple material, or whatever sort of disturbance you want the avatar to make on the water's surface.


To make your avatar ripple texture have the spreading-out effect set 'initu', 'initv', 'finalu' and 'finalv'. To make your ripple texture not tiled-looking go to the 'texture' settings in the buttons window for the ripple texture and select the 'clip' button.

The numbers added to the init and final vars are times that the texture is tiled. So a good values to start with would be 'initu: 4', 'initv: 4', 'finalu: 1' and 'finalv: 1'.


Puddles also allow for "wet feet" effects, where walking through the puddles will cause you to have footprints for a short period of time. The puddle surface will be the activator. When you walk through it, making ripples, the puddle will trigger the footmgrs in the "notifies" list. You will also need to set "waitonenable: 1" in the footmgrs you want activated this way, which will stop them from being on by default.

<object name>:
    logic:
        actions:
          - type: puddlemgr
            puddlemgr:
                matpreshade: <material ref>
                matrtshade: <material ref>
                targets:
                  - <puddle surface>
                notifies:
                  - <footmgr ref>
                initu: <initial size of puddle in U-axis>
                initv: <initial size of puddle in V-axis>
                finalu: <final size of puddle in U-axis>
                finalv: <final size of puddle in V-axis>

Waveset Surfaces

Use the same method as you do to create the puddle materials.

Then use "ripplevsmgr" instead of the "puddlemgr" and add a ref for your waveset object.

<object name>:
    logic:
        actions:
          - type: ripplevsmgr
            ripplevsmgr:
                matpreshade: <material ref>
                matrtshade: <material ref>
                targets:
                  - <waveset surface>
                notifies:
                  - <footmgr ref>
                waveset:
                  - <waveset ref(same name as waveset surface)>
                initu: <initial size of ripple in U-axis>
                initv: <initial size of ripple in V-axis>
                finalu: <final size of ripple in U-axis>
                finalv: <final size of ripple in V-axis>