December 2019 Summary

HIGHLIGHTS:

  • Work on metadata discovery for ABX (and KitCAT)
  • Protonmail domain account for narya.net mail
  • Automated “Lunatics!” ink/color setup with ABX
  • Set dressing for TB-TouringBaikonur sequence in S1E01
  • Rendered (most of) TB-TouringBaikonur sequence on remote render server

 

Dec 6, 2019 at 4:00 PM

Demo: ABX File Context Discovery

This is a short demonstration of the filesystem-based context discovery module I’ve written for our studio helper package “Anansi Blender eXtensions”, as I’m developing core functionality.

The idea is for the program to collect useful information about the file being worked on, based on:

  • The location of the file in the filesystem (path)
  • The filename itself
  • Explicit data files provided for directories along the path (including the project root directory)

Once it has this information, ABX will use it to generate consistent scene names, rendering destination filenames, and so on. Some parts of the context, such as the file’s “role” can be used to determine what functionality should be visible (and what default configurations should be used). For example, the full EXR/compositing setup will be used for “cam” files, but not for the “anim” files (which are not for final rendering).

So far, it’s pretty basic. Eventually it will be able to parse library files as well as episode files.

For now I’m just trying to focus on the functionality I need to be able to use ABX to help me finish up Episode 1 with consistent compositing configurations.

Dec 9, 2019 at 4:00 PM

Some goofs are kind of artistic…

It would seem Georgiana is on the wrong layer in this file (she’s on the “Freestyle Proxy” layer). But it’s kind of a cool effect. Might have to use it for something in the future. Also don’t mind the invisible billboards!

 

Dec 13, 2019 at 4:01 PM

Billboards, Freestyle, Linking, and Scripting

This may take some explaining, but it was a tough puzzle to solve.

Freestyle allows you to specify a group to include or exclude for ink line drawing. This is particularly useful for cases where there is an object that is too complex to ink (either because it will kill the computer or because it will leave you with an unintelligible blob of ink — or both).  Or when the object doesn’t really look right when inked. The most common case of the later for me is when the object is a “look at me” “billboard” — that is to say, a flat image placed in the 3D space to create the illusion of a 3D object of much greater complexity than is practical to model.

In such cases, you can put the objects in a “No Freestyle” group and then exclude that in your Freestyle linesets. This is better than simply using a no-freestyle layer and a separate ink render layer (although I also do that for other reasons) because Freestyle does consider these objects — it uses them to block out background lines. Otherwise, the background lines would be drawn right over the billboards, which is a very unsatisfying result!

Unfortunately, Freestyle only allows ONE group to be used, which can create a problem.

All of the trees and grass in the above image are like this. In fact, they are particle systems of billboards.

Furthermore, they are not in the shot file — and that’s where this starts to get interesting. Because, in fact, the “No Freestyle” group used for the greens is not directly in this shot file. Instead, it is in the “background set” of a “background set” used for this shot (yes, two layers of backgrounds deep).

But, I am also using billboards for background extras — like the man walking down the sidewalk in the background of this shot.

And that’s where things get sticky.

Because now I need to have a group in my local file that will be excluded from Freestyle inking. But I’m already using a group from a background set for this purpose. And Freestyle only lets me use the one group — I can’t exclude both.

Nor can I simply add my billboards to the group from the library file. In general, Blender does not like you to edit library objects. The user interface simply won’t show you the library groups in the “Add to Group” drop-down.

You can do this with Python, though. Or the reverse — add the objects from the group in the background set to a local group.

Then you can use that combined group as the exclusion group for Freestyle.

Except, Blender will not save this new group correctly. When you reload your file, all the references will be broken. You are, essentially “editing a proxy object”, which is not persistent in Blender.

And thus we come to the need for a Python override script to be included in my blend file.

I’ve attached the script I wrote for this purpose. It has to be customized slightly to be reused. There are constants defined at the top of the script:

SCENES is a list of scenes (by name) to use the exclusion group on (needed this to avoid side-effects on this multi-scene file).

PREFIX is a string to be recognized in groupnames — I always use “No Freestyle…” for these groups, although to avoid confusion, I’ve given them suffixes to identify the file they’re from.

MASTER is the name for a master group that will unify all these group (it’s just “Master No Freestyle”) in my case.

So what this script does is first to delete any local MASTER group (to avoid creating multiple groups if the script is run more than once), then to fill that group with all the objects in every local or linked group whose name begins with PREFIX.

It then goes through SCENES and for each of them, goes through every render layer and every lineset defined in Freestyle settings in those layers, and adds the exclusion rule, specifying this newly-created master group.

This script then has to be “Registered” to run when the file is opened.

Once that’s done, opening the file and rendering (or rendering from the command line — be sure to use the “-y” option to run scripts) will work correctly.

Quite a little adventure!

 

Dec 14, 2019 at 4:00 PM

Now the “market” looks like a market…

This is a test image for a shot at the “Central Market” set. Now “render ready”. This is not the final look of the frame, because I plan to fix a few things (like the stray ink line on the left) in compositing. I may also tweak the color and/or line mix a bit for consistency. And of course the frame annotations will be gone. But it’s very close to what it will look like.

Dec 25, 2019 at 12:01 PM

Christmas Sneak Preview: Touring Baikonur

 

Well, it has become clear that I will not get this pilot finished before New Years, which makes me a little sad. On the other hand, I get excited every time I see a new shot rendered.

What I’ve been working on the last couple of weeks is polishing each of the sets and associated shots in this two-minute montage and then sending them up to the render server to be rendered. Andrew Pam has been very generous in providing a server for this purpose, which has been working out very well.

In this sequence, Hiromi and Georgiana tour the town of Baikonur and then, the next morning, go through some of the traditions of Russian spaceflight, prior to going to the Cosmodrome to launch on a Soyuz flight. It’s right before the Press Conference sequence (you might recognize that the drawing Georgiana is making at the Press Conference is the monument from the final stop in their tour of the town).

This is probably the most complex sequence in the episode, consisting of seven sets based on real locations in Baikonur (although there is a little artistic license — it is 20 years in the future). That was quite a challenge to research, since none of us has been to Baikonur, and we certainly couldn’t afford to go there for research. So what you see is the result of many hours scouring tourist photos and satellite images to try to put together the geometry of each site. Often, there were missing pieces — tourists unfortunately tend to take photos from particular angles, often ignoring others, which can be very frustrating.

Another complication is that we’re on Earth and there have to be people around, or it will look really desolate. So I made an effort to get “extras” into the backgrounds of most of these shots.

I also wanted to keep the episode from becoming long and dull, so this sequence has to keep moving.

One question for anyone who can help with the language: the woman’s voice heard over the loudspeaker in the train station isn’t really supposed to be intelligible — I certainly can’t understand it. But it occurs to me that it might be to a native speaker (of Russian, I assume, although it might actually be Ukrainian — this sound recording was actually made in Lviv, Ukraine). I’m pretty attached to the sound file — I love the sound of the train arriving in the station. In fact, I decided to give 2040 Baikonur an enclosed train platform to match the sound, even though present-day Baikonur’s train station has an open-air platform. Perhaps space tourism money has paid for upgrades? If the voice is saying something too incongruous, I might have to do some remixing — I already cut out the part that apparently referred to Kiev. I’m hoping what I have left is more like “Please stand back from the train so you don’t get run over”.

This whole production has been a huge learning process, and what I’ve been learning mostly is how long it really takes to do this kind of work (I am getting better at it).  I will continue finishing and rendering shots into the new year.  I expect to finish the last couple of shots in this sequence before New Years. Then I’ll be working on the other sequences in January.

Hopefully it won’t be long before the whole episode is rendered.

Dec 31, 2019 at 9:27 PM

“Made for Kids” on YouTube

After discussing the options, we’ve decided that the “Lunatics!” channel on YouTube (which currently has only one video — the earlier preview, in fact), should probably be set to “Made for Kids” according to YouTube’s new content rules, in order to ensure compliance with COPPA.

I feel some ambivalence about this, since of course “Lunatics!” is not particularly targeted to kids, but given the vague guidelines YouTube and the FTC give for deciding if a channel or video is “for kids”, it seems clear we’d be very likely so labeled, and if the channel isn’t marked, we could get fined into bankruptcy over it.

At the moment, my own personal YouTube channel (which actually has most of the “Lunatics!” content that I’ve uploaded to date) is not marked, as it’s mostly behind-the-scenes content, which I assume won’t be regarded as kids content (although the weird thing about this whole concept is that “kids” means anyone under 13, and plenty of “kids” DO watch software and art video tutorials online — which makes all this seem like madness to me).

I haven’t really made much use of YouTube in a couple of years — I’ve migrated most of my work to Vimeo, which offers better options both for Free Culture (such as better CC license tagging and a built-in download link) and Free Software users (the player doesn’t require any proprietary add-ons and works fine in open source browsers — although I think this is true for YouTube these days, too).

However, despite all the headaches, it’s undeniable that YouTube still is the vastly more popular platform, and it’s the only video platform we might be discovered on, as opposed to being found by deliberate search.  So I do intend to maintain a channel there, although it may remain kind of minimal.

After discussing the options, we’ve decided that the “Lunatics!” channel on YouTube (which currently has only one video — the earlier preview, in fact), should probably be set to “Made for Kids” according to YouTube’s new content rules, in order to ensure compliance with COPPA.

I feel some ambivalence about this, since of course “Lunatics!” is not particularly targeted to kids, but given the vague guidelines YouTube and the FTC give for deciding if a channel or video is “for kids”, it seems clear we’d be very likely so labeled, and if the channel isn’t marked, we could get fined into bankruptcy over it.

At the moment, my own personal YouTube channel (which actually has most of the “Lunatics!” content that I’ve uploaded to date) is not marked, as it’s mostly behind-the-scenes content, which I assume won’t be regarded as kids content (although the weird thing about this whole concept is that “kids” means anyone under 13, and plenty of “kids” DO watch software and art video tutorials online — which makes all this seem like madness to me).

I haven’t really made much use of YouTube in a couple of years — I’ve migrated most of my work to Vimeo, which offers better options both for Free Culture (such as better CC license tagging and a built-in download link) and Free Software users (the player doesn’t require any proprietary add-ons and works fine in open source browsers — although I think this is true for YouTube these days, too).

However, despite all the headaches, it’s undeniable that YouTube still is the vastly more popular platform, and it’s the only video platform we might be discovered on, as opposed to being found by deliberate search.  So I do intend to maintain a channel there, although it may remain kind of minimal.