Here's a few ideas I was working on. I re-did some stuff with Cerenthea's junk so it works better with being penetrated and animated some penetration. Then I was thinking about a one-man-glazing type situation below... I thought it'd be hot to do ~1 minute of stroking, leaking, then she gets covered in nut.

Then a friend of mine was working on a cool piece with Nyro and Cerenthea in this pose and asked me how the appendage would animate and I didn't really know so I did some tests of what it might look like.

One of the things I find I do a lot and is a bit of a hassle to manage is timing strips across multiple armatures. For an act involving more than one character there is at least 1 action you'd want to play when the other character is doing that action. I was thinking "there has to be a way I could do this more simply..." and I thought about using markers as a way of telling Blender where to put what action and for how long. This is a really basic, simple version of what I mean:

A timeline marker has information telling a Python script what strips it should create. The scale of the strip is determined by it's frame on the timeline and the distance from it and the next marker in frames. The marker name holds tags for adding actions (so '@ACT1' would put down an action named 'ACT1')
How I'd like it to work is by telling a script to look at specific objects and add actions matching the object name per action (So, say you have Mitch and Cerenthea. I'd make an action for stroking called "Mitch- STROKE" and "Cerenthea- STROKE" and have markers on the timeline containing "@STROKE" and for both Mitch and Cerenthea the script would put strips containing the STROKE action for both characters)
Only problem- this would be made pretty much obsolete when Blender 4.4 comes out with slotted actions since this solves the problem of need 1 action per object. (that is given that slotted actions don't get pushed to later release, that happens sometimes with big features)
https://youtu.be/u1VftqTABK0?si=THVP8WZhRf8n2dZw
Probably not going to work on this marker-based strip generation tool much if it proves to be too much trouble.
However, there's still things I wish the NLA did differently like how it handles "scaling" action strips. To slow down or speed up an action you mess with a "scale" value which is just a multiplier of how fast the strip plays (so if an action is 10 frames long and you set it to a scale of 0.6 the strip is now 6 frames long and the action is 4 frames faster). This works nicely when your actions are tidy numbers but not so much when your action is say, 15 frames long and you want it to play at 1.1 speed because now you have a strip that 16.5 frames long.
Having strips that aren't integer numbers in length is something you don't want... When a keyframe is between whole-numbers it sucks to move around or tweak because the timeline scroller works on whole numbers (so if you want to insert a keyframe it'll be on frame 2529 and not 2529.25 or whatever it is)

The thing is nothing is stopping you from making this frame perfect but you have to first find out how long the action is... then divide the desired frame amount by the action's length. And I was getting tired of doing that. So I wrote a simple add-on that let me retime the keyframes with the new times making them frame perfect. But then I was thinking about other stuff I wish I could do with the NLA... so I added more features the NLA is missing such as selecting strips by similar actions and batch renaming of strips.

A. This button lets you select strips that have the same action as the select strip.
B. You can rename the selected actions based on a new name in the text property box there or rename the strips to the name of the action they hold.
C. This shows important information about the selected strips. "Fr Raw" is how many frames long the action is. "Fr TL" is the amount of frames the strip lasts on the timeline. Scale is just the scale of the strip (which determines how many frames it has).
D. You can either set the strip time to a new amount or you can tweak the time by adding or subtracting single frames from it's length. You can also reset the selected strips to their raw time.
I've attached the latest version (works with Blender 4.1 at least, should work with pretty much any version though since the NLA hasn't really changed a ton lately... if you're using later versions idk how it works with the new extensions system yet, waiting on either 4.3 or 4.4 to change versions).
Also attached the tests I was doing with the characters... I should get back to work on the Deep Dish thing but I just can't stop thinking about these characters >_> sorry...
Velocirection
2025-01-19 08:51:41 +0000 UTCCho Panther
2025-01-09 07:33:13 +0000 UTCVelocirection
2025-01-09 03:24:28 +0000 UTCDarbeat86
2025-01-08 02:32:28 +0000 UTCVelocirection
2024-11-17 09:32:42 +0000 UTCGenghis Dong
2024-11-16 06:32:20 +0000 UTCVelocirection
2024-11-16 05:00:58 +0000 UTCVelocirection
2024-11-16 04:56:22 +0000 UTCEnterprise
2024-11-06 08:59:06 +0000 UTCebu
2024-11-05 20:26:32 +0000 UTCGenghis Dong
2024-11-05 20:18:06 +0000 UTC