I released a new video on youtube last week (inspired by this), the first in nearly a year. I think I can safely say it went down rather well, getting featured on BlenderNation, which helped it gain 10,000 views in just a few days.
As usual, this project went on longer than I wanted, growing from an idea of just showing the actual fluid part to deciding that it needed some context, meaning I felt I should add some type of scene, rather than just some bricks in blank space. I thought I should at least show the bricks appearing (I managed to resist having a submarine surface, I'll leave that for another day ;) ), and to have them appearing from somewhere I added a brick pile.
Annoyingly, the 'build up' part' was actually more challenging than the fluid as I had a few problems rendering. The build up is done with particles that are affected by an 'explode' modifier, and despite displaying correctly in the viewport, the render would only read a few frames of the particle cache before getting 'stuck' and no longer update. I presume this is a bug and not a dependancy graph issue as it's only the render which doesn't work, but narrowing down the problem to a small enough sample to be able to submit it as a bug may be challenging.
I tried several python solutions to try and get the frames to update properly, such as using a script to render each frame individually (with various pieces of code intended to update the scene between frames) or even generating a new blend file for each frame, each one offset by one frame, which another script would then render. None of these solved the refresh problem. It was annoying, because the build up obviously wasn't the main part of the video, but it was holding everything up, which made me question if I shouldn't include it in favour of a quicker release. I decided I had spent too much time on it already to not include it so I pushed ahead with my 'last-resort' method. The brute force, feel my wrath, this-is-definitely-going-to-work-and-nothing-will stop-me method.
Every project usually has several fallback solutions, when the easiest "Click one magic button and it works! Yay!" solution doesn't work you fallback to the next possible method, all the way down to "I'm going to have to do this frame by frame, aren't I". Normally it never gets to the last one, there are enough fallbacks that one ends up working, but unfortunately, in this case their were no other solutions to fall back on.
I knew that if I updated the current frame manually it would then render that frame correctly... Which meant...I would have to update, render and save every frame by hand. For 70 frames.
Now, it didn't turn out quite that bad, I realised that if I saved out a new blend file for each frame I could at least get a script to render all of those blend files, and with shortcuts and the 'increment file name' feature it only took a few minutes. But that doesn't make it fun. And less fun when you realise after saving all 70 files that the texture paths are relative and the locations of the blend files have just changed...
Suffice to say, this isn't exactly an acceptable method for a tutorial (which will follow in a few weeks). "Bye the way, don't want to worry you, but we're going to be doing it all by hand" probably wouldn't go down too well. Both viewers and I expect that the tutorial is going to offer some kind of shortcut to the method. Otherwise, what's the point in the tutorial? We can all look at something and go "Well, sure, I could probably do it by hand, placing different objects on different frames" (or animating on each frame or whatever technique is necessary for that effect), but who would want to?
Now, even if I did manager to report and get it confirmed as a bug, the fix wouldn't be in an official release of Blender for a few weeks. So I'll have to investigate another method. I have a few ideas and it's not uncommon for a few methods to get tweaked or changed inbetween the teaser video and the full tutorial. Looking at something afresh a few weeks after the initial video release helps that.
I also had someone ask if it could do fire so I had a play around with that too. Or at least particles, as this method currently requires a mesh to work:
It's certainly satisfying having a successful video release, it makes all the difficulties completely worth it. On one hand it's a bit weird to see my technique out 'in the wild', with some people already putting it to use, and on the other it's nice to see that it garnered so much interest, becuase that's never guaranteed.
Though it is a bit annoying that people aren't always completely clear that they got the technique from someone else and end up recieving praise for their 'creativity'. It doesn't matter too much though, ultimately other people's lego fluid videos will end up acting as an advert for the tutorial I release.
And anyway, they haven't quite worked out all my secrets ;)
Welcome to my first Yearly Review/Awards Ceremony! It will definitely not be a waste of time reading this.
The Amazing Spider-Man 2
First place goes to The Amazing Spider-Man 2. I thought this film was great, much better than the first. I went into the film having already listened to the soundtrack a lot (more on that later), so to hear songs I had already fallen in love with alongside stunning visuals created an excellent and what felt like a very ‘complete’ film experience.
Sometimes, in films, there are those ‘wow’ moments, that completely stun me with an overpowering sense of awe and I have only ever experienced them a few times. Once, in Iron Man 2 with ‘Suitcase Suit’, another time with Iron Man again, in the Avengers jumping out of the window, and a third time while watching Ghost Rider 2 where I remembered that I wasn’t under any kind of contract to finish watching the film and could just turn it off. The Amazing Spider-Man 2 had two of those moments. (Two of the ‘cool’ moments not two of the exact moments I just listed. Iron Man isn’t in Spider-Man 2 and I really don’t have the authority to buy a cinema ticket and halfway through demand that the film be stopped. Though in the case of Ghost Rider 2 the rest of the audience might have cheered had I done that). I don’t want to spoil the film so I’ll just say these moments happen when Aunt May dies. That was a joke. They happen long before she dies. I jest more. The first scene was the Times Square scene in slow motion and the other was the very last scene in the film. I won’t reveal anything about the scenes to those who haven’t seen it, but, in a very literal sense, they made my jaw drop.
This film comes a close second. It’s close, because potentially it should be first place. When I’ve only just seen a film I sometimes find it difficult to judge how much I’ve really enjoyed it compared to other films. Am I only thinking this is the best film because it’s the one I’ve seen most recently and remember so vividly, or is it really the best? So I’ll let it settle a bit, knowing that it’s definitely got second place, with the knowledge it may have to be retroactively promoted into first place sometime in the future. But then again, maybe just picking these two films out as the best of the year is good enough and an exact order doesn’t really matter in the grand scheme of this blog post, the internet and the world. But who knows, maybe it does matter. Maybe, some potentially Nobel Prize winning scientist is reading this and thinking “Well, I was going to watch Interstellar and probably be so inspired by space and stuff that I’ll start doing research into black holes, make a significant scientific discovery and win a Nobel Prize for my gift to humanity, but really, this film is only second place. Instead, I’ll just watch The Amazing Spider-Man 2 and then go to bed.” So, if you are a scientist who is bordering on watching this but is getting slightly put off by the fact it’s not first and you think there’s a possibility you’re going to be so fascinated by the film you’re going to start doing research, make a discovery, get a Nobel etc. then definitely watch the film. Definitely do that. Don’t let my chaotic film ordering destroy humanity’s chances of using whatever it is you discover.
And that’s why end of year reviews should always be taken seriously.
Or, thinking about it…just watch both. You’ve probably go time to watch both films at some point; you could always watch Spider-Man when you’re having a break from your Nobel Prize winning research.
But to actually talk about the film for a second, or not talk about it seeing as it's a film that’s hard to describe without giving too much away. It’s definitely an intense film to watch, a bit like gravity. There was a point in the story, pre-space, that I was worried that I had once again been misled by a trailer and actually most of the film would be spent on earth, but it quickly picked up the pace and I wasn’t at all disappointed. It was very spacey and very good.
The Take Off and Landing of Everything, Elbow
I don’t buy or listen to a huge amount of music, so when I do buy an album, it means I think it’s pretty good. I could hardly tell you the name of a single track on this album, though. When I listen to it, I end up listening to the whole album nearly every time, starting with one song and before I know it the whole album has passed by. The album feels like autumn to me, whatever that means, it’s a perfect time of year, where it’s generally still sunny (here in the UK) but there’s a crispness to the air and I can start wearing jumpers again. And that’s very me.
The Amazing Spider-Man 2 Soundtrack, VA
A soundtrack by Hans Zimmer. Need I say more? (I will say more, but then you already know I will by the fact that you’ve seen the size of this paragraph, but I bet you weren’t expecting so much of it to be dedicated to this self-fulfilling explanation (or were you? That previous section about Nobel prizes was pretty big, so maybe that was a clue that more nonsense might follow (you probably weren’t though, you probably thought: “I mean sure, he’s wasted a whole paragraph not talking about Interstellar, surely he won’t do it again, he will eventually talk about it…” (…I’m not sure I know how to get out of all of these parenthesis now…))) One more I think). I tricked you, I’m really not saying anything more about it.
Ha, I fooled you! There absolutely is more! I had seen a vfx breakdown of a short clip of the film before seeing it in the cinema and thought the theme music sounded great. I’d had previous success in listening to the Man of Steel soundtrack (another Hans Zimmer composition), which was quite a discovery for me, having never really been compelled to listen to film soundtracks before, so I sought out the album via Spotify. It didn’t disappoint and I listened to it repeatedly before seeing the film. I’m not going to describe the music, because no one sounds good describing sounds (remember when I described an album as sounding like autumn?), but if you like Hans, I’d wager that you’ll like this too. And it was strange how much better the film seemed, already knowing the soundtrack. When a favourite track started I knew it was going to be a good scene because the music was emotive enough that when listening to it beforehand I had already imagined what it might accompany.
Sheezus, Lily Allen
I think Sheezus by Lily Allen deserves an honourable mention. It’s not what people who know me would consider my ‘normal’ type of music, but it is. Actually, I think people probably have a pretty skewed view of what I listen to, thinking it’s all AC/DC and Iron Maiden, when in fact these 3 favourite albums of the year are a far better insight to my listening.
Fargo with Martin Freeman was pretty great. I can’t really remember a show I’ve watched that’s at all like this show. Billy Bob Thornton was a bit of a surprise too. I hadn’t expected to like him, but his cold Assassin-who-likes-to-mess-with-people character was really excellent. The only thing I can’t work out is, does Martin Freeman’s character move out to Minnesota after leaving Slough (and if so where the ruddy hell is Dawn??) before retiring to The Shire for a hopefully quiet retirement, or, is he deep undercover in a case that Sherlock is going to eventually solve?
Agents of Shield
I think it might have become clear that I’m a fan of Marvel so it’s not much of surprise I like this too. The second series is a lot better than the first. They were in danger of resorting to what a lot of series about the ‘paranormal’ or ‘heroes’ do, which is just have a different character pop up each week for the team to deal with, before resetting everything ready for the next week’s episode. Series 2 has a much better arching story line which avoids doing this. It’s also interesting when they tie their stories in with the films.
Peaky Blinders, a British show about post World War 1 gangsters, only gets an honourable mention as I haven’t finished the series yet, but it’s probably the best British show on TV at the minute.
I waited until after the holiday to write this, just in case it wasn’t the best purchase of the year, but it definitely was. I haven’t been on holiday (or abroad) in more years than I care to admit and maybe didn’t realise how much I needed one. A group of us went to Tenerife for a week in the beginning of December and it was a completely unreal experience to be sitting in a hot tub in the sun thinking “Why isn’t it cold, dark and gloomy?” Of course, we didn’t want to waste the opportunity to make friends back in England feel jealous so we were sure to regularly post sunny pictures of ourselves either in the sea, quadbiking, sipping cocktails or drinking €1 beers while everyone else was at work. 1. Euro. Beers. Sometimes €1.50, but that was pushing it a bit.
Can’t go wrong with Pizza. Nearly always a good purchase and I will no doubt nominate it for a Lifetime Achievement award at some point.
Not technically a 2014 release, but I did only play it this year. Like with all GTA’s I’ve played this for so many hours. Aside from the amount of content, to deliver that level of graphics on a PS3 is amazing and probably represents the pinnacle of what the PS3 can achieve.
I was unsure about mentioning GTA in the awards, what with it often being brought up in the news as being controversial and morally questionable. Of course, there’s all the stealing and the violent rampages that you can take part in, I’m not really bothered by that. It’s the fact in this modern age where we’ve abolished corruption, famine and war from our society we still allow a game to use Roman Numerals in the title. Using I’s, V’s and even X’s?! How we allow this to go on I don’t really know.
Don’t even get me started on Final Fantasy XIIVMMMIC&$£ Part MMIVV~# or whatever number they're on now (maybe I’d be able to tell if they used REAL numbers). I think the media needs to get a grip and start focusing on this issue, something which actually matters in society…
Again, not a 2014 release but I’ve got a bit of a backlog of games to get through, hence not transitioning to the PS4 yet. I’ve always loved Sonic games but I was unsure Sega would be able to deliver proper platforming again or whether they would be focusing on a far younger market than those who had originally grown up with Sonic. I wasn’t disappointed at all. It’s a bit like an HD Remaster/Greatest Hits, encompassing levels from all of the major games. Saying it’s an HD remaster does it a bit of a discredit, because they’ve been completely reworked and remade and really it’s only the style of the level which remains. You can play the levels either as ‘classic’ Sonic 2D style or ‘new’ Sonic in 3D with minor 2D segments. It really is great for anyone that enjoyed the originals and particularly Sonic Adventure 1 and 2.
Weird, that was almost like a proper review or something.
It’s a toss up between the award I gave for Best Film and the award for Best Album. I liked the stuff about the Nobel Prize for the film award but then I also liked writing a whole paragraph about The Spider-Man soundtrack, without actually talking about the album. On the whole, I’m going to say the best award was Best Film, because the website editor I use to write blog posts in didn’t save the draft and I had to re-write the best Album section 3 weeks later from memory, which kind of took the shine off it. (Although, I have now gone back and added some more since writing this section, so it’s a bit better than the original draft…no I’ll leave it, I’ll stick to my original choice).
Happy New Year.
You really do start to realise how big a vfx project is once you get to the compositing.
Take shadows for example. This became (and continues to be) perhaps the biggest part of the post processing. I already knew I would have to build any object in 3D if it needed to receive a shadow, but there were several things, having never done a project like this from start to finish, that I didn't realise until I came to the compositing:
There were a lot more objects in the scene once I really started to look. Originally I just thought I had to build the main buildings and surfaces. But no, as I looked closer, railings, people, buses, taxis...the more I looked the more I found. Luckily most of this didn't require any new techniques, just more modelling and quite a bit more animation (more on animation in a separate post, later).
Most of the objects can be dealt with quite easily as they're stationary. There was, however, one pedestrian who was walking across the street and was close enough to the camera that the shadow couldn't simply go over them flatly but for realism should match the contours of the body.
I already had a person armature and model from the people I had made to sit on the rollercoaster so it wasn't much of a problem to re-use this model and animate the armature to the person in the footage. It was a bit tedious, and if you saw the 3D view from any other perspective than the camera you might think this person didn't have a lot of bone structure, with knees and elbows bending in directions that would make you wince. Nevertheless, from the camera view the little 3D figure appears to cross the road matching his real-world counterpart fairly well with shadows falling over his body instead of being flat, like some of the more distant people can afford to have.
If mid-ground people weren't annoying enough to recreate, then boy was I in for a treat when I noticed all the fore-ground people, with more detail than my generic 3D human could handle.
When we originally filmed, it took several takes to find one that didn't have cyclists or buses going right through the middle of the shot, but even so, it was impossible to film on a busy street without there being some pedestrians and vehicles in the way.
Any person that appears in front of the shadow means that a part of the shadow has to be removed. The only way to really deal with that was with masking, so I had to painstakingly mask the 3 or 4 people walking across the shot frame by frame. Frame. By. Frame. This was not enjoyable even though it was a fairly short sequence. But, once complete a simple 'Math' node could add the white mask back over the top of the shadow pass, cancelling out the shadow in one fell swoop.
These two previous points are annoying but at least I was already aware of those issues even if I wasn't completely aware of the scale they would need to be dealt with. Which left the detail I hadn't been aware of:
The footage has existing shadows. This sounds obvious. And it is! Of course there are shadows in the footage, things in the real world cast shadows. But what was less obvious is that I would somehow have to stop the CG shadows from overlapping them. If they overlapped there would be a dark patch, you can't cast a shadow onto something that's already in shadow without it getting darker than it should be, so the shadows have to very precisely stop at the exact point the real shadows begin.
This started to worry me slightly, I'd missed something which seemed obvious and I wasn't immediately sure how to solve this...
I realised that unless I wanted to try and roto (mask) the shadows very precisely I would have to attempt to use a technique similar to how I'd extracted the ripples from the river. My thought was that I could create a rough mask around the area in the footage with the existing shadow and then isolate the darkest parts of that area, which should be the shadows, with colour correction. For the most part this does seem to work, there's still a bit of fine tuning to do at the exact join between real and CG, but the vector blur helps to, well, blur that line.
A lot of work for just one part of the compositing and there's still lots more to do. Aside from compositing though, putting the people on the rollercoaster was a fun little exercise so I'll try and cover that next time.
In the last post I said I would talk about the Futuristic Car 2 project, but, well, enough time passes between these posts that I'm not always working on the thing I said I would be. I certainly was working on the other project, and I will definitely write about it at some point, but not today. It's always nice to have a little break from longer projects, it's easy to start to get sick of a project if you work on it solidly for too long so I reverted back to something I haven't worked on for over a year: The Rollercoaster project.
This time around I've mainly been working on updating the materials, which has been really quite fun to get back to, and feels relatively easy compared to the other project's myriad of objects, hierarchies and scripts. The materials didn't have to be updated, there's plenty of other things that aren't finished, but in the year since they were first created an anisotropic shader was added to Cycles. I thought I would at least update some of the brushed metals to use them. But of course, I ended up doing a lot more than that.
Here's a nice shot of the wheel the wheels on the rail and the base which connects them to the 'coaster:
Some of these materials have already been updated further, so there's a bit less wear and tear on the purple bolts and the gold wheels now have a bit of dirt on them.
This kind of detail, the worn edges, the subtle bumps and dirt maps are all unfortunately fairly irrelevant. The rollerocaster will be going fast enough that motion blur will hide most of this work, but I can't knowingly release something that's meant to be realistic if I know I could have made it better. Besides, it does at least give me a nice asset to show off in my portfolio even if the final video doesn't quite make the most of the work I've put into it.
With that in mind, I'm working on a few tricks to render a slightly closer camera than the original tracked footage might appear to allow to show at least a bit more detail...
Well, it's slightly to my surprise that I hadn't actually posted the 4th part of my tutorial series on my blog:
It's been a few weeks since this video was released, the content of which has all but slipped from my mind, but I presume from the helpful title that it contains the actual animation of the pieces. After re-watching the intro I'm also informed that it contains some optimizations to make the code run a little more efficiently. So that's nice.
Blender Nation were also kind enough to feature the tutorial series in this post, which was a good boost to the views. Not that views are all that count, but ultimately it's made to be watched.
Onto other things.
In a few blog posts I've mentioned the project I've been working on but have been somewhat reluctant to reveal what it actually is. I think the time is upon us (or just me if no one is reading) to reveal that my current Big Project is simply called 'Futuristic Car 2'. I'm sure the title will change but it refers back to the video I completed in the 3rd year of my computer graphics university course:
The premise was fairly simple, a futuristic car that has the ability to hover. At the time I was fairly pleased with the outcome, but, as can often happen with large projects, particularly when working on several at the same time, some compromises were made to the original idea without realising as the project progressed.
The car is made out of lots of small panels, a design change that was made after seeing 'suitcase suit' from Iron Man 2 but I didn't quite have time to animate a lot of the smaller panels and instead the transformation is a bit chunky. It was only a few months later, back in 2011, that I imagined the next version, a sleeker, sportier car more in keeping with my original design and yet keeping the idea of many smaller shifting panels.
Work on the project is slow and difficult, much of the time is spent on efficiency and workflow. Without careful management the many objects in the scene can become overwhelming. I'll cover my workflow in future posts. Hopefully.
If I remember.
Which I might.
Well, another week has shot by which means it's time for part 3 of my tutorial series:
I've also been working on my other main project. I haven't really spoken about it yet or shared anything about it other than that I've done some scripting for it. I'm still not ready to do that, maybe after this tutorial is out the way I can start sharing more about it.
But, as part of it I did come across what I thought was a bug in Blender, and I reported it as such. Reporting bugs for Blender is important. We use it, so it's in our benefit to improve it, even if all we can contribute is pointing out a problem in the hope that someone more skilled can fix it. It can be a bit of an alien concept to people who aren't familiar with open source programs, that there might be a way to contact the people who made a piece of software and get them to fix something or answer a question. Of course, it isn't limited to open source projects, I contact many services if I find an issue, open source just tends to promote it a bit more and, well, be a bit more open that it's a possibility. But whatever it is that you use, it again comes down to: Why wouldn't I want it fixed?
This is turning into a post about bug reporting, really I just wanted to highlight the specific issue I had...
Turns out that what I reported wasn't actually a bug at all but a known design limitation. It's not exactly a bug because it's working as expected, even if the way it works isn't exactly ideal. It's annoying, but it basically means they, the developers, are aware of it, but can't currently change it.
I came across the limitation because I'm working with duplicated objects which all share the same object data (OD from now on) and they all need to share the same vertex groups. I thought that sharing/linking OD would solve this, which it partially does. Apart from one slight problem. It turns out that the OD stores the vertex groups and their weights but it doesn't store their names. The names can be unique for each object that shares OD. So two objects which share OD will have the same vertex groups and they'll be linked, but they could be named completely differently.
Edit one vertex group called 'group 1' on one object and 'group 2' might be edited on the other object if you've renamed a group on one object but not the others with linked data...
Cue a series of scripts to try and manage all this. Haven't quite fixed it all yet, have to work out which vertex groups aren't being used by modifiers so I can clean it all up a bit and maybe have some global counter which handles the naming of any new groups.
Anyway, I don't regret reporting it as a bug even though it's technically not. I've at least come away knowing how it works, thanks to Campbell Barton (a Blender developer) and I don't think it does any harm letting the developers know that people are still finding this is an issue. It's also far better to have reported it than potentially be trying to work out workarounds when a simple report could have fixed it.
Better safe than sorry.