Click to Refresh Forum
Click to refresh Forum
Jump to content
Animation:Master

Recommended Posts

  • Hash Fellow
Posted

Today we were looking at making controllable wave action, hoping to get controllable wave action in two directions.

This is just one...
image.png

 

As soon as we hung up today I realized a better, faster way to get our desired result... muscle pose sliders. Those will be additive without needing to weight each CP separately. We may look at that next week.

@detbear
@Roger
@Ganthofer

  • Hash Fellow
Posted

Kevin brought in a great demonstration of the Gerstner Wave 
 

 

00:00 Opening chit chat

02:13 Kevin's Gerstner Wave

29:08 Discussion of additive waves with muscle motion instead of bones

36:59 Implementing Gerstner motion with muscle mode pose sliders

53:22 Tiling possibilities

58:05 Cartoon: The Catanooga Cats sing "Birthday Suit" January 3, 2026

  • Hash Fellow
Posted

@detbear replies:

Awesome Robert. That works great!  Looks like that could even be advanced with some effort.  I'm more familiar with using control bones, and elements I can wrap my head around. Your method is probably more friendly/ better and more usable in the end.    I wish we could develop a water surface that could be manipulated and even have some pre-sets.

One trick to avoid having an "Infinite material/ Horizon"  is to use a circular plane instead of a square.  For most shots the horizon is lost..... especially if you incorporate some depth blur.

Thank you for taking time with this at the Live Q&A.

Kevin

  • Hash Fellow
Posted

I've been thinking that if every point were controlled in all three axes (instead of just the two in my example) it would be possible to calculate their motion for a wave in any direction, any magnitude and any speed, and even calculate the sum of multiple waves.

Perhaps a wizard could be made to generate an action that contains all the muscle motion based on parameters the user would set.

  • Hash Fellow
Posted

@detbear replies:

That would be amazing. I'm not sure I understand it fully. But that's OK.

I've been setting up a trial "Muscle Mode" version like yours. I have two early roadblocks that you may be able to answer:

1. The slider doesn't want to make a smooth circular path using the X & Y sliders. It wants to interpolate straight across between Keys rather than in an arch at times. If I'm doing a circular/ Gerstner Arch instead of up and down, then that seems to be an issue.

2. How do you stack the motions of the second wave on top of the motion of the first using sliders? Especially if the motion in the first wave is in an arch and not just up and down but also side to side?  And then to get the diagnals, you would need to somehow stack a third layer based on the second.....and on and on.  I'm not sure how that works in your model. My setup with bones bases each level on the pivot length of the parent bone under it. Those can be stacked over and over to meet the levels of wave motions. BUT I don't know how to approach that with sliders.

 

  • 2 weeks later...
  • Hash Fellow
Posted

The recording of our second look at Gerstner waves at LAT

Gerstner wave driven by expressions and then much muddling with the GetWorldPos() expression

00:00 Opening

00:30 Gerstner wave controlled in real time

08:35 Kevin's multiple bone wave

12:21 How does GetWorldPos() work? Does it work?

56:57 Concluding cartoon: "Cow Cow Boogie"

 

Here is the project I showed at the beginning of the session.

WaveExpression011c ExpressionWaveDemo.prj

Make sure the A button is off and press Play.

Move the Null horizontally to change the length of the waves. Move the Null vertically to change the height of the waves.

image.png

 

@Ganthofer @detbear @Shelton @Roger

 

  • clap 1
  • Hash Fellow
Posted

At the Feb 14 2026 LAT I mentioned that Steffen confirmed that there was no way to extract single X, Y or Z values from GetWorldPos() which return a three value vector.

However, in the new 19.5g beta I got today is this note...

 

Quote

Revision 430
- added
  new Expressions
  GetWorldPosX( bone.transform ) Returns the world X position of the bone, who's transform is supplied, as a float value.
  GetWorldPosY( bone.transform ) Returns the world Y position of the bone, who's transform is supplied, as a float value.
  GetWorldPosZ( bone.transform ) Returns the world Z position of the bone, who's transform is supplied, as a float value.
  VectorGetX( vector ) Returns the x value from a vector as floating point value.
  VectorGetY( vector ) Returns the y value from a vector as floating point value.
  VectorGetZ( vector ) Returns the z value from a vector as floating point value.
  example
  VectorGetX(GetWorldPos(..|..|..|..|Model1.Transform.Translate))

 

 

  • Hash Fellow
Posted

Here is some use of GetWorldPosX() and GetWorldPosZ()

Thanks,  @yoda64

 

This isn't a full Gerstner wave yet, each point only has vertical motion but the horizontal component can be added I think.

 

  • exciting 1
  • clap 1
  • Hash Fellow
Posted

A 12 x 25 array of bones spaced 1cm apart, automatically generated by a C++ program.

image.png

 

These are the essential atoms of the wave machine.

image.png

 

3 hours ago, Roger said:

Neat, I will need to test this out on my end at some point. 

I would have shared the PRJ already but you all will have to get v19.5g before it will work.

 

 

  • exciting 1
  • A:M Spotlight 1
  • 2 weeks later...
  • Hash Fellow
Posted

How frugal is A:M?
My wave-generating program writes parameters like bone start and end points into a MDL file.
But if any of those were defaults that didn't need to be mentioned, A:M strips them out on resave.
Probably important when data was being saved on floppies. :D

image.png

  • Like 1
  • Hash Fellow
Posted

A little bit of background on breaking the Gerstner wave motion into simple translations with expressions.

This will make adding different waves together easier.


 

  • Thanks 1
  • Like 1
  • Hash Fellow
Posted

Varied lighting treatments. These all have a skydome overhead plus an animated bump and reflection gradient material on the surface

 

 

  • Like 1
  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...