mtarini said:
- Here is a little tool I'm building with The Last Day module in mind (you know, the Lord of the Ring based one). I was developing it inside that community, but why not share here. It is meant to substitute the old BrfEdit by triglav (which is discontinued and whose source was never released AFAIK).
It is a WIP, but it is already usable to some extent....
Download:
ver: 0.0.11 alpha (14 Aug. 2009)
[exe] (unzip and run)
[source]
[[[NOTE: to access most functions, right click on the item you intend to process in the item list on the left.]]]
Progress:
- Reverse eng of BRf format: [DONE]
[objective: be able to read and interpret all structures in BRF files...]
- Mesh (including vertex-animated and rigged): [done] (a long ago)
- texture, materials, shaders...: [done] (was very easy. Not that it was necessary, but just for completeness).
- Collision objects: [done]
almost done. A few kinds are missing.(not that it is necessary, but just for completeness).- Skeletons: [DONE] (that was a bit more interesting)
- Skeletal-animations: [DONE] (it was great fun)
- Looking at objects
[this is not so important, except for skeletons and meshes, and will be done either just for completness or to fulfill any specific request]
3D display (rendering):
- Meshes: shown with vertex-animations, lighting, wireframe, per-vertex color[done]
textured: [done]
rigged meshes shown animated. [done]- Collision objects: shown (all kinds)
(sphere & capsules are still wrong)[done]- Skeletons: shown [done]
- Skel-animations: shown animated looped[done] also, with customizable skins
[texture searching for meshes is a little crude... they are looked only in relative path "../textures/". I will fix this]
Display of object attributes (e.g. flags or used materials):
- Meshes, Animations, Textures: [done]
- all else: [to do] (I'm lazy)
- Saving: [DONE]
[be able to save the modified brf file]
- Exporting-importing:
[be able to export stuff, so that they can be modified in other apps and reimported]
- Meshes exported/imported in a variety of formats: ply, dxf (autocad), dae (collada), obj (wavefront), off. [done].
(not all formats allow to export vertex colors or normals. Normals are recomputed if missing).- Rigged meshes : export/import as SMD [done]
- Vertex-animated meshes : [to do]
- Skeletons: export/import as SMD [done]
also, export/import as a control mesh [done]. (new)- Skeletal-Animations : export/import as SMD [done]
- Collision bodies: [to do]
- Editing:
[to be able to change stuff from within the editor]
Basic functionalities: remove, rename, duplicate, move objects in the list [done]
Cut and paste objects to easily move them from a brf file to another [done]
Direct editig of MESH attributes (flags, materials...). [done]
For other items: To do.
Plan: Unless needed, I would do very little more that that. All the rest, I would rather do by exporting-reimporting.
Edit: maybe add a vertex painter... [triglav]
Other features:
[other planned, proposed, or released features]
- autobreak-up of animations into sub-sequences: [DONE]
(useful for for long sequence of animations listed as a single one). Animation can be either auto-split, by dividing chunks separated by large gaps in frame numeration, or split by folloiwng an action.txt file (in this case, a new action.txt is also produced, which refers the new split animations. The original action.txt file is kept intact -- just for safety).
How-to: Just right click on an animation in the list.
- customizable skinning for animations: [DONE] rigged meshes can be enlisted to compose "skins". Skins are sets of user-selected rigged meshes which are used to display skeletal-animations. Similarly, animations can be set as "reference animations" so that you can see your rigged meshes under that animation. This mechanism is also be used to export animations/rigged meshes/skeletons.
How-to: Right click on the mesh to add it to a skin, or on an animation to use it as a "reference" animation. Reference objects (skeletons, animations, models) are auto-saved but you can also edit them directly (tools=>edit reference models).
- simplified skeleton modification though meshes: [DONE] (new) this is for allowing to change the skeleton w/o using an animation program (small thing, mostly for myself). Export a "skeleton modification mesh" in any mesh format. Edit the mesh using any program (but don't change bone size, number or shape: only their orientation and positions). Now you over-impose to that mesh over the skeleton, to modify bone positions (inheriting all else, including bone names, bone connections and what now).
- reskeletonize tool for rigged meshes: [DONE] (new) Say you have a rigged mesh, a body for a skeleton "human", and a new skeleton for an something else. You can deform the mesh to follow the new skeleton. This is not supposed to be perfect, but can be a start. Optionally, the deformed mesh can be placed as a frame to the original body mesh (you know, just how natives hides feminine version of armor shapes in subsequent frames).
- search function: [TO DO] to look for a given sting in mesh names, matrial names, etc. [HokieBT suggestion]
- vertex painting? [TO DO] maybe just use export/import instead, and edit colors with external app? (maya? 3DS? blender? meshlab?)
Update logs:
ver 0.0.11 (14 Aug):
- this time blender and 3DS should like exported skeletons/rigged meshes better...
(important: openBRF won't understand SMD exported by prev version... again. Last time, hopefully)
- bug fixes (as ever), including mirroring of everything (big deal) and addition of non-rigged meshes to skins
- skeleton-modification trough meshes (see above)
- reskeletonization of rigged meshes (see above)
- better handling of multiple skeletons (but it is up to the user to use the correct skeleton)
- minor interface improvements
ver 0.0.10 (13 Aug):
- considerable internal changes. Hopefully now SMD exports are blender-compatible too.
- bug fixes of all kinds
- a few cosmetic changes
ver 0.0.8 (12 Aug):
Added back compatibility with M&B 0.808 materials and skeletons.
Export/import of rigged meshes (SMD):
- added a x10/x0.1 scale factor for coherency with what old BrfEdit exported.
- (also, now if a vertex is connected to >4 bones it tries to fix it, instead of complain and die.)
Export of animations (SMD):
- changed stuff a bit, to see if now 3DSMax likes them better.
- added a file format option to correctly import SMD files that were originally produced by old BrfEdit (or their derivatives)
Bug fixes on load, GUI improvements...
ver 0.0.7 (11 Aug):
Export/import of rigged meshes, animation and skeletons as SMD.
Better handling (visualization) of {vertex animated}-meshes, and of {vertex-animated}+{rigged} meshes
Collision objects BRF reverse-eng minor fix (does it undersrtand all of them now?).
Lots of minor fixes.
Open questions:
[please help anwering those]
[Thanks to those who answered.]
Skeletons and their animations:
1 - provided that we could add/re-edit new skeletons, can we then set creatures (mounts, characters) to use them?
(Maybe, if we disabled ragdolling...)
2- same question, for skeletal animations.
3- how much can we do by just editing animations (and thus, poses)?
For example, could a troll be a pose where the head is higher and the shoulders are wider apart?
Answer: NO Poses only define bone rotations. An animation cannot make the head any higher or shoulders any wider apart.
4- what is the best "export/reimport" way to edit animations?
Answer: maybe SMD [thanks getAssista] or COLLADA [thanks giles]
Hit boxes
5 - are they hard coded? Where are they?
Answer: the only control we have is the skeleton scaling factor inside an ini file[thanks octoburn]
Screenshots:
skeletal animations displayed with customizable skinning:
multiple selection (meshes):
vertex animation:
skeletal animations:
composite collision objects:
mtarini said:
That is a mayor find!
Outstanding!
Apparently, that's where:
- ragdoll parameters
- hitboxes
data is hidden!
WOW!!!
Edit: more detailed explaination
In that file, for each bone, I see that they specify:
- Ragdolling parameters: like mass, maximal angles and other constraints
(for example, so that the ragdolling cannot bend the knees backward)- Bodies
"Bodies" is how M&B calls collision objects.
In a Brf file, a "body" is a small set of objects (often one), that can be of various kinds.
In that "skeleton_bodies.xml" file, all bodies I see are composed by a single object of the kind "capsule".
"Capsules" in M&B terms (used by brf files) is a collision object which is a cylinder.
It is defined by the two points, which are the centers of the two bases, and a scalar radius.
I know because I interpreted the "body" for the catapult (see screenshot on 1st page) which
in composed by several "capsules" (and one "manifold", that is, a closed mesh)...
QuailLover said:Essentially... Space Marines are possible now?
QuailLover said:Essentially... Space Marines are possible now?
mtarini said:skeletal animations: