how to transfer keyframed animation?
#1
Hi there
How can I use the keyframed animation, on the floor boards as they get activated?

I was hoping I could somehow reference the animation of the blue board, and apply it locally to the particle boards placed on the floor.




Help and direction, much appreciated Smile
  Reply
#2
For direct animation reference like that, you'd want to use a tyActor setup and trigger the animation playback with an Actor Animation operator.
  Reply
#3
Thank you for your support  Smile

You are right. Actors seems to get me some of the way.
But I can't make them just transfer their transform Matrix animation on to the existing particles.



As shown in the video, the green X's (no geometry Actors) represents the transform animation of the Actor, but they seem to exist on their own, and are not driving the existing Particles, which are laid out in a preexisting pattern of position and board sizes.

I my head, I imagine that I would be able to create an pre-existing wooden floor layout. and then reference an outside keyframed animation matrix, which I can then apply to the pre-existing particles.
  Reply
#4
What I am trying to achive is this build up of an pre-existing floor layout. Here created with the simpler animation made by using interpolations.

  Reply
#5
It's not so simple to reference scene keyframes from particles because Max itself is not multithreaded, so particles trying to read scene object keyframes from separate threads will cause Max to crash...so some kind of caching structure has to be created to import the keyframes in a thread-safe way...and that's what tyActors do, but your boards are not all identical I guess so you can't just apply a single tyActor to all the boards.

There are a couple options here:

1) Do your rotation with keyframes in a Rotation operator, using the keyframes rollout to sync the timing to event entry or something.

2) Do a tyActor setup but have it hidden. Have each tyActor located exactly in place of the 'real' boards. Then have the 'real' boards linked to the hidden animated tyActors using Set Target (link to target enabled). It won't matter that the tyActor geometry doesn't look right (because it'll be hidden)...only that the tyActors are located exactly where the 'real' boards are, so they act as a sort of animated proxy transform.
  Reply
#6
(08-08-2022, 06:38 PM)tyFlow Wrote:
Quote:It's not so simple to reference scene keyframes from particles because Max itself is not multithreaded, so particles trying to read scene object keyframes from separate threads will cause Max to crash...so some kind of caching structure has to be created to import the keyframes in a thread-safe way...and that's what tyActors do, but your boards are not all identical I guess so you can't just apply a single tyActor to all the boards.

Yea, makes sense .. I guess Wink

As a potential future feature, It could see it work using a separate birth object with inherit POS,ROT, Scale on.

I try to visulize the concept here (video), using a Position Transfer Operator.
I would add a new "transform transfer" operator, then set its target to the separate particle system. In this case the imported birth operator particle.
Once done, it would only copy over transform matrix from the target to all particles in the current flow.


Quote:There are a couple options here:

1) Do your rotation with keyframes in a Rotation operator, using the keyframes rollout to sync the timing to event entry or something.

2) Do a tyActor setup but have it hidden. Have each tyActor located exactly in place of the 'real' boards. Then have the 'real' boards linked to the hidden animated tyActors using Set Target (link to target enabled). It won't matter that the tyActor geometry doesn't look right (because it'll be hidden)...only that the tyActors are located exactly where the 'real' boards are, so they act as a sort of animated proxy transform.


Huge thanks for taking the time to help  Smile
  Reply


Forum Jump: