A creative commons JME3 character mini project

Hi

Let’s setup a mini project to create creative commons human character with good bone structure and growing animation set.

I know my way around blender and it would be nice to save new people some work buy creating good base model to start with.

Scoping:

  1. What kind of bone structure?
  2. Which animations are priority one?
  3. Can we easily prepare for advanced topics like morphing (thin / muscular etc)?

Please comment :slight_smile:

-Tommi

5 Likes

Great idea. If it would be sweet if it was compatible in some way with
http://www.makehuman.org

1 Like

Which of the MakeHuman supported skeletons would be best?

  • Basic
  • Game
  • HumanIK
  • SecondLife 1/2
  • Xonotic?

I suppose if “standard” MakeHuman created male and female human characters are used to do animations in blender then you can export the standards as ogre 3D and just copy the skeleton.xml to a variation model.

You can create the variation from the standard male with Make Human but you can not change any body proportions which affect the skeleton. You can still scale the model in JME3.

Some thoughts about variations:

  • We could probably make the MakeHuman clothes, hair and so on as separate ogre models with same skeleton and just join the model parts in JME3?
  • Ogre3D material file switching could be used to switch skin color.
  • It could be possible to do simple body type / face type variations with morphs between selected base type models.

This thread has nice details how to get the MakeHuman to blender (2.63a) and further to JME3.

http://hub.jmonkeyengine.org/forum/topic/animation-not-working-for-all-bones-makehuman-1-0-1-blender-2-70a/

Having just spent the last week or so ploughing through blender, importation, and animations just to get a character into the system to test my FPS setup, a system that can be utilised by the community would be awesome. Or at a minimum easy to use ready made models with basic animations.

Also a list of animations or guidance from experienced users on how to setup/layout the animations would also be great.

Heres a great tutorial for people starting off in animations using Blender.

[video]Blender Tutorial: Basic Walk Cycle - YouTube

Since im a silent member of the community, thought id give back something - thus if any body wants an example (WIP) using the above link - heres my effort:

Model

and heres the helloAnimation i used as a basic test…

HelloAnimation.java

2 Likes

I’d say having a MakeHuman preset that works well with jME and then further instructions on how to exactly import it and circumvent possible problems would make most sense, wouldn’t it? I like the idea a lot, don’t get me wrong.

6 Likes

Hi

Mikie, thank you for the example files. The animation tutorial link seems to be missing.

Norman agreed. Would be nice to give those presets some ready made animations, clothes, skins and make some example files through the asset line all the way to an asset pack.

I suppose the MakeHuman own basic bone system would be good preset? It has something for face and fingers as well so it looks like it covers all basic game bone system needs while being relatively simple.

-Tommi

@tommi.s.e.laukkanen said: Hi

Mikie, thank you for the example files. The animation tutorial link seems to be missing.

Norman agreed. Would be nice to give those presets some ready made animations, clothes, skins and make some example files through the asset line all the way to an asset pack.

I suppose the MakeHuman own basic bone system would be good preset? It has something for face and fingers as well so it looks like it covers all basic game bone system needs while being relatively simple.

-Tommi

I guess theres several levels or types of human models for games. Some of the more extended bone systems might be overblown for certain applications (e.g. RTS games) while for other games (e.g. FPS games) they might be just right. In some situations it might be necessary to implement a kind of LOD system where more simple models are used when theres lots of “humans” on screen and more extended ones for e.g. cutscenes or when the player is close to the single NPCs…

Gread initiative.
for advanced bone master : 5 bone fully rigged humanoid character can be compined with LOD.

Hi

Thank you again for comments and insight. It seems we can not solve all cases before hand but maybe there is away to do the skeleton / animation LOD in some part of the asset chain or in the application.

If there is no objections I will proceed to experiment with the MakeHuman basic skeleton as this seems to be reasonable approximation between the extreme ends. It does not provide cinematic quality like muscle bones but should be complex enough for most whole body animations in games.

First goal is to create a preset character as make human, blender and ogre 3D version with some test animations like idle and walk.

Best regards,
Tommi

3 Likes

Hi

Here is github project if someone wants to follow the process or contribute (will be added to the project as contributor):

Status currently:

  • Created MakeHuman preset.
  • Exported to blender with basic skeleton and Rigify rig.
  • Tested the rig
  • Prepared for animation: switched IK on for legs and set proper rig controls to be visible.
  • Tommi

