Timeline
Can you describe this more? I'd like to be able to have one figure move an appendage (arm/hand - leg/foot) toward another figure, who will then grasp that appendage - then have physics make the grasping appendage follow the movements of the grasped one. Acid Bubbles makes it sound like Timeline is incapable of doing this - but it sounds like that is what you achieved. Did you parent in Timeline or did you parent in VAM control & physics tabs - and what did you use to create the trigger to enable the attach-detach if so? I was trying to go about it in this latter manner - and couldn't figure out how to make a trigger to parent/de-parent a particular controller to another like this.

Part of the problem is that it is complex to even describe.
Ya, apparently there is an easier way (as Acid Bubbles explained above) to parent/unparent with a toggleable check box.
I was making a Trigger Event in Timeline, that was simply selecting the handcontrol and toggling parenting on and off (toggling between Parent and Hold On) near the beginning and end of the motion I wanted to occur. So effectively there was two Trigger Events, one to disable parent, and one to enable parent, so that the hand could do it own thing for a bit, and then return to looking like it was holding the thigh/hip area. But this only ended up working correctly because the object that it was parented to, was not in a Active Hold state (ie. it look like a Red cube, instead of a Green one). If it was indeed in a hold state (green), then this would not have worked.
 
Ya, apparently there is an easier way (as Acid Bubbles explained above) to parent/unparent with a toggleable check box.
I was making a Trigger Event in Timeline, that was simply selecting the handcontrol and toggling parenting on and off (toggling between Parent and Hold On) near the beginning and end of the motion I wanted to occur. So effectively there was two Trigger Events, one to disable parent, and one to enable parent, so that the hand could do it own thing for a bit, and then return to looking like it was holding the thigh/hip area. But this only ended up working correctly because the object that it was parented to, was not in a Active Hold state (ie. it look like a Red cube, instead of a Green one). If it was indeed in a hold state (green), then this would not have worked.


Couldn't you toggle the hold state using a trigger too, from Active to Inactive, the same way? The advantage here is that you can attach and reattach within a single animation - as opposed to animating to the point where you want to parent, a new animation where the object is parented and unparented, and a following animation after the parent is complete.
 
Couldn't you toggle the hold state using a trigger too, from Active to Inactive, the same way? The advantage here is that you can attach and reattach within a single animation - as opposed to animating to the point where you want to parent, a new animation where the object is parented and unparented, and a following animation after the parent is complete.
If I'm understanding what you said correctly, Then yes, that's what I had done originally. Its just if your turn off hold, on a node that is helping maintain a pose, then it will just go limp. So in some cases turning off Hold to then do a parent of another, as I described, then it can potentially ruin the animation due to the loss of posing capabilities. But, if the the node your using to parent to, isn't required to maintain the pose, then its free reign at that point.

In my scene, one person had their hip, pelvis, knees, and feet had "Hold On," and the other person in the scene had their hands parented to one of the thighs. So parenting in general will work fine. But if i attempted to parent to the hip, knee, or a foot, then the entire things would have messed up. Other then that stipulation, you can choose to either use the drop down menus to parent, or make a trigger event, as they do the same thing in the end, as far as parenting goes.
 
What could cause this? The animation is out of synch. This applies to all atoms except for 2 person atoms, which look fine and also don't have the % in Anim 1.
But everything else has this percent when the animation begins.
Checked every tab across all atoms, everything is the same. Even deleted and added them again. Still happening.
Second picture is from a fresh new scene. As you can see, the next animation plays before the first one ends. In this scene there are no other atoms. Single atom with the timeline plugin.

1655793564568.png
1655802347546.png
 
Last edited:
@ispinox
- Are you using the same versions on all instances?
- In More, Options, are you using Game Time or Clock Time on both?
- Is the Local Speed and Global Speed sliders the same in the Edit tab?

If they are sequenced or called via triggers:

