Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
26. June 2015

 

The lattice object/modifier pairing is a under appreciated modeling tool in Blender, which makes it fast and simple to make sweeping changes to high density polygon meshes, in a way much faster than even sculpting.

 

This quick Blender Tip tutorial video ( available in HD here ), illustrates the process.

 

 

Basically, you envelop your existing mesh in a Lattice Object:

image

 

Like so:

image

 

Zoomed to illustrate better:

image

 

Then in object mode with your mesh selected, go to the modifiers tab and add a Lattice Modifier, click Object and select your Lattice:

image

 

Now select the Lattice object, and set the number of divisions you wish ( how many control points in each direction ):

image

 

Switch to Edit mode and make whatever alterations you wish, changes to the lattice will be applied to the underlying shape:

image

When done, with the Mesh selected, go to modifiers and click Apply:

image

 

You can now delete the Lattice, and tada, updated polygon mesh:

image

 

The video also shows how to set a shape key for animation if you are curious. 

Art


1. June 2015

 

Mixamo, the creator of the online self serve animation service of the same name, as well as Mixamo Fuse character creation software, were just acquired by Adobe.

 

I just received the following email:

Adobe

Dear Mike,

We are proud to announce that as of today, our company has been acquired by Adobe. Incorporating Mixamo technology into Adobe’s world class software platform means greater ease of use and accessibility for Mixamo’s current and future users.

Over the coming months, Adobe and Mixamo will work on integrating Mixamo products and services into Adobe Creative Cloud.  For detailed answers to your questions read our handy FAQ. Or, visit the Mixamo blog for the full story.

How does this effect your Mixamo account?

  • Mixamo’s products and services will continue to operate normally and you will continue to have full access to any services that were available to your account prior to the transition, with the exception of a la carte purchases.
  • During the transition period, Mixamo will be unable to process payments including refunds, upgrades and a la carte purchases. We look forward to sharing our plans for the future in the coming months.
  • Current plan customers can continue to fully use the Mixamo service, including all its products, until their plan expires. All plans that expire before the end of the year will be automatically extended to December 31, 2015, at no cost.

  • All existing accounts will receive 10 free auto-rigs and 20 free animations in addition to any auto-rigs and animations currently remaining on the account.

There will be a lot of excitement (and questions) in the coming weeks and months, and we will do our best to keep you informed. Please post questions on our community forum or reach out to support.

Thank you for supporting Mixamo and helping us to become a premier provider of high quality characters, rigs and animations. Your artistry for storytelling has inspired us for over six years and all that passion will guide us through the new and even more ambitious challenges ahead.

We are looking forward to seeing what you will create with Mixamo and Adobe as we move forward into the next chapter!

Happy Animating,

Stefano Corazza
CEO

 

Interesting move.  The 20 free animations is nice.  I am not sure how the 10 free auto-rigs collides with the free auto-rigging they just announced with the release of Mixamo 2. 

 

To be honest, I always liked Mixamo’s business model and generally, I don’t like Adobe’s, so I doubt I am going to like the outcome of this transaction, but hopefully I will be proven wrong.

News Art


7. April 2015

 

In this video tutorial we continue to look at 3D programming in LibGDX.  First we look at how to convert a 3D model to work with LibGDX using fbx-conv.  We then write the code to display that model and look at displaying animations.  The fbx-conv application can be downloaded here.

 

The data file used in this example can be downloaded here (zip format).  If you are interested in learning more about the process of creating the model click here.

 

The video is available in HD here.

 

The source code, and an embedded copy of the video, are available below.

 

 

Source Code

 

package com.gamefromscratch;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Files;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.g3d.Environment;
import com.badlogic.gdx.graphics.g3d.Model;
import com.badlogic.gdx.graphics.g3d.ModelBatch;
import com.badlogic.gdx.graphics.g3d.ModelInstance;
import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute;
import com.badlogic.gdx.graphics.g3d.loader.G3dModelLoader;
import com.badlogic.gdx.graphics.g3d.utils.AnimationController;
import com.badlogic.gdx.utils.UBJsonReader;

public class ModelTest extends ApplicationAdapter {
    private PerspectiveCamera camera;
    private ModelBatch modelBatch;
    private Model model;
    private ModelInstance modelInstance;
    private Environment environment;
    private AnimationController controller;

    @Override
    public void create() {
        camera = new PerspectiveCamera(75,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());

        camera.position.set(0f,100f,100f);
        camera.lookAt(0f,100f,0f);

        camera.near = 0.1f;
        camera.far = 300.0f;

        modelBatch = new ModelBatch();

        UBJsonReader jsonReader = new UBJsonReader();

        G3dModelLoader modelLoader = new G3dModelLoader(jsonReader);
        model = modelLoader.loadModel(Gdx.files.getFileHandle("model.g3db", Files.FileType.Internal));
        modelInstance = new ModelInstance(model);

        environment = new Environment();
        environment.set(new ColorAttribute(ColorAttribute.AmbientLight,0.8f,0.8f,0.8f,1.0f));

        controller = new AnimationController(modelInstance);
        controller.setAnimation("Mixamo.com", -1, new AnimationController.AnimationListener() {
            @Override
            public void onEnd(AnimationController.AnimationDesc animation) {
            }

            @Override
            public void onLoop(AnimationController.AnimationDesc animation) {
                Gdx.app.log("INFO","Animation Ended");
            }
        });
    }

    @Override
    public void dispose() {
        modelBatch.dispose();
        model.dispose();
    }

    @Override
    public void render() {
        Gdx.gl.glViewport(0,0,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
        Gdx.gl.glClearColor(1,1,1,1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT|GL20.GL_DEPTH_BUFFER_BIT);

        camera.update();
        controller.update(Gdx.graphics.getDeltaTime());

        modelBatch.begin(camera);
        modelBatch.render(modelInstance);
        modelBatch.end();
    }
}

 

Video

 

Programming


11. March 2015

 

Copperlicht, a somewhat recently open sourced WebGL game engine has just released version 1.9.

 

Release notes are, shall we say…  terse.  Here they are in the entirity from the Copperlicht forums.

 

Hi,
CopperLicht 1.9 is now available for download. Get it here:
http://www.ambiera.com/copperlic...


Added support for realtime reflecting water surfaces, rendering to textures, inverting the depth test, shader callbacks, pointer lock, and more clearly rendered 2D Overlays.



Have fun with it!

 

Although the archive itself has slightly more detailed release notes:

 

---------------------------------------------
CopperLicht 1.9
---------------------------------------------

- Added realtime reflecting water surfaces.
  There is now a special scene node which renders water surfaces, which can be used to create rivers,
  lakes, and oceans. It is highly configurable, so it can be used to create various,
  realistic looking water surfaces.
 
- Added support for rendering to textures.
  See CL3D.Renderer.setRenderTarget() and CL3D.Renderer.addRenderTargetTexture() for this.

- Added support for inverting the depth test.
  See CL3D.Renderer.setInvertedDepthTest() for this.
 
- Introduced the option to use callbacks for shader settings constants when creating your own materials.

- Full screen with pointer lock now works again on Chrome. Previously, this stopped working
  after Google changed their implementation.

- Fixed 3D sound node to play sound looped even if set to 'play once'

 

Copperlicht is from (one of the?) creator of the popular IrrLicht game engine.  They also have a number of other tools available, such as the CopperCube world editor and irrKlang a cross platform audio library.  It’s one of those products I’ve intended to take a closer look at for some time.

News


12. January 2015

 

Ok, I’ll admit, this topic isn’t the most incredibly gamedev related thing I’ve covered, but I figured enough of you might find it useful that I should share this.  Like many other things, Blender has incredibly powerful text manipulation and rendering features built in, but working with them isn’t always intuitive.  We work with text for a variety of reasons… pre-rendered title screens, menus, credits, etc… so knowing how to do this could be quite useful.  So let’s take a look.  There is also a video of this process available here.

 

Creating and rendering text in Blender

 

Add The Text Object

 

First you need to add a text object to the scene.  Text is a first class object and is added using the Add->Text menu:

image

 

Editing the Text

 

Text will now appear in your scene like so:

image

 

I want it facing the front, so I simply rotate the text using r + x + 90 to rotate 90 degrees on the X axis

Now switch in to edit mode either by hitting tab or selecting the edit option:

image

 

Now a cursor (caret) will appear beside your text:

image

In this mode you can edit your text like using a word processor.  Switch modes or press tab to stop edit mode.

 

Modifying your text

 

Now that you’ve got your text set to whatever it is you want, you can now modify it in the Properties panel.  With the text selected, locate the F icon:

image

 

Now you can set a number of properties:

image

 

A few of which are critical.  Probably the most important is the Extrude option, which gives your text depth like so:

image

 

And offset, which gives a nice bevel effect:

image

 

Changing the Font

 

Blender ships with and uses their own font BFont by default.  However you most likely want to import a TTF font from your system.  You import the font based on the type of text… regular, bold, etc.  Simply click the Open icon:

image

And load the font you wish to use.  If you are using Windows, fonts are stored under Windows\Fonts.

 

Text Positioning

 

Like a word processing tool, there are also text alignment options:

image

 

These values are set relative to the objects Origin:

image

 

The Origin can be set using menu options in Object->Transform menu

image

 

The Results

 

As I said earlier, Blender text can be used to quickly and easily make in game menus, like so:

 

image

 

Although ideally, yours will be a bit less ugly!

 

The Video

 

 

Here is the video, again there is an HD version available here.

Art


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List