As far as I can tell, the script uses the noise texture as three separate "layers". You can get a nice effect by using a different scale and speed for each layer. So:
// scale - change according to model scaleing
VertexShaderConstant[14]={2.0f, 2.0f, 0.0f, 0.0f};
VertexShaderConstant[15]={3.0f, 3.0f, 0.0f, 0.0f};
VertexShaderConstant[16]={4.0f, 4.0f, 0.0f, 0.0f};
Think of 14 as layer 1, 15 layer 2, and 16 layer 3. You want to use a different scale in each layer to get a more interesting effect. I am using:
VertexShaderConstant[14]={0.1f, 0.1f, 0.0f, 0.0f};
VertexShaderConstant[15]={0.2f, 0.2f, 0.0f, 0.0f};
VertexShaderConstant[16]={0.3f, 0.3f, 0.0f, 0.0f};
How did I get the numbers? Just by messing with them. There is no formula, just find some that look nice.
I also modified my action to make the animation time based instead of frame based:
var ShaderCount;
var ShaderCount2;
action water_shader
{
bmap_to_mipmap(mtl_water.skin1);
bmap_to_mipmap(mtl_water.skin2);
my.material = mtl_water;
while(1)
{
my.skill41=float(ShaderCount);
my.skill42=float(ShaderCount2);
ShaderCount += time;//0.0015;
ShaderCount2 -= time;//0.0013;
wait(1);
}
}
And then I can set the speed here:
// scroll speed - change as needed with model scaling
VertexShaderConstant[11]={0.0001f, 0.001f, 0.0f, 0.0f};
VertexShaderConstant[12]={0.001f, -0.002f, 0.0f, 0.0f};
VertexShaderConstant[13]={0.002f, 0.003f, 0.0f, 0.0f};
And it runs the same rate no matter the what the frame rate is. Again, it is just by trial and error that you will discover the values that work for you. Try a really big number and really small number and see the effect. Just remember that you have really four layers that are interacting to create the final effect (3 layers for the noise and 1 for the base texture).