Author Topic: BRF Edit 0.8.2  (Read 27130 times)


  • Guest
BRF Edit 0.8.2
« on: January 14, 2007, 11:29:42 AM »
Download Link: 
Download BRF Edit 0.8.2
Mirror: MB Repository (Thanks to Janus)
Requires .NET framework:  Download (You already have this if you use Effidians Editor)

Frequently Asked Questions

Modeling resource links you may find handy:

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.

Version 0.8.2

- Allow frame-by-frame import of vertex animated objects from OBJ files.

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 :)
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 :)

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 :)
- 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.


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 :)

« Last Edit: February 15, 2007, 12:18:54 PM by Fisheye »


  • Guest
Re: BRF Edit 0.8.1
« Reply #1 on: January 14, 2007, 11:30:15 AM »



Offline Lord Of The Sith Lords

  • Craftsman
  • **
  • Posts: 61
  • Leprechaun turn to the dark side (we have cookies)
    • View Profile
Re: BRF Edit 0.8.1
« Reply #2 on: January 26, 2007, 04:44:08 AM »
- 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.

Will this be fixed? possibly in the next version?
if you turn to the dark side you get cookies, if you turn to the light side you get brownies, if you are both light and dark you are smart cause you get cookies and brownies, if you don't have the force then your stupid cause you get nothing!

Offline Raz

  • Deus Vult Dev
  • *****
  • Posts: 212
    • View Profile
Re: BRF Edit 0.8.1
« Reply #3 on: January 26, 2007, 09:27:34 AM »
Most likely, yes.

Brigadier Hussey

  • Guest
Re: BRF Edit 0.8.1
« Reply #4 on: January 29, 2007, 04:27:20 PM »
Have you started work on the next version of brfedit yet Thorgrim? I'm just looking forward to the animation support so I can use Raz's animations  ;)


  • Guest
Re: BRF Edit 0.8.1
« Reply #5 on: January 30, 2007, 12:58:35 AM »
I haven't really done much on the animation side, no.  In fact, to be honest I haven't even looked at the BRFEdit code, or any other M&B related code for a few weeks now.  I'm taking a little bit of a break, and hoping I will come back with some more motivation to get working on it again.

Might as well post this though:  I compiled the latest code a couple of weeks ago for anyone who is interested.  No animation stuff, but it has some minor fixes etc, and the installer allows you to register BRFs SMDs etc to open with BRFEdit (which has been possible for many versions but probably not many people noticed).


Offline Raz

  • Deus Vult Dev
  • *****
  • Posts: 212
    • View Profile
Re: BRF Edit 0.8.1
« Reply #6 on: January 30, 2007, 06:56:51 AM »
Schweet! I know how it is when you run out of motivation. Take your time :)

Brigadier Hussey

  • Guest
Re: BRF Edit 0.8.1
« Reply #7 on: January 30, 2007, 11:46:28 AM »
Yep, keep up the good work.

Offline Merlkir

  • Administrator
  • *****
  • Posts: 5742
    • View Profile
    • My DeviantArt online Gallery
Re: BRF Edit 0.8.1
« Reply #8 on: February 01, 2007, 02:10:56 PM »
anyone has tips how to get that damn Microsoft Installation service 3.0 that .NET 2.0 requires? (other than downloading it from MS website..)

ok, nevermind, seems I got it working..
« Last Edit: February 01, 2007, 02:26:07 PM by Merlkir »
Here's my gallery: http://merlkir.deviantart.com/

I'm now painting and drawing commissions. I'll paint portraits, pets, girlfriends, favourite characters..you name it. Send me a PM if interested ;)

Offline Fisheye

  • Blues Brother
  • Moderator
  • *****
  • Posts: 427
  • My scalp's so bright, I gotta wear shades.
    • View Profile
Re: BRF Edit 0.8.2
« Reply #9 on: February 15, 2007, 12:17:34 PM »
For v0.8.2, from the Taleworlds website.

Thorgrim says:

Little update.

I did want to get skeleton saving finished for this version... but I haven't had the time to get it finished so thought it better to release this (which now has individual frame importing) so you can make use of the new features.

The individual frame importing allows you to import individual frames that are needed for items such as scabbards, quivers, map icons etc.

The suggested procedure for creating your own scabbard, quiver or map icon is as follows:

1) Export a similar item from native, and import it into your modeling program.  If your modeling program supports MD3 importing, then you can use MD3, and scale down by to 2% after importing.

2) Modify the native item, or create your own object, using the native item as a size reference.  And export it as an OBJ

3) Modify the mesh for each frame required.  For frames which require the sword, or arrows to be hidden, simply scale that element down, and hide it inside the scabbard or quiver.  Export each of these frames to separate OBJ files.

