Home Creators Posts Import Register Favorites Logout

Content

Hello, everyone!

All of the peasant outfits have been applied across the 24 project files of the Frozen video. As per some statistics I posted on Bluesky the other day, there ended up being exactly 1,200 unique peasants in this video. Yes, you read that is right. There are over one thousand unique men that are visibly on-screen in this video, and each and single one of them got their own unique outfit.

I noted last week how, if I wanted to change the generated outfits of a particular character, I had to go directly into the data files, manually find the lad I want to reroll, and change the seed value stored for him. I noted how this was clunky and cumbersome.

Well, it turned out to be too clunky and cumbersome. I ended up writing a companion tool to the Peasantifier, taking advantage of a SFM Python script path that I don't see many people utilize: dag scripts. I'll spare the details, and just say that in SFM, you can only run rig scripts (what most scripts are written as) on models that don't have locks - but you run dag scripts on individual bones, not individual models, meaning that you can run them on models with locks.

This dag script, which I creatively named "seed reroll", effectively automates the previous manual process. I simply select a random bone of a character whose outfit I want to reroll, and run the script. Rather than generating outfits for the entire scene, it will generate a random number for that specific character, store that in the data structure used for outfits, and then generate a new outfit only for him.

This required me making a few minor changes to how the main Peasantifier script worked, namely the ability to change existing outfits rather than just keep spawning new ones on top of them. But that worked out just fine, because I needed to change the script anyways, to rate-limit how many outfits it tries to apply at a time. Every outfit it attached would consume about 30MB of memory, mostly going into the undo buffer. With some shots having over 60 men on-screen at a time, applying outfits could consume nearly 2GB of memory. Which is a problem, considering how each of these project files consume about 2800MB of memory just from fresh load, and SFM crashes when it exceeds 3400MB, meaning I have less than 600MB of memory to work with.

The memory consumption is transient--restarting SFM resets it back to the base 2800MB use--but it still required me to constantly reload SFM every 10 or 15 outfits applied. Which, with 1200 outfits to apply... Is a lot of reloading.

I ended up trying out the DXVK plugin for Source Filmmaker for this project. Models (or more specifically textures) generally aren't a problem for me, because I go to great lengths to optimize both for SFM, and as I detailed above all of my memory-related issues with this project are due to data rather than models. But even then, the DXVK plugin massively reduces SFM's fixed-memory overhead, and managed to free up nearly a full gig of memory entirely for free. With that free gig, I was able to go from applying 15 outfits between reloads, to being able to apply 50 outfits between reloads. This massively sped up the process.

With all of the peasant outfits applied, the next step is to fix them. Specifically, fixing their rigging. As you can tell by this sample image, it uhh... It isn't great.

The problem is that these outfits were all rigged very simply, having 3dsmax assign each vertex to the bone closest to it. This works fine for first-pass rigging, but it misses a lot of nuance.

The nuance in this case, being the lads' peckers. Things like rope belts and baggy shirts ended up getting rigged to the cocks, which means they bend and deform oddly with said appendages. This results in the grotesque abominations seen above, and are prevalent throughout the video.

Fixing these issues will (nominally) be pretty easy, if not tedious. It's just a matter of going into each outfit and reassigning all cock weight to the pelvis. I have tools to automate this process (I have tools to automate everything).

The tedium comes from the fact that there are a lot of outfit pieces - 14 pants and 25 shirts, along with 10 shoes and 22 sleeves which I don't need to adjust the rigging of. Though, there are also some clipping issues with some of the more extreme bodymorphs that I also need to fix, and those do affect the shoes and sleeves as well. Meaning in total, there are 71 outfit pieces I need to manually tweak. Even more, since all of the pants have unique exposed variants, and some of the shirts do as well.

It's all pretty easy work. It's just a lot of easy work.

