Jump to content

eljuko
 Share

Recommended Posts

Hey,

 

I must apologize for asking so much or in such large scale. but there's some stuff that wont just "click". I do not ask u to tell me precisely how to do but more like how its done in theory.

 

I'll try to categorize the subjects with numbers or something to make the questions more easy to answer.

 

 

1. first things first. I'v read something that i cant use "actions" from blender. how i should make the skeletal animations then?

in one big animation that contains all the animations for Walking, running and idle ect. and somehow using the frames of specific range in babylon.js?

 

2. Then how about the gearing and character customization? I know that i could place the sword for example by appending it to bone or something,
but how about clothing and character hair; do i create the clothes as objects in blender and then display the wanted item or change texture?

 

3. does anyone know a good page to read about these? =)

 

 

- Thanks, eljuko

Link to comment
Share on other sites

Hi Eljuko, good to hear from you again.  Umm...  I've always loved Sam Girardin's "old man" ragdoll thing.  Here's some links...

 

http://www.visualiser.fr/Babylon/character/default.htm  (online demo)

 

http://visualiser.fr/Babylon/oldman.zip  (complete source code - typescript and js - watch your BJS versions - maybe 1.14 only but still delicious)

 

I think tons of things can be learned from this great source package.  It's certainly a start.  :)

 

And here are a few videos...  http://www.blenderguru.com/tutorials/introduction-to-rigging

 

Stay tuned... surely more comments to come.

Link to comment
Share on other sites

but how about clothing and character hair; do i create the clothes as objects in blender

 

Hi again eljuko :)

 

I use MakeHuman and Blender - and that allows me to have a couple of choices about how I approach adding clothes and hair. My Blue Lady is a good example of these choices.

 

She has two additions - the hair/beret and the dress.  The hair/beret was made in Blender then parented to the rig and weight painted to the head bone - very simple. The dress on the other hand was also made in Blender using the MakeHuman addon for Blender (MakeClothes) and then exported out so MakeHuman could use it. The dress was then added to the lady figure in MH and reexported back to Blender. This leaves MH to do all the weight painting to all the bones necessary - and of course MH adjusts the dress if you change the figure in MH.

 

Here is a video about MakeClothes with Blender and MakeHuman - the lady chatters on a bit particularly at the start (lots of explaining  about quads and tris) but she eventually gets around to using the addon ;)

 

cheers, gryff :)

 

 

Link to comment
Share on other sites

As an addition to my comment above about adding clothing etc., play the first few minutes of this Maze entry for the October Challenge - the "monk" you will see uses the MH MakeClothes addon - only the hands are the original MH figure - the robe and boots were added in MH and the face added like the hair/beret .

 

cheers, gryff :)

Link to comment
Share on other sites

Hey,

Thanks gryff! One question popped to my mind.

 

Lets think i'v a model and i want to change clothing / hair ect with babylon.js without exporting the model with a billion different looks. is it possible to somehow change "chespiece" model in a fly for example so that it has the rigging from the "dress"?

 

 

- thanks, eljuko

Link to comment
Share on other sites

is it possible to somehow change "chespiece" model in a fly for example

 

eljuko, you looking at armour and weapons - that kind of thing?

 

I did  tinker a little with the "attachToBone" functionality - it maybe possible to use that - but it probably requires some experimentation. Very simple example here :

 

AttachToBone

 

cheers, gryff :)

Link to comment
Share on other sites

@eljuko,

 

I'm not at all familiar with MakeHuman, however if gryff uses and recommends this, it must be a valid solution and works entirely in Blender. I personally use Motionbuilder for all of my animation as well as blending motions to quickly build my move trees. And I'm a huge fan of the FBX file format, as I worked with Kaydara to build this format originally - so I find the ascii version quite easy to work with - as well as this format supports ALL aspects of practically any 3D scene exported from most 3D applications. But keep in mind that Blender only imports and exports the binary FBX format, but you can either use Motionbuilder to write or convert ascii to binary and binary to ascii - or you can use the free FBX viewer which is a great tool to work with FBX files in real time. But you only require the ascii version of the FBX format if you want to easily edit scenes written in a text format - which I find I can quickly make changes that aren't available to me in other file formats. And if you have a Kinect, you are able to capture your motion in real-time directly into Motionbuilder; creating animations quickly, with all of the tools necessary to blend and create move trees.

 

