• Happy Holidays Guest!

    We want to announce that we will be working at reduced staffing for the holidays. Specifically Monday the 23rd until Jan 2nd.

    This will affect approval queue times and responses to support tickets. Please adjust your plans accordingly and enjoy yourselves this holiday season!

  • Hi Guest!

    Please be aware that we have released a critical security patch for VaM. We strongly recommend updating to version 1.22.0.7 using the VaM_Updater found in your installation folder.

    Details about the security patch can be found here.
Timeline
Encountered a bug. If you add the SimpleSign and load the Timeline control in it, it works unless you parent the SimpleSign to some other node, in which case it throws an error about "names" and it doesn't display anything. Probably because you don't give it the full path of the structure of the scene.
The reason why I'm assigning a parent to it is because I can then move it together with other buttons.
Hopefully this is an easy fix.
 
1688226995573.png


Hi, I'm trying to use the bulk offset feature. Following the wiki instructions, I clicked start offset and moved my target around, but I can't apply the changes. The wiki mentions "click apply" but I don't see the button in the UI.

Where should I looking?

Thanks ahead for the help!
 
Is it possible to use triggers to load/import and remove animations in Timeline?
It'll be useful if we can load entire Timeline animation presets with triggers so we can switch set of large animations without exceeding the vam scene file size limit.
A workaround I've used is to load the Timeline plugin as a plugin preset which loads all animations at once, but this needs to reload all person plugins since all triggers reference the plugin# so it needs to be the same when loading a new preset.
 
No @CheekiBreeki it's not possible to do that. I can see what you want to do, and it's pretty interesting though. It'd also have to work when exporting .var files, which is possible but tricky.

Thanks! Yeah makes sense, it could be an experimental feature. I was thinking along the lines of exposing the 'Import animations' functionality to triggers, and import animations with a path. That would make it easy to separate animations from the remaining scene. Eg. the scene loads and triggers Timeline animation import. Before saving scene, you unload the animations (manually with trigger), otherwise you may break scene saving by going over the VaM filesize limit.
I did try loading lots of animations into one scene (about 1.3GB jsons loaded into Timeline), and it worked well. Just that you can't save the scene with them loaded?.

PS: Also found a bug to occur sometimes. When I import a new animation into Timeline, it doesn't show up when trying to play the segment with a Trigger. When I edit the name of the Segment, it then shows up. Not sure if I'm missing something.
 
In my animations, I have to move the head *position* down to get the body to be where I want it. The disadvantage of doing this is that I can no longer use plugins like MacGruber's Gaze to keep the head *rotated* at the VR camera to maintain eye contact and have to manually update the rotation of the head to point where I expect the VR camera to be. This means each time I use a new Look with a different form or height with the animation, I have to manually update how the head is rotated to stay on target.

Is there a way to *only* animate the head position and allow e.g. Gaze to control the rotation? Or is there some other utility in Timeline or another program I can use to automatically have e.g. the X rotation of the head targeted toward an object?

Also, while I would prefer an automatic option, just having a plugin that could manually point the head at an object at the click of a button would at least speed up the keyframe updates I have to make to each Look.
 
In my animations, I have to move the head *position* down to get the body to be where I want it. The disadvantage of doing this is that I can no longer use plugins like MacGruber's Gaze to keep the head *rotated* at the VR camera to maintain eye contact and have to manually update the rotation of the head to point where I expect the VR camera to be. This means each time I use a new Look with a different form or height with the animation, I have to manually update how the head is rotated to stay on target.

Is there a way to *only* animate the head position and allow e.g. Gaze to control the rotation? Or is there some other utility in Timeline or another program I can use to automatically have e.g. the X rotation of the head targeted toward an object?

Also, while I would prefer an automatic option, just having a plugin that could manually point the head at an object at the click of a button would at least speed up the keyframe updates I have to make to each Look.

Solution here for anyone curious:

You can use Gaze for rotation control and turn of head rotation for the Timeline keyframes:
head.jpg
 
as everybody else here, i can not thank you enough for this animator plugin. i also have a couple of questions if i may:

1- is there a way to animate a cloth grabbing point with your timeline (the grab function)? i am working on a scene where i want to activate the grab function in a certain part of my animation, but since this atom only functions once it turns "off" then "on" again, and timeline plugin will ignore the atom's timeline while it is in an "OFF" control state even if i trigger it to "ON" state halfway. i also looked in to the trigger list on the cloth grab atom but i couldn't find away to trigger it manually without turning the actual atom on and off.

ex. a person character comes from a far and moves near a pointy object then their clothes get hooked while they move away of the object. so the grab point at the pointy object can not be activated the whole time as the person will be away of it, and also it has to be activated to "ON" state the moment their clothes are within range of the grab atom.

i know there could be a work around to achieve this but i would to use the cloth grab point with timeline if possible as i have other uses for it in the future, can you please advice?


2-second, it maybe obvious but i couldn't find it, how do i turn on the curve graph on the timelin's UI? as in see the actual curve, i can select on of the presets you provided but i wish to create my own custom curves (ease-in and outs) if possible.

thank you so much and looking forward for your kind response.
 
Acid Bubbles updated Timeline with a new update entry:

Timeline v6.3.0

  • Real time works! So you can expect Timeline animations to fit with audio without Audio Sync, finally!
  • Reduce save file size by more than 6 times! For older scenes, go to More, Options to use the Serialization Mode "Optimized". This requires Timeline 6.3+ to open.
  • Animate rotation and position separately; this is still a beta feature, it will allow you to only animate the rotation or only animate the position, each with their own keyframes. Note...

Read the rest of this update entry...
 
@hunhunter I didn't use the cloth grabbing point enough to know it but it _should_ work... at least from what you say, I'd expect it to work. If you do find how to make it work, ping me I'm very curious!

As for the curves, it's been in my todo list forever to make it editable, but I never got to it. So, no way to make custom cuves for now :(
 
Can confirm that cutting down the save size with the new optimization works great!!! I turned a 470mb scene into 86mb without noticing any loss. This is huge. We can now have more/higher-res animation without risking a scene break if the file size gets too hefty.
 
Real-time is crucial for many trigger operations that require frame level accuracy. Thank you for your hard work!
 
@hunhunter I didn't use the cloth grabbing point enough to know it but it _should_ work... at least from what you say, I'd expect it to work. If you do find how to make it work, ping me I'm very curious!

As for the curves, it's been in my todo list forever to make it editable, but I never got to it. So, no way to make custom cuves for now :(
thank you for your response. unfortunately, i couldn't achieve what i was after though i have tried everything that i could think of. i mean it is working as an atom with timeline alright but it will never function as a grabber without triggering deactivate then activate, unless i can trigger the grabbing function manually without turning it on and off somehow, which what i was hoping for since an existing plugin called desktopClothGrab by prestigitis does it by manually dragging/drop with the mouse pointer, i am not sure how but clearly there is a way to call grabbing function. but i am sorry to disappoint, i am just an artist, not as knowledgeable as you guys ?

for now i have the following work around: the animation has a person who fixes their clothes by dragging them up, for this i activate the cloth grab atom off then on again on the previous segment for it to start functioning (otherwise it will not) right before that segment's end to minimal cloth disturbance on the wrong pose, then when we start with the segment where the grabbing animation occur, the cloth grab atom plays its own timeline on the shared segment where i animate it to pull up. also in my case i had to previously attach the node to one of the limbs to get to the right place in time, detach it and turn it off when done. for now it is "okay" but its not practical for more complex operations where you actually need multiple cloth grab nodes to get better results (each pulling from different side as a singular atom pulls a single point/area depending on size), it also will not look good on off-poses even though it may beattached to the body, causing clothes to jerk and all and finally it will force you to split your animations into more segments which will add up to the complexity over all.

as for the curves, i understand and i hope it will be present in the future. and if i may i have the following suggestion regarding the matter:
a curve appears between two keyframes in a single timeline right? lets say F1------F2, accordingly the curve on a 2D graph will have two points: start p1(x,y) and end p2(x,y) for each frame, and more points in between if you wish to make more complicated shapes (bounce, elastic..etc) but for now i suggest to keep it as simple as two points curve (sine) which will help us make ease-in and out motion tweens, also any average animator can use these two only to even create these complex shapes if they manage their frames on timeline wisely. now what i am suggesting is to add a separate tab for graph editing that only contains 4 sliders, each graph point has an x and y separate sliders, selecting the frame F2 (the next frame) activates the graph editor as usual, then edit those sliders and that's it. it also should work for for F1 in case of looping the way you have it currently. you could also move your existing graph presets to that tab to free up some space on the left layout of the plugin if you want. i am also sure everybody will appreciate a simple copy/paste graph buttons if possible as well as adding quick ease-in, ease-out and static presets as well. btw, i always thought that the "flat" preset you have is actually static p1(0.0) p2 (0,0) but it turned out it is not :ROFLMAO:

i also would like to thank you for your continuous work and improvements, separate pos and rot animating is a FANTASTIC addition, and lastly i apologize for the long post but i only wish for your plugin to keep getting better and better.

i have pledged for your patreon btw, not that i sell content or anything but to show my gratitude and as a token of friendship. i can't promise to maintain it so i apologize in advance. i hope you the best and success.
 
Last edited:
@Acid Bubbles Real-time animations is going to be awesome with my dancing animation. One question: is there a quick way to update my TImeLine version in the scene I created? So far, I'd just edit the .json of the save, and update the TimeLine version by hand. That's no problem, but with this new version, I'm afraid it will mess up my save file (since you have added compression (yay!)). So:

1. Can I just edit my .json savefile to update the TimeLine version to this latest version? (or will it break stuff)
2. Or is there some other way to update the TImeLine version when it is already used in a scene?

