Content

Post new topic Reply to topic

Model parts utility

Author Message
Eagle The Purpose View user's profile Send private message

Reply with quote Monday, November 24, 2014

Hey, I wanted to know, what's the utility of having 3 model parts for a character. :\

Is it because md3 files can't handle a certain amount of faces/tags ?

Because managing 3 sets of animations simultaneously is a real pain...

Shenku RiO Incarnate View user's profile Send private message

Reply with quote Monday, November 24, 2014

Not exactly sure what it is that you're asking...

If you're asking why the mesh is broken up into 3 parts, it's because since the format has no bone data it makes it more efficient to blend between aim/firing animations and running(in any direction) animations as opposed to having entire separate animations for running/aiming/firing for each direction, which would greatly increase the file size of each model, plus be more difficult to lerp the animations between.

If that's not what you're asking about, try rephrasing because I'm really confused about what it is you're wanting to know...

Eagle The Purpose View user's profile Send private message

Reply with quote Tuesday, November 25, 2014

Why there is 3 files(head, upper, lower) instead of 1 with the full model in ? *

Zeth The Admin View user's profile Send private message

Reply with quote Tuesday, November 25, 2014

For the above reasons Shenku just stated.

Eagle The Purpose View user's profile Send private message

Reply with quote Tuesday, November 25, 2014

Mmhh.. I see.. Confused

But, if I have well understood, at the beginning, there's only the full model with bone anims, right ? Then there is a cut process (don't know with which magic...) to split the model in 3 parts (still animated) and then I don't know for tags.. :/

Shenku RiO Incarnate View user's profile Send private message

Reply with quote Tuesday, November 25, 2014

I explained it above, but I'll try to explain it better.

The way the md3 format works is that each mesh plays snapshots of the entire mesh for each frame of animation. To have aim and movement animations playing at the same time is easier to do with separate meshes, because you can use one animation on the legs while another on the upper body as needed.

The separate meshes themselves are because of the lack of bone data. Because the format only saves snapshots of the whole mesh for each frame, it can't distinguish between different parts of the mesh, and there for would need separate animations for moving in each direction while performing any given action, instead of just one animation, which becomes cumbersome the more animations you have for different things.

Running while shooting, for instance would require one animation each for shooting, running forward while shooting, running backward while shooting, running left while shooting, and running right while shooting, plus running in all those same directions while aiming in different directions while shooting, plus shooting in all directions when not moving at all. End result is you're more than quadruppling the number of animations for each character, and drastically increasing the file size for each mesh file.

With the separate meshes calling up different animation sequences for each mesh component, you can handle these separately instead of calling up a full animation for each sequence. This means you can reuse the running animation for all directions on the legs, while the upper body and head mesh play all the aiming and shooting animations at the same time, requiring significantly less overall animations for each character.

As for the tags, the engine uses those to indicate coordinates on the mesh itself to place things, such as putting the 3 pieces of the mesh back together, attaching weapons, exc.. They can be used for other functions as well, such as generating the shape of the aura for the character, but basically they are just for establishing coordinates on the character mesh for use by the engine.

Also keep in mind, the Quake 3 engine (and by extension, the IO Quake 3 engine as well, which is what ZEQ2-Lite uses) is rather old as 3D game engines go, and a lot of standards that are used by modern 3D engines were not yet established when it was initially released, so the MD3 format is "primative" compared to more modern formats that have much more advanced features, most specifically being bone data for easier blending between animations.

Eagle The Purpose View user's profile Send private message

Reply with quote Friday, November 28, 2014

>Shenku

Sorry for the late, I was Away From Keyboard for few days if you know what I mean..

yeah I got it, I forgot about anim mix (just learned the sense of blend today x) )

Thank you for your answer Smile

By the way, was I right on my theory of the process to make a character from the svn playable ? Or can you enlight me on how it is done, please ? (without going on details if you want ^^')

Shenku RiO Incarnate View user's profile Send private message

Reply with quote Friday, November 28, 2014

Wh1t34Gl3(SAS) wrote : >Shenku

Sorry for the late, I was Away From Keyboard for few days if you know what I mean..

yeah I got it, I forgot about anim mix (just learned the sense of blend today x) )

Thank you for your answer Smile

By the way, was I right on my theory of the process to make a character from the svn playable ? Or can you enlight me on how it is done, please ? (without going on details if you want ^^')



You mean on how to separate a single character into 3 meshes? That's easy.

Just figure out which parts of the mesh you want included for each md3 file(usually split at the waist and neck, and everything that attaches to those specific sections.), then make sure it's actually separate objects in 3ds Max, and then just have everything that belongs to a specific md3 part selected and go to export>export selected, name the file according to its section(upper.md3, lower.md3, head.md3), reopen it in Misfit Model 3D and save it, then it's done.

If, however, the character is one object in the scene and already rigged, you have two choices for separating the meshes. You can either delete the skin modifier separate the mesh elements to new objects and then re-rig(easier if you make a duplicate of the whole mesh to use skin wrap on, assuming you know how to use it and nothing breaks with the original skin modifier), or you can create multiple duplicates of the whole mesh object with the skin modifier left intact for each section and add edit poly modifiers above the skin modifier to use to delete out mesh elements you don't need for each mesh.

The second option is slightly faster, but the first one is probably safer to use since having all those extra modifiers in the second method sometimes causes unwanted issues or may even corrupt things randomly, at least in my experience...

Note: You'll want to also have separate meshes for each color group for each section, this way you can use different cel band shaders in-engine to make the character look nicer.

Example: Having separate meshes for gokuUpperShirt and gokuUndershirt would allow you to use an orange cel band for his shirt, and a blue one for his weighted training clothes underneath, which will look much nicer than just the orange on both.

Eagle The Purpose View user's profile Send private message

Reply with quote Friday, November 28, 2014

>Shenku

Well, in fact, I already know most of this. ^^'

Briefly, it can be done with a copy paste of meshes in different files and few edits on extremities (neck/middles). Then there is rig/anims part (learned it quickly on misfit, thanks ivan for that Smile ) or bip files (pretty unknown to me yet since it seems to not be possible on misfit or hardly possible) and the tag parts (animating tags easily or with bip files (if possible), I mainly block at that).

I'm searching about all of this since I had issues with Super Saiyan 4 Gogeta/Vegeta lowers (that seems to be merged with Goku Super Saiyan 4 lower to have it's tail with anims) or even to complete/finish some models that can be needed for my addons or ZEQ2 itself.

