XaiJu
lordaardvarksfm
lordaardvarksfm

patreon


Progress Report - September 17, 2024

Hello, everyone!

We're still a bit behind schedule, but things are cooking along pretty well. The delays mostly come from two sources, one of my own doing and the other more circumstantial.

The circumstantial delay is personal, and all I'll say on it is that having friend groups consisting of married couples is great until those couples have messy divorces and both parties are in emotional turmoil and lean on you for support. Yeah. It's been a... months. This has been ongoing for a while, but this past weekend finally saw one of them getting kicked out of the house and moving into an apartment, and all the emotional baggage involved therein.

The other delay, though, is far more positive! And technical! If you've been following my Twitter (which you should, I very rarely post non-work-related things there, and I try to tweet something relevant to my work at least once a day; it's worth skimming my timeline once a day just to see if I've shared anything new), then you may have already seen this, but the tldr is I accidentally created an animation layer system in Source Filmmaker.

This came about as I was trying to minimize pulling what little hair I have left out while dealing with the sex-sequence expression animation. If you recount from last week's Patreon post on the subject:

3.) & 4.) Sex gesticulation and expression; the same things as before, but during the sex animations. These are separate categories because they are built in fundamentally different ways. During non-sex sequences, the head and body do not have existing animation, so I build the animations from nothing. During sex sequences, the head and body do have existing animation, so I have to build the animations on top of the existing animations. It's an entirely different process, and so I separate it out to different parts for my sanity.

I sort of implied it with the "separate it out to different parts for my sanity", but when I say "it's an entirely different process," I really mean "it's an exceedingly slow and painful process."

I didn't get terribly far into it when the old "work smarter, not harder" drive kicked in, and I started exploring better ways to pull it off. The goal was simple: free the neck and head bones of animation, so that I could free-form animate them the same way I animate the non-sex expression animation.

The first solution I tried was manually removing the head and neck animation from the loop sequences, by instead animating the chest bone such that the head got as close to the original position as possible. I did this for a bit, and it "worked", but it was very non-ideal.

The biggest flaw with it is that the chest moves the shoulders, while the neck doesn't - so where before I didn't have shoulder animation, I now had shoulder animation. And sometimes, you just don't want shoulder animation. It's particularly bad with arms getting pulled back, because then you risk the arms over-extending and the hands sliding around, meaning that the animation has to be changed further to account for it.

So that quickly became a no-go. My next solution was to set up a complex contraption of dummy bones, where the neck animation would be transferred to a dummy bone, freeing up the neck for free-form animation. The head animation would be similarly transferred to a dummy bone. These dummy bones would then be linked into the hierarchy through locks.

It's all very convoluted, but it does work. Surprisingly well, actually. The dummy bones retain the original animation, while the neck/head bones are devoid of animation and anything added to them gets added onto the existing motion. The problem is that it is an utter chore to set up, and is bulky and awkward to manage. It is not a pleasant experience.

The third solution was actually inspired by a viewer asking a question for clarification. They asked if it would be similar to the IK handles that SFM Python rigs allow, which got me thinking: I don't have to modify the models themselves, or jerryrig complex systems with dummy models. I can just create the dummy bones directly in the IK rig itself, make it a fundamental part of the model being animated.

And this worked so alarmingly well that I ended up extending the idea to support the entire character body. This effectively allows me to add an entire independent, freeform animation on top of any existing animation. It's honestly kind of disgusting just how well it worked.

The only problem with this solution is that models can only have one IK rig attached at a time. Detaching IK rigs removes the keyframe data, which means once you do it, you can't modify the animations, which is not what I want.

I am confident that there is a way to modify already-attached IK rigs to inject in the new dummy bones. But I spent about an hour researching it, and all I can say is that I peered too deep into that abyss, and I don't like what peered back at me. I could probably spend a week exploring the solution, and I simply don't have the time for that right now.

Which leaves us with the brute-force solution, of just spawning in entirely new copies of the character models, applying the new animation-layer IK rig to them, and copying over the animations on the old model to the new one.

But this comes with its own set of problems: these models don't exist in isolation. The hair and outfits are separate models. Other characters are interacting with them. They have custom material overrides for sweatiness. They are all very intimately linked with their environments, and all of that information has to get transferred as well.

So I ended up spending a few more hours writing a tool to automate all of that. Most of it is stuff I had already done in other tools in some capacity, and the rest of it was just a matter of reworking existing solutions in new ways.

All in all, I ended up spending 2 days working on this, but the end result is a new animation-layer system that trivializes adding the sex-sequence expression animation, and a mostly-automated system for replacing the old models with that new system.

So while I lost more time than I care to admit to researching and developing this system, to say nothing of the time I lost to being there for my friends as they go through the complete upheaval that is divorce, the amount of time that I am saving, both short-term and long-term, with this new system will more than make up for it.

I was able to process 340 seconds (over 5.5 minutes) of animation in less than 2 hours on Monday, adding expression animation to all of the sex-sequence dialogue. I can't overstate just how much faster that is than the older methods I used before this system, or the experimental solutions that I detailed earlier in this post.

I have one last 340-second project file to run the expression-animation pass through, which is my goal for today. After that, all that's left is jitter animation, camera choreography, and then any last-second tweaking - things like cleaning up clipping or adjusting lighting.

With any luck, I should be ready to render by Friday. I need to check in with my sound designer and see how he's faring on his end, but if things keep going at this current pace, we might hit a September 23 release. Later than I would have liked, but it is what it is.

Forever and always, no promises. I'll keep you all informed as things progress.

Rather than the standard sign-off, I want to leave you all with this prototypical after-credits image I am hoping to integrate into the final video. I leave figuring out the context as an exercise for the reader.

Until next time, everyone!

Progress Report - September 17, 2024

Comments

nice

empheezie


More Creators