Geometry Cache animation controlled by variable in blueprint

I am trying to figure out how I can control the animation of my geometry cache (alembic) file, inside of a blueprint with a float value. I would like to be able to set a float value from 0-1 that I could then use to control the animation from 0-100%.

Since I can scrub back and forth in sequencer to play the animation forwards and backwards, I am hoping there is a way to make a variable that I could then expose and animate in Sequencer. I am trying to make individual, 3D UI elements for an HMI gauge (e.g. tachometer) that I can animate back and forth. Is there a way to treat this like a Time Remapper that can be animated through an exposed variable?

The alembic imports and animates just fine, I just can’t figure out how to override it. If I can figure out how to do this once, I can repeat this a ton of times. Thanks in advance.



I have been spending some time and found what I believe would be two good solutions. There is a material solution which may be perfect if you want to use the asset in a widget system. So all in all, Yes, it is possible to control the animation of a geometry cache (Alembic) file inside a Blueprint using a float value.

One approach is to use the Sequencer node in the Blueprint. This node allows you to manipulate the animation of a Sequencer asset, which can be used to control the animation of an Alembic file.

You can use the Set Playback Position node to set the animation position of the Sequencer asset. This node takes a float value as an input, which can be used to control the animation from 0-100%. You can also use the Set Play Rate node to control the playback speed of the animation. This node takes a float value as an input, and it can be used to control the animation’s speed.

Another approach is to use the Alembic Component To Material node. This node allows you to create a material for your Alembic mesh, using the mesh’s vertex data to drive the material’s parameters. You can use the Set Scalar Parameter Value node to set the material’s scalar parameter value and use the float value to control the animation from 0-100%.

It’s worth mentioning that you can use the “Sequencer” and “Alembic Component To Material” nodes in conjunction to have more control over the animation. Finally, you can expose the float variable to the Blueprint and animate it in the Sequencer, allowing you to control the animation of the geometry cache (Alembic) file in the HMI gauge.

I hope this helps!

3 Likes

Thank you so much! I will give both of those a try.

1 Like

So, I have been digging through the nodes list and the documentation, but I am coming up short on each method.

For the first method, I can’t find anything about Set Playback Position nor could I find a Sequencer node. I added an Add Actor Sequence Component and then had to try a Cast To SequencerKeyActor node, since the geometry cache wouldn’t connect to the Add Actor node. No clue if that will work.

Although I can see merit and uses for both methods, the second one looked a bit more straight forward if I could figure it out. I couldn’t find an Alembic Component to Material node to play around with, so I didn’t get very far.

Is there anyway you could use the attached alembic file and do a quick screenshot of how this could work? I am on the design side of things and BP has been a struggle to wrap my head around.

I would love to document these solutions and replicate them for design prototyping if I can get them working. Thanks again.

cubic_ring_01.abc (5.9 MB)

The solution I was looking for ended up being more simple than I had thought. After trying a number of combinations to creating a control to override the time value, it turns out that that the Start Time Offset parameter in the Geometry Cache does exactly what I was looking for. :upside_down_face:

At some point, I am going to try to figure out how to override that with a variable, that way I could range map a bunch of these things to one variable, but one thing at a time. Thanks again for your help!

1 Like

No worries! I am glad you found something that was to your satisfaction.

Best of luck with your project! :slight_smile:

1 Like

Which node exactly are you referring to here? Because no such node exists as far as I can tell. In fact, a verbatim google search of that term yields just one result: this thread.