Motionbuilder also characterizes and retargets animations of skeletons in seconds, and handles props as quickly as well - including every tool you might ever want to use for all of your character retargetting, animation, motion capture, textures, lights, cameras, etc. If you are able to use MB, you'll require no other software other than Blender or a modeling software. It is also great to animate and integrate all other object animation quickly.

 

But as budget is usually an issue, Motionbuilder is not a freeware application - however you can use the trial for 30 days for free to decide if it works for your purposes - and if you meet the requirements, the student version is only a few hundred dollars to purchase a fully functioning license.

 

Also, I'm not certain if Blender is capable of binding multiple meshes to a single skeleton, but Maya certainly does this and would would assume Blender does this also - and you can then use mesh.isVisible to hide and unhide your character meshes in babylon - keeping in mind your vertex count limits for both desktops and mobile devices.

Link to comment
Share on other sites

it must be a valid solution and works entirely in Blender

 

Actually MakeHuman exports : .fbx, .dae, .stl, as well as for Ogre3D and .obj (not sure about the rigs for some of them). You should try the fbx export David - see what you get ;-)

 

However, it does have the MakeWalk, MakeClothes, MakeTarget addons for Blender.

 

I'm not certain if Blender is capable of binding multiple meshes to a single skeleton

 

Yes it can. If you look at my "Blue Lady", the hair/beret, the dress and the "skin" - they are all separate objects bound to the rig. but I think Eljuko is trying to avoid having 20+ meshes bound to his character. (might use "mesh.setEnabled(false)" instead of "mesh.isVisible" though).

 

But keep in mind that Blender only imports and exports the binary FBX format

 

That is not right David - it is worse than that.  Blender exports  in ascii and imports in binary. So an fbx  file written by Blender can not be read by Blender. As you can see here, I've been through this before at Unity ;) . That is why I have the free Autodesk Convertor installed on my PC. Campbell Barton wrote the original importer for Blender - but it did not import rigs though I think that is changing but  there may still be issues.

 

And if you have a Kinect, you are able to capture your motion in real-time directly into Motionbuilder

 

Which you can do in Blender - though it costs money (not cheap :( ) and to be honest, I've never tried it (don't have an xBox :o )..

 

Enough for now.

 

cheers,gryff :)

 

Link to comment
Share on other sites

If it helps any, what I'm attempting to do, but haven't had time to finish it yet, is I keep all my body parts in separate mesh files. When you change equipment, i rebuild the whole character. I load in each piece, merge them, attach my skeleton, dispose the old player character, then rename the new one to the old name.

Link to comment
Share on other sites

@reddozen - I don't fully understand your pipeline, so if you could provide more detail as to what your process is specifically, I would be interested in understanding better. It's good to get the perspective of as many users as possible to how they create and animate characters in BJS, and then we can provide this info in the documentation to let the community know their options, and select the best pipeline for their personal needs or production needs.

 

@ gryff - the info you provided is very valuable, as I had no idea that Blender exports FBX in ascii and imports FBX in binary, as I use Blender sometimes, but primarily work in Maya. However, incompatability within the FBX importer/exporter in Blender seems absurd to me. But this is great information for everyone, as even I had no idea that this was the case - and info such as this is important to document. I believe we need to document pipeline, process, and methods of production; not only specific tools and functions in BJS. But I don't know if this should be done on the documentation site without a specific area to work in for such broad issues.

 

In my opinion, there should be a place where users can go to get more practical application information on working with the BJS framework on how to accomplish specific tasks and the usage of various software and other external tools necessary to producing games or other content; a location where the community can outline available software, file formats, hardware, process, and the positives and negitives of each part of the process, etc.  - so that any user can look at other user's experiences and help define what tools and methods for their pipeline they might find specifically useful, in order to accomplish any specific production. This would be some sort of documentation site and repository for broader pipeline and production issues and methods, which would be different from both the current documentation site and the existing repositories - although I believe this should exist on the BJS documentation site for compatibility and collective use.

 