4) Open up BRFEdit, and import the base mesh obj. 

Then for each frame you wish to import:

5) Import the obj for the frame, select "Replace selected mesh", and tick the "append" option. 

6) When prompted, type in the time for the frame you are importing.  This value varies depending on what item you are importing, and you should take a look at native items for an example of what values to use here.

Repeat Step 5 & 6 for each frame you wish to import.

7) Save the BRF, and reference your item as usual.
« Last Edit: February 15, 2007, 12:20:01 PM by Fisheye »


  • Guest
Re: BRF Edit 0.8.2
« Reply #10 on: February 15, 2007, 08:32:10 PM »
Yes! This means that I can now make new shields and scabbards using just Wings, doesn't it?

Offline Ahadhran

  • Mysterious Old Man
  • Craftsman
  • **
  • Posts: 137
    • View Profile
Re: BRF Edit 0.8.2
« Reply #11 on: February 15, 2007, 10:12:43 PM »
Yes! This means that I can now make new shields and scabbards using just Wings, doesn't it?

Yep, and don't forget new animated bows too!  ;)

Brigadier Hussey

  • Guest
Re: BRF Edit 0.8.2
« Reply #12 on: February 16, 2007, 10:49:06 PM »
Yes! This means that I can now make new shields and scabbards using just Wings, doesn't it?

Yep, and don't forget new animated bows too!  ;)

Animated flintlocks too  ;)

Good job Thor - have a baby for being such a great person.


  • Guest
Re: BRF Edit 0.8.2
« Reply #13 on: February 17, 2007, 03:47:26 AM »
So this is all ferpectly compatible with 0.808?


Brigadier Hussey

  • Guest
Re: BRF Edit 0.8.2
« Reply #14 on: February 20, 2007, 07:44:31 PM »
Yes is it ferpectly compatible.


  • Guest
Re: BRF Edit 0.8.2
« Reply #15 on: February 21, 2007, 04:47:36 AM »
Wonderful. No cloning textures and materials AT LAST!

Offline fujiwara

  • Master
  • *****
  • Posts: 858
    • View Profile
Re: BRF Edit 0.8.2
« Reply #16 on: April 12, 2007, 10:16:08 PM »
Wasn't sure where to put this...

A question regarding a scabbard not showing up in the game. BRFEdit was used to make the scabbard (nice work, BTW Thor!)


The horses tend to get their legs caught in the catapult rather than being properly launched.


  • Guest
Re: BRF Edit 0.8.2
« Reply #17 on: April 13, 2008, 07:08:38 PM »
Thorgrim, you have any idea why this exception pops up when trying to load any brf files into brfedit?  this is the report I get: I checked my .NET and the other requirements.  this one has me baffled....I hope it's not something easy...

************** Exception Text **************
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at loadCompressedTexture(UInt32 tex, SByte* fileIn, BImage* image, Boolean mod)
   at CreateTexture(UInt32 tex, SByte* filename, BImage* image1)
   at loadMapModel(Int32 modelNum, Resource* meshIn, Mesh** mesh2, SByte* texture, SByte* mbPath, SByte* module, Int32 type, Int32 timeIn, Int32 renderType, Boolean wireframe, Boolean color, Boolean light, Int32 selBone, Boolean face, Scene* scene, Boolean positionAnim, Int32* textures, Int32 reachVal)
   at BRFEdit.Form1.resetDisplay()
   at BRFEdit.Form1.renderScene(Boolean initIt)
   at BRFEdit.Form1.updateMeshes()
   at BRFEdit.Form1.meshList_SelectedIndexChanged(Object sender, EventArgs e)
   at System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ListBox.WmReflectCommand(Message& m)
   at System.Windows.Forms.ListBox.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
    Assembly Version:
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    Assembly Version: 1.0.2729.32
    Win32 Version:
    CodeBase: file:///C:/Documents%20and%20Settings/Ryan%20O'Connor/Desktop/BRFEdit.exe
    Assembly Version: 8.0.50727.1433
    Win32 Version: 8.00.50727.1433
    CodeBase: file:///C:/WINDOWS/WinSxS/x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1433_x-ww_5cf844d2/msvcm80.dll
    Assembly Version:
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/
    Assembly Version:
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/
    Assembly Version:
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/
    Assembly Version:
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging

For example:

    <system.windows.forms jitDebugging="true" />

Agent Griff

  • Guest
Re: BRF Edit 0.8.2
« Reply #18 on: May 10, 2008, 10:26:44 AM »
It happens to me as well, both when I try to open BRF Edit, and when I try to view objects.

I have come to understand, however, that two error messages in quick succession means something works, while only one error message followed by a message which gives the option to either quit or ignore symbolizes an imminent crash.