Hi

Here is summary regarding progress over weekend:

Versions used in testing:

  • MakeHuman 1.02
  • Blender 2.72
  • blender2ogre 0.6.0
  • JME3 master

Tests done:

  • Tested MakeHuman + game skeleton + Rigify => Works in Blender => Animations break in JME3

  • Tested MakeHuman + basic skeleton + Rigify => Works in Blender => Animations break in JME3

    • (Tested these also with various other version combinations to no avail.)
  • Tested MakeHuman + game skeleton + no IK constraints => Works in Blender => Works in JME3

  • Tested MakeHuman + basic skeleton + no IK constraints=> Works in Blender => Works in JME3

  • Tested MakeHuman + basic skeleton + custom IK constraints => Works in Blender => Works in JME3

Summary:

Unfortunately it looks like I can not get Rigify working so I will opt to use minimal custom IK constraints on top of MakeHuman basic skeleton. If someone is willing to further test Rigify setup my tests are here:

https://github.com/bubblecloud/jme3-open-asset-pack/tree/master/src/main/resources/character/human/male/basic_rigify

Next steps:

  • Creating minimal walk cycle and couple of poses for human male preset model with basic skeleton.
  • Getting eyes and clothes to work with the animation.

-Tommi

Hi

“Stand” and “Walk” done and confirmed to work in jme3. The ogre export can be found here:

https://github.com/bubblecloud/jme3-open-asset-pack/tree/master/src/main/resources/character/human/male/basic/ogre

Regards,
Tommi

Video please! <3 Looks so much better in a tweet :wink:

Hi

Some status again.

  • Added JME3 stable dependencies to the jme3-open-asset-pack project to be able to include code.

  • Created animation preview application to be able to easily play through poses and render video:
    jme3-open-asset-pack/AnimationPreview.java at master · bubblecloud/jme3-open-asset-pack · GitHub

  • Tested whether it is possible to use skeleton XML files for different MakeHuman mesh XML files to transfer animations to different models => Does not work. Animations break down probably due to skeleton vertex deforming which is encoded in such way that tight coupling between skeleton and mesh files exists i.e. not using bone names.

  • Tested whether I can easily import new MakeHuman models to the animated blender file and transfer animations => Works though custom IK constraints are not in the imported MakeHuman model so actions done through IK do not transfer but baking Actions should work. Any custom modifications to MakeHuman rigging is going to be very tedious when transferring animations to new models through Blender.

Can anyone think of any other way of transferring animations between MakeHuman character models except through Blender?

Regards,
Tommi

@tommi.s.e.laukkanen said: Can anyone think of any other way of transferring animations between MakeHuman character models except through Blender?
You could take a shot at the experimental FBX importer by @eirenliel .

Hi

Managed succesfully to bake the animations and got rid of the minimal IK constraints.

Moved the animation to new character from MakeHuman with Blender shirt:

[video]http://youtu.be/hvDkXJZnMnk[/video]

-Tommi

Hi

Here is male character animation take 2. Clothes etc are now loaded as separated meshes and run with their own AnimControls. There is some synchronization problem between different AnimControls which occurs with both master and stable JME3.0 release. For example the hair is not in perfect synchronization with the rest of the head. All the animation calls are always done in the same time. The problem seems to be caused by any kind of lag / CPU load i.e. timing not running in perfect 60 frames per second.

[video]http://youtu.be/uB9HG8pmCvA[/video]

The animation control class:

https://github.com/bubblecloud/jme3-open-asset-pack/blob/master/src/main/java/com/jme3/asset/CharacterAnimator.java

Anyone got ideas what is wrong and how it can be fixed?

  • Tommi

Funny, this works fine with for example the WorldForge models, which also have separate parts that have to be animated separately. Looks as if the actual animations are different. The animations are played with the same tpf that your update method also gets so I don’t know how this could happen. Is there any difference between hardware and software skinning?

When I changed to custom animation timing which is executed in the application.simpleUpdate() method the problem is fixed:

[video]http://youtu.be/_dnJ91Un9HU[/video]

Earlier the animation was started on the animation event listener animation cycle completed method. Could it be that this method is invoked outside proper update loop?

  • Tommi