[Outdated] BRF Edit --out-of-date, see OpenBRF-- (last version 12/5/2008)

Users who are viewing this thread

Not open for further replies.


Knight at Arms
Download Link: 
Download BRF Edit 0.8.95
Mirror: http://members.iinet.net.au/~dstent/mnb/BRFEdit0-8-95.exe
Requires .NET framework:  Download

If you get an error about d3dx9_29.dll not being found, try download a new DirectX version, such as the following one:  Download
Note that any DirectX version since Feb 2006 should be supported, so this should not be an issue for most people.

If you have any problems running BRFEdit, make sure you have the latest drivers:
For Ati cards: http://ati.amd.com/support/driver.html
For Nvidia cards: http://www.nvidia.com/content/drivers/drivers.asp


- Added backwards compatibility so older BRF files from 0.90x and earlier can still be loaded.
- Fixed up some shader rendering issues (however there are still some remaining.

NOTE: This release is still a work in progress, it still has a lot of bugs and features which are not yet finished.  Please feel free to list any bugs you find, but do not expect everything to work.  I am only releasing it now because it will be a while before I will have time to completely fix everything.

Version 0.8.9

This version is a quick fix for M&B 0.95x.
NOTE: this release is still a work in progress, it still has a lot of bugs and features which are not yet finished.

- Normal mapping support
- Support for M&B 0.950 materials
- NOTE: 0.950 skeletons and animations are not yet supported

Version 0.8.5

- Scale / Rotate / Translate now have the option of effecting sub meshes as well (vertex animation)
- Show Axis menu option
- You can now hold shift to move the camera vertically (instead of having to switch translation modes)
- Completely new rendering engine (DirectX) - this should solve a number of issues such as texture compression error messages,
  and also adds support for HLSL shaders.
- Flip mode permananty changes the rotation axis for easily viewing helmets etc which are on thier side.
- Added support for saving animations
- Added support for binding meshes to a rig (currently the only way to view animations) via the "Bind Mesh" button (when viewing a skeleton)

Version 0.8.3b

- Fixed some bugs with the rotate tool (now rotates normals, and rotates collision meshes correctly)
- obj exporter now exports the currently visible frame of an animation, instead of the first frame

Version 0.8.3

- Obj importer can now import quads, as well as triangles (doesnt support 5+ sided polygons though)
- Obj exporter now exports multi meshes if the multimesh checkbox is checked
- Fixed a number of problems with multimesh vertex painting

Version 0.8.2

- Now works with most resources from 0.730+ as well (instead of only 0.80x)
- Fixes for resource loading
- Fixed horse skeleton that is exported with horses
- Installer should now allow BRFEdit to be registered as the default program to open BRFS/OBJs/SMDs with
- Added the ability to import objs as sub meshes (for vertex animation).  Allows for appending of frames, replacing of frames, and replacing of the base mesh.
- When viewing meshes with vertex animation, the time for the selected frame is also shown, to give an idea of how you should do quivers, scabords etc.

For details on how to import vertex animation frames, see:  http://forums.taleworlds.com/index.php/topic,8771.msg450598.html#msg450598

Version 0.8.1

- Fixed bug with load_mod_resource

Version 0.8.0

- Added support for animated textures
- Added support for loading the 0.80x skeleton and skeleton_anim format, BUT DO NOT TRY TO SAVE THEM YET, M&B will not be able to load them.
- Added box for viewing and editing texture flags
- Default texture created when adding a texture should now have valid flags
- Now correctly uses load_mod_resource (instead of the old load_module_resource)

Version 0.7.6

- Fixed some SMD importing bugs for both skeleton and mesh importing

Version 0.7.5

- Fixed some bugs with the Skeleton importer, should now import the whole skeleton without crashing
- Fixed SMD exporting, now exports all partial bone weightings per vertex
- "Face" checkbox is no longer auto-enabled for things ending in "head" to stop confusion

Version 0.7.4

- Fixed some stability issues (Vertex paint undo and some other little things)
- Selected materials and textures now display texture type (TGA/DXT1/DXT3/DXT5) and dimensions
- Added Rotate/Translate to the transformation dialog box

Version 0.7.3 - 10/9

- Fixed some stability issues

Version 0.7.2 - 6/9

- Fixed some stability issues
- Added support to find a mesh in a mods resources, load the BRF, and select the mesh (See MBDev)

Version 0.7.1  -  20/8

- The add bone function hopefully works right now
- Faces should now display as in game (mirrored mesh, with mirrored UVs)
- Added lighten and darken vertex paint tools
- Changed the initial light position so things look brighter (armour is no longer shadowed at the front)
- Added a "Bake Lighting" button to bake the current lighting to a meshes vertex colors.  Shadow baking is planned, but not finished yet.
- Skeleton position animation can now be viewed, edited, imported and exported if the "Position Anim" checkbox is checked.  This basically allows you to animate the position of the whole skeleton over time.  This means you can very easily adjust the position of the rider on a mount, make animations where things jump about etc.
- Fixed some SMD mesh importing problems
- Fixed many SMD skeleton importing problems

Update 0.7 - 26/7

Well, I wanted to finish up a few more things before this release, and make some nice example videos, however I got pretty bored of that, so am hoping you will appreciate what is possible without too many examples :smile:
This version has quite a large number of fixes / additions that are listed below, most notably skeleton importing / exporting, a number of new vertex painting tools, head morph importing / exporting, and a resource management menu.

Here are a couple of example videos:

This one shows what you can do by adding new head morphs:  Download (DivX required)

This one shows what you can do now that you can import new skeletons:  Download (DivX required)

As you may realise with the above example, we can now add completely new sub skeletons, with additional bones.  In this simple example I created a flag, which is actually an NPC with 4 bones to let it sway about, giving it a new race with invisible body parts (except for the flag).  However it is of course also possible to make adjustments to the existing skeletons animations, or add to the existing skeleton, such as adding sword belts, animated weapons, extra limbs etc.  You can even create a whole new  skeleton for new races, monsters etc, as long as it is a similar size to the old one if you wish for the hit-boxes to look realistic.  Remember that the M&B hitboxes are not too accurate anyway, so simple humanoid monsters such as orcs etc should work fairly well.

I will hopefully upload a couple of tutorials within the next week that go over the basics of using all the new features, but I hope it is not too difficult to figure out.  Keep in mind the skeleton importing is still in development, it is not quite right for a number of possible poses, but it gets close most of the time.

Thanks to Janus for the web space, Yoshiboy and Highlander for helping name the animations, and anyone else who offered suggestions, gave bug reports, and generally gave encouragement :smile:

Version 0.7 Change Log (Yes... there is a lot of stuff...)

General Changes:

- The viewport now displays the triangle count of the mesh being viewed.
- Multi-meshes should now display more like they do in game (ie it uses the new naming style used in 0.751)
- Importing Obj files with multiple meshes / textures, should now do a better job of auto multi-meshing them, and gives an option in most cases.
- Added a lighting toggle for meshes, that will shade the mesh in a similar way to how it will show up in game.
- The light position may be adjusted to view how the item looks under different lighting conditions.
- Exporting SMDs should now always export the skeleton, no matter what directory BRFEdit is opened from.
- When viewing skeletons, BRFEdit now lists animations as the list of all actions used in game, and the different animation sequences that are used for each of these actions.
- Added a menu option to manage resources, that allows the user to add/delete/re-order BRF resources that are loaded by the game.
- When saving, if the resources is not present in module_info.txt, it will ask if you want it to be automatically be added.
- BRFEdit now correctly displays alpha, and blending, pretty much as it appears in game.
- There are now sort and ordering buttons to re order resources, or alphabetically sort them.
- Added an update checker, which you can run from the file menu, and will automatically run once per day when you open BRFEdit.
- There is now a background color setting to adjust the color of the view port background.
- Probably a few more little things I forgot about :smile:
- New scale dialog allowing precise scaling on specific axis (works for both meshes and collision meshes).
- Added import scale options

Vertex Paint changes:

- Vertex Paint mode now has a color picking mode, which allows you to pick vertex colors from the mesh so you can easily get the color you pained on last time.
- Vertex Painting now does not form a harsh line on seems, unless the "Seams" option is checked.  The extra cross seam painting is also given its own undo stack portion, so you can easily undo just the cross seam painting if you did not want it.
- Added a "smudge" vertex paint mode - doesn't work too well yet though.
- Added a checkbox for multi-mesh painting.
- Added an opacity value to vertex paining menu, for subtle coloring etc.
- Added a vertex color blur tool (does not currently do cross seam bluring)

Animation/Morph additions:

- Major improvements to the vertex animation importing / exporting
- Added a VAT file for importing face morphs for making custom races, new morphs etc.  Each frame corresponds to a morph of 1.0.  Maximum and minimum morph values for the sliders are defined in module_skins.py.

- You can now export Skeletons, and the current animation sequence to SMD.
- You can also bind meshes to this skeleton, and they are exported with the skeleton so you can view how the mesh deforms with the skeleton in your animation editing tool of choice.  Currently only 1 mesh may be bound to the skeleton at a time.
- When viewing a skeleton with a mesh bound to it, the bone weightings will be displayed for the selected bone.
- Importing an SMD with a animation sequence selected will attempt to import the animation sequence to fit the current sequence.  The user can select if they want to import new frames, new poses, new bones etc.  This feature is still a little buggy.  Some poses will not import correctly, however simple ones such as walk/run cycles etc should work ok.
Note that only bone 0 may move over time, any other changes in bone position over time will be ignored, however you can import reference bone positions.  Note however that this will change the bones position for ALL animations, not just the one you are importing (This is a limit of the BRF format, not of BRFEdit).
- A user may also import new bones for the current skeleton.  The first frame (and last if the "Last frame ref" checkbox is ticked) will be used as the reference pose (frame 0, and frame 100000), and other poses will be imported as usual. 
This allows for creation of whole new sub skeletons, for use in adding animated objects: such as flags and swaying trees, or for adding to the existing skeleton: sword belts, animated weapons, extra limbs etc. 
You can even create a whole new  skeleton for new races, monsters etc.  Note that the SMD file must contain ALL bones (ie include the old skeleton), not just the ones you wish to add, however only the selected bones will be imported.

Modelling resource links:

MD3 importing script (3ds max / maybe gmax too)
SMD Plugins for 3ds Max (these are the best I have found)
SMD Importer (gmax / 3ds Max)
SMD Exporter (gmax)
OBJ Importer (gmax)
OBJ Exporter (gmax) - Note, this seems to just export to the listener window, so read the SMD Exporter help if you cant figure out how to copy the file from the listener window. (You can use the same grabber exe)

gmax (you need to register to download it) - Its free, and it does a lot of what 3ds max can... if you know where to find the plugins.
Milkshape (cheap modelling tool that supports skeletal SMD exporting)
Wings 3d - Great free modelling tool but can't do animation.

Update 0.6.3 - 8/6 Download 0.6.3b

Fixed a few little thing.
- Can now open obj and SMD files with BRFEdit (ie if you do "open with" or set it as the default in explorer)
- Can import obj files with multiple materials, and it will automaticaly be split into multi-meshes.  If you name the materials right before exporting it will auto set the material names too.
- Can set material flags, to effect things such as lighting, transparency, the way things blend, and many more material effects.
- Collision mesh importing should now be fixed (If you were having issues with obj importing, that should be fixed too)
(Thanks for Fisheye for providing a test wings obj file)

Notes on material flags:

This lets you effect things like blending (so you don't need to copy particle blend etc)
As well as letting you add many other effects such as changing the way things blend, rendering orders etc.

- No Lighting means that the material won't be effected by normal lighting, only vertex, lighting (and maybe some kind of ambient lighting)
It generally looks a lot brighter.

- Uniform Lighting has a similar effect, however I believe it lights the model based on the origin of the model, so that the whole mesh is given the same brightness.

- No Z-Write is useful for things like particles you want to blend nicely, or other objects like skyboxes that you want to render behind everything else

- Blend and Alpha flags are used to effect the way things are blended onto the screen.
For example Blend Add will additively blend the material over the scene, making everything brighter.
Blend Multiply will multiply pixels that are blended over.  This effect is hard to explain, but basically, when a pixel is blended over what was behind, the two pixels are multiplied, with white being 1.0, and black being 0.0, meaning everything will get darker, and dark areas will be even darker.

(Note that Flags with a * next to them currently require you to also set the flag before, and flags with ** next to them, require you to set the previous 2 flags.  This will be made simpler in future version)

- Origin at Camera will make the object the material is applied to be fixed to the camera, this is currently only used by skyboxes, so that they always remain on the horizon, but some other possible uses include things such as camera effects: blurred vision, blood haze etc.

- Render orders can be used to ensure some objects are rendered before others, for purposes such as blending and occlusion.

Update 0.6.1 - 21/4

Minor update

- Tidied up the interface
- Fixed a few bugs (wireframe and some others)
- Added mesh rotation: rotate on an axis by 90 degrees (useful after importing some formats)
- Added ability to drag things into the editor to import.  You can also drag in textures.

Using drag and drop, you can just drag a bunch of textures and a bunch of obj / smd / other brf files onto the editor, and it will import them all, then just set up the materials and you should be done.

Update 0.6 - 19/4

Ok, decided I might as well release 0.6.  I had been hoping to get a lot further with the skeletons, but haven't had time.

- Vertex colour painting (in the editor).
- Minor bug fixes
- Menus / shortcuts
- Minor skeleton fixes (still doesnt work very well).

Anyway, I think vertex painting is quite handy.

What is vertex painting you may ask?

Well, it is used for colouring a mesh without needing a new texture, or for colouring meshes that have repetitive textures / a lot of texture re-use.

It is commonly used for adding variations of clothing/armour, such as the gambesons in 3 different colours, but using only 1 texture.  It is also used for adding shadows to many helms and armour, as well as many of the newer buildings.  Brf edit now allows you to paint these vertex colours right onto the mesh.
NOTE: Only the currently selected mesh will be painted when a multi-mesh is being viewed

A great example of vertex colouring used for shading of buildings is in the new BRF called interiors_a.brf.

Here is a comparison:

Without vertex colouring:

With vertex colouring:

And a quick example of shading Zendar:

Without vertex colouring:

With vertex colouring:

However for now I advise that the best use of it is for colouring armour and clothing.  I do plan to add an auto shade option, which will add vertex shading to your mesh based on positionable lightsource, however that may be a way off.

Best of all you can do all this within the editor, without even having to touch a modelling tool, or know how to import or export anything.

Update 0.5.9 - 8/4

- A number of bug fixes

- Basic skeleton editing for editing the basic skeleton shape, as well as all animations.

Yes, that means you can do some cool new stuff:


However... its a real pain to try anything like this at the moment, I advise doing something simple to start with. (Also note that agents cant have alpha at the moment...)

Some other suggested uses:

  - Modify animations such as one of the crossing arms animations to be something like twirling a weapon, scratching head, etc.
  - Add new bones for a sword belt, cape or other new bit of equipment.
  - Modify combat animations to have fancy swordwork, new moves etc.

To do: 

- Fix all the issues with rotating bones
- Allow rotating / moving bones with the mouse
- Fix skeleton exporting
- Add skeleton importing
- Implement custom skeleton exporting with SMDs (the checkbox does nothing for now)
- Add option to display mesh over skeleton
- Allow user to add keyframes
- Add some way to show animation blended over time, not just keyframes.

Notes on skeleton editing:

To edit a skeleton, first open skeletons.brf.  You will see 2 skeletons, human and horse.  These skeletons are used for all models, it is not possible to create a new skeleton, however it is possible to change these skeletons however you like.

You will see a list of bones for each skeleton.  Selecting a bone from the list allows you to edit its global position (this positing is modified for all frames) as well as its rotation for the current frame.  Note that rotation has a lot of issues... feel free to play with it, but its rather tricky to use at the moment.  The scroll bar at the bottom of the view window shows all frames for the current skeleton.  This is all animations following one another.  You can usually work out the start and end of the animation just by looking, however if not, look at the time value, there is usually a large gap between animations.

Each bone also has a parent bone.  this is the bone about which the current bone rotates, and is positioned.

The +/- buttons next to "scale" scale the whole skeleton.

Adding a bone will create it at 0,0,0 with parent of 0.  You can then adjust it as you like.  In this way you could in fact create a whole new skeleton, as a separate skeletons to the current one.  It is then possible to assign a mesh to your new skeleton, and effectively have a totally new custom skeleton.  However it should be noted that collision meshes are currently hard coded.

You will also notice 3 buttons down the bottom regarding selection.  With these you can select the start and end of an animation section you are interested in, then crop to that animation section to edit only that bit.  You can then also use the play button (in the corner of the view window) to view the animation.

Old versions:
BRF Edit 0.4.5

Update 0.5.2 - 23/3

- Now displays collision meshes
- Option to display wireframe
- Button to add new materials and textures rather than cloning
- Fixed some issues loading / importing resources
- Fixed some issues with materials when editing / adding new ones and assigning them to the same BRF
- Added a combo box for material shader field

Changes in 0.3:

- Vertex animation
- Change the name of any resource
- Import and export collision manifolds
(huge thanks to Fisheye for his pioneering on collision meshes)
- A number of other little tweaks and fixes.

Little example of what you can do with vertex animation:

http://members.iinet.net.au/~dstent/mnb/Dragon.avi (Div X)
( Sorry, but im not the best at animation, so quickly slapped this together  just to show that it works, I'm sure you can all do a lot better :razz: )

Some notes on vertex animation:

Vertex animation, as the name suggests, means that the vertexes are animated, rather than bones, to which the vertices are bound.

Vertex animation in M&B is used for a number of things (however it may be possible to use it for more):

- Hands (open / closed states)
- Quivers (different looking depending on no. arrows)
- Party icons that move on the world map

The steps for creating new vertex animations using the editor:

- Open up a brf with an animation similar to the one you wish to create.

- Select the resource you wish to export, and export it to a MD3 file.

- Open the MD3 in your chosen editor (here is a MD3 importing script for 3ds max / maybe gmax too: Download)

- Replace the mesh with your chosen mesh, and set the animation in a similar way.
This will vary depending on the type.  For party icons:
Frame 0: reference frame
Frame 1: standing still
Frame 2-9: walk cycle

In 3ds max, you can do vertex animation in a number of ways, the simplest is to make the object an editable mesh, and move vertices for each frame you wish to make a key frame.

- Export frame 0 to obj format
- Export the mesh to VTA
(here is 1 VTA exporter: MAX6/7 SMD Exporter (its both SMD and VTA in 1))

- Import the obj into BRF Edit
- Import the VTA, with the new mesh selected

- Rename, set the texture, save and test :smile:

If anyone has any issues let me know.  It may take a while to get your first mesh in game, but once you have figured out the process it should be a lot easier :smile:

PS: If there is enough need, I will add MD3 Importing and VTA exporting from the editor, but I found this way works best for now.

Old message:

Ok, so I have recently been working on a tool for editing animated meshes (such as armour, horses, and anything else the current BRFView doesn't like).  Although new animated meshes must be bound to either the human, or horse skeleton, there is still much that can be done.

Although it is not finished, I have decided to take the same approach as with the map editor and put it up while it is still in development so that you can all start playing with some new stuff.  This tool basically has the same features as BRFView, with the addition of skeletal animation importing / exporting, but without the model view that BRFView has (though that is planned for later unless Lurb gets back to work on his own).

Expect some bugs as it is fairly un-tested.

If you are interested in the old Model Importer, you can see the thread here

Here is an example to show it works :wink:


Avi (DivX)

Features include:

- Should support all BRFs
- Change the name / material of meshes
- Import BRF resources from other BRF files (to merge BRFs)
- View the animation type of meshes
- Import SMD (with skeletal data for animated meshes)
- Export meshes to SMD
- Import / export to obj files
- Clone / delete meshes

Planned features:

- Vertex animation support
- BRF flag editing
- 3d model view

For those unfamiliar with Valve SMD models, and who wish to make animated meshes, you will need a tool that supports skeletal animation, as well as exporting to SMD.  If you do not know anything about animation, I do not advise trying to jump into making a new human or monster straight up.  Rigging a character is a very hard task.  Start simple, just editing an already existing piece of clothing or something.

The skeletons should look roughly as follows when imported:



Before you start making a whole new monster with custom skeleton and everything, you must know the following:

For now you MUST USE THE HUMAN OR HORSE SKELETON.  The skeleton that a mesh uses is determined by the items type (as set in the unofficial editor, or python scripts).  This means that you cannot change the skeletons, and must bind any new meshes to one of these two.

Steps for making a new animated mesh:

1) Load a BRF with Armour if you wish to make new armour, or the horse_meshes.brf if you want to make a new horse.

2) Select Export as Humanoid, or Export as horse, and save it as a SMD file.

3) Import this into your selected modelling tool.  Alternatively, if you are creating a whole new model, you can simply import editorData/<skeleton type>.smd, and skip steps 1 & 2.

4) If you wish to create a whole new mesh, delete the old mesh, and attach your new mesh to the skeleton that has been imported.  Or simply modify the imported mesh.

