Making a clothing system?

@zarch: If you asked me then: Yes, I did saw those videos.



These features can almost become trivial if we have bullet SoftBody ( the cloth system…).



But until now, my clothes and in general soft things like flags, etc… is deformed by manual bone animations in 3dsmax and blender, and also a custom deform shader!!! The hair (pony tail) can be controller by a SpringJoint ( which already in jME3 Bullet) … They all work pretty well, can provide a lot of effects for such RPG as my game!



and I’m looking forward for SoftBody show up, because I can’t really play with JNI myself, it’s crazy!

Well it was more a general contribution to the discussion rather than aimed at anyone specifically :slight_smile:



Just be aware that even a soft body simulation by itself is not enough, the soft body needs tweaking for this specific purpose.

http://www.gamasutra.com/view/feature/4383/the_secrets_of_cloth_simulation_in_.php?print=1



As read in this article, it was believed by people that Cloth simulation can depend on the magic of Graphic cards and shaders, which is not really true… CPU computing and also such simulation like in AlanWake can yeild good result :stuck_out_tongue:



Anyway, Softbody is most feature I want in such a great engine like JME!

@atomix said:
@nehon: Thank you for the infos!

Another quick question regarding the CinematicSystem, as I want my particle made from Spatial not a billboard, I want to extends Cinematic to work like an Timer helping the AdvancedParticle (Placing, Spawning, and control the rate, life, color by curves...). What do you think about it, in fact i have some tests run of the draft system already, and find it very cool, help us make a lot of complex effects!

I'm not fond of the idea, bending the Cinematic system to make something that it was not designed for, has been proven tedious...
You can try of course, but you may have unexpected side effects.

Yes, the concept of a TimerSystem , EventManager, EventReminder is very much like our CinematicSystem… May be the existence of such TimerSystem is good for some purpose, however, I have a good look at the codes of Cinematic class, it’s good for the purpose because it’s a AppState. Will going good with other computing and handle several TimingJobs… Anyway, I still confused by its name, why should extends a State anyway?

Hi everyone!
I’m working on a side project that is supposed to have equable armor and weapons too. As it stand i’m happy with the way i equip and un-equip weapons and things of the sort but for things that require animation like gloves i’m not too sure after reading this topic.

The way i’m currently doing it looks like this and seems to work but is very tedious and maybe not too efficient?
[java]
player = new Node();

    Spatial player_base = assetManager.loadModel("Models/Player/Female/Base/none.j3o");
    AnimControl baseAnimControl = player_base.getControl(AnimControl.class);
    AnimChannel baseAnimChannel = baseAnimControl.createChannel();
    player.attachChild(player_base);  
    

    Spatial player_gloves = assetManager.loadModel("Models/Player/Female/Gloves/none.j3o");
    AnimControl gloveAnimControl = player_gloves.getControl(AnimControl.class);
    AnimChannel gloveAnimChannel = gloveAnimControl.createChannel();
    player.attachChild(player_gloves);

    
    Spatial player_boots = assetManager.loadModel("Models/Player/Female/Boots/none.j3o");
    AnimControl bootAnimControl = player_boots.getControl(AnimControl.class);
    AnimChannel bootAnimChannel = bootAnimControl.createChannel();
    player.attachChild(player_boots);
    
    baseAnimChannel.setAnim("stand");
    gloveAnimChannel.setAnim("stand");
    bootAnimChannel.setAnim("stand");
    
    player.scale(0.2f);
    player.setShadowMode(RenderQueue.ShadowMode.Cast);
    rootNode.attachChild(player);

[/java]

I’m not to sure what was meant by re attaching the skeleton control as it stands all my models were modeled in blender with the same armature and when i export them with ogre all the meshes export separately each with there own skeleton control and animation control.

Perhaps someone can shed some light ?
Much appreciated :slight_smile:

I think i know what you meant now, for those who are still curious here’s one way to do it,

[java]
player = new Node();

    Spatial player_base = assetManager.loadModel("Models/Player/Female/Base/none.j3o");
    
    AnimControl baseAnimControl = player_base.getControl(AnimControl.class);
    AnimChannel baseAnimChannel = baseAnimControl.createChannel();
    
    player.attachChild(player_base);  
    
    SkeletonControl skeleton = player_base.getControl(SkeletonControl.class);
    player_base.removeControl(SkeletonControl.class);
 
    Spatial player_gloves = assetManager.loadModel("Models/Player/Female/Gloves/none.j3o");
    player_gloves.removeControl(SkeletonControl.class);
    player.attachChild(player_gloves);

    Spatial player_boots = assetManager.loadModel("Models/Player/Female/Boots/none.j3o");
    player_boots.removeControl(SkeletonControl.class);
    player.attachChild(player_boots);
    
    player.addControl(skeleton);
    
    baseAnimChannel.setAnim("stand");
  
    player.scale(0.2f);
    player.setShadowMode(RenderQueue.ShadowMode.Cast);
    rootNode.attachChild(player);

[/java]

2 Likes