Hello, everyone!
So far, Batcat is chugging along exactly on schedule. I was able to get the apartment-exterior sequence done, including what I think may actually be the first walk cycle I've animated by hand, for better and for worse.
Usually, if I need a character to locomote, I do everything in my power to keep the shot waist-up and just slide them along while bobbing their hips up and down. On the occasions where the shot composition doesn't allow that, then I almost always fall back on DARP, my collection of canned walk animations from various games specifically built for my Daz models. The Artemis walk animation seen in Corsair, for example, is all DARP.
But this particular shot's composition wasn't conducive to either. I needed Selina walking up stairs, which I don't have any canned animations for. And then blending into and out of DARP animations is rather complicated to get looking decent. I figured, since I was already in for a penny (hand-animating the stair-climbing animation), I may as well go in for a pound and just hand-animate the whole damn thing.
So, today's Progress Report header image shows off my first full walk-cycle. I think you can see why I avoid walk-cycles whenever possible. There are many things I can animate. Walking is not one of them.
BUT, it's a short sequence, largely inconsequential in the grand scheme of things, and has a conversation going on during it, so I don't think it will really drag things down. And if people are going to criticize the video for a 4-second shot of character walking of all things, then, well, go off I guess king.
Beyond the walk cycle itself, you can also see this shot includes a four-digit keypad iterating through all its combinations. Rather than doing the sane and reasonable thing of doing this in post and just having a program count up the numbers automatically, my stubborn insistence of doing everything in-engine won out.
The keypad digits are composed of 4 individual transparent-plane objects, each with a collection of skins for each digit, a dash, and no number being shown. I then hand-animated each digit cycling through the 10 digit skins. The entire sequence is keyframed entirely within SFM.
So that was fun.
I mentioned last week how I needed to assemble the building in 3dsMax, and that it wouldn't be hard. That, turned out, being a bit of an undersell. It wasn't hard hard per se, but it ended up taking a lot more time than I anticipated, and required solving problems I did not anticipate - some of them artistic, some of them technical.
Far and away, the biggest artistic problem was the corners. The walls being used for the building are rather decorative and fancy (which is why I chose them). This involved them having a lot of complex angles at their corners. Combining them together to make a clean 90-degree angle proved... challenging.
I'll let this GIF do all the talking on that. It may not look like much on the surface, but if you look at the intricacies of the work that was done, you may come to appreciate how it wasn't as simple as welding two box corners together. There was a lot of mesh extension required.

Beyond the corners, I also explicitly set out to fix the funky door on the ground level. Ever since I first spawned the pieces in to kitbash the building in the storyboard, this door drove me up a wall. Why is it so tall?

The gray box is a standard-size door for comparison. You can see that not only is the wooden door not only just larger in general, but it's just so much taller than it should be, too. So, I fixed that. That required some creative engineering, because that door took up the entire back wall there, with no mesh behind it. So I ended up duplicating some wall mesh to stick back there.
To good effect, I think.

Those were both expected problems to solve. An unexpected problem to solve was that the ledge beneath the windows was intricately cut around the window-frame itself, resulting in rather complex holes in the geometry. This in itself wasn't an issue, but the fact I removed one of the windows and replaced it with a blank wall, to then cut the door into, was an issue - the doorframe did not cover the holes in the ledge.

