SchMEe Planned Features and Updates

Started by tirpider, June 30, 2013, 05:22:19 PM

Previous topic - Next topic
June 30, 2013, 05:22:19 PM Last Edit: October 16, 2014, 11:36:42 AM by tirpider
SchMEe Planned Features and Updates

Not all of it will make it to code, but this is a good spot to brainstorm and present ideas for inclusion in future versions.

This list (and post) will be dynamic, and grow and shrink as things move forward.
None of it is set in stone, and the lists are not in any particular order.

Features being worked on right now:


  • none currently. Mainly building this list for now.

  • Seperately optimizing the msh load process and polishing a wireframe preview.
    (optimization postponed for now.)

Possible Features:


  • !!! Reports.  Currently, if you want to do anything to a msh, you need to use another program to find out where the pieces are and what they are.  Schmee needs to be able to identify all the things a user can work on and provide that info to the user somehow.  I use the SWBF_MSH_INFO program for this, but it's inconsistant in the datatypes it displays and what Schmee accepts.  I will start with basic txt file reports and once that's done, I may make a simple gui for it.

  • Ability to move UV's by piece instead of all the UV's associated with a material.

  • a way to validate biped skeleton/bonenames/weights/envelope (do the bones have standard names?, are invalid weights present? do the weights need to be normalized? is there geometry with no weights?)

  • -rotatepiece(segm,?)

  • -scalepiece(segm,axis,amount)

  • -invertnormals(segm)

  • -invertallnormals

  • -inflatepiece(segm) / -deflatepiece(segm) Basicly scale the piece from it's center of mass instead of the origin.

  • Add material editing controls for the "Options" GUI.

  • A more rubust set of ODF generation options.

  • Add a .option generator (based on recognizable features in the msh. not all will be possible.)

  • Add a UV visualization feature. (This will be hard to do if the textures are not square.)

  • Add a way to 'normalize' UV coordinates without clipping. (This will be hard to do if the textures are not square.)

  • A proper mesh decimate function to reduce the polygon count and maintain the model's form. (pro level and may never happen.)

  • Convert cloth to regular geometry. (just waiting on a way to "create" normals for it.)

  • Convert sv_ to regular geometry. (creating uv's somehow.. may never happen.)

  • Add efficient triangle strip generation. (the pandemic exporter source may help this)

  • import/merge/export chunks or groups of chunks. (the MSH globals need a paradigm shift for this to become real.)

  • Rebuild "basepose" animation tags. (need code for ZeroCRC handling and some more work on the quaternion math)

  • Export/Save/Load a Milkshape3D ASCII file. (preserve the bones! possibly animations as well.)(not all material features will be transferable though)

  • Export/Save/Load a Wavefront OBJ file. (Handy but not terribly important. Possibly use some dummy triangles to make faux bones? Surely OBJ has comments where parenting info can be passed.)

  • A way to edit or create weights for a SEGM from the command line. (no practical way to apply per-vertex weights, but weights for everything should be possible.)

  • A built-in scripting capability. So that multiple edits can be made and the file only has to be loaded/saved once.

  • Add an ability to arbitrarily add or remove CLRL and CLRB chunks for experimentation.

  • Merging Clusters.  It's easy to just drag the SEGM and all it's pieces from one MODL to another (renumbering them, of course), but if the ENVL doesn't match exactly, then you have to do a lot of extra work, either rebuilding the WGHTs or getting clever with the ENVL somehow. This is so error prone it's silly, and needs to have all but the piece selection automated.

Needed Bug Fixes:


  • Does not overwrite file if "read only" bit is set.(perhaps this is good)

  • Remove or fix the left over report functions. (Revise them. Schmee needs info reporting features badly.)

  • Add proper descriptions of options to read me. (on going task)

  • Revise display messages and -verbose (on going task)

  • Revise the MSH globals. Make it into a proper API like thing with validations, constraints, and behaviors. This will enable the MSH module to be "detached" and used to make other MSH handling software without having to rewrite the MSH parsing bits.
    (This one needs to happen, but is seeming less and less important when I realize just how much has to change to accommodate it.)

  • Start synchronizing terminology with XSI-like terms (SEGMs are clusters, MODL's are nulls, root_* eff_* and bone_* MODL's are bone chains, ect..)

  • consolidate segments is sometimes getting an unexplained ReDim error. It continues to make a well formed msh, but skips the consolidation.

  • Sometimes I get "subscript out of bounds" errors when compiling malformed chunks. The compile feature needs some error handling and reporting features.

  • "array maximum exceeded" when making hitolow conversions. I believe schmee is getting confused by cloth in these instances. Might not be that though.

(This list keeps getting longer and longer..)
Feel free to add comments, ideas, solutions, or suggestions below or as a new thread.