There is a very minor potential technical complication with doing this, in that Source doesn't like it when you change the bone hierarchy of a model out from underneath it. By removing the cock bones from the outfit rigging, it may end up changing the bone hierarchy (Source culls bones that aren't used). If this ends up being the case, then in theory it is as simple as applying a $definebones command to explicitly force the bones back in.

Of course, nothing is ever as simple as theory. But we'll burn that bridge as we get to it.

Beyond the Frozen video, the Pharmmetra Micros are finally done with their blocking drafts, and are just about ready to be sent out for dubbing. As I write this post, I have the wonderful Bruce Parker, whom is a Swiss German native (same as Mercy in Overwatch), going over the videos and providing suggestions on how to change the awful Google Translated German I used as a placeholder in Mercy's dialogue.

Once he is done and the changes are applied to the subtitles, then I will be sending out emails to BordeauxBlack, MidnightDatura, and Milly Stern about reprising their respective roles as Pharah, Symmetra, and Mercy for these videos.

You can watch the full blocking of the videos by clicking here. These are just about the final versions I will be sending to the voice actresses (I'll actually be sending them this same exact link - so if you're scrupulous, you can bookmark this page and check again tomorrow to see the final revised dialogue!) In total, there are over 8 minutes of footage between these 4 episodes. Not bad in my opinion, given the very particular and intentional structure and writing of them, and how (relatively) quickly they came together--all while working on the Frozen video as my primary focus, no less.

Again, as a quick reminder, the current scheme is that these videos will be released every 2 weeks (I was originally considering 4 weeks between episodes, but that was before I shifted around to building the entire arc all in one go, so that I can get the voicing done in one bulk run and be more efficient with the voice talents' time), with the $10 1080p tier getting a full episode early (first 2 episodes on initial release), and the $15 2160p tier getting the entire unfinished-but-fully-voiced set of episodes all at once.

I also shifted around my schedule for when I work on these videos. The original idea was that I work on these videos at the end of the day, an hour or two before I go to bed; and that I am able to block out a full episode every day. This was a great idea in theory, and the raw hours work out in reality pretty well. But there were two problems with it:

The first problem is that, and this really shouldn't surprise anyone, but I am tired at the end of the day. The last hour or two I spend before bed is my wind-down period, and I usually spend it playing a chill game like Satisfactory. Something I can just vibe to. And working on breakneck intense fucking animation isn't really wind-down, chill, or vibe. So what was in theory "work an hour every day before bed" turned into "work maybe twice a week before bed".

The second problem is that I, uhh, didn't take into account "distractions" while working on these videos. I don't make it a secret that I make things that I like. And by like, I mean like. And by like, I mean:

Naturally, these distractions slow things down. And when you combine those unaccounted-for slowdowns with the first problem, it results in the Micros taking a lot longer to get done than I originally planned.

So, I decided to shift working on Micros to being at the front of my schedule. Rather than spending 90 minutes before bed working on them, I spend 90 minutes first thing on the morning working on them. And then once those 90 minutes are up, regardless of where I am along the production of the Micro, I put it aside and focus on the day's tasks.

It has been working exceptionally well so far. We'll see how long it keeps up.

Beyond the Pharmmetra Micros, we have also been making steady progress on the Marie/Honoka Micros over on the Sunday streams. We have all of the core animation for the 5 episodes we're working on done (the 6th episode I finished before the streams), and we have fully blocked out the first two episodes. Those two episodes are currently clocking in at 2:21 and 1:53 respectively, for a total of 4:14, or just about 4 minutes. Which keeps up with the earlier predictions I made, and the example Pharmmetra is setting, of roughly 2 minutes per Micro.

Throw in the already-finished episode being 2:02, and at this point I think we can assume that the final 6-part arc will end up being around 12 minutes total. A comparable length to the Breed and Bond video, but without the 5-month production cycle and intentionally written to be produced, released, and viewed as smaller independent videos.

All in all, I'd say things are going extremely well so far. Next week should see all of the peasant outfits done in Frozen, and audio starting to come in on Pharmmetra. We'll see how all that goes.

Until next week, everyone!

Files