Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (542)
Games in Android Showcase (133)
games submitted by our members
Games in WIP (606)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Simplest way of making an animated (human) model. ( lwjgl )  (Read 2283 times)
0 Members and 1 Guest are viewing this topic.
Offline vrmr

Junior Newbie





« Posted 2012-12-24 23:47:55 »

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  Grin. 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.
Offline davedes
« Reply #1 - Posted 2012-12-25 00:26:17 »

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.

Offline vrmr

Junior Newbie





« Reply #2 - Posted 2012-12-25 22:12:44 »

thank you for your reply.

Yeah option 3 is pretty far out there  Grin.

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.
I had my share of math courses in University that covered matrix transformations for rotations & translations. just a matter of refreshing that memory  Grin.
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.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline theagentd

« JGO Bitwise Duke »


Medals: 367
Projects: 2
Exp: 8 years



« Reply #3 - Posted 2012-12-26 00:45:14 »

Use glOrtho() or gluPerspective().

Myomyomyo.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Elsealabs (20 views)
2014-12-28 10:39:27

CopyableCougar4 (20 views)
2014-12-28 02:10:29

BurntPizza (25 views)
2014-12-27 22:38:51

Mr.CodeIt (15 views)
2014-12-27 04:03:04

TheDudeFromCI (20 views)
2014-12-27 02:14:49

Mr.CodeIt (26 views)
2014-12-23 03:34:11

rwatson462 (59 views)
2014-12-15 09:26:44

Mr.CodeIt (47 views)
2014-12-14 19:50:38

BurntPizza (98 views)
2014-12-09 22:41:13

BurntPizza (116 views)
2014-12-08 04:46:31
How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21

Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!