I know we have most of this info available on the forum itself - but in many, many different posts. However, navigating through the forum to provide a broader picture of production and all available elements required to produce work, is not a simple task and there are no standards in which to provide such info in a simple and easy to use and navigate format. Just to learn of the differences between the ascii and binary FBX file as well as which format Blender imports and exports, is not something that is easy to locate, and is never introduced to the average user without them determining their needs are not being met - and if they're diligent enough to even know where to begin perhaps an extensive search for alternate solutions. And most users don't have enough information and experience to begin the search to come in contact with such info, as a great # of questions on this forum are pipeline and general method and process questions -ast we have no place which primarily focuses on process, pipeline, software, and general experiences which are generally universal.

 

So to the BJS community - please provide any thoughts you might have on how we might create an area on the documentation site for this type of information - so that others don't need to spend the hours, days, and months searching, testing, and discovering what many of us already know through our spending extensive time learning how to get from an idea or concept to a finished babylon scene.

 

DB

Link to comment
Share on other sites

This is my work in progress... It's not complete.

 

Currently dispose isn't getting rid of the existing meshes after adding the new ones. I think this is because I need to call dispose in the render loop where it makes the scene.executeWhenReady() check. I may need to do the same thing with the mergeMeshes() function etc. I just haven't hard time to work on it / test it all more. Hopefully you can see what I'm trying to do though to get some ideas.

 

I also have not added in my skeleton, but that's being handled as another mesh with just a plane and the skeleton called "playerSkeleton". Simple call once I get everything else working...

 

playerCharacter.skeleton = playerSkeleton.skeleton;

 

 

Current Progress:

http://diviniaro.com/WGClient/Models/Loaders/player_loader.php

Link to comment
Share on other sites

@reddozen - Do you need to dispose of your meshes, or have you tried to hide them?  (using isVisible = True/False)

Of course, it's better to lower your overhead by disposing of the meshes if you won't be using them again in your scene, but I'm sure this would need to be set inside the render loop for obvious reasons. From your script example, I also assume you're using 3dsMax? Do you have a link to a working scene?

 

Also, for the BJS community - As in my last post, I'm interested in getting ideas as to how and where we might set up documentation for external tools, file formats, etc. which make up the various pipeine choices for the many different types of animations, modelling, chaacters, motion capture, shders, and all elements of BS scenes - and the many choices a use has to create the most efficient production pipeine for their specific projects and budgets. If we can provide all of the info on pipeine and process, this would be a great resource for everyone - rather than perhaps discoving these on your own when many of us have already discovered almost every aspect of what tools and resources are available to produce specific types of scenes - from point A to B and all the way to completion.

 

Again, looking for thoughts on how we might create such a location on the documentation site as a resource for the entire BJS community.

 

DB

Link to comment
Share on other sites

Yes, it's from 3DS Max. It's the only way we have to export and import our meshes from the original package files. These are all assets from the first Ragnarok Online 2: Gate of the World that never made it out of beta.

 

Scene isn't completely working yet. I need to dispose of them because this will be for an MMO... so I don't want 20 versions of 100 players in memory. I have a scary feeling that even one complete player character will make smoke come out of Babylon's ears once it's done... lol

 

I have over 4000 keyframes of animation and 300+ animations for just the player character.

Link to comment
Share on other sites

Hey reddozen, 

 

Sounds very interesting. Are you using or intend to use node.js for serving out your MMO? Also, have you looked into streaming your meshes and animations? I recently saw a post on streaming scene elements, but I didn't dive very far into it. We use WebsocketIO and node.js to stream scene elements as needed - however, we're not currently focussing on character animation, although this is primarily where much of my personal experience lies.

 

But currently we are streaming multiple user real-time events using a node.js server we built from the ground up. So you shouldn't have issues as long as you're not requiring a complete download prior to game launch. Also, I would look closely at instncing as much as possible.