- Are they both using Preserve Loop? (in the Sequence tab)
- Are they both using the same Blend Duration value? (shouldn't be a problem but might slightly affect the result)
 
Maybe a bug? When both person1 and person2 have anim 2, if I play anim2 from p1's UI then p1 and p2 will play anim2 at the same time, but when I trigger p1 to play anim2 from a button, only p1's anim2 will be played
 
@fyxtc Are you using subscenes? And did you disable atom sync in More, Options? Finally, maybe there's a difference, e.g. a space in the name for example?

Worst case, send a repro; this (trigger running anim X on atom Y) is how I start animations on all of my scenes, so I'm pretty sure it should work :)
 
Acid Bubbles updated Timeline with a new update entry:

Timeline v6.0.0

Features

Audio scrubbing, audio sync and live triggers


This will make animations that must sync to music or speak much easier to make, and behave as expected same on other computers with lower performance.
  • Audio triggers will play from the right point when playing an animation midway
  • A small audio clip will be played when scrubbing when the animation is not playing
  • Playing audio clips time will be adjusted when scrubbing
  • You can link an animation's...

Read the rest of this update entry...
 
@fyxtc Are you using subscenes? And did you disable atom sync in More, Options? Finally, maybe there's a difference, e.g. a space in the name for example?

Worst case, send a repro; this (trigger running anim X on atom Y) is how I start animations on all of my scenes, so I'm pretty sure it should work :)

You are right, it is my problem. New version released, I can't wait to try it!!!
Thank you very much for your work!!!
 
Sooooo... First, I have to say that the audio scrubbing looks to be the KILLER feature that will change my life forever. Thank you so much for that.

Up until now, I have animated by creating animation clips strung together, usually set to the timing of a given song's tempo or bpm. Something at a steady 80bpm has about 4 beats every 3 seconds. If it's a 4/4 measure, then I will usually have 12 seconds of animation, then another twelve seconds of animation, etc., and I will name and group them by either what's happening in the animation (like "intro" or "tempo pick up.") This lets me break things up into easily digestible/animatable segments, let's me focus the animation on the tempo or "feel" of the music, and most importantly, figure out where I'm at in the music timing. If the audio scrubbing works like as well as it seems to in my initial test, that last bit will become completely irrelevant, as I can scrub audio as I animate. I won't even need to keep the waveform open in Audacity on another monitor anymore!

If I wanted the audio to stay in sync with the animation, I was also using LFE's audio syncing plugin. This meant I had to use the scene animation, place a trigger in there to start the audio (LFE's plugin only keeps time with the built-in scene animation, so it has to be running at the same time as the Timeline animation to work) and then in my controls/UI Button triggers, I'd start and stop the scene animation as well as the Timeline animation for everything to work. This gets rid of ALL of that!

However... In my initial testing, I replaced an older version of Timeline 5.x with this new 6.0 in the current scene I am working on. I created the audio track as detailed in the Wiki. I removed all of the other scene animation stuff and kicked off the timeline animation... and it was perfect!

...for 12 seconds. Unfortunately, when my "Intro" animation switched to the next 12-second animation (Intro 2), the audio stopped. This is likely because there's a trigger at the start/end of each animation, so that trigger ended the audio playback. So... What would be the recommendation to get around this? I could try just combining all of the animations into one great, big animation from now on. The advantage is that I'll no longer have to worry about animation transitions, which I might not need anymore since I can audio scrub. The disadvantage is that 8 minutes of animation (this new one is a long one!) is a LOT of little dots on the timeline scrubber. I can zoom in and out, I'm sure it will be fine, I just haven't even tried to animate with that much in the window at once. Can you think of any other ways I might be able to get around this? Is this a situation where I would make a "segment" containing all of the other animations and an audio track target?

Thank you again for adding this feature! This will absolutely change the way I animate forever. I am truly, truly grateful!
 
I love this update. I particularly like the ability to turn off the weight of controllers: now I can turn off the headController if I want to use Gaze/Glance and turn it back on, if it is needed for an animation.

I have a problem though: I can't figure out how to move animations to different segments. I have a list of 30 animations, and I like the idea to move them into segments. But any tips on how to do that? I'd like to move 10 of them to a "front" segment, and another 10 to a "back" segment for instance. I couldn't find the answer in the wiki and tried all kinds of things in the GUI.
 
Is anybody else receiving the following error when adding or editing a key in timeline:

!> Timeline.AtomAnimation.RebuildAnimationNow: System.NullReferenceException:
at (wrapper managed-to-native) UnityEngine.Behaviour:get_isActiveAndEnabled ()
at UnityEngine.EventSystems.UIBehaviour.IsActive () [0x00000] in <filename unknown>:0
at UnityEngine.UI.Graphic.SetVerticesDirty () [0x00000] in <filename unknown>:0
at VamTimeline.DopeSheetKeyframes.SetKeyframes (System.Single[] keyframes, Boolean loop) [0x00000] in <filename unknown>:0
at VamTimeline.DopeSheet+<CreateRow>c__AnonStorey3.<>m__0 () [0x00000] in <filename unknown>:0
at UnityEngine.Events.InvokableCall.Invoke () [0x00000] in <filename unknown>:0
at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <filename unknown>:0
at VamTimeline.AtomAnimation.RebuildAnimationNowImpl () [0x00000] in <filename unknown>:0
at VamTimeline.AtomAnimation.RebuildAnimationNow () [0x00000] in <filename unknown>:0

it's happening to an existing 2.52 project, and the errors started occurring when I installed the latest version (2.68)
 
