About This File
An addon for Blender that supports import and export operations for .SkinnedMesh, .SkinnedAnim and .Skeleton files. Drag and drop importations are also supported, even for multiple files of the same type.
Meshes to be exported are limited to 65536 vertices, 1 uv map and 1 texture to go along with it. Even stationary objects in the game have a simple skeleton, so it's safe to say that even the simplest object should be exported while being bind to a skeleton. The mesh's textures are not exported by this addon and should be placed manually within xml and zip/folders to work.
Skeletons are limited to 256 bones, should have a bone named "Head"(case-sensitive) and at least one bone named either "base" or "root", both of which are case-insensitive. Not having the "Head" bone causes the game to crash in some cases as it is responsible for the positioning of entity dialog.
There are also three helper operators that can be called from the search menu on Blender: "Check If Armature Is Valid", "Retarget meshes weights to skeleton" and "Rebuild Bone IDs for Armature".
Check if the armature is valid is useful to see if there are any necessary adjustments to be made on the armature for it to be valid for either importation(useful when importing other things that use the armatures, such as skinned meshes) or exportation.
When importing meshes without a valid skeleton, their weights are assigned to vertex groups with bone ids as their name. By selecting one or more meshes and a single armature, retargeting the meshes' weights will rename each vertex group on the meshes to their respective bone in the target armature.
Rebuild bone ids for armature will work as long as a root/base bone is present. It rebuilds invalid bone_id properties on the armature and is necessary to set up new armatures or fix broken ones.
Animations to be exported should have no problems as long as it's target armature is valid. If the "Export all actions in armatures" is not checked, then the currently selected action in the action editor will be exported. Different animations should be organized in different actions.
There are explicit options for choosing whether to export only selected objects now.
There is also a new option to only consider deformation bones. This is useful when exporting rigged armatures so that only bones that are responsible for deformation(and are obligatory bones, such as the root/base and Head bones) are exported, reducing the risk of the armature running over the 256 bone limit. To work with deformation bones one has to rebuild the bone id properties of the whole armature before doing other operations by using the respective operator while having "Consider only deform bones (Recommended)" turned on.
The addon was made for Blender 4.1.0 and probably won't work on earlier versions due to the new drag and drop functionality that Blender added recently. You can try to delete the drag and drop related code and correctly assign the specular value to the correct BSDF shader node on earlier versions and it might just work.
I've created a github repo to help in versioning and keeping track of bug fixes, the download is also there on the releases page:
Link
Or you can download it directly from here.
Edited by Cardboard_Box
New version, new ways to work with the addon
What's New in Version 0.2.1 See changelog
Released
Added explicit option for exportation of only selected objects for skeleton and meshes, and of only selected armatures for animations.
More error checks to report possible errors with more accuracy.
The root/base bones now don't need to have their bone_id property manually set. As long as the bone exists and has one of these two names, the rebuilding process will happen automatically.
Moved skeleton validation to the build_skeleton_from_armature function, since this class structure is used almost everywhere.
Added option to choose whether or not only deform bones are considered in operations->
Adding animations to already existing armatures have to be done with non-intrusive rigs which won't change bone hierarchy(parenting) or position/rotation data in edit mode. It's also important that the original rig has the original bone_ids that have been assigned to it during importation, so make sure to not modify any of them when making the new rig, or fix them manually if necessary.
Also, even if the new rig is non-intrusive, imported animations would break upon importation since it doesn't currently take into account ik and constraints, so the importation of animations currently is checking if the imported animation and the target armature have the same amount of bones while taking into account non deform bones too. Therefore, making a non-intrusive rig to produce new animations for already existing skeletons is a one-way road of exportation.
Completely new rigs are fine and can be exported with or without considering only deform bones or anything, but I recommend only exporting deform bones to not risk running over the 256 bone limit.
There is now only one operator to validate armature, and when it is called a window pops up with options where you can choose whether or not to check for exportation/importation, print debug data or consider only deformation bones.
New operator: Retarget meshes weights to skeleton. If your imported mesh was imported with vertex groups as bone_ids, select the desired meshes together with their intended skeleton and the vertex groups will be renamed automatically.
Some bugs have been fixed.