OSP 3D Art Waterfall Example

Users who are viewing this thread

Forum thread for the author @Barf , mirroring a tutorial of him which he posted at the old MBRepository files (the author can have the thread reattributed to him on request should he become active again). I think the classification as 3D OSP resource fits the best here.

A module with disser waterfall in it and thats it....

this only adds
  • textures "waterfall_x" 0-19
  • scene prop "water_fall"
  • mesh "water_fall"
  • material "water_fall"
Notice the custom material and texture tags, I dont know what they do but without them, it wont work.
The other thing, to move the "center" of the object below the ground I had to add a single polygon and drop it way through the ground, this is
to prevent the "water fog" level from flooding whatever scene its placed on...you'll still get the same effect if you raise the waterfall way up but theres no
reason to do that...

for warband only right now, I gotta do some testing with regular m&b and figure it out there.


You can find the mentioned files here:

I haven't tested yet if/how it works, @Tocan might already have taken a look at it ^^

This gif gets referenced to it:
L5QPuh3.gif
 
Last edited:
Updated the initial post with a gif of the scene props in scene (getting shown here).

L5QPuh3.gif


Ruthven also created some particle effects in the thread Nordous' Scener Guild, going to quote him here:
Code:
psys_water_splash_1 12802 prtcl_drop  20 0.850000 0.250000 0.900000 10.000000 0.000000
0.300000 0.500000   1.000000 0.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
0.000000 0.300000   1.000000 0.180000
0.300000 0.200000 0.100000   0.000000 1.200000 2.300000   0.300000
50.000000 0.500000
psys_water_splash_2 12802 prtcl_splash_b  22 0.400000 0.700000 0.500000 10.000000 0.000000
0.300000 1.000000   1.000000 0.300000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
0.000000 0.250000   1.000000 0.700000
0.400000 0.300000 0.100000   0.000000 1.300000 1.100000   0.100000
50.000000 0.500000
psys_water_splash_3 2 prt_mesh_water_wave_1  5 2.000000 0.000000 0.000000 10.000000 0.000000
0.030000 0.200000   1.000000 0.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
0.000000 4.000000   1.000000 5.200000
0.000000 0.000000 0.000000   0.000000 0.000000 0.000000   0.000000
0.000000 0.500000
psys_water_fall 12802 prtcl_splash_b  120 1.300000 1.000000 1.000000 1.000000 0.100000
0.300000 1.000000   1.000000 0.600000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
0.000000 0.500000   1.000000 1.800000
2.000000 0.100000 0.350000   0.000000 1.400000 0.100000   0.100000
50.000000 0.500000
psys_water_foam 9218 prt_foam_a  1 1.700000 1.000000 0.000000 0.000000 0.000000
0.700000 0.700000   1.000000 0.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
0.000000 4.000000   1.000000 4.500000
1.000000 1.000000 0.000000   0.000000 1.000000 0.000000   0.000000
0.000000 0.500000
psys_water_run 8194 prtcl_water_run  12 0.700000 -0.100000 0.000000 1.000000 0.000000
0.300000 0.500000   1.000000 0.100000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
1.000000 1.000000   1.000000 1.000000
0.000000 1.100000   0.600000 0.600000
0.100000 0.100000 0.100000   0.000000 1.500000 0.000000   0.100000
0.500000 0.500000

Here are some water particle systems you can use for waterfalls etc. I think they still need some tweaking to get right but they work ok.
The particle systems are:
water_splash 1 2 & 3 - put on the backs of rocks to look like water is splashing off of them
water_fall - for waterfalls, I think X is direction of the water
water_foam - to put at the base of the waterfall (with some splashes)
water_run - to make rapids

Bah, but it's so easy to do on your own!

