Well… I guess it’s time. I’ve been working on this animation for longer than I care to admit, but I’m definitely ready to release this thing into the wild, take my lessons and move on. And when I say ‘lessons’… I mean LOTS of lessons. And I’m so glad I tackled this project the way that I did. I had some triumphs and some failures, and best of all I learned more about 3D animation during this project that I have in a very long time. Lots of familiar concepts like cell fractures, rigid body physics and particle sims, as well as TONS of new stuff like character animation, rigging, and interactive cloth simulation, clothing stitching, procedural shaders and loads more. So here it is in all its glory, the intro animation for “Never Forgotten”:
-
[VIDEO] “Never Forgotten” Series Teaser 2019
Still working on a handful of shots right now, but here’s what I have so far. I learned a TON of new stuff with this project and had a blast!
-
Particle Systems And Rigid Bodies
Update on the “Never Forgotten” series animation! I’ve since shifted from the desert sands and dunes into a more abstract ‘title sequence’ type vibe. For this section, I’m using particle systems and smoke simulations 100 percent of the time. Starting to get some of the shots back from the render machine, and they’re looking pretty cool! Hoping to get everything buttoned up in the next week or two.
-
Sculpting Bootcamp: Day 2
Here’s the amazing thing… just the difference between day 1 and day 2, I feel like I’m already improving. I think it’s because I had a reference.
-
Blender, Linux, and R3D
Convert with FFMPEG?
If you’re wondering how to edit r3d on linux, you’ve come to the right place. This post is inspired by an official, yet very under-the-radar release of something called REDline Linux released back in mid 2018. As a fan of Linux as well as continuing my quest to discover a complete replacement for the Adobe Creative Cloud, I ran into this question: Can Linux handle R3D raw? After just a little bit of research, I discovered that ffmpeg can actually decode an early version of the R3D codec! The downside is, as of the writing of this article, ffmpeg isn’t capable of decoding the latest version of the R3D codec. However, this could change if someone comes along and reverse engineers the new R3D codec.
Yet the question still remains. How can I work with RED footage and use Linux at the same time? Enter Resolve. (Opinion alert!) Blackmagic Design has positioned themselves in a way that could completely dethrone the current king of postproduction software, Adobe. Adobe makes a great suite of programs. One of the biggest advantages they have is that their software can not only ingest and work with project files from other software within the suite, but it also does this seamlessly across Mac and Windows. For example, I can save a Photoshop project on a Mac, and open that same Photoshop file inside of After Effects on Windows (and still have access to all of the Photoshop layers). The biggest disadvantages of Adobe CC is that it’s a fairly expensive monthly subscription model that doesn’t support Linux.
Blackmagic Resolve
Blackmagic Resolve has been the industry standard for color correction for a very long time. Recently, Blackmagic Design revamped Resolve to be able to handle much more than just color correction. In a lot of situations, Resolve can be a sort of one-stop-shop for all you postproduction needs, providing basic edits, basic audio workflow, and some basic VFX. The biggest news is that Resolve is free to download, and upgradable to the full version for a one-time purchase of $300. So after your first 6 months, you’re already saving money over the standard Adobe CC subscription.
Anyway, point being, Resolve is quickly becoming the powerhouse one-stop solution for professional post video. Handling R3D files is as simple as importing them off your RED mini mag, opening up Resolve, and grabbing them from inside the Media Pool tab. Pretty much like using the Media Browser inside Premiere Pro. Except better.
R3D in, TIFF out
From there, you can make the edits you need and export to whatever format you want, even image sequences like TIFF and others. What’s more, is that you don’t have to convert your footage with FFMPEG or something similar before importing. You can just import raw R3D without a hitch. Happy editing and Blendering!
-
VFX Workflow: Start to Finish
Last week I ran into some problems with a project at work that required me to have just basic knowledge of rigging. After burning over an hour watching and rewatching tutorials, and, because I was under a tight deadline, I got frustrated and eventually just edited the mesh directly to get a basic pose.
Beginnings
Now that I’ve hit the deadline and delivered the project, I spent the following weekend to fix my problem once and for all.
Which is fine, for arriving at a character shape fairly quickly, but trash when it actually comes time to rig and animate several primitives as if they were one. So once I got my turtle shape, I joined 2 primitives at a time, and joined up the meshes as best I could. Pair by pair, until I had a turtle mesh and a shell mesh. In hindsight, I would have just joined up the shell and the turtle to get one mesh, but that’s what this whole project was for: learning. Once I had my meshes joined, I marked my seams, and UV unwrapped. Then it was time for texture painting!
Texture Painting
Rigging
Once my turtle was painted, it was time to rig. Now that the pressure was off, I had an opportunity to actually learn how to properly built a rig, set up IK constraints, and orient joints using pole targets. Woo!
Motion Tracking
Now that I had my rig all finished, I was ready to animate. And my IK constraints made it WAY easier to set a few keyframes and get a halfway decent animation. Next, motion tracking.
This one actually took me a few hours because I was having to relearn how Blender’s requirements for reconstruction. 1) Blender requires 8 continuous tracking points from the first frame to the last to even have enough data to reconstruct the scene. 2) the average solve error needs to be 0.3 pixels to get an accurate track. My first try resulted in a solve error of 35.6 pixels. So eventually, after learning the requirements, trying some addons, and manually helping it along, I eventually whittled the solve error down to 1.4. Close… Technically usable, but still not the best. In the end, I learned a TON from building this little guy from scratch. So without further ado, I present to you, Shelly.
Hopefully this helped someone. Thanks for reading!
-
I’m a Purist
Opinion
This idea has been with me since I was a kid learning card tricks. The purist in me never liked some special custom-made gimmick or some thing that essentially made the trick possible. Because suddenly, now I’m relying on that gimmick everywhere I go. Now I can’t perform if I don’t have that gimmick.
The same holds true in my professional life. And instead of gimmicks for magic tricks, it’s plugins for applications. They might seem cool at first and give you some ability you didn’t have with the stock version of the software, or save you a bunch of time in creating a custom look or help you deliver an effect on a tight deadline.
Reasoning
However, in the end, just like with card tricks, now you’re stuck relying on this plugin that now you can’t live without. And even worse, if you’re working on a team and need to hand off a project to another team member, they can’t work on the project unless they have all the same plugins you have.
Just a minor, technical note: for the sake of this article and the naming conventions used by different softwares and companies, I’m using the term ‘addon’ and ‘plugin’ interchangeably. There very well may be a technical difference between the two terms, but Premier and After Effects call them plugins and Blender calls the addons. They’re almost the same thing to me.
Of course there can be exceptions with regard to my ‘purist’ view on the idea of this subject. One is the nature of the plugin, and Blender definitely falls into its own category when it comes to plugins/addons. Especially since it comes with its own addons panel in the preferences menu, addons are an integral part of Blender. Plus you can bake or otherwise export things that you make using addons into a filetype or object that anyone else can import and use. The addons are limiting in that way.
Paid addons for Adobe products on the other hand, have the potential to cause issues. If you’re on a team and need to make some minor changes to a project, but don’t have the addons, now you’re in trouble. Plus you might even run into licensing issues, depending on the plugin.
-
What Is The Golem Network?
What Is The Golem Network?
Simple explanation: Golem is a bunch of connected computers that team up to become a giant rendering Megazord!
This is a really cool project. Recently I have found myself lacking computational power in a professional environment. The client loves this Blender animation, but I’ve got 1/13th of the power I need to render what they want by the time they need it. Traditional render farms are out of the question because on demand render pricing would be enough to just buy a render farm outright. Possible solution? Golem network.
Disclaimer: I have not used Golem in a professional setting. However, that doesn’t mean I’m not very interested in the project. The idea being: you can download a simple client for accessing the network, set up a few ports for your router to forward, and essentially “go online”. There were anywhere between 250-350 computers or “nodes” on the network at any given time (at the time of this writing). You can check this number now at stats.golem.network. It even gives you the collective number of CPU cores, RAM, and disk space available at any given time. Pretty cool!
There are two sides to Golem. First is the side where you can essentially put your computing resources ‘up for rent’. This allows others on the Golem network to use your computer to render projects. The other side is renting computing resources from the network. Got a huge project to render? You can pay to rent resources to finish your project way faster. A huge advantage is that this is much less expensive than using a traditional render farm. Here’s a promotional video that explains it quite well:
My Experience
I ran spent about 2 weeks on the Golem network just renting my unused compute power. Wasn’t sure what to expect. The Golem network is built on the Etherium blockchain and providers are paid in GNT or Golem Network Tokens. If you are buying compute power, you’ll be paying in ETH and also covering any transaction fees. As of now estimating how much you’ll need to render your job is kinda complex. You need to define a specific ‘timeout’ time for your job. So if a weaker node gets your job and takes longer than your ‘timeout’ time, you basically lose your money. In my experience, I rented out my AMD FX 8350 Black Edition and earned about $0.07 worth of GNT. I think it’s because the network is still so new. Even the client to connect to the netowork is still in beta. It could also be that not a lot of people are using the network just because it’s just so new.
Regardless, the Golem Network is an incredibly cool project to keep an eye on. Who knows, it could potentially be the only way we render our complex projects! It is also worth mentioning that Golem is compatable with Blender projects. I have yet to test out the capabilities of the network and discover what is and isn’t possible when rendering Blender projects with certain versions of Blender, different addons, plugins, etc. Will keep you posted! Thanks for reading.
-
Using 3DConnexion Spacemouse with Linux
Uh… 3DConnexion Spacemouse Wireless?
If you’re like me and spend any amount of time in the 3D world, whether it’s for game design, game development, motion graphics, 3D animation, or CAD, you’ve probably felt a bit limited and slow when it comes to navigating the 3D viewport. In some programs, you even have to grab different tools or hold hotkey combos to get the movement you want (zoom, pan, fly, rotate, etc). A company called 3DConnexion has made a fantastic effort to fix all that. For this driver install, I’m using a 3DConnexion Spacemouse Wireless.
If you’re on a Mac or a Windows machine, it’s as easy as heading over to their site and installing one of their official drivers. It even comes with a little training program to help you get the hang of the basics.
Unforuntately, 3Dconnextion dropped linux support some time ago. They technically have a Linux driver available on their official site, but it doesn’t work. However, I found the solution:
Setup
There is an excellent 3rd party driver available online called SpaceNav and it’s the best thing that’s ever happened.
Installation is quick and easy. Just download the zipped file with the extension of your choice, extract it wherever you want, and execute the file named ‘configure’, then run ‘make’, and make ‘make install’, and if you want the changes to be permanent and start the driver everytime you boot, then just run ./setup-init. All these instructions are in a handy file named README! After a reboot, Blender should be up and running with your 3DConnexion Spacemouse.
Inside Blender
Once you’re in Blender, you can hit one of the shoulder buttons (the long, skinny buttons on the side) and it will bring up a settings menu for your 3D mouse. From there, you can tweak everything to your liking, including naviation speed, inverting axes, and include some a navigation guide when you fly around.
That’s it! All done. Enjoy flying around the 3D world with your fancy spacemouse!
Side Note:
This is currently not working with the daily build of Blender 2.8 as of March 25, 2019. It works fine on 2.79, though.
-
Swap Memory: It’s Like Downloading More RAM
How Do I Download More RAM?
It’s kinda like changing the blinker fluid in your car. You can’t. You shouldn’t. I mean… stuff like that doesn’t exist. But, if you’re finding yourself in a situation where you are running shy on your current installed amount of RAM, is there anything you can do without hitting up Newegg for a few more RAM sticks? Luckily, you can! Read on to learn how to add swap memory in Ubuntu 18.04.
Just recently, I tried rendering a complex Blender scene on my computer. Unfortunately it crashed before I ever saw the first tile start to render. Blender was all like, “ERROR: Out of Memory”. I tried rendering again, but this time I opened my system resources window and monitored the RAM usage. I have 16GB of RAM installed, and 2GB of swap. As the scene loaded, the RAM started climbing up to the top of the usage graph, hit the top, then the swap started filling up. They both hit the top, and Blender crashed again.
Fortunately, there’s a somewhat hacky thing called swap memory. So instead of purchasing extra RAM for your machine and going through all the trouble of installing it, you can add “virtual RAM” with just a few lines of code. This swap memory is designed as a sort of fail-safe should your machine demand more RAM memory than is physically installed. My problem was I was exceeding both my physical and my swap memory limitations. By default, Ubuntu was giving me 2GB of swap memory, and I had 16GB of RAM installed, but the Blender scene I was trying to render required more than my physical plus swap total of 18GB.
Step One: Check If You Have Swap Enabled
I’m using Ubuntu 18.04, so I can check my swap status by running this in the terminal:
sudo swapon --show
If there’s no output after running that command, you don’t have any swap memory enabled. If you do have swap enabled, you should get something like this:
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 1.9G 0B -2
The swap information in Ubuntu (size and settings and all that) can be found in /swapfile. To enable the swap file, you’d run:
sudo swapon /swapfile
To learn more about the ‘swapon’ and ‘swapoff’ command, you can check out:
man swapon
Step Two: Disable Your Swapfile
Before you edit your swapfile, you need to disable it, otherwise you’ll get an error that’s something like “ERROR: file in use”. To do this, disable your swap file by running:
sudo swapoff /swapfile
Step Three: Edit Your Swapfile
You can edit your current swapfile (or add a new swapfile if you don’t have one) using the fallocate command. You can learn more by running “man fallocate”. To increase your swap memory, run the following command (and change the number of GB to your preference):
sudo fallocate -l 50GB /swapfile
Step Four: Re-Enable Your Swapfile
The -l flag stands for ‘length’ which essentially adjusts how much swap you’ve got. Next, you’ll need to reactivate your swap file by running
sudo swapon /swapfile
Step Five: Confirm Changes Were Applied
That should give your as many GB of swap as you need! You can double check your swap memory by running the Ubuntu System monitor by running:
gnome-system-monitor
and click the Resources tab at the top. You should see your swap memory reflect (not exactly, but pretty close) the amount of swap that you set using the fallocate command.
Now you should be able to render huge scenes in Blender without buying more RAM! Woot!
Just a disclaimer: This is more of a note for myself so I can go back and visit this later. If you spot anything wrong or catch some mistakes, feel free to let me know! Thanks.