Now, I could painstakingly mesh in those holes, leaving a complicated a topology for an otherwise flat surface. OR....
I could just slap a flat 2D plane directly on top of it, and give it the same UVs as the underlying complex geometry. Resulting in a seamless blend with the original mesh, without actually editing said original mesh whatsoever.
Between choosing the complex and time-consuming approach that would have added about 30 triangles to the mesh and made a complex topology for no added benefit, I decided to go with the simple and quick approach that adds 2 triangles to the mesh.
Sometimes the stupid approach is the smart approach.
Beyond those artistic puzzles, I also had a rather annoying technical problem crop up. Originally, I had compiled the building and the catwalks all as a single object. This worked without issue (though the compiler did struggle to chug through the 125k poly mesh, it ultimately chew through it without issue).
While animating the sequence, however, there were a few shots where I needed to put the camera into the building. The shot showing off Selina pulling out the card for example (which was its own adventure to construct a model for, but I won't get stuck in the weeds there - though I absolutely could, because there is no reason why that Raspberry Pi model should be 160k poly, yet here we are).
So, I decided to split the catwalk and the building itself off into separate meshes, to be bodygrouped together. That way I could simply disable the building in those shots, while retaining the catwalk behind Selina.
This is where the technical oddities came into play. The catwalks themselves, sum total, are 40k poly. The building is 85k poly. Altogether, as I said, the building is 125k poly.
When the building is exported all as a single 125k-poly mesh, it compiles into a single model without issue (though, again, the compiler struggles to chew through it all). If I compile just the 85k-poly building into a single model, it compiles just fine. And if I compile just the 40k-poly catwalk into a single model, it compiles without issue.
But for some reason, if I take the 125k-poly single-mesh model, and split into a 85k-poly building with a 40k-poly catwalk bodygroup, it simply refused to compile. I spent an hour trying to diagnose it, and in the process somehow managed to corrupt the 3dsmax save file so badly I actually had to roll back and redo the entire splitting of the catwalk off to its own model again.
In the end, I never did get them to compile as two bodygroups in a single model. I just compiled them out as two separate models, and then just disable the building model as necessary. Ultimately a simple and straightforward solution. But still an annoyance I wasted more time on than I care to admit.
In the end, though, I got it all into SFM and working to great effect. I'm quite pleased with how it all came together. Even if it was a bit more of a headache to get it all done than I expected it to be. That's just life, though, innit?
I haven't been the only one at work over the past week, however!
The wonderful InsideIncognita, who recall is not only voicing Selina in this project, but actually wrote the whole project which has since been split into a two-parter for the sake of production time, delivered her first batch of audio for the video.
I haven't gone through it yet, waiting for her to deliver the second half of the audio later this week. But I've worked with Innie enough to know with confidence that she delivered pure quality, as she always does.
I think I mentioned some time earlier that SultryLamp already delivered her audio, which is for the current sequence I am animating, and so I have been dropping that audio in and using it for more precise timing. So far, it's all been coming together smashingly well.
And speaking of SultryLamp, she actually reached out to me a few days ago with a project idea. She has been exploring doing voice-work full time, and was ringing up her contacts looking for some potential semi-regular contract work, to give her some stability as she steps into the wonderful and terrifying world of self-employment.
And I, it just so happens, was in the middle of writing out more potential Micro videos at the very moment she messaged me. She's looking for semi-regular contract work, I'm looking to make semi-regular 60-second videos. I don't know about you, but that smells an awful lot like Providence to me.
So we got talking. She was up for voicing pretty much anything I had in mind, but I figured that if we're going to jump into these experiments together blindly, then it should be on something that we're both pretty attached to. Namely, I wanted her to voice a character that she wanted to voice, rather than just conforming to what I had in mind.
As it turns out, she also does a fair bit of writing on her own. And the moment I mentioned the potential of using Baldur's Gate 3 player-character heads to build original characters in a fantasy setting, she just absolutely lit up. It turns out she has a bit of a thing for adventurous busty elves getting up to sexy shenanigans and landing themselves into horny hijinks.
We haven't hard-committed to anything yet, and are still in the process of putting together her original character. We've chosen a head to use as a base, as well as a general body-shape and vague direction for her hair. She's also been writing up some characterization for her elf as well, and has decided on a bit of a shy, nerdy explorer (complete with cute little round glasses!) whose curiosity often gets the best of her.
Hopefully next week, I will have her character assembled and in Source, ready to share with you all, as she and I start to work out a general high-level projection as well as writing out some individual 60-second Micro videos for her to debut in.
And then as a final segue, VoiceLikeCandy brought in her wonderful Marie voice for the Marie Micro video that I mentioned in a previous video. As always, she did a fantastic job, and since the project is so short, I decided to just lip-sync and character-animate her audio right then and there. I know that GIFs don't have sound, but, here's a GIF of what that looks like anyways.

Once I have Innie's audio for Helena in, I will have all of the components to quickly bang out the Marie video. Universe willing, it will be ready by next week. But that's largely depending on Innie, who is voicing two projects for me, as well as juggling the hectic life of being an independent music teacher. So we'll see how that goes.
As a Micro, it won't have early-access, and it won't be going onto my main Films page. Instead, I will be simultaneously posting the 720p free version on Bluesky and Twitter, as well as posting the 2160p Patreon-only version directly to Patreon as an attachment. The latter will be posted under the 1080p Early-Access tier, meaning that 2160p Micros will only be at the $10 tier, rather than the usual $15 tier that 2160p videos normally sit under.
The Patreon-attachment release means you won't be able to stream the 2160p video directly. But it's only a 60-second video, so I don't really consider that a significant loss. You'll be able to get the full high-quality crispness of the 2160p as a direct download, and you can use the public 720p release as a litmus as to whether or not you think it's worth the hard-disk space.
Plus, I mean, the pirates will probably upload the 2160p version to the rule34 sites anyways. So if you're really a stickler, you can always just stream the 2160p versions they rip and upload. And unlike my usual videos, they won't even have to do it twice, since there won't be a 1080p version for them to rip off early-access and upload, and then reupload the proper 2160p version 5 days later.
So that's all I have to report on for this week's Progress Report.
Next week's goal is to finish off the last sequence in Batcat, which is Barbara's apartment, process and install what all of Innie's audio I have at that time, and then pester Milly to get the audio to me as fast as she can (and Innie too, if she hasn't delivered it all).
Since, once I get to that point, I won't be able to animate anything more until I have all of the audio in. I still have scenes to build, especially Barbara's apartment interior, but that's overall a pretty insubstantial time sink. I don't think it'll take more than a few days to build all of the scenes and all of the lighting, at which point, I'm stuck until I get audio.
And I really don't want to get stuck.
I hate cracking the whip, but it's been a few weeks since I've heard from Milly now. My last correspondence with her was from before I sent out the dub animation, and even that was a fair while back now.
The window is closing fast, and I'd rather not be like a common bird and find myself slamming up against the glass. So I'm going to need to take off my "easy-going friend" pants and put on my "boss whose paying you" pants and crack that whip (give the past a slip).
That's all for now. Until next time, everyone!
empheezie
2025-04-15 15:11:35 +0000 UTC