@vamurai I kind of knew I'd get this feedback :D I had a big dilemma about that; having the audio continue playing wouldn't make much sense since the whole idea is to link audio timing to a clip, but like you said if you want to hear to audio while playing another clip, it can be an issue.

My suggestion would be to use a separate layer for the audio, so you'd get an Audio layer with a single Audio animation, and another Main layer with Anim 1, 2, 3, etc. However audio scrubbing won't work in this case...

Another possibility like you said is to work with a very long animation.

Finally, you could break down the audio in smaller parts. That would be the best of both worlds, but you'd get "cuts" if the audio is really continuous.

On my end, the ideas I have are pretty much about implementing a way to work on animation subsets, i.e. a single big animation but you work on smaller parts of it, but that's not happening in the short term.

Hope those ideas help a little :)
 
@falbst this looks like a bug related to Timeline being destroyed while it's UI is opened, I don't know how this happened; if you can reproduce, can you let me know the steps? And if you can only reproduce in a specific scene, can you share the scene along with the steps?
 
@vamurai I kind of knew I'd get this feedback :D I had a big dilemma about that; having the audio continue playing wouldn't make much sense since the whole idea is to link audio timing to a clip, but like you said if you want to hear to audio while playing another clip, it can be an issue.

My suggestion would be to use a separate layer for the audio, so you'd get an Audio layer with a single Audio animation, and another Main layer with Anim 1, 2, 3, etc. However audio scrubbing won't work in this case...

Another possibility like you said is to work with a very long animation.

Finally, you could break down the audio in smaller parts. That would be the best of both worlds, but you'd get "cuts" if the audio is really continuous.

On my end, the ideas I have are pretty much about implementing a way to work on animation subsets, i.e. a single big animation but you work on smaller parts of it, but that's not happening in the short term.

Hope those ideas help a little :)
Thank you! This is about what I figured, and I've already combined all of my animation "clips" from my current scene into one, big animation. It's definitely different to work with. Shrinking the scrubber bar down so I can have about 10-15 seconds of "dots" visible at a time is working so far, but moving forward and backward by dragging that sliver of a "scroll bar" is a bit comical.

It's still all worth it for having the audio scrubbing, and not having to worry about transitions between animations. I have a feeling my movements may end up feeling more organic in the end, thanks to this, instead of so VERY specifically timed to the measures in the songs I choose.

Thank you again for working so hard to improve a plugin that, quite frankly, has been "perfect" for years now. I don't know how you keep finding ways to improve on it, but somehow you do!
 
Last edited:
I guess I use it and can actually do something about it's shortcomings :D And yeah the minuscule zoom bar is not... super usable, but I'm kind of fighting for space ;) That's something I could improve though, having a "locked" zoom and zoom tools somewhere so you can work without having to fight against it...
 
I guess I use it and can actually do something about it's shortcomings :D And yeah the minuscule zoom bar is not... super usable, but I'm kind of fighting for space ;) That's something I could improve though, having a "locked" zoom and zoom tools somewhere so you can work without having to fight against it...
I've already gotten used to it, but if you get bored and figure a clever way to cram EVEN MORE into that tiny space, somehow, I wouldn't tell you no! ?
 
@pinosante I upgraded some animations like that, there's this option, which moves an animation into it's own segment: https://github.com/acidbubbles/vam-timeline/wiki/Add-segment-screen#convert-anim-to-segment

Otherwise, if you have multiple animations per segment, you can make multiple copies and cleanup unrelated animations from each: https://github.com/acidbubbles/vam-timeline/wiki/Add-segment-screen#create-copy-of-segment
Thanks @Acid Bubbles for your answer, this solved my problem!

I humbly suggest a Quality of Life feature: how about allowing the user to change the name of the segment during editing, and if the new name points to an existing segment, check if there are exactly the same amount of controllers. If so: add the animation to that existing segment. If not, deny the namechange and keep the old name. This way it would be much easier to organize animations.

For instance, I now have a "main" segment with an animation I'd like to move to the "idle" segment, which also has some other animations. At this point I don't think there is a way to move it, right? (except editing the .json)
 
I guess I use it and can actually do something about it's shortcomings :D And yeah the minuscule zoom bar is not... super usable, but I'm kind of fighting for space ;) That's something I could improve though, having a "locked" zoom and zoom tools somewhere so you can work without having to fight against it...
Oh my gosh, I am so dumb. Since I've never really used timeline with the scale this high before (zoomed way in on the track with hundreds of seconds in one animation) I have always dragged the sliders in and out to zoom in on the segments I needed inside of shorter (under twenty-second) animations. I was today years old when I learned that I can click on either the left or right side of the segment on the track to skip it forward or backward in time. ?

EMBARRASSING. Feel free to ignore my need for other ways to move around in the Timeline time scrubber.

2022-06-27_08-40-05.gif
 
Last edited:
Back
Top Bottom