Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

12. October 2017


Creating human models has always been one of the more challenging tasks artists can face.  There are a number of tools out there such as Poser, MBLDaz or MakeHuman that can create human models for you.  Often the results aren’t exactly ideal for use in real time games however.  The Blender Add-On we are looking at today however generates excellent, fully rigged and textured meshes that are perfect for use in games.


The add-on we are looking at today is the Manuel Bastioni Lab, very similar to Make Human, as it is a project from the developer who founded the MakeHuman project.  Unlike MakeHuman however, MBL runs entirely inside of Blender, and in my opinion generates more game appropriate meshes and rigs.  It is completely free and open sourced.


First download the zip file available here, then install and enable the plugin in Blender.  If you are unfamiliar with this process, the video embedded below shows you the process step by step.


Once enabled it will add a new tab to the tools panel:

image


Initial controls are incredibly simple.  Pick the base type of model you want to create, if you want it to create Cycles based materials, and if you want it to configure lighting for you.

image


There are several different defaults to chose from:

image


Your new model will be created as soon as you press the Init button.

image


Now there are an absolute ton of configuration options available:

image


Modify skin tons, default poses, default facial positions and a ton more.  Once done, click Finalize and you are off to the races.


The Video

(Direct Link)

Art

19. September 2017


Perhaps the biggest complaint about Blender is the user experience and this argument has some merit.  Once you learn Blender it starts to become somewhat zen to use, but getting there is a painful process.  3+ key hotkeys are rampant to do some of the most common tasks and a few of the design decisions, such as right click selection are just simply bad.  Granted many of these options can be configured away but that again requires a fairly advanced amount of understanding and by that point many new users have already been turned off.


You would think, being an open source project and all, someone would have forked it and made a more accessible version by now?  Well… someone has!  Meet BForArtists (as in Be For Artists), a Blender fork focused on making the user interface more intuitive.  How did they do that? 


Well first is an over all face lift.  Better contrasted theme really does make it easier to distinguish different features and functions.

image

You no doubt also noticed the prevelence of icons throughout the interface:

image


This cuts down on the amount of scrolling and is useful for people who learn by exploring.  They have also configured toolbars for common tasks:

image


And perhaps nicest of all, have camera pre-set controls available as icons instead of just hotkeys:

image


On the topic of hotkeys, they have also reconfigured most of them.  One nice option available is the ability to display the most common hotkeys in the background of the window:

image


Other new options are the ability to lock and outright hide the 3D cursor… a point of confusion for many new users.  You also have extended control over wireframe display, very useful for modellers.

image


Menus have also been greatly streamline:

image


While default layouts for common tasks have been added:

image


They even have their own manual!  What’s impressive is, at least so far, they’ve kept up with each new release of Blender.  There are of course downsides to learning via BForArtists, a great deal of the tutorials for Blender wont work without translation.  Additionally once mastered, Blenders default user interface can be great.  In my opinion though, BForArtists is a vastly superior experience for new developers and one I recommend to those put off by Blenders user experience in the past.


BForArtists is free and open source available for download here and in source form here.


Art , ,

11. September 2017


One very cool thing the Blender foundation have started doing is offering guidance and early builds of future releases.  The next major update to Blender is Blender 2.8 and you can learn more about (and download) it at this location.  Be aware this is a VERY early release… this isn’t a beta orimage even alpha, this is a developer work in progress build and it crashes, a lot.  There’s also no guarantee that features actually make it into the final release, nor that there wont be massive changes.  Without a doubt it isn’t suitable for production work, you have been warned.  Also, going forward Blender is going to require an OpenGL 3.2 or higher capable video card, you will understand why shortly.


So then, why am I excited about this release?  Well it’s got several new features that are going to be great and a lot of this release is actually foundational.  Changes to the low level guts of Blender that will make it a better product going forward.  Additionally new grease pencil improvements are going to make Blender an excellent choice for 2D animators, you can check out a preview of the changes here.  Changes are also coming to workspaces and layers making the UI more customizable and hopefully more productive. 


All that said, the star feature coming to Blender, as well as the one most useful to game developers, is the updated viewport.  Blender is now getting two new viewport renderers, Eevee and Clay.  Eevee propels Blender forward into the modern age, allowing real time rendering of PBR scenes with realistic lighting.  In a nutshell, your game should look exactly the same in Blender as it does in Unreal Engine or Unity.  Words can’t really justify how impressive this new viewport renderer is, so instead I made a video.  You can check it out here or embedded below.


Art, GameDev News

3. May 2017

 