...Here you go anyways.
particle systems:
Code:
            ("water_splash_1", psf_billboard_3d|psf_always_emit|psf_randomize_size|psf_randomize_rotation, "prtcl_drop",
     20, 0.85, 0.25, 0.9, 10.0, 0.0,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.3, 0.5), (1, 0.0),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 0.3),   (1.0, 0.18),   #scale keys
     (0.3, 0.2, 0.1),           #emit box size
     (0, 1.2, 2.3),               #emit velocity
     0.3,                       #emit dir randomness
     50,                       #rotation speed
     0.5                        #rotation damping
    ),
   
    ("water_splash_2", psf_billboard_3d|psf_randomize_size|psf_always_emit|psf_randomize_rotation, "prtcl_splash_b",
     22, 0.4, 0.7, 0.5, 10.0, 0.0,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.3, 1.0), (1, 0.3),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 0.25),   (1.0, 0.7),   #scale keys
     (0.4, 0.3, 0.1),           #emit box size
     (0, 1.3, 1.1),               #emit velocity
     0.1,                       #emit dir randomness
     50,                       #rotation speed
     0.5                        #rotation damping
    ),

    ("water_splash_3", psf_always_emit , "prt_mesh_water_wave_1",
     5, 2.0, 0, 0.0, 10.0, 0.0,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.03, 0.2), (1, 0.0),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 4),   (1.0, 5.2),   #scale keys
     (0.0, 0.0, 0.0),           #emit box size
     (0, 0, 0),                 #emit velocity
     0.0,                       #emit dir randomness
     0,                       #rotation speed
     0.5                        #rotation damping
    ),

        ("water_fall", psf_billboard_3d|psf_randomize_size|psf_randomize_rotation|psf_always_emit , "prtcl_splash_b",
     120, 1.3, 1.0, 1.0, 1.0, 0.1,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.3, 1.0), (1, 0.6),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 0.50),   (1.0, 1.8),   #scale keys
     (2.0, 0.1, 0.35),           #emit box size
     (0, 1.4, 0.1),               #emit velocity
     0.1,                       #emit dir randomness
     50,                       #rotation speed
     0.5                        #rotation damping
    ),
   
        ("water_foam",  psf_turn_to_velocity | psf_always_emit|psf_randomize_size, "prt_foam_a",
     1, 1.7, 1, 0.0, 0.0, 0.0,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.7, 0.7), (1, 0.0),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 4),   (1.0, 4.5),   #scale keys
     (1.0, 1.0, 0),           #emit box size
     (0, 1, 0),                 #emit velocity
     0.0,                       #emit dir randomness
     0,                       #rotation speed
     0.5                        #rotation damping
    ),
   
        ("water_run", psf_randomize_size|psf_always_emit , "prtcl_water_run",
     12, 0.7, -0.1, 0.0, 1.0, 0.0,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.3, 0.5), (1, 0.1),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 1.1),   (0.6, 0.6),   #scale keys
     (0.1, 0.1, 0.1),           #emit box size
     (0, 1.5, 0),               #emit velocity
     0.1,                       #emit dir randomness
     0.5,                       #rotation speed
     0.5                        #rotation damping
    ),

Scene props:
Code:
    ("water_splash_a", 0, "0", "0", [
    (ti_on_init_scene_prop,
        [
        (particle_system_add_new, "psys_water_splash_1"),
        ]),
    ]),
  ("water_splash_b", 0, "0", "0", [
    (ti_on_init_scene_prop,
        [
        (particle_system_add_new, "psys_water_splash_2"),
        ]),
    ]),
  ("water_splash_c", 0, "0", "0", [
    (ti_on_init_scene_prop,
        [
        (particle_system_add_new, "psys_water_splash_3"),
        ]),
    ]),
 
    ("water_fall", 0, "0", "0", [
    (ti_on_init_scene_prop,
        [
        (particle_system_add_new, "psys_water_fall"),
        #(play_sound,"snd_water_running", 0),
        ]),
    ]),
   
      ("water_foam", 0, "0", "0", [
    (ti_on_init_scene_prop,
        [
        (particle_system_add_new, "psys_water_foam"),
        ]),
    ]),
   
        ("water_run", 0, "0", "0", [
    (ti_on_init_scene_prop,
        [
        (particle_system_add_new, "psys_water_run"),
        ]),
    ]),

If somebody gets a better look by tweaking the particle systems please share it here. I was going to do more work on these but never got around to it. Also I'd love to see screenshots.

giphy.gif
giphy.gif


Did a bit more work on the waterfall particle systems I posted a while back. This time adapted for proper big falls and not just tiny streams. I think it will still get tweaked from here, but it's certainly shaping up.

If anyone wants them:
Code:
        ("water_fall", psf_billboard_3d|psf_randomize_size|psf_randomize_rotation|psf_always_emit , "prtcl_splash_b",
     75, 2.3, 1.0, 1.0, 1.0, 1.1,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.0, 0.6), (1, 0.05),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 1.8),   (1.0, 1.2),   #scale keys
     (2.0, 0.1, 0.35),           #emit box size
     (0, 2.4, 0.1),               #emit velocity
     0.1,                       #emit dir randomness
     200,                       #rotation speed
     0.5                        #rotation damping
    ),

        ("water_fall_2", psf_billboard_2d|psf_always_emit|psf_randomize_size , "prtcl_water_fall",
     50, 3.3, 1.0, 1.0, 0, 0,     #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.0, 0.4), (1, 0.05),        #alpha keys
     (1.0, 1.0), (1, 1.0),      #red keys
     (1.0, 1.0), (1, 1.0),      #green keys
     (1.0, 1.0), (1, 1.0),      #blue keys
     (0.0, 1.1),   (1.0, 2.3),   #scale keys
     (1.85, 0.1, 0.35),           #emit box size
     (0, 1.0, 0.0),               #emit velocity
     0.0,                       #emit dir randomness
     0,                       #rotation speed
     0.5                        #rotation damping
    ),
Code:
    ("water_fall", 0, "0", "0", [
    (ti_on_init_scene_prop,
        [
        (particle_system_add_new, "psys_water_fall"),
        #(play_sound,"snd_waterfall", 0),
        (set_position_delta, 0, 120, -100),
        (particle_system_add_new, "psys_water_fall_2"),
        ]),
    ]),

You'll also need to add a new mesh for "prtcl_water_fall" which is just the "prtcl_splash_b" mesh scaled 2x and an additional 2.5x along the Y (vertical) axis.
 
Back
Top Bottom