Ray Mairlot - Freelance 3D Artist
  • Gallery
  • Blog
  • Store
  • Contact
  • About

Selective Unhide Add-on

26/3/2016

Comments

 
'Heartbreaker' isn't the main thing I'm going to be talking about today. I did do some work on it (as I do every week); it was an update on the head, and I wanted to finish that update before showing a 'before and after' comparison, so until that's fully finished, I'll just show the newer version of the bicep which I also worked on:

Picture
The bicep was in very basic shape compared to the near finished version now.
What I'm mainly going to talk about is an add-on I released last week. What I find can often happen (ok, fairly rarely) is that you suddenly realise that you've had a workflow problem for a while, but you've just got used to it and have learned to work with it instead of looking for a solution. This is what I realised had happened with hide and unhide. When I work on 'Heartbreaker' I generally end up isolating part of the suit, like the head, in order to focus only on that. To do that I use 'Local view'. I also use hide and unhide, the built in blender commands (H and Alt+H respectively). I use them a lot.

I was hiding a lot of objects and then wanting to bring back one specific object. Of course, that's not really an option unless you're using the outliner, so unhiding would unhide everything, most of which I would then immediately re-hide. I tried to think of a solution to that. How could I visualise hidden objects and be able to selectively unhide them? Would a panel work? A menu? And who in their right mind has the time to answer all these rhetorical questions?

With the near unbearable slew of self-questioning dealt with, I managed to find time to come up with 'Selective Unhide', which replaces the default Alt+H behaviour:

Picture

With the add-on installed (freely* available from here) pressing Alt + H now shows the menu in the image above.

*This isn't an asterisk to say that actually, no, it isn't free, but instead it's to simply highlight how kind and selfless it is to give something away for free. So, yes, it is free, but be sure to send me a mental or actual note of thanks every time you use it. Although, if you use it a lot maybe you could just consolidate all the thank yous (actual or mental) into a weekly digest. Obviously I want to receive your praise, I just don't want to be swamped by praise. Maybe I'm overthinking the whole 'praise' thing, I just think that it's important to receive praise in moderation. I don't want to overdo it and get too big headed from all the inevitable praise headed my way.

Let's go through each of the menu items:

Unhide all objects - This is the old behaviour - it shows any object that is hidden.

UnHide all by type - Despite the odd, mid-word capitalisation, this groups all hidden objects by object type, like 'Mesh', 'Camera' or 'Curves', for example. Clicking on an object type will unhide all objects of that type. Maybe you have a light setup you want to keep hidden, but want to reveal all your meshes.

Search - This is what I seem to be using most. It allows you to search for any hidden object or group and reveal that item. This allows you to quickly find a specific object, the downside being that it relies on well named objects. I try to see the up-side of things, so I'm going to say it's an advantage that it relies on well named objects as it means I have been forced to start renaming all objects that have some numerical variant of the name 'Cube'.

Hidden Groups - If an object is hidden and is in a group, then the name of the group is listed here. Clicking it restores all hidden objects in that group. So if you found you were constantly unhiding and hiding the same objects, group them, and this will help with that.

Hidden objects by type - Similar to 'Unhide all by type', this groups all the hidden objects by their object type. The difference this time is that clicking on an object type will then show a sub-menu listing all the hidden objects of that type that you can unhide.

Someone on Twitter suggested I that the menu should also work for bones in Edit mode and Pose mode. I agreed, so it now works in Edit mode, showing hidden bones and hidden bone groups, though I haven't yet implemented this for Pose mode.

Next week I'll hopefully be showing the updated head of 'Heartbreaker' and I might go over hard-surface techniques I use a lot.

Well there we go. Another week, another blog post, another set of anomalous asterisks and atrocious alliteration.


Ray.

Comments

Iron Man - Heartbreaker

17/3/2016

Comments

 
Finally! I worked around the rendering issues mentioned previously, so I can finally reveal what I've been working on: the Iron Man 'Heartbreaker' suit.