Still on Super Saiyan 4 lowers, tags are compressed with Goku's lower (outside animations) and if the whole file is edited, the tags are desapearing and the model is good to trash because it's improbable to put animated tags again in the same model (frame anims rules of misfit..)..

For the groups/textures/shaders, I'm "converting" every characters I edit to optimise them. (white textures when possible and shaders that give colors, regrouping to adapt with shaders etc...)

I'm doing these things on my mini gamepack project and that permitted me for example to optimise gokuNamek from f3 (before : ~ 300Mo / after: 208Mo) and keeping the same quality (I only kept the 1/3 of the textures). I could do better of course (surelly under 100Mo) but ZEQ2 limits are reachable quickly...

Eagle The Purpose View user's profile Send private message

Reply with quote Tuesday, December 02, 2014

by the way, is it possible to modify the engine so it can reads other file formats ? (for models, like .Misfit Model 3D, .max or plenty others, and videos like .mp4 or .avi etc...)

Shenku RiO Incarnate View user's profile Send private message

Reply with quote Tuesday, December 02, 2014

Wh1t34Gl3(SAS) wrote : by the way, is it possible to modify the engine so it can reads other file formats ? (for models, like .Misfit Model 3D, .max or plenty others, and videos like .mp4 or .avi etc...)



Assuming one knows how to program in the compatibility with other formats, then I believe for the most part, yes. The only issue is you need intimate knowledge of the file format you're looking to add support for, and how to work with it and get it to render in-engine correctly.

There may be other factors to consider as well, but I've not messed around with those portions of the engine, so I couldn't say what they might be.

Eagle The Purpose View user's profile Send private message

Reply with quote Tuesday, December 02, 2014

Wow, reviewing a big part of the engine to do that...

Those who makes them are monsters... ._.

Thank you for your answers again. :>

Eagle The Purpose View user's profile Send private message

Reply with quote Friday, December 05, 2014

It's just my opinion, but wouldn't it be better to organise the animation.cfg in this kind of scheme ?:

//==========================
//Vegeta ANIMATIONS
//==========================
sex   m
fixedtorso
fixedlegs
overrideHead

//-------------
// Death
//-------------

deathGround
{
   display [1 9]       //Displaying frames from 1st to 9th once.
   fps 20          //Frame per seconds
}
deathAir
{
   display [9 24]
   loop [13 24]      //Looping frames from 13th to 24th
   fps 10
}

//etc ........
//etc ................

weapon6LeftPrepare //A final flash in this exemple
{
   display [240 244]       //Opening arms in game
   fps 5
   loop [244 245] 3       //The 3 represent how much times the loop will be repeated, if the person want an infinite loop he just have to leave a blank. The loop here is made to keep the pose "alive", so the character can put breathing or shaking animations (or anything else, the goal is to not make the character looking like he is freezing)
   display [245 248]      //Finishing to charge the final flash, arms joined
}
weapon6LeftFire
{
   display [248 250] //FINAL FLASH!
   loop [250 253] //This loop can serve to display heads animations or making a firing animation loop (exemple: Goku with his kamehameha)
}



I think it would helps a lot. Organising this file like this would avoid to duplicate frames in the models and having a better control of animations sequences.

Postscript: everything that is not specified will be translated as a 0.

Shenku RiO Incarnate View user's profile Send private message

Reply with quote Saturday, December 06, 2014

If you want to try doing it, there's nothing stopping you from tweaking the animation code, but it seems like you'd just be making more work for yourself because you'd have to redo every character in order for them to work with the new animation format/layout.

Addons would also need to be fixed to work with it as well, so overall it doesn't seem worth doing this far in simply because of how much work would be required beyond just the code changes for it to do what you want.

Eagle The Purpose View user's profile Send private message

Reply with quote Saturday, December 06, 2014

I was just giving an idea. I don't think I'll touch the code one day, just proposed something that would help for improvments/optimisations. (on characters side since it's the main part of "the game" and the one I know the most)

I think the final result worth to remake all the anims.cfg. It'll permit to save weight and improve A LOT the quality/diversity of the animations. After all, it depends on what the character maker will do:

-Updating old players to a better state.
-Making new ones.

Another thing that would help on improvments/optimisations is to extend the system that take the previous tier files when the next doesn't contain some. Not only for the default/main models, but every files (icons, damaged models, default_percent, tiers.cfg etc..)

It'll permit to have better quality and diversity on the character (exemple: gokuf3 can keep his damaged states on all tier but just need them on one, it'll remove 200mo of lacking in identifiable function files minimum)

Post new topic Reply to topic

Actions

Online [ 0 / 6125]