Thanks for your great work!
 
@hunhunter glad you found something that worked! Honestly plug-ins are filled with "hidden hacks" like that anyway :) maybe a small dedicated plug-in could be created for what you want (I know I'm already overloaded with upcoming stuff), I know it's this kind of situation that led me into learning Vam plug-ins dev :)
 
@pinosante no problem you can do that! To avoid confusion, loading scenes created without compression will keep the legacy mode. After upgrading, you can go to more, options and change the serialization mode to compressed there. If you need to load back in older versions, you can switch it back to legacy and save again!
 
Big fan of what you are doing here! I have a small problem though, my layers behave as if they are in a set together with no way to undo this. Not being in a set seems to be the default behavior in your older tutorial videos (as seen here at the timestamp).

EDIT: I've been reading through the docs and I can't seem to find a solution to this. My layers in the same segment always play the first animation together, as if they are in a set. If I give them different set names this behaviour still persists, so I do think this is a bug.

To give you some context; I like to do procedural animation where different systems handle the logic of when something is played, for different layers. This is great for reusing smaller animations, like tying emoting to sound clips but randomly choosing the joint animations which accompany that. I can't really do that right now, unfortunately.
 
Last edited:
Hey Acidbubbles! Long-time user, first time poster! Your tools are incredible! I'm a professional (2D) animator by trade and the options and flexibility your plugins provide make VAM a truly fun environment to animate naughty things in lol. I had been using several instances of rubber leash for breast play, until I found out that timeline not only supports it natively, but allows the parented object to move within its local position in the heirarchy? So cool!

Is it possible to keyframe the parenting mid-animation? Also, is it possible to keyframe a control point's position state? Like if I wanted a character to lift a breast and let it go, I wouldn't even need to keyframe the parenting if I could just toggle the control point on or off. I know I can set it up in the triggers tab, I was just wondering if there was an option somewhere to toggle control as a keyframed event.
 
Having an issue with random group weight. When I set it to zero it keeps defaulting back to 1 when I reload the scene, unless play next is set to none. But any number between zero and 1 gets saved. Also the "prevent selecting exit anim" box in the sequencing tab disappears when I change the play next option
 
Last edited:
Is it possible to keyframe the parenting mid-animation? Also, is it possible to keyframe a control point's position state? Like if I wanted a character to lift a breast and let it go, I wouldn't even need to keyframe the parenting if I could just toggle the control point on or off. I know I can set it up in the triggers tab, I was just wondering if there was an option somewhere to toggle control as a keyframed event.
hi, it can be achieved by adding a trigger track on any given timeline. this track will allow you to trigger anything you want on a specific keyframe and thats where you will trigger the leashed controller to be unleashed. but please know that triggers do not undo themselves automatically, it will tell the program to do something and it will stay the way it is later on, like if you unparent the boob on a keyframe during the animation it will stay so forever, so any trigger has to be called two times (on and off states) on a timeline to ensure a proper playback. here is how:

first go to the trigger tab and click on the [+/-] green button to add a trigger like you usually do, then add a trigger track to the segment/layer/animation where you want to trigger the unleash.
1689825207093.png
1689825463381.png

and you will notice that it added a trigger track to your timeline, then click on the trigger tab once again to go back and then click on the green trigger wile it is selected from the timeline.
1689825689039.png

it will bring you to this screen, and that's where you can trigger things. now i am not sure about your setup but i will assume that you had the nipple controller leashed for the breast movement. and lets say that we have two persons in the scene where "person" is the target with the leashed boob. so first we will add the "on state" trigger and it is advised to add it on the start of the animation. so the leashed nipple controller has to have it's position/rotation (or both) states to ON or whatever you are using, so the first trigger should keep it that way at start.
1689826580000.png

copy this trigger and paste it again to trigger the rotation for this boob this time.
1689827006363.png
1689827857531.png


1689827985465.png


copy both once again as we will use it and modify it next. then seek for the frame where you want to add the boob release and add another key frame on the trigger track by clicking on the same place from point (5) and paste the trigger you've just copied. then change the controller's state from (on) to (off) on both position and rotation, click on ok. this will release the controller from the rubber leash and then re-attach it back when you playback your animation.

1689827286429.png

and that's it. now go back to the start trigger frame and copy/paste both the rotation and position actions, paste and edit them for the other nipple controller if you wish. do the same at the end trigger frame and now the other boob is added.
 
@Acid Bubbles , how do we split the position and rotation for a controller from your latest update? i can see that selecting the target and clicking on the drop menu arrow that there are new check boxes. i can select the rotation or position check boxes but the controller remains as a single target on the timeline.

the way it is displayed here from your example:
1689828750370.png
 
@GochuJank When playing animations, the first animation of each layer will always automatically play. If you want to avoid that, you can create an empty animation in each layer, and set the local weight to zero, and the blend time to zero. Eventually I might make an option for this but that's what it'll do in practice anyway!
 
Back
Top Bottom