Picture
Proof that I actually was working on something. Ha!

I'm quite pleased the way the renders turned out. I've been working on this so long that all I see is what has to be fixed, but seeing some renders and hearing some feedback lets me know I'm on the right track*.

*Keep reading for a great continuation of this train based metaphor.


Interestingly (not my opinion, an actual certified Very Interesting Thing™), the rim lighting on the models is actually from the material, not from physical lights. Partially, that's because I think you get more control, but really it's because I've never been able to get completely satisfactory results from trying to set up rim lighting. This setup uses the normal of the faces to determine whether it should be highlighted or not. Here is a (simplified) screenshot of it:

Picture
Click to enlarge. Or don't. The choice is literally yours.
The normal is manipulated with the 'Normal' node before being sharpened by the colour ramp. This mixes between the glossy base material and the white highlight. To get a really bright highlight I actually use an emission shader, but to make sure it doesn't cast light onto itself I use a 'Light Path' node so only the camera sees the emission, the objects in the scene just see black (the empty 'Shader' input).

This is a simplified setup, so it just shows the right side rim lighting, if you want other sides of the model to be highlighted, duplicate the 'Normal' and 'ColorRamp' nodes, adjust the normal direction and add them to the other rim nodes with a 'MixRGB' node set to 'Add'.

See I told you it was interesting, and yet you (probably) resisted believing me. Hopefully you will trust me a bit more in future. If not, things are going to get pretty embarrassing for you when I continue to show you Interesting Things™. Let's avert this embarrassment by jumping aboard this train of Trust and riding out this analogy right to the end, together.

Now that all that train business is dealt with I can get on with my work, so that by next week I will be able to show off a new screenshot.

I guess that's the end of the line for this post (THE TRAIN FUN NEVER ENDS).


Ray.
Comments

Bugs, more bugs and then finally some work

13/3/2016

Comments

 
Well, I've managed to stick to my idea of doing weekly blog posts, but then again, I'm only a week in, so maybe that's not quite the achievement I thought it was when I started this sentence.

A bug

It's always a bit pretentious to say you've got a big project but can't talk about it, especially when that limitation is self-imposed, but if I'm going to get the most out of this project, it means working out how to reveal it best. Last week I mentioned that perhaps this would be the week I showed it to the world. Or at least, the small segment of the world that is interested in 3D. Interested in 3D and likely to see my post. Interested in 3D, likely to see my post and actually click on it. Interes...well you get the idea, it's niche:

Picture
Created in Blender, of course.
On Monday I set about starting this reveal process by trying to do an up to date render. I hadn't done a render of the project in a while as it had got so large geometry-wise that my GTX 570, with it's 1GB of GDDR5 RAM, kept crashing midway through the render. But silly old me! GPUs are so often lauded as the be all and end all of graphics performance and rendering that I had stupidly forgotten about my CPU. Sure, renders are going to be a lot slower, but they render!

Of course, the new found optimism that that previous exclamation mark hopefully depicted, was short lived. I have a compositing setup in the scene that renders the current camera angle in the current scene and then renders an alternate angle from another scene (with linked geometry) and combines them into one, nicely laid out image. Trouble is, it now gets to the alternate angle scene and crashes....so the rest of the day was spent trying to reduce the file enough to create a bug report, which I did.

Another bug

Tuesday gave the gift of another bug, this time in my own add-on 'Animated Render Border'. I would love to say it was coding skill that allowed me to solve the bug in half an hour, but really, it was panic. There is nothing quite like the rush you get from seeing the words "does not work" in the same context as a product you have released. Well, there probably is, but not in my quiet life.

And the rest of the week

Luckily, for the rest of the week I actually got some good work done, but it depends on the good developers who work on Blender as to when I'll actually be able to show you something. It's going to get pretty awkward on this blog if for the next few weeks I just have to say "Maybe you'll see it next week!" as eventually you'll presume there is no project.*


Ray.