Link to comment
Share on other sites

Sadly, can't instance a skeleton. It has to be cloned. I instance a lot of objects in my actual scenes.

 

Here's one of the main towns:

http://www.diviniaro.com/WGClient/Models/Loaders/map_loader.php?zone=1&region=1

 

Not sure if I will use node.js, or write my own server side controller. Our server engine is in C++, so it's more likely that we'll make our own webSockets C++ controller to integrate the packets into our existing server engine. Before I mess with client server stuff, I need to get it all working without it to eliminate complexity. We've had a lot of problems getting Unreal 2k4 meshes to play nice with babylon.

Link to comment
Share on other sites

@reddozen - I tried your link, but it first reported that it can't sonnect to MySQL - and now it's very odd as some of your scene code simply is displayed on the screen. I've never seen a server respond like this - but it appears as though your security is incredibly vulnerable from the way it is behaving - so you should check this out asap.

 

I know you can't instance skeletons, but didn't know you were familiar with instancing meshes - as I thought this might help you manage your resources a bit. But obviously, you are familiar with instancing in BJS.

 

As for node.js, this works extremely well with WebsocketIO, and empowers your server to prioritize tasks, and to execute tasks across multiple threads, which would help with your overhead. I highly recommend seriously looking at integrating node.js into your server to make your server operations far more flexible and efficient.

Link to comment
Share on other sites

I linked you to the load script for my scene, so this is why you're seeing the details. I can load sub regions of my world maps through dynamically generated javascript through PHP. I wanted you to see the source. The mySQL errors are because the my web host was bought out by another company and this new company doesn't seem to know what they're doing so the mySQL connection is a little intermittent. They will either fix it, or I will just host the site myself.

 

Our server engine is already a multi threaded, multi server, layout. Handling multiple packet feeds is not a huge issue. I don't want to integrate something as slow as javascript into a high-speed C++ server. It would become a bottle neck in our setup. The server box is dedicated to the game. In theory it should be able to hold 100,000 players by design. hard to test that upper limit though. Our maximum player count in our unreal 2k4 client setup was about 300 players.

Link to comment
Share on other sites

@reddozen - understood. I took a look at your source and it was informative - lots of work and effort, I see - and loads of characters and animation - thanks for sharing. I don't know what else if anything you might need help with at this point, but if there's anything I or anyone might be able to assist with, please continue to post your questions. I'm sure everyone at this point is looking forward to your first active character demos for single player. And just for your own info - node.js will not slow down your server operations at all - not to use for character positions and actions necessarily, but for serving out scenes and streaming game elements. It's just my recommendation that you take a closer look at node.js.

 

Cheers.

Link to comment
Share on other sites

@JCPalmer,

 

You are corect. Here is what gryff responded when I though Blender impored and exported binary FBX files - and I was wrong:

 

 

Quote from gryff

But keep in mind that Blender only imports and exports the binary FBX format

 

That is not right David - it is worse than that.  Blender exports  in ascii and imports in binary. So an fbx  file written by Blender can not be read by Blender. As you can seehere, I've been through this before at Unity  ;) . That is why I have the free Autodesk Convertor installed on my PC. Campbell Barton wrote the original importer for Blender - but it did not import rigs though I think that is changing but  there may still be issues.

 

 

 

So Blender is completely ass-backwards when it comes to reading and writing FBX files. Thanks to gryff for pointing this out, as I personally had no idea.

 

DB

Link to comment
Share on other sites

Hey everyone,

 

Sorry for my late reply.

 

eljuko, you looking at armour and weapons - that kind of thing?

 

I did  tinker a little with the "attachToBone" functionality - it maybe possible to use that - but it probably requires some experimentation. Very simple example here :

 

AttachToBone

 

cheers, gryff :)

 

Yes, thats what i'm looking for  B) Thanks Gryff!

I'll probably try to make hair as separate mesh and rigging.

 

Also thanks for everyone who replied. i'll the rest of the discussion asap.

 

Hopefully getting my character model ready soon so i can start experimenting.

 

- Thanks, eljuko

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...