5) When you are finished, move around some of the bones to make sure you are happy with how you have skinned the mesh to the bones.

6) Export your model to SMD. In 3ds Max, make sure that you only have 1 skin modifier.  Only the top skin modifier is exported to the SMD, so all lower modifiers will be lost when you export.

7) Open up BRF Edit, and import the new SMD, rename the mesh, rename the material, and save.

Skeletal animation resources (I will update this list soon):

SMD Plugins for 3ds Max (these are the best I have found)
SMD Importer (gmax / 3ds Max)
SMD Exporter (gmax)

Milkshape (cheap modelling tool that supports skeletal SMD exporting)

Huge thanks to Lurb, for his work on decoding the BRF format, and for all his work on the previous editor on which this is based, as well as Effidian for his work on the BRF lib source, simpson for his work on the Texture & Material editor, and Fisheye for his work on the collision mesh maker.  Also to RR_Raptor65 for his help getting SMDs exported from Milkshape to work, Janus for the repository space,  and of course Armagan for his great help too, you really are the best game developer there is :smile:


I don't see any bodies hanging off that horn... you suck!

Haha, just kidding, thanks ALOT Thorgrim, this will hopefully make alot of future Romans very happy.


N° 22
Thorgrim, you magnificent bastard! I only half-expected you to go ahead and actually do this when I told you to! :smile:
i always knew marnid was a homosexual :lol:

even though i dont know how to use these in the slightest, i understand that these are going to be important to all modders. so i appluad you!


Sergeant at Arms
Does this mean we can now export the armor meshes and modify them? Can we do this without modifing the underlying animation? *exceedingly excited*


Seems we can't do bodymeshes just yet, it keeps giving me an error when I try to import bodymeshes, import/export for horses works just fine though... I'm gonna make a tank!


I just wet myself... :shock:

Well, can't hold back now on those armor requests... I'm about to be swamped!

This is awsome. Won't have a chance to try it today, but is there a possibility to support custom animation?


Knight at Arms
Thor you bastard of a man, release it when im gone, now i have to wait 6 hours til i get back from school to test it out :razz:


Knight at Arms
jik said:
I just wet myself... :shock:

Well, can't hold back now on those armor requests... I'm about to be swamped!

This is awsome. Won't have a chance to try it today, but is there a possibility to support custom animation?

Think it's time to resurrect M&B: The Fallen Lords again? :wink:


Sergeant Knight at Arms
You are one of GOD mod tools creator among other gods of modders/mod tools creators!


Everyone start celebrating for the first steps of animation editors! Now that mean someone can possibly make war elephants!



Eagle out...


*spicy* *camper*
Wow, cool stuff indeed. Trust Thorgrim to go the extra mile for the community. :grin:

Armagan needs to hire you, dammit. :razz:


Section Moderator
groovy! I just need a tutorial now :razz:
(yeah, yeah, I TRIED and it didn't work, I guess I'm just a noob )
Not open for further replies.
Top Bottom