*"Why not just show the angle that does render then?" I could, but I've waited this long to show it to anyone, so I'd rather wait a bit and do it right, than just show half of the model. I have a few ideas how to get around the bug for next week's post anyway.


Comments

Scene Nodes and Unity

4/3/2016

Comments

 
I haven't posted here much, but I'm hoping to do a weekly post of what work I've been doing each week. Seeing as I haven't done a blog post for a while, I'll cover a few things I've been working on in the previous months. Does that sound fun? I don't know, but you've already loaded the page now, so you may as well read a bit more.


Scene Nodes:


An interesting little experiment in Blender I did a few weeks ago is something I'm calling 'Scene Nodes'. Blender used to have something called the 'Oops Schematic View' in the Outliner, which allowed you to view your 3D scene in a visual, node based way, showing the relationships between your assets. This feature never made it into the revamped Blender 2.5 so I thought I would have a go at recreating it with Python. Partly, that was because I just thought it would be fun (it was 50% fun, 30% googling, 15% deciding what colour each node should be and 5% crying) but also because I thought that if it proved to be popular I might develop another add-on to sell on the Blender Market.

Picture
Working out what colour nodes should be took longer than it should have done.

The result above shows all the different objects and materials in my scene and also the relationship between them. 'Cube.001' (orange) is the child of 'Camera.001' (grey)  and also a parent to 4 objects (orange) and a lamp (yellow). I got it working so that not only could you press a button to generate this node setup, but that duplicating nodes would duplicate the actual object, deleting a node would delete an object and changing the connections between objects would change the real object's parenting.
 
 
Before you go rifling through you wallet to find money to throw at the screen* (because you obviously love the sound of it, not because you're misguidedly attempting to throw loose change into my eyes), while it was quite fun to do, I'm not entirely sure that there's enough interest in it for me to make it an add-on. My last add-on wasn't really cost effective, considering the development time vs monetary return. I'm not ruling out making it an add-on, but I don't think it's a 'high-priority' project.

*and people say I'm a fantasist.**
**If anyone of importance is reading this, I'm lying, no one has ever called me a fantasist. It was just a joke, which we (I) here at www.RayMairlot.co.uk deeply regret.



Experiments with Unity:


I've also been making a game with a friend, not in Unity as the title might suggest, but in Flash. Flash might get criticised a lot, but for making a cross-platform game it really makes a lot of sense (to me). However, I'm well aware that several sites are moving away from flash, at least for video delivery, so I thought I would make some investigations into other game engines, just in case the day comes that Flash content is no longer run by web browsers.


I decided that I would try out Unity as it has a free version and I got to grips with one of the tutorials. I wasn't best pleased to find my simple tutorial scene of a ball rolling over a plane, collecting yellow diamonds, came to an eye-watering 170MB. God help me if I try something complex*. Maybe I can cut that size down somehow, but at least it does cross-platform publishing pretty easily.

*Dear God, I know you're busy, but please help me squash these megabytes. If you help me (for free) I'll tell everyone it was you that helped me and I think that will be great exposure for you. Thanks, Ray.



I had originally thought that if I wanted to learn Unity it would be better if I already had a working game in Flash, so that when trying to re-create it in Unity I wouldn't have to be worrying if the logic of the game was correct, only the conversion of AS3 to C# (one of Unity's coding languages). I made a little Tetris game in Flash, but having seen the large file size Unity creates I was put off from actually trying to convert it. I realised that Flash is still the better option for me, but that Unity was a viable alternative if I really needed it.


Picture
Tetris: Surprisingly tricky to make.

That's not to say making the Tetris game was a waste of time; it helped me a lot with realising how to implement OOP concepts properly, which I can put to good use in the game I'm making in Flash.


All in all, quite a few experimental projects, but now I'm back to my main one, which I may start to reveal soon. Or not, know one knows. If people say they know, they're lying.


Unless that people is me.


Ray.

Comments

Animated Render Border Add-on and the pressures of releasing paid-for content

11/7/2015

