Simplest way of making an animated (human) model. ( lwjgl )

Hi JGO,

My first post here. I am not sure if this is the right board to post this to, but for me this is pretty much
a newbie question. If it should be in the API & Engines board i’m sorry and would appreciate it if someone
could move it. I don’t wanna doublepost it.

I am absolutely new when it comes to anything gfx related other then doing UIs with AWT/Swing.
I also have no experience in working with any modelling software.

I started to get my feet wet with OpenGL ( using LWJGL ) by making a game as a small hobby project.
I got started by looking up tutorials and just playing around with it, but now i need a little help.

My game is going to be in an isometric perspective. The x/z plane is my ground plane and y the height.
In isometric that gives me 4 possible camera directions by rotating around the y-axis by 90° each.
I haven’t messed around with anything but building simple things and getting a texture to appear on them.

I now need a very simple human looking model with a walking animation and because i lack any knowledge in this area
i am writing this post in the hopes that someone can point me in the right direction.

The possible ways of doing this that i came up with:

  1. Just using a 2d texture on a quad and change the texture every frame to animate it.
    I would need to draw the human figure frame by frame in multiple directions.

  2. Make a basic model out of cuboids( is that the correct terminology? ) and try to animate them cuboid by cuboid.
    I guess this is how the minecraft playermodel works, at least it looks like 6 basic cuboids.

  3. Bother to “learn” to use a 3D modelling software.
    Well i looked at blender and basic .obj exports are just textfiles that contain all the data. but anything with a
    skeleton for animation seems to be another beast. And i also searched the lwjgl javadoc and i would have to write
    code to handle all that myself.

The model size is only in the range of 64 pixels ( at least so far ) and there would be a maximum of around 100 of those
visible at a time.

I have no idea about performance, but option 2 seems to be the one i am favoring because it seems to need the least
amount of work and considering the size of it in a 1024*768 resolution ( or bigger resolution ) doesn’t require a too good
looking animation ;D. But as i mentioned i have no idea if that would give me a decent performance.
So far i am doing everything by using glBegin(GL_QUADS/TRIANGLES/LINES/POINTS)…glEnd(); which seems to be a deprecated
way of drawing in opengl, but i would like to keep it really simple for starters so i would also use this to draw my models if i am
going by option 2.

Can you tell me if i may run into any performance issues going down the road of option 2? Is there another possibility of doing this
i haven’t thought about?

I appreciate any input on this, thank you.

Option 3:
Modeling and animating a 3D human requires a pretty solid understanding of human form and anatomy, as well as movement, the software itself (e.g. Blender), and low-poly modeling and texturing techniques. It’s not really an easy task, and would probably take several months of learning and hard work before you end up with something satisfactory.

Instead of doing your own 3D art, I’d recommend downloading some free 3D models online. There are plenty if you search google.

Of course, if you are still doing everything with glBegin/glEnd, it implies you probably don’t really understand much about OpenGL, certainly not enough to write your own model loader and animator class.

Option 2 is a bit simpler, but it requires a decent understanding of matrix operations and 3D maths. If you are unfamiliar with these concepts, you should read up on them first. Also, the result would look pretty strange if the rest of your game isn’t made out of cubes.

Option 1, using 2D billboard sprites, is probably more fitting for somebody who is new to 3D.

Generally my advice would be as follows:

  • Ensure you are comfortable with programming and various maths before diving head-first into game development and OpenGL.
  • Start learning OpenGL in a 2D environment before you jump into 3D. Ideally you should learn shaders and the programmable pipeline (and avoid deprecated functionality) as it will help you a lot when you do start working with 3D.
  • Make your first few 3D games simple enough that it doesn’t require animated human models. Make a 3D snake or pong clone, for example.

thank you for your reply.

Yeah option 3 is pretty far out there ;D.

I had my share of math courses in University that covered matrix transformations for rotations & translations. just a matter of refreshing that memory ;D.
And so far it would perfectly fit the look, its pretty much cubes and ramps and moving cubes as a temporary replacement. at the moment it is pretty much a basic thing like pong/snake.
But after thinking about it,you are right, i probably should make it a basic, but functioning game before i try to make it look better as a first try at OpenGL.

I know this isn’t really on topic, but is there a standard on how you setup the screen coordinates for a OpenGL Window? I’ve seen pretty much every possibility while reading examples/tutorials.

Use glOrtho() or gluPerspective().