Ever find yourself wanting to render a 360 degree view of your model?  If you’ve ever used Blender for game sprite creation I bet you have.  What is the best way to go about doing this?  One way is to keyframe the object rotating over time, although this may not result in the lighting you want.  A better way is to orbit the render target using the camera.  The question is, how do you do this?  Well you can manually keyframe the camera’s position and rotation but this process is a gigantic pain in the butt.  An easier solution is to have the camera follow a spline path.  That’s what we are going to look at today, it’s thankfully quite easy, but perhaps not entirely intuitive.

 

First thing you need to do is create the path for your camera to follow.  In my case I’m using a simple circle, with the center of the circle around my target, like so:

image

 

Next, select your camera, then shift select the curve.  Then hit CTRL + P and select follow path.

image

 

And voila!

BlenderCamPath

 

That said, how exactly do you control how fast the animation moves?  Don’t worry, it’s quite easy.  With the curve selected, go to the Data panel and locate the Path Animation section.  The number of frames can be configured here.

image

 

Easy 360 degree (or in this case, 180 degree) rendering!

RotateGif

 

You can watch this in process in the video below.

Art ,

6. February 2017

 

In our previous tutorial we materials in our ongoing Babylon Tutorial Series but today we are going to take things a step higher up and let someone else worry about doing the work for us.  Today we will look at exporting 3D models from Blender for use in our game.  A number of exporters exist (3ds Max, FBX, Cheetah, Unity), but today we are specifically going to talk about using Blender.

First we need to download and install the plugin.  Fortunately they make a zip version available for download.  Head on over to https://github.com/BabylonJS/Babylon.js/blob/master/Exporters/Blender/Blender2Babylon-5.2.zip and click Download:

image

 

Save the zip file somewhere you will remember.  Now fire up Blender.  Select File->User Preferences…  then select the Add-Ons tab

image

 

Now choose Install From File… and select the newly downloaded zip.  Then in the filter area type “Bab” and Import-Export: Babylon.js should be available.  Simply check the checkbox to the right hand side to enable it.  We can now export our scene as a .babylon file for use in our game.  Simply select File->Export->Babylon.js:

image

 

There are no settings for the exporter, so simply pick your game asset directory and click Export Babylon.js Scene.  A .Babylon file and all of your textures will be created in your selected save location:

image

 

Now let’s look at the code required to load and display this model in our game:

    window.addEventListener('DOMContentLoaded', function(){
        var canvas = document.getElementById('canvas');

        var engine = new BABYLON.Engine(canvas, true);
        engine.enableOfflineSupport = false; // Dont require a manifest file
        var createScene = function(){
            var scene = new BABYLON.Scene(engine);
            scene.clearColor = new BABYLON.Color3.White();


            var camera = new BABYLON.ArcRotateCamera("arcCam",
                    BABYLON.Tools.ToRadians(0),
                    BABYLON.Tools.ToRadians(0),
                    10.0,BABYLON.Vector3.Zero(),scene);
            camera.attachControl(canvas,true);
            var light = new BABYLON.PointLight("PointLight",new BABYLON.Vector3(
            0,0,0),scene);
            light.parent = camera;
            light.intensity = 1.5;

            BABYLON.SceneLoader.ImportMesh("","","ShippingContainer.babylon",
            scene,function(newMeshes) {
                newMeshes.forEach(function(mesh){
                    mesh.rotation = new BABYLON.Vector3(BABYLON.Tools.ToRadians(
                    45),0,0);
                }                );
            });

            return scene;
        }

        var scene = createScene();
        engine.runRenderLoop(function(){
            scene.render();
        });

    });

 

The magic is done using the Y() function call.  You can load a specific asset from within the .babylon file by specifying it’s name, but in this case we just want the whole thing.  Import mesh has a callback when the mesh is loaded ( it’s loaded async, so you need to use this callback ) and it’s passed an array of Mesh objects.  We simply loop through this array ( in this example it’s only one item long, so we could have just as easily done newMeshes[0] and accomplished the same thing ).  Sometimes you will need to reposition your objects when loaded due to different coordinate systems, this example shows rotating each mesh by 45 degrees along the X axis.

 

This example uses the ShippingContainer blend file available as part of the Patreon dropbox assets, but you can use any applicable Blend file to create the example.  If you are a Patreon support (thanks by the way!) you can find this model in Art\Blender\ShippingContainer and the code is all available (including the exported Babylon file) in Tutorial Series\Babylon\5 - PartFive – Models.

 

When we run this example, we should see:

GIF

 

The Video

Programming, Art , , , ,

Month List

Popular Comments