Comments

 
A few days ago I released my first add-on on the Blender Market: Animated Render Border. It's an add-on that allows the render border feature of blender - which allows a portion of an image be rendered - to be animated and track objects. This can cut down render time by skipping rendering the background (which might be blank if using render layers) or by rendering only a specific part of an image for a whole animated preview. I won't go too much into the details of it as that's all I seem to have done over the last few days, and frankly, I've bored myself by writing the same blurb on all the various social sites and forums. Instead, indulge yourself by watching the (relatively) short video below which is a full demo of the add-on, and of course, feel free to head over to the Blender Market to buy yourself a copy:
This add-on was originally started in February this year. It was just an experiment that I thought might be useful at some point. I'd seen a few attempts at such an add-on and a few more blog posts lamenting the lack of such features and surprisingly, I had quickly got the core code to work in the viewport. After that, other priorities took hold and I left the add-on, only to be reminded of it recently by a few posts on Blender.StackExchange and by my own attempts to use it, forgetting I had left it unfinished. I had thought at some point I could release the add-on as a bit of publicity for my site, but the fact that some highly skilled python coders seemed to be coming to the conclusion that an add-on like this could be useful, prompted me to finish it before they might be tempted to do the same and 'steal my thunder'.

At that point I hadn't thought about selling it, I just wanted to quickly finish it and release it. I'd thought about it originally, an extra revenue stream is always welcome, though I wasn't sure if the add-on might be too simple for the Blender Market, but all that slipped from my mind until I was a few weeks away from releasing it for free. Reminded of my idea to sell it I did a bit of investigation and applied to be a vendor on the Blender Market by describing the product I would like to sell. My application was approved, which meant I had to fill some of the extra requirements of releasing on the Blender Market. Don't get me wrong, they're perfectly acceptable requirements, ones I would have set myself, just ones I hadn't been thinking of when I thought I'd "quickly finish and release it". I wasn't just finishing up the code, I now had to think about a video demo, documentation, product images and descriptions, future updates and promotion. I was reminded of each one of these just at the point I thought I might be nearing the end. So the project, like all projects, was a bit longer to finish than expected.

There is also a bit more pressure when releasing a paid add-on. Getting it functional wasn't good enough, I now had to look at it from the perspective that someone would be buying this and expecting it to work in a professional way. People might be using this in their workflows. What if it crashed and they lost their work? Suddenly, things that I thought were fine for a free release stuck out as dysfunctional. Things that I knew had to be in place for tracking to work had to be checked for and the user warned if they were missing. Every circumstance a user might get into needed to be accounted for. The add-on requires a camera present in the scene. What if they delete the camera? What if they manually turn off settings the add-on has turned on so it can work? What if they're idiots start pouring pasta sauce over their keyboards because I've accidentally pasted a lasagna recipe into the documentation!?*

The days after the release were spent answering questions from all the various places I'd posted it, solving bugs and talking about future features. I hadn't quite anticipated the amount of attention it would need after the release, though I was aware that part of the Blender Market commitment is that authors provide support for products. Luckily, it seems to have settled down now and I have received a modest, but pleasing amount of sales so far. This coming week I hope to be able to return to my modelling projects and improve the add-on steadily over the next few weeks and months.


Ray.

*I will not be held liable for any damages incurred by pasta sauce or any other ingredients which when combined could constitute a 'lasagna'.

Comments

Sickly Sweet.

25/2/2015

Comments

 
Just a bit of fun :)
Picture
Comments
<<Previous
Forward>>

    RSS Feed

    Categories

    All
    Animation
    Blender
    Compositing
    Flash
    Geometry Nodes
    Heartbreaker
    Hmhb
    Image
    Macro Maker
    Nodes
    Programming
    Python
    Rollercoaster
    Tutorial
    Unity
    Vfx
    Video


All images and videos copyright © Ray Mairlot, 2022.
None of the content on this site is to be used without my permission.
Powered by Create your own unique website with customizable templates.
  • Gallery
  • Blog
  • Store
  • Contact
  • About