Update log [latest version: 0.0.82e -- 19 Jun 2016]

Status
Not open for further replies.

mtarini

Sergeant Knight
Best answers
0
Update log:   

ver 0.0.82 -- "revive and polish" release (5 Jun 2016)  [additional notes]
1- fixed many bugs & polished various things & hi-res (4K screen) compatibility
2- option to use auto-computed tangent dirs to preview bumpmap, when they are missing (mimicking what the game does)
3- skeleton re-size tool (also affects hitboxes)
    and
0- re-coded 0.0.81 upgrade anew (source was lost)
(0.0.82b-c-d-e: hot-fixes)

ver 0.0.81 -- "materials and usability" (21 Jun 2013) [additional notes]
1- more faithful renderings, i.e. more material settings will cause OpenBRF to do what the game does!
    This is the list of material features which should be correctly previewed on meshes
    (*) "render order" and "render 1st" flag
    (*) transparency mode
    (*) "uniform lighting" flag
    (*) "no depth test", "no z-write" flag
2- more flags documented, (plus errors corrected)
3- usability improvements
  (*) after starting OpenBRF, hitting ctrl+R [R]eloads last loaded file
  (*) when visualizing stuff in several sub-windows, double clicking on any of them
    selects the corresponding objects
  (*) double click on an object in the list selects all its components
4- the usual fixes and minor improvements
(0.0.81b: small hotfix)

ver 0.0.80(+e) -- "long time no see" release (10 Jun 2013) [additional notes]
Small things. Probably incomplete list:
1- new tool to construct vertex animation from rigged meshes
2- added an (optional) shadow when visualizing skinned animations
3- new tool to export string for module's scene-prop python code (for all objects in a brf file)
4- ability to save vertex animations as sequences of obj files
5- module "navigation" (shift+left / shift+right) also goes from mesh to its collision object, if present
6- a few fixes and ameliorations (maybe)
(note: hotfix 0.0.80d fixes bad bugs present in versions 0.0.80, 0.0.80b, and 0.0.80c)

ver 0.0.79 --  "revamp-skin" release (01 Aug 2012)    [additional notes]
1- added an option to place items at game-predefined "carry-positions" (e.g. swords carried on belts).
    It's inside the [mount on one bone] mesh tool.
2- new group-view mode, [auto], to see all subparts of the same object combined (but separated from the rest)
      (e.g. "castle.1" and "castle.2").
3- now [alt]+clicks selects all subparts of a given objects
4- direct visualization of materials a bit improved
5- new tool [discard]=>[rigging (unmount from bone)], which positions objects back into origin.
6- bug-fixes and several polishes
7- translation update (German, by [Roemerboy] this time!)

ver 0.0.78 --  "un-re-do" release (06 Jul 2012)    [additional notes]
1- undo/redo added
2- ambient occlusion computation now considers "up" direction correctly for... "helmets"
3- fixed tab orderings
4- bug-fixes
5- translation update (Spanish, by [swyter])

ver 0.0.77b --  small-update (28 Jun 2012)    [additional notes]
1- new "reimport" tool, to quickly re-import updated models
2- now alpha is editable in "recolor mesh with uniform color", and hex code editable there
3- option to multiply existing colors with new colors, instead of replacing them
    (keep Shift pressed to activate this mode -- works with all tools which compute new vertex colors -- see notes)
4- bugfixes and minor improvements -- "b" version (hotfix): recovered Spanish language translation.

ver 0.0.76 --  mini-update (2 Mar 2012)    [additional notes]
1- added a tool to [Copy colors from texture], which gets texture colors and assigns them to texture.
2- maybe a bit more robust to sporadic crashes?

ver 0.0.75 --  mini-update (1 Mar 2012)    [additional notes]
1- Added [tool] => [Measure with floating probe], to know the XYZ position of any point on/near the mesh
2- a few fixes...

ver 0.0.74 --  (2 Feb 2012)    [additional notes]
1- A [reskeletonize] tool, to adapt animations to skeletons with a different number (or scrambled) bones
2- A [Transform UV] tool, to scale/translate all UV coordrinates. Useful for when you unify textures in one sheet
3- New mechanism: now OpenBRF will optionally use Module-specific reference file. See info (in a sec).

ver 0.0.73c --  (27 Jan 2012)    [additional notes]
1- New [Paste in mesh] command (matching LODs) under [edit] (see notes)
2- Now displays/edits "for_ragdolls_only" flag in hit-boxes
3- Can now "Copy rigging" into a mesh from a skeleton too (not only from a rigged mesh).
4- Minor upgrades and fixes. +b and +c versions: hot-fixes.

ver 0.0.72 --  "hitbox galore" release (25 Jan 2012)    [additional notes]
1- Lotsa new tools to ease manipulation of hitboxes -- see [tutorial]
  1.a Copy/Paste of hit-boxes (from/to Skeletons -- but also from/to Collision-Bodies)
  1.b Built-in direct editor of hit-boxes
  1.c Saving of hitboxes in .xml file
  1.d Stripping of hitboxes from a skeleton, and more
2- "Roto-translate-scale" tool can now be used to also auto-center/align meshes
3- When visualizing collision-mesh for an object X, can now overlay object X
5- Now lists bone names in skeleton Data box
6- Option to [Open Module folder]  (in file explorer), under [Module]
7- Fixes

ver 0.0.71b --  (19 Jan 2012)    [additional notes]
1- hitboxes (linked to skeletons) extracted from data/skeletion_bodies.xml and visualized on request.
    (doens't show them? see notes!)
2- visualization of texture animations (when looking at textures objects, NOT materials objects)
3- interface polishing (mainly, added dots "..." where they belonged).

ver 0.0.70 --  (10 Jan 2012)    [additional notes]
1- now armor-feminizer freely customizable by users. See under [Settings]=>[On armour autofeminization] (and see notes)
2- now remembers recently opened modules (see under [Module])
3- ctrl+left and ctrl+right opens next/prev brf file in module
4- module un-referenced textures can now be moved in "_unused" folder, see [Module]=>[Show unreferenced texture files]
5- GUI: added [selected] menu, it replcates the context-menu accessible by right clicking on selected objects
6- fixes

ver 0.0.69b -- "many suggestions" release (3 Jan 2012)    [additional notes]
(b is a hot-fix)
1- You can now ask for the bounding box of currently selected mesh(es)
2- Minor: mesh resizing can now take non integer percentages
3- Fix in LODding: occasional unused vertices produced are now automatically removed
4- "Unify vertices" now become "Clean redundant vert/pos", which also removes unused vertices
5- "Discard->Normals" tool, to merge more vertex disregarding differences in normals (for when you don't need them)
6- Custom User-defined shader can now be used (see thread)
7- [invert selection] command, under [tools] (or Ctrl+I)

ver 0.0.68 -- the "TLD-release" release (22 Nov 2011)    [additional notes]
1- Added a "paste vertex colors" tool  (under "edit") to transfer vertex colors from a mesh to another.
2-  Added a "paste vertex animations" tool  (under "edit") to transfer vertex animations from a mesh to another.
    Don't expect miracles, it is very crude.
    It is based on similarity of UV coords between the mesh you copy from and the mesh you paste to.
    It works decently with some face morphs, if UV coords are coherent. Might work for other things too.
3- Added a pair of tools to make rigging "smoother", or "stiffer". Can be used to tune rigging a bit, especially
    after transferring rigging from another mesh. Again, use at own risk (save first, and keep results only if you like it).
4- Now the roto-translate-rotate tool can be optionally set to affect only the last selected object in a sequence of objects.
    Other objects are visible but stay fixed. Useful to align objects to each other
    (make sure to select the one which should be moving as last).
5- flags meanings added for the shaders and their requirements (thanks to [cmpxchg8b] for all the info again).
6- group export of collision body (multiple-select, right click).
7- various fixes

ver. 0.0.67 (5 Aug 2011)    [additional notes] 
- "mirror" tool for animations: flips an animation Left-Right
- fixes

ver. 0.0.66 (15 July 2011)    [additional notes] 
- "paste texture coordinates" tool
- "paste lower part of animation" tool
- fixes

ver. 0.0.65 (9 July 2011)  -- lots of small stuff    [additional notes]
- new tool to split a mesh into connected components
- new tool to autofix small rigid parts of rigged objects
- small upgrades in interface: shift+mouse controls zoom. In scene mode, R-F controls height.
- rendering tunings: reflections brightness + clip plane .
- a few fixes, including important ones
- upgraded library to QT v.4.7: possible interface-look improvements. Possible shader fixes.
- (b version): added a bit of diagnostic for broken preview-shaders: under [Settings]=>[Shader Diagnostics]
- (c+d versions): attempting to fix that shader bug
If upgrading, this time you need to overwrite DLLs of old version with the new ones.

ver. 0.0.64 (9 Jun 2011)  -- bit-flags revamp    [additional notes]
- flags for meshes, textures, materials partly explained and revamped
- option to freeze a rigged mesh in a given (skeletal) pose
- minor updates and fixes

ver. 0.0.63 (30 May 2011) -- tangent dirs revamp    [additional notes]
- significantly better tangent field comptuation, handling, and normal-map previews (see notes)
- preliminary meaning associated to mesh flags
- minor fixes and updates

ver. 0.0.62 (29 May 2011) (somewhat important clean-ups) [additional notes]
-  now clearly shows whether a mesh has: rigging / vertex ani / colors / tangent dirs. (in data panel)
-  auto settings of mesh flags for "warband version" or "tangent dirs present"
    IMPORTANT CONSEQUENCE: now automatically stores tangent fields whenever they are present
    (before, flags had to be manually set mesh flags to 0x30000 to do that!).
- now warns you if you attempt to save meshes with tangent dirs on them in M&B 1.011 format
  (which cannot do that)
- new [discard]=>[tangent directions] command.
- minor: new command line option to enable a new specific requested option, which has
  been otherwise hidden because it is useless and probably confusing for most users.
  See notes for detail.

ver. 0.0.61 (25 May 2011) (minor polishings) [additional notes]
- support for "green" bumpmaps
- "copy complete" and "cut complete" commands, which take selected objects and all stuff they use
  (e.g. when you "copy complete" a mesh, they also copy the materials/textures/shaders it use)
- slightly imporved normal re-computations (angle weighting)
- now newly computed lods overwrite existing lods (or, not. Choose under "settings")
- default reference horse animation cleared of bad segments
- bugfixes (e.g. color-shift in lods, and others)

ver. 0.0.60 (27 Apr 2011) (mini update)
- added a slower but sometimes better way to compute AO (choose it under "settings")

ver. 0.0.59 (27 Apr 2011) [notes on pag 93]   
- improved error detection (now scans and checks "scenes.txt" too)
- flags explained for collision objects of type: capsule (i.e. cylinder) or sphere
- fixes (lods computation on multiple objects)

ver. 0.0.58 (19 Apr 2011) [notes on pag 90]
- added an option to use or not use OpenGL 2.0, so that it does not crash if your card doesn't support it (hopefully)
- added rendering of specular maps if present
- added a command to recompute tangent directions for meshes
- - - (needed by game for for correct bumpmapping) (they can be saved only in WB)
- added a option to change background color (under settings)
- added an option to change which LODs are produced (under settings)
- fixed LOD names for submeshes (e.g. "castle.lod1.2", not "caste.2.lod1")

ver. 0.0.57 (16 Apr 2011) [notes on pag 86]
- added rendering of normal-maps
- added a tool to automatically produce a LOD pyramid.

ver. 0.0.56b (14 Apr 2011)  [notes on pag 85]
- new command to auto-produce the feminine version(s) of a given armor(s)!!! (in 0.0.56"b": proper frame-timings added)
- Ambient Occlusion can now be computed (on multiple-selected meshes) separately, as well as combined
- added "repeat last command" command (under "tools", or ctrl+r)
- several bugfixes

ver. 0.0.55 (8 Apr 2011) (minor update) [notes on pag 83]
- you can now select (in settings) whether when computing Ambient Occlusion
  light should be supposed to come mostly from above, or from all directions

ver. 0.0.54b (8 Apr 2011)    [notes on pag 82]
- command prompt option: you can make openBRF load all the brf in the module
  and dump all found names into a text file,  without opening the GUI (intended for devs of Mod tools)
  See under "module support" features above for more info!
- buxfixes  (ver 0.0.54b)

ver. 0.0.53 (7 Apr 2011)  [notes on pag 82]
- command to compute Ambient Occlusion!!! (and store it in vertex colors)
-- under "settings" there is now an option to tune how light/dark it is.
- command to tune colors of selected mesh(es) (contrast, hue, saturation, brightness)

ver. 0.0.52 (5 Apr 2011):  [notes on pag 81]
- can now Cut-and-Paste stuff from one instance to another of OpenBrf
  -- (btw did you know that you can also Copy any object from OpenBRF
        and then Paste its name in any text editor? useful for e.g. editing py files)
- can now drag and drop .dds files to add textures
- minor fixes

ver 0.0.51, (1 Nov 2010):    [notes on pag 73]
- improved "open module BRF" dialog (F7)
  -- now reporting line number of each brf file (inside module.ini)
  -- added "edit module.ini" option
- improved texture "data" box
  -- added "origin" box (i.e. module texture folder, or common texture folder)
  -- added a button to show the DDS file in file explorer
- new skeletal animation command
  -- merge two animations
  -- remove a time interval from an animation
  -- extract an animation from another, given a time interval
- improved stability with opengl/glew
  -- in attempt to solve the reported (rare?) compatibility issues
- bugfixes

ver 0.0.50, (up to 21 Oct 2010):   
- more robust with older openGL versions (hopefully)
Just disable shaders by: [Settings] -> [On mesh rendering] -> [Always use default material]
- now autosets mesh flags as needed by warband if you save in wb format.
- added an option to color a mesh with uniform color (per vertex)
- added German translation [by Vlejundo!]

ver 0.0.49b, c, and d (up to 10 Oct 2010):   
- fixes... details in repository page

ver 0.0.49 (28 Sept 2010):    [notes on pag 68] 
- added command to turn mesh (or mesh groups) into collision objects
- fixes

ver 0.0.48 (27 Sept 2010): (micro update)    [notes on pag 67] 
- added reflections in mesh preview, for some materials

ver 0.0.47 (26 Sept 2010): (micro update)
- added a command to change current module (under "Module" menu)

ver 0.0.46 (26 Sept 2010): [notes on pag 66] 
- fixed item_kinds1.txt scanning for latest WarBand
- using alpha transparency during mesh rendering (according to used material flags)
-- (this can be disabled in Settings)

ver 0.0.45 (24 Sept 2010): [notes on pag 66]    (substantial Module-management update) 
- scan the entire module .TXTs (some ten of them) to find out what is actually used in the module (both WB and M&B)
- added "used By" submenu , to navigate from an object (meshes, materials...) to any objects using it
  (e.g. from a material to any mesh using it, etc). Find it by right clicking on any object.
- in the same submenu, you can see what TXT file, if any, is using that object (directly or indirectly)
- highlight objects (meshes, materials, ...) which are actually used by the module (F3, or look in Module menu)
  (also if an object can be safety removed -- not used by other ob, is lightened)
- warning given when saving common-res files
- Module Menu revamp:
--  command to choose a Brf inside current module (including ones non included in module.ini)
    (also shows how many used/unused objects they contain)
--  command to list unreferenced texture-files (.DDS, .TIFF, etc) uselessly sitting on disk 
--  command to show module statistics
--  added .txt related errors to Error reported by "scan module for errors"

ver 0.0.44 (21 Sept 2010): [notes on pag 64] (mini update)
- added a command to merge several Body Collision meshes into one
- fixes

ver 0.0.43 (20 Sept 2010):  [notes on pag 64]
- added a command to quickly add backdrops for menus (under "import")

ver 0.0.42 (19 Sept 2010):  [notes on pag 63]
- added Spanish translation [by Swyter!]
- added a tool to auto-optimize Collision Objects from triangle-meshes to quad-dominant-meshes

ver 0.0.41 (18 Sept 2010):  [notes on pag 63]
- added support for non ascii paths (e.g. with Chinese characters in them)
- "Find in Module" and "Scan for Errors" searches  are much, much faster (after first time)
- new "Add to Clipboard" command (under "Edit") to cumulate objects in clipboard
  e.g. you can copy (ctrl+C) an object, then "add to clipboard" a 2nd object, and then paste them both (ctrl+v)
- new "Paste Timings" command (under "Edit") to transfer timings from an animation to another (vertex or skeletal alike)
- new option to test your new translation files (*.qm - from QT-Linguist) (under Settings->Language)
- fixes

ver 0.0.40 (17 Sept 2010):  [notes on pag 63]
- fixed translations support [by Foxyman!]
- added Chinese translations [by Foxyman!]

ver 0.0.39 + b (7 Aug 2010):  [notes on pag 60]
- added possibility to keep or ignore texture seams when recomputing mesh normals
- added possibility to import the latest WarBand BRF format too (few native files use it)
- ameliorated quality loss of MD3 vertex animation export (due to position quantization, by rescaling them)
- better import of SMD rigged meshes (if too many bones x vert gives warning, no crash)

ver 0.0.38 (6 Aug 2010):  [notes on pag 59]
- added import/export of vertex animations as MD3 files ("Quake" files)

ver 0.0.37 + 0.0.37b (10 March 2010):  (micro update)
- fixes (>500 objects in a file)
- added command to export all selected mesh at once, in separate files

ver 0.0.36 (2 Jan 2010):  [notes on pag 46]
- more robust frame combination when stacking frames in vertex animations
- new frame stacking mode for making "quiver" animations
- tool to sort objects in alphabetical order
- fixes

ver 0.0.35 (23 Nov 2009):  [notes on pag 42]
- added an option to "paste modifications"
- fixes

ver 0.0.34 (20 Nov 2009):  (minor update)
- added options to discard rigging, color or vertex animations from a mesh
- minor fixes

ver 0.0.33: (11 Nov 2009):  [notes on pag 40]
- Added a view-mode to view many objects at once side to side (select multiple objects to make view mode available).
  This is defaulted when selecting multiple materials/textures.
- Added an option (under "options") to autocenter-and-zoom objects according to all content of BRF file,
  instead of current selection only (useful to compare absolute sizes)
- Can now change name of multiple objects starting with a common prefix (e.g. all xyz.LOD0, xyz.LOD1 ...).
  Just make a multiple selection and "rename" (F2)
- Nice icon by Amade (thanks, to swyter too!)
- Fixed: blender ply imports, false "not in module.ini" warnings...
- Minor gui improvments (more readable numbers, search windows now remembers settings...)

ver 0.0.32: (06 Nov 2009):  [notes on pag 39]
- Correctly imports ply meshes from blender (useful for meshes with vertex-per-color)
- Backfacing faces removal/addition (useful for beard meshes, fur, etc)
- Preliminary export/import of rigged-meshes/skeletons from Maya .ma files
- Minor interface upgrades (tab order, removal of redundant options)
- Minor bug fixes (rigging with >4 bones, stability...)

ver 0.0.31: (25 Oct 2009):  [notes on pag 37]
- Doesn't crash anymore on finding an invalid or corrupt brf when scanning module.ini
  (it just reports this in module error report when requested)
- Added "combine mesh" tool (combines multiple meshes into one. Also works with rigged or animated meshes)
- Added a mesh tool to attach and rig a mesh to a single skeleton bone (useful e.g. for boots)
- Minors: "del" deletes selection, multiple textures selectable, left-right arrows change tab,
  [F3] [F2] rename object (like in windows file system).

ver 0.0.30: (19 Oct):
- Multiple file import for almost everything (meshes, rigged meshes, mesh animation frames, materials, textures...)
  [suggested by Dian IronFoot and killkhergit]
- Import from another BRF (everything inside it) (but consider copy and pasting stuff from a BRF into another, instead)
- Patch of another bug on paste-rigging/transfer-rigging method.

ver 0.0.29: (18 Oct):
- Fixed ply format import/export for static meshes (should now import/export colors -- tested with MeshLab)
- Minor big fixes (paste rigging method).

ver 0.0.28: (16 Oct):
- Search in module now has options [suggested by amade]
- Custom viewing modes for helmets (puts them in vertical)
    and scenes (like interiors, uses wasd navigation)
- Ini-file navigation (e.g. mesh-to-material or material-to-texture) is now also accessible with easily found links
- OpenBRF will now actually work if set as predefined appl for brf files (you must set it manually)
- Tips in status bar for practically all options and tools
- New "paste rigging" option (under "edit") to transfer
    rigging from (optionally multiple) exemplar meshes (already rigged)
    to (optionally multiple) target meshes (non rigged or with wrong rigging)
- Color per vertex bug fixed (used RGB instead of BRG)

ver 0.0.27: (7 Oct):
- Export/import support for multiple material/mesh OBJ
- Optional crease angles computation when recomputing normals
- Minor: collision-manifold import orientation bug fixed. Minor2: now cut and paste works with group of objects too.

ver 0.0.26: (22 Sept):
- Added "Shift animation" tool, to shift an animation timing forward/backward
- A little bit of polishing...
-- it now updates textures too on refresh command ("F5")
-- it displays size, format etc in texture "data" box
-- texture aspect ratio is now preserved in rectangular texture/material viewing
-- time for loading of first brf of a large module strongly decreased 

ver 0.0.25: (18 Sept):
- added rotation/translation tool (for meshes and collision objects)
- skeletal animation frame times now can be viewed and edited
- now searches "<currentDir>/../textures" dir too for out-of-module textures

ver 0.0.24: (16 Sept):  (minor release)
- now finds texture even if material fields wrongly include .dds extensions
- plus, added an option to autofix dds file headers.

Ver 0.0.23 (14 Sept):
- added a tool to find objects with a given name in module (in the module menu).
- added a rescale mesh option (right click on mesh name)
- minor bug fixes

Ver 0.0.22 (12 Sept):
- added a tool to scan the entire module for errors and inconsistencies (in the module menu).

Ver 0.0.21 (3 Sept):
- added transfer rigging tool

Ver 0.0.20 (3 Sept):
- mini update: if it does not find a texture (white/blue pattern shown instead), you can look for a bit of diagnostics in "settings" menu

Ver 0.0.19 (3 Sept):
- added "forward compatibility" with warband files! (both saving loading them; to change brf version, "save as" and select format).
- added a mirror (flip) tool for meshes and collision.
- improvements on stability

Ver 0.0.18 (1 Sept):
- minor update: "missing textures in game" bug fixed; "obj import text coord misalign" bug fixed; now v. animation frames are appended after current one; not it uses current brf to locate materials too; ruler made longer...

Ver 0.0.17 (30 Aug):
- added support for vertex animations (see above)

Ver 0.0.16 (29 Aug):
- added ruler tool (to determine reach of weapons, like in BrfEdit)

Ver 0.0.15 (29 Aug):
- special fast load of all resources in the module.ini file
- auto-completions of stuff (texture, material, shader names).
- navigation of a dataset (see above)
- correct and complete texture-material in a mod. Now it should always locate the texture to be used for a given material (in mesh previews). (but, possible DXT1 texture problems?)
- now possible to edit data for multiple materials at once, including flags (and to edit "used material" for multiple meshes).
- minor: when you copy (ctrl-c) a texture/material/shader, you can paste (ctrl-v) its name in any appropriate box (e.g. in the "used material" box of a mesh).
- fixed bug with recompute-normals/vertex-unification of SMD files (used to cure "flat shading" effect).

ver 0.0.13 (18 Aug):
  - materials flag with meaning and checkable separately (and "render order" as a separate field)
  - import of collision object as obj (notes on usage: see this info)

ver 0.0.12 (17 Aug):
  - display and direct editing of material/texture/shader/collision attributes
  - creation of material/texture/shaders object
  - rendering of textures (and materials, as textures)
  - export of collision meshes as multi/object obj. (import still missing).
  - mesh tools added: recompute normal, unify position/vertices (see "other features" above).
  - flags are still numbers, but at least they are shown/edited in hexadecimal

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 "other features" above)
  - reskeletonization of rigged meshes (see "other features" 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
  - 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)
  Fixes, GUI improvements...

ver 0.0.7 (11 Aug 2009):
  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?).
  Fixes.
 

mtarini

Sergeant Knight
Best answers
0
Update! From the fist post:

ver. 0.0.61 (25 May 2011) (minor polishings)
- support for "green" bumpmaps
- "copy complete" and "cut complete" commands, which take selected objects and all stuff they use
  (e.g. when you "copy complete" a mesh, they also copy the materials/textures/shaders it use)
- slightly imporved normal re-computations (angle weighting)
- now newly computed lods overwrite existing lods (or, not. Choose under "settings")
- default reference horse animation cleared of bad segments
- bugfixes (e.g. color-shift in lods, and others)
More info, point by point:

[*] If a bumptexture is DXT5 (or DXT3), then openBrf assumes it to be encoded in the "Green" way (not the "Blue" way) and it will then preview it accordingly. Asked for by [Bolkonsky], among others.

(background: the game uses two kinds of bumpmaps: the "Green" kind is more accurate but it consumes more memory and computation than the "Blue" kind.  Here I call them by the basic color they typically appear if you look at them as if they were images. Technically, Blue ones encode x,y,z coords of tangent space normals into the R,G,B channels, whereas the Green kind encodes the x,y in the G, Alpha channels, keeping z coord implicit.)

[*] the "copy complete" and "cut complete" command (in the edit menu, and shortcutted to Ctrl+Shift+C and Ctrl+Shift+X) means that you copy/cut not only the selected objects, but also any object in the same BRF file which is needed by them. For example, not only the mesh(-es) but also the respective material(-s), texture(-s) and shader(-s). Same if you cut a meterial. Suggested by [mr.master]

[*] The normal computation now takes in account the facet angle (as well as the area, as it did before). I could not find a model for which this makes any visible difference, so you might say it is not even tested, but it should be slightly better. If you do find a model where it makes a difference (so you can confirm/deny that the new way does better), let us all know. Suggested by [Barf]


[*] the LoD behavior (replace existing LoDs, or add new LoDs) can be selected under "Settings"->"On compute LODs". By default, it replaces them. Suggested by [Swyter]


[*] in the zip, the horse animation which is provided as reference animations (for models rigged on horse skeleton) is now cleared of inconsistent segments (which were inherited by the native horse animation, which contains several apparently broken frame intervals -- which were never used by the game). To take advantage of this, make sure you overwrite you "reference.brf" file (sitting next to "openBRF.exe") which the new one from the latest zip (or at least the horse ani in there). Suggested by [xenoargh]


[*] the "broken vertex color when auto-lodding" bug was reported by [xenoargh], and confirmed by [Somebody]. The other issue xenoargh reported is still there, the one about exports/import with meshlab in ply or obj formats. I'll need to replicate it first, and it is still not clear to me if it is on the MeshLab or OpenBrf side.
 

mtarini

Sergeant Knight
Best answers
0
New version! More info...

ver. 0.0.62 (25 May 2011) (somewhat important clean-ups)
1-  now clearly shows whether a mesh has: rigging / vertex ani / colors / tangent dirs. (in data panel)
2-  auto settings of mesh flags for "warband version" or "tangent dirs present"
    IMPORTANT CONSEQUENCE: now automatically stores tangent fields whenever they are present
    (before, flags had to be manually set mesh flags to 0x30000 to do that!).
3- now warns you if you attempt to save meshes with tangent dirs on them in M&B 1.011 format
  (which cannot do that)
4- new [discard]=>[tangent directions] command.
5- minor: new command line option to enable a new specific requested option, which has
  been otherwise hidden because it is useless and probably confusing for most users.
  See notes for detail.
Point 1: inside the data panel, openBrf will tell you with 4 read-only checkboxes whether a mesh has: rigging / vertex ani / colors / tangent dirs. Before, you had to discover that info by looking at various places, and expecially the tangent dirs where tricky (the only difference was whether bumpmapping looked good or not).

Point 2: finally I made that flag clean-up. Warband meshes have a bit activated in the flags. Now that flag is hidden to you, and you cannot set it or unset it. It is set autoamtically by OpenBRF on saving (according to the format). Likewise, there is a mesh flag specifying whether or not tangent directions were computed.

ATTENTION: if, before, you computed tangent directions but didn't set mesh flags to 0x30000, they weren't saved in the BRF file. Bumpmap would look better in OpenBRF as long as you didn't close the file, but would still suck in game (and even in OpenBRF, if you closed the brf file and reopened it)! If so, recompute them and resave now -- no need to set the flag

Not it is a lot safer. OpenBRF will just take care of that bit,  not letting you touch or see it, and internally use it appropriately if tangent dirs are there to be saved.

As a consequence, the flag of a mesh will now read 0 for most meshes (except, I see, particle system mesh). The two bits (one to declare the mesh to be warband format, the other used to declare presence of tangent directions) are tagged as "reserved".

BTW, If anyone has information of what other mesh flag bits mean, please let us all know.


Point 3: unfortunately, M&B 1.011 pre-warband format (and earlier ones) are not capable of storing tangent directions in meshes. Now OpenBRF will issue a warining message if you attempt to save a mesh with tangent directions in that format.

Point 4: new option to discard tangent directions. This saves a little space, and might have a small performance boost, for meshes which, not having bumpmapping, don't need tangent directions. Only a few meshes in native exploit this, so the boost might be really small. I think it all works but a in game test would be good.

Point 5: if you set launch OpenBRF with
Code:
--useAlphaCommands
parameter, a new option will appear under [Options]=>[On compute ambient occlusion]. This option offers you to store AO coefficient not as gray levels in RGB per-vertex color, but in the Alpha channel of per-vertex color. Unless you write your own shader and know what you are doing, this option is totally useless for you, confusing in its effect, and even a potential good way to break things. This is why I hid it, unless you un-hide it from the command line. But it is a good idea to store that in Alpha if you can exploit this in your own shader, as it leaves the color's three channels available to encode whatever else. Command suggested by [Yoshiboy]

Minor things: can now "partition skeletal animations" using actions.txt from WB too (before, only M&B)... attempted to fix preview-shaders which a few people reported as being broken (but cannot even test it here, so it is like shooting in the dark)... fixed minor bugs, etc.


EDIT: just uploaded a 0.0.62b, with a hotfix: I had accidentally broken ability to preview a rigged mesh with an animation. Fixed now.
 

mtarini

Sergeant Knight
Best answers
0
Ver 0.0.63 notes!

ver. 0.0.63 (30 May 2011) -- tangent dirs revamp
- significantly better tangent field comptuation, handling, and normal-map previews (see notes)
- preliminary meaning associated to mesh flags
- minor fixes and updates
Point 1: tangent fields improvements:
  • now tangent dir computation is coherent with the M&B system of rendering.

    • Tech details: in that system, an extra per-vertex flag is kept, storing the verse of the tangent direction w.r.t. the bitangent and the normal. Basically it stores whether the local Tangent-Bitangent-Normal frame is left-handed or right-handed.

    • Consequences: this allows for a normalmaps be glued to a model in a verse or the other (imagine normal map is a sheet of paper printed on two sides which you glue on a mesh: you can now put the glue on one side or the other). This is necessary, for example, if you want to use the same normalmap on the two sides of a symmetric object. When doing so, remember that the line where the two sides meet must be a texture seam (aka a texture cut)!
  • OpenBRF preview of normal-maps is now coherent with said system (preview shaders changed)

    • For example, now native normal-mapped horses are previewed correctly on the both sides.
  • Tangent directions (and verse) are now modified coherently if you rotate (or mirror) a mesh.
  • Better computations of tangent dirs: OpenBrf picks, as tangent directions, the average between the real tangent direction and the direction orthogonal to the real bitangent direction. This is more robust when the normal map is stretched (but equivalent otherwise)
  • Fixed bug where tangent dirs where computed with inverted dir on a few models.

All considered, you'd better recompute tangent directions in your models with the new version
(remeber that if you don't need normalmaps for a given model, you can strip them to save space and maybe a little performance during game).

Point 2:
The mesh flags are now shown with tentative, guesswork of their meaning. Flags not used by any native mesh are considered to be "unused" by the game engine, and reported accordingly.
If you know anything about this matter (flag meaning), can you please say so in the [flags thread]?


Point 3:
among the fixes and imporvements: updated spanish translation by [Swyter], spelling corrections (including a few ones pointed out by [lord_cheap] -- thanks), and other minor things I don't remember...

 

mtarini

Sergeant Knight
Best answers
0
New version...

ver. 0.0.64 (9 Jun 2011)  -- bit-flags revamp
- flags for meshes, textures, materials partly explained and revamped
- minor: option to freeze a mesh in a skeletal pose
- minor updates and fixes
Meanings for flags for meshes, textures and materials were added thanks to the info provided by many users, but especially [cmpxchg8b], whom I thank a lot. Many flags are still a bit mysterious. If you can complete or correct the descriptions please do so in the [flags thread]!

(also, when a flag value is composed of multiple flags bits, you can now edit that value directly)


Second point: you can now
[right-click (on a mesh)]  => [discard] => [ rigging (keep current pose) ].
Differently from the plain "discard rigging" tool, this will freeze the mesh in the current pose (chosen by selecting an animation and a skeleton in the Preview box in the middle). The result is a non-rigged mesh in that pose.

(Say for example you want to make a mesh for statue of a warrior in a given pose).

Third point: fixes and updates...
[*] you can now click on the "fallback" label to jump from a shader X to the "fallback" shader Y (i.e. the one that that will be used by the game if shader X is unavailable due to graphic card limitations or game settings)
[*] repaired the "report unused textures" tool, which (who knows why) was broken
[*] now OpenBRf opens correctly when you drag files in it or you double-click on a brf, again (why did it break?)
[*] edit: reportedly, this version also fixes the "mesh-turns-black-whenever-normalmaps-should-be-displayed" bug which occurred on some card.



Edit: I still didn't fix the "black normalmapped models on some computer". I still didn't manage to find a computer where to replicate the bug. If you have that problem and you want to spend a little time, you could try to pm me so we can meet in skype or something and see if we can fix it by a sequence of "I send you an exe and you tell me how it goes". apparently, fixed.
 

mtarini

Sergeant Knight
Best answers
0
New version!

ver. 0.0.65 (7 July 2011)  -- lots of small stuff 
1- new tool to split a mesh into connected components
2- new tool to autofix small rigid parts
3- upgraded library to QT v.4.7: possible interface-look improvements. Possible shader fixes.
4- small upgrades in interface: shift+mouse controls zoom. In scene mode, R-F controls height.
5- rendering tunings: reflections brightness + clip plane .
6- a few fixes, including important ones
1- is a tool which I added because I needed it, then used like a million times. Surprisingly handy.
It splits a mesh and creates a new mesh for each of its connected components (i.e. separated pieces, composed by unconnected triangles).
It preserves animations + rigging + colors etc, hence its usefulness (w.r.t exporting and doing so in your favourite 3D editor).
Useful in conjunction with the "combine" tools (select multiple meshes, [combine]), which does the opposite: unite a bunch of meshes into a single one. A good combo is: [split], then do something on some subpiece, then re-[combine].


2- is a small tool to auto-tune rigging. If you have a rigged mesh with supposedly rigid supparts (e.g.  plates in an armour) which are not rigid in the rigged animations, try this tool on it.

This is what it does: it detects small connected-components (see above), and for each component, if it is rigged to only a few bones (max 4), it makes the all of it component use the same set of bones with the same (averaged) weights. This means that that piece will be practically rigid.

(side note: to have something rigid, in a rigging, it does not take that every vertex is linked to a single bone! It is enough that every vertex is linked to the same bones, with the same weights! That's gives you a lot more of freedom about how to make these rigid pieces move)

The tool can be useful for these meshes which have rigid pieces in them, assuming these pieces are often modelled as separate submodels (no vertex shared with the rest of the mesh). If you don't want these pieces to deform during the animations, use this tool. Useful to imporve something that was autorigged (copy a model, [edit]->[paste riggings]).

Naturally this tool, as all automatic ones, just tries to "guess" what is best for your model. Nothing can beat careful editing by an artist. Use with intelligence, and always check whether you like the results or not. (e.g. make a copy first)


3- New QT version (QT is a library for GUIs -- and much more -- which openBRF uses).
This might cause a lot of intended and unintended changes! What I hope it does is: make the interface looks cuter on Windows 7.  Make the shaders more compatible with all cards, fixing the old "I can't see shininess map on my card" problems. But it could cause all kind of unintended problems (maybe even crashes for wrong DLLs).
Remember to copy ALL content of the zip, including the DLLs not only the exe.
Report any problems!


4- is small changes in the interface. If you keep shift pressed, you zoom in/out clicking the buttons and moving the mouse up/down. 
With R and F, you control height in "scene" mode (WASD controls, activate it clicking "scene" view mode at the bottom).

So wheel is no longer needed in case your mouse doesn't have it.


5- I tuned shininesses down (in shininess maps), because someone reported that it was too bright compared to what you see ingame. It depends on the settings the game uses (which I can only guess), not on the game shader code (which I can see directly), so please report if now is correct (or too bright/too dim).

Also, near clipping plane is a lot closer to viewer. It was too far before!


6- The most important fix is about deleting a multiple selection. Not always OpenBRF deleted exactly what you selected.
That was a nasty bug: it was not easy to immediately spot the effects when it happened. Hope it didn't cause too much grief.
Also, there was a problem if you added your own skeletons to reference skeletons.



Added an update: 0.0.65b:
- (b version): added a bit of diagnostic for broken preview-shaders: under [Settings]=>[Shader Diagnostics]
If you have the infamous "I can't see shininess map or normalmaps on my card", you can try to see what it says there, and report in the thread about that.




and if version 0.0.65c, I've tried to use the info reported by [xenoarg] to fix the bug...

...then again, with 0.0.65d (again thanks to the reports by [xenoarg]. That last one might have solved the issue.
 

mtarini

Sergeant Knight
Best answers
0
The development of TLD is going on and we always need new tools (you know that among the very main motivations to make OpenBRF is that I need it for developing that specific mod). So, here is a small update:

ver. 0.0.66 (15 July 2011) 
- "paste texture coordinates" tool
- "paste lower part of animation" tool
- fixes
The first tool can be used to transplant texture coordinates from a model A to a model B. It is a simple tool, using spatial proximity of wedges, so don't expect good results if the two models are not really similar in shape and size. But useful for example to paste text coord over a vertex animation etc. How to: copy model A (ctrl+C), select model B, then [edit]=>[paste texture coordiantes].

The other tools can be used to quickly paste the lower part of an skeletal animation A over another animation B. In B, the upper part of the body (torso, head, arms) will be left unchanged, while the lower part (from abdomen, legs, and global position) will be as in A. Useful as a quick shortcut in a number of situations. How to: copy animation A, select animation B, then [edit]=>[paste lower part of animation].

One fix is about exporting of skeletal animations and skeletons (strange... gimbal lock again in computing euler angles... one wonders). Thanks to [Stefano] for reporting. Another fix is prevention of crash in certain situations.


 

mtarini

Sergeant Knight
Best answers
0
Update!

ver. 0.0.67b (5 Aug 2011) 
- "mirror" tool for animations: flips an animation Left-Right
- fixes
Nothing much to add here. The mirror tool for animations should be quite self clear: left part of the body does what the right part did, but mirrored.  Been great fun to do. Tool suggested by Ikaguia, Computica, MadocComadrin.

edit: :oops:  OOPS. Like 20 minutes after updating this version, I updated a slightly improved  "b" version. Sorry for the inconvenience. There has been 4 donwloads already, so re-download if you want.
The "b" version computes the mirrored animation in safer way (the older version might have added negligible amounts of numerical errors -- I guess it would have been only visible, if ever, if you mirrored an animation like 100 times in a row).
 

mtarini

Sergeant Knight
Best answers
0
Ok, been absent from the forum and, long time no release.
(to these PM-ing me: sorry for the delays).

You know, RL, stuff. Plus, my M&B activity has been absorbed more so than usual by the dev of the TLD mod, a prerelease of which is out!
(thread here on TW,  sub-forum on MBX)

(don't forget that OpenBRF itself is, to a large extent, a byproduct of my activity to mod TLD. I needed a tool, and I decided to give it also outside the TLD-dev team. There are also other tools I develop for TLD that might be given out soon, now that TLD is out.)

So, anyway, in the last few mouths I've been adding features here and there, mainly for my own use in TLD, but I neglected to update so far. The list below is probably incomplete:

ver 0.0.68b (22 Nov 2011)

1- Added a "paste vertex colors" tool  (under "edit") to transfer vertex colors from a mesh to another.

2-  Added a "paste vertex animations" tool  (under "edit") to transfer vertex animations from a mesh to another.
    Don't expect miracles, it is very crude.
    It is based on similarity of UV coords between the mesh you copy from and the mesh you paste to.
    It works decently with some face morphs, if UV coords are coherent. Might work for other things too.

3- Added a pair of tools to make rigging "smoother", or "stiffer".
    Can be used to tune rigging a bit, especially after transferring rigging from another mesh.
    Again, use at own risk (save first, and keep result only if you like it).

4- Now the roto-translate-rotate tool can be optionally set to affect only the last selected object in a sequence of objects.
    Other objects are visible but stay fixed. Useful to align objects to each other
    (make sure to select the one which should be moving as last).

5- flags meanings added for the shaders and their requirements (thanks to [cmpxchg8b] again).

6- group export of collision body (multiple-select, right click).

7- various fixes

Additional notes:

2: An interesting experiment about this: in native, you can throw away the female face morphs (rigth-click=>discard=>vertex animation), and then copy male face morph over the now-single-frame female face. The results is more or less what native uses for females.
Be aware, when you use this tool, that timings have to be pasted separatedly, and normals (and tangent dirs) have to be recomputed.

3: "stiffer" rigging means each part of the mesh more attached to a single bone. The result is that, for example, knees become more pointy when bent. "Smoother" rigging means to smooth out weights. The results is that, for example, knees becomes more curved when bent. Works best with Hi-res meshes. Useful, for example, if you transferred rigging from a low res mesh to an higher res mesh (but in many other cases as well).

Both "make-stiffer" and "make-smoother" are very subtle, especially with hi-res meshes, and can be used multiple times in succession. Remember that with Ctrl+R you are "repeating last command". With these two tools, you might want to keep it pressed for a while sometimes.

4 is so useful when you have to combine two or more pieces together.

6 is from a request.
 

mtarini

Sergeant Knight
Best answers
0
New update!

ver 0.0.69b -- "many suggestions" release (3 Jan 2012)
(b is a hot-fix)
1- You can now ask for the bounding box of currently selected mesh(es)
2- Minor: mesh resizing can now take non integer percentages
3- Fix in LODding: occasional unused vertices are now automatically removed
4- "Unify vertices" now become "Clean redundant vert/pos", which also removes unused vertices
5- "Discard->Normal" tool, to merge more vertex disregarding differences in normals (for when you don't need them)
6- Custom User-defined shader can now be used (see thread)
7- [invert selection] command, under [tools] (or Ctrl+I)  <== forgot to report this one at first
Notes:

1- was suggested by a few users to be able to measure shields etc.
  The spatial extensions in X, Y and Z of the selected object(s) are reported.
  They are also automatically copied to clipboard as text, to copy them in your python files or stuff.
  Let me know (suggestion thread?) if it would be easier if Y and Z were swapped, or if values multiplied by 100.

2- means that you can, say, enlarge something by 102.50%. It was a simple request.

3- before, in computed LOD level, you could find the occasional redundant vertex (a vertex not used by any face).
    Now they should be gone, for increased efficiency. Thanks to Vincenzo for spotting the problem.
    For LODs that you already computed, you might want to use the following tool:

4- the new "remove redundant vertex / positions", which subtitutes the old "merge vertices" tool, now also removes
    any vertices that are not used by any face, as well as merging togther vertices and positions whenever possible
    (all for increased efficiency).

5- the new [discard]=>[normals] tool does not actually get rid of per-vertex normal (they are hardwired in any BRF mesh).
  What it does is to disregard normal differences and merge together vertices that are otherwise identical.
  This is useful when normals are not used by a given shader (like in vanilla flora objects) to safely reduce the vertex count.

6. now (expert) end users can add their own preview shaders.
  This is intended for two purposes: to get preview shaders which are more similar to what the game does,
  and to have preview shaders in OpenBRF which mimic your custom shaders in game.
  It is a little rough as for the interface: you have got to manually edit the provided file "CustomPreviewShaders.xml".
  You add all the shaders you want there (in GLSL) and also specify which "technique" they are designed to mimic.
  (reminder: Meshes indicate which Material they use, Materials indicate which Shader they use,
    and Shaders indicate which "technique" they use).
  That file is read by OpenBRF as it starts (and refreshed when you press F5, like everything else)
  The provided shaders are used to preview any mesh which uses the corresponding "technique".
  I hope users will, in time, create sets of shaders and provide them to other users too.
  There is a thread now about OpenBRF preview shaders.

7. is a simple "invert current selection" tool.

 

mtarini

Sergeant Knight
Best answers
0
New release...

ver 0.0.70 --  (10 Jan 2012)   
1- now armor-feminizer freely customizable by users. See under [Settings]=>[On armour autofeminization] (and see notes)
2- now remembers recently opened modules (see under [Module])
3- ctrl+left and ctrl+right opens next/prev brf file in module
4- module un-referenced textures can now be moved in "_unused" folder, see [Module]=>[Show unreferenced texture files]
5- GUI: added [selected] menu, it replcates the context-menu accessible by right clicking on selected objects
6- fixes
1- Autofeminizer: OpenBRF can now learn how to feminize armour from examples.
Here is how it works: select any number of outfit meshes which have masculine-feminine frames.
Then, go on [Settings]=>[On armour feminization]=>[Learn custom settings].
OpenBRF will try to learn how the feminine frame can be constructed from the masculine.

You'll need to provide two extra parameters:
(a) emphasis (how mildly/strongly to feminize, i.e. how much the feminized version will differ from the masculine)
  From -100% (no difference, F = M),  to +100% (drastic difference, double than normal).
(b) amount of extra breastification, in mm. That is, adding a little bit of breasts.
Both parameters come with sensible defaults but you can try to set them differently.

The most important thing to choose, however, is which sets of masculine-feminine armours use as model.
You can pick native ones, or ones that are fitting for your module best.
You can even make a manual one, and use it to as a basis to "learn" the automatic process.
For example, feminization for heavy armours could follow different rules light sewed outfits.

Once OpenBRF learned a way to feminize, it rememebers for next runs.
You can switch between your custom version you made, and the built in version (the default version, the one which shipped with OpenBRF until now). Choose under [Settings]=>[On armour feminization].

The custom feminizer which OpenBRF learned is kept in the file "customFemininizer.morpher", which will be sitting just next to the exe. If you want you can backup these files, trade them in the forums, etc.



2- Under [Module] menu, OpenBRF now keeps a list of recently opened modules, just as well as the recently opened files.
It's just for convenience... useful when you juggle several modules.


3- ctrl+left and ctrl+right now opens the next and previous BRF files of the module, as listed in your Module.ini file.
This is useful to quickly browse module resources (e.g. when you want to do an operation on all mesh or whatever).

Reminder: Shift+left and shift+right go from a mesh to its material, and from material to its texture (and back, with left).
Plain left and right select the tab of current file (e.g. Mesh, Materials, Collision-objects, Animation, etc).


4- As suggested, there is a button now, in the "unreferenced textures" dialog, to move all unreferenced dds files in a "_unused" folder. Also, double clicking on a unreferenced texture files opens it in explorer.
[[Background: these are the files which are present on disk (.dds and .tif files) but are not used by the module, as they are not listed inside any texure files of any BRF file listed in module.ini.]]


5- I should have done that a long time ago. First-comers using OpenBRF often missed how most commands are accessed by right clicking on the selected item(s). Not anymore. Now a pop-down menu, [Selected], does the exact same thing. This is also useful  because you can access that menu from the keyboard without using the mouse (with Alt+S).


6- Fixes are: before, it used to lose tangent directions on copy-paste meshes. Also, it now recognizes as "used" a few objects which are used by the core engine, as reported by [Swyter] (not all of them yet), plus fix of other smaller problem reported by [Swyter] (thanks!)
 

mtarini

Sergeant Knight
Best answers
0
Update!
ver 0.0.71 --  (19 Jan 2012)   
1- hitboxes (linked to skeletons) extracted from data/skeletion_bodies.xml and visualized on request.
    (doens't show them? see notes!)
2- visualization of texture animations (when looking at textures objects, NOT materials objects)
3- interface polishing (mainly, added dots "..." where they belonged).
[1] hitboxes are the structure M&B uses to decide whether a character was hit or missed.
That data is connected to skeletons, but is kept in a file outside the BRF.
<M&B dir>/data/skeletion_bodies.xml
Now openBRF looks for that file, scans it, and records any hitbox data for all skeletons it finds there (in vanilla, two: horse and human).  That data is used to visualize hitboxes when: you look at a skeleton, or you look at a animation (and you pick the skeleton), or you look at a rigged mesh (and you pick a skeleton for that).

It isn't showing them in animations and rigged-meshes?
It could be this: the "reference.brf" file shipped with OpenBRF until this version had skeleton files with wrong names ("human" and "horse" instead of "skel_human", "skel_horse"). Since the matching is done based on the skeleton name, OpenBRF will fail to associate the hitbox data with the reference skeletons.
Solution 1: overwrite your "reference.brf", next to the OpenBRF.exe, with the one downloaded from this version.
Solution 2 (if you have customized your "resource.brf" and want to keep it): edit it ([tools]=>[edit reference data]) and rename skels manually.

Anyway, this tool can be used to assist manual editing of the hitboxes, but it is hard: you have to edit that XML file in a text editor, try to figure out what number to change and how (e.g. "range"), save, go to OpenBRF, refresh (F5), see if you like it more, repeat. The most informative view is to see the hitbox when applied to an animation.
More info about what how to use this in this thread (BTW the 10th posts details what to do to add a new skeleton in your mod).



[2] Animated textures are textures which have a flag specifying they should not use just one file, but a sequence of dds texture files in loop (e.g. texture_0.dds, texture_1.dds... etc), each one a frame. See under "flags" of a texture. Now OpenBRF shows these texture animated, but only when you look at the texture object itself, not the material objects or meshes using that texture (I'm lazy).

NOTE: the only animated texture in vanilla is waterbump, consisting of 20 frames (20 dds files numbered from waterbump_0.dds to waterbump_19.dds).
I don't know if any other texture can be made use this ability. Maybe only that one. Maybe only bumpmaps. Maybe only on the strategic map terrain and the battleground terrain. It depends on how M&B (or WB) behaves. Experiments?



[3] is just GUI polishing: now every and only the commands which will open a dialog before doing anything (e.g. "recompute normals...") will have the dots ("..."), and you can always cancel the action after choosing the command. Commands without the dots are those doing their thing right away, without warning or confirming (e.g. "mirror"). Just elementary GUI rules, known to improve interface clarity and usability, but OpenBRF had grown a little sloppy on these respect so I fixed this in this release (unless something escaped me). I hope this didn't break the translations too much.



Edit: "b" version is a hotfix (original 0.0.70 had a minor error in how hit-boxes where read), so re-download if you intend using them!
 

mtarini

Sergeant Knight
Best answers
0
Update! From the 1st page...

mtarini said:
ver 0.0.72b --  "hitbox galore" release (25 Jan 2012)
1- Lotsa new tools to ease manipulation of hitboxes -- see[tutorial]
  1.a Copy/Paste of hit-boxes (from/to Skeletons -- but also from/to Collision-Bodies)
  1.b Built-in direct editor of hit-boxes
  1.c Saving of hitboxes in .xml file
  1.d Stripping of hitboxes from a skeleton, and more
2- "Roto-translate-scale" tool can now be used to also auto-center/align meshes
3- When visualizing collision-mesh for an object X, can now overlay object X
4- Now lists bone names in skeleton Data box
5- Option to [Open Module folder] (in file explorer), under [Module]
6- Fixes
Additional notes...


1st point: Hit-Boxes.
Maybe this time I overdid that a bit away... maybe I should just have accepted to edit the XML file (keeping the hitbox) in a text editor, however inconvenient it seemed. My main motivation, as usual, is that I needed to fine tune the hit-boxes of the TLD many races. But anyway, it should be of help for all these mods modifying skeletons out there, plus anyone wanting to fine tune even human hitboxes.

I think I'm gonna write a Tutorial Thread (link here soon) about how to use it and a few issue involved.
Edit: [link]

(background for total first-timers: hit-boxes in M&B are little balloons around each bone of a moving character used by the game to understand if something hit that part of the body, and, by extension, that character. A character, independently by the way it looks, is hit if the ballon is. It is similar to the Collision Objects (which are for static meshes, however, and can be any shape, not just baloons).)


2- was a suggestion by [Vincenzo]. Basically, now when you "Roto-translate-scale" an object (or a set), you'll see a few buttons to place them around the zero in X,Y,Z, or place them just above the ground (or, just below) etc.
Any combination. The icons should be self-explication.
Also, that window now remembers its setting for next times. Finally, rotations can be specified with fractional degree precision, if needed.
All that also paves the way to make it more bulk-automatizable in the future (like an option to center all selected object around their respective center ... currently, they are centered around their collective center).


3 is intended as a way to help checking how good (or bad) your Collisions Objects are. Basically, you can overimpose the real mesh, when you visualize the collision object (which, you'll recall, is shown semitransparent). You can quickly toggle the presence of the solid mesh on/off with key [M], going back and forth is the best way to understand how they compenetrate.

How does openBRF knows which mesh is supposed to go with a given Collision Object? It doesn't. But it assumes that a mesh called <whatever> will use a collision object called bo_<whatever>, or just <whatever>, in the same BRF file ("bo" stands for "body object" by the way). That's the convention used in vanilla and most MODs I've seen
around, but I remind you that it is just a convention: which collision object is linked to which prop is freely specified in "module_props.py".

(background for total first-timers: collision objects are what the game uses to approximate the shape of the meshes, in order to decide if stuff bumped into them or not.)


4- Is self explicative. Bone names used to be a little bit of data present in BRF file which OpenBrf didn't show nor visualize (maybe it was the last one left). OpenBRF won't allow you to edit them for now (nor add/remove bones). Anyway, it was added because it was helpful for the tools in point 1.


5- Self explicative: a convenient command (to me, at least)


6- Main fix is that now OpenBRF looks for skeletal metadata (including hitbox) in module/Data folder, as well as <game>/data folder, if it is there (thanks to [Xenoargh] for reporting the problem)



Edit: version 0.0.72b hotfixes and retouces:
status-tooltips on direct hitbox control added, fixed layout of "material" rgb colors, a bit cleaner skeleton_data.xml produced (still sub-optimal for manual editing).
 

mtarini

Sergeant Knight
Best answers
0
A small release. From 1st post:

ver 0.0.73 --  (27 Jan 2012)   
1- New [Paste in mesh] command (matching LODs) under [edit]
2- Now displays/edits "for_ragdolls_only" flag in hit-boxes
3- Can now "Copy rigging" into a mesh from a skeleton too (not only from a rigged mesh).
4- Minor upgrades and fixes.

1- This is how that [Paste in mesh] command works:

  Say you want to add a mesh to another mesh (e.g. a Belt to an Armor).
Naturally, you can select the Belt and the Armor mesh, then right-click=>[combine meshes].

  However that's not too handy if you want to add the same belt to a lot of armors.
With the new tool, you can now: select the belt, copy it (ctrl+C), select how many target armors you like, [edit]=>[Paste in mesh].
You can also select multiple objects (say a belt plus a bag), copy them, and paste them in one go to one or several target meshes. When you paste over meshes with various extras (tangent space, vertex animations...) that command will take care to augment the object you are copying so that it matches the target (e.g. it replicates it over several frames).

  In addition, the new [Paste in mesh] tool will handle LODs.
How that works:
- Prepare the object you want to add with its LODs (e.g. "belt", "belt.lod1", "belt.lod2"...).
- Select and copy them all.
- Select destination objects (including all Lods)
- [edit]=>[Paste in mesh]
Each lod you copied will be added to destination of corresponding lods.
(for example, and "belt" to "my_armor_a" and "my_armor_b",
but "belt.lod2" to "my_armor_a.lod2" and "my_armor_n.lod2").

That can speed things up enormously.

Edit: there was a bug here, fixed in 0.073b, that it sometimes dropped rigging while pasting.



2- As [wrongname] [Vincenzo] noticed (thanks! -- edit: and sorry for confusing the name at first), the hitboxes in WB have a flag called "for_ragdolls_only" (vanilla uses it for feet). That flag (it can be assumed) means that the capsule is to be used to compute how the ragdoll falls, but not as a target to determine if the guy was hit there (e.g. by an arrow). Now OpenBRF will show that flag for each capsule and let you toggle it.



3- Now you can select a skeleton, copy it (ctrl+C), select one (or more) meshes and [edit]=>[paste riggings], to have these mesh (roughly) rigged to that skeleton.
Before, you could do that from rigged meshes only.
Using skeletons is useful to get a first tentative rigging of something that you don't have rigged examples of. It is very crude: each vertex gets rigged to its closest bone, but its better than nothing I guess. Transferring rigging from a similar, already rigged mesh tends to give far better results.



4- The biggest upgrade is that "Roto-translate-rescale" tool not remembers its previous settings (e.g. by how much you translated), but only when it is issued as a repeated command (i.e.: use it once, then use Ctrl+R to repeat it, or [Tools]=>[Repeat last command]).

That is done so that it is easy to apply the same rotation-scaling-translation (e.g. the same centering operation) to several objects in your mod, in quick succession, but at the same time it is not confusing in other occasions.

The biggest fix is that in the last version I mistakenly removed a couple of command for skeletons.

Edit: minor: forgot to add that now, in  "Roto-translate-rescale" dialog, if you keep Shift (or Alt, or Ctrl) pressed, you nudge, i.e. make smaller translation/rotation/rescaling steps. Also, translation step will depend on object size.
 

mtarini

Sergeant Knight
Best answers
0
Update! From the 1st post...

ver 0.0.74 --  (2 Feb 2012)   
1- A [reskeletonize] tool, to adapt animations to skeletons with a different number (or scrambled) bones
2- A [Transform UV] tool, to scale/translate all UV coordrinates. Useful for when you unify textures in one sheet
3- New mechanism: now OpenBRF will optionally use Module specific reference files. See info (in a sec).


Point 3.: now openBRF will check if a "reference.brf" file is present in the current-Module root folder (e.g.
Code:
c:\warband\modules\myModule\resrouce.brf
). If the file is there, then OpenBRF will use it to preview animations riggings etc of that module only, in place of the same-named file in its own folder.

Background: reference.brf file is a collection of items which the OpenBRF uses in order to preview your files. For example, it contains skeletons and animations to see rigged meshes, skins (i.e. a bunch or rigged meshes to be used jointly) to visualize animations and skeletons... It is customizable, in two ways: under option you can [edit reference items], or right click on any item and select [add to reference skin] (or animation, or whatever).

I should have done this long ago. It is very useful to tie that reference file useful for a mod to that mod. First of all because oftern mods are collaborative places, where a team uses e.g. SVN, so placing that reference file there can be useful to all the team. Also it is real good when you are juggling with more than one module.

When you'll distribute a mod, it will up to you if you want to include the reference.brf file in there, to ease direct browsing of the content of the mod with OpenBRF.

Anyway, that feature can be turned off, under option. If you do, it will be like before, and openbrf will use the reference.brf file in its own folder even if there is one sitting in module folder.



Point 2 The UV transform tool is similar to the XYZ roto-translate-transform tool, but works with UV coordiantes (and it lacks rotations, because I'm lazy and I didn't need them). This is useful, for example, when you put two or more sheet of texture together. All the meshes using it must adapt to use 1/4 of the texture space, and this is what this tool does for you (as usual, bulk edits are possible).

It's fully interactive, meaning that you preview the results while you do it, and can cancel if you skcrew up.

Another use is when the texture is flipped in the vertical direction (this happens all the times). The tool has a preset to flip it back (scales the V by -100% and transaltes it by 1, meaning that it flips it).



Point 1 Say you added extra bones you your skeleton (horse, or human). Now you need to enrich all the animatons with the new bones. This tool will let you pick a "before" and an "after" skeleton, and will add that info to all frames of all selected animations.

The bones which are added are borrowed directly by the skeleton, meaning that they will stay rigid in place, in the same position with respect to parent bone which they had in the skeleton. Better than nothing. At least you can edit the animaitons, most important first.

Naturally, it works also the other way, and the number of bones driven by the aniamtion will go down if the "after" skeleton has fewer bones.

In reality it is more general than this: it will use any two skeleton, and will copy all the animations of same-named bones, and take any mission animation from the skeleton. So it can be used even to scramble bones in a skeleton and make animation comply (not that this is something you want to do normally)
 

mtarini

Sergeant Knight
Best answers
0
This is just a mini-update...
The feature it contains have been ready for several weeks. The point is that didn't have much time, so rather than making OpenBRF sit for longer, I disabled a couple WIP features, and released this version instead, mostly for the bug fixes.

ver 0.0.75 --  mini-update (1 Mar 2012)
1- Added [tool] => [Measure with floating probe], to know the XYZ position of any point on/near the mesh
2- a few fixes...
The Floating probe is a tool which you can use to know (x,y,z) positions of any point on any 3D model (or texture).

How does it work:

(a): activate it: [tool]=>[Measure with floating probe]
    -- when you do, in the middle View panel you'll see the coords of the probe point, initially at 0,0,0
(b): click anywhere on the 3D screen. The probe moves to that point on the surface.
    -- you can read the current coordinates of the probe in the View panel
    -- for convenience, the coords get also copied on the clip-board (you can paste them in any text editor)
or, (c): edit the coords inside the [View] panel to move the probe in that position.
    -- like most similar controls in OpenBRF, you can either type the coords or nudge them up/down with the buttons
        (and by keeping shift or ctrl pressed, you make smaller nudges)

As for (b), the probe can "stick" to anything: meshes, collision objects, animations, skins... even textures/materials.
- When you place it over a 3D objects, coordinates are expressed in cm (like the module system likes them).
- When you place it over a texture/material, the coords are in the texture coordinate,s in [0..1]x[0..1]
  (e.g. useful for tuning tableau)
The probe remains in place until you disable it, no matter what mesh/animation/skin etc you switch too,
so it can also be used also to compare positions between different objects.


The old [ruler] tool (designed to measure weapon lengths) has been moved under [tools] menu too, next to the new [Floating probe] tool.

Screenshot:

OpenBRF telling me the coords of the floating probe, i.e. that red (glowing) spot on the chair
 

mtarini

Sergeant Knight
Best answers
0
Another single-feature update...

ver 0.0.76 --  mini-update (2 Mar 2012)   
1- added a tool to [Copy colors from texture], which gets texture colors and assigns them to texture.
2- maybe a bit more robust to sporadic crashes?
The tool was from a request, and it makes sense.

Here is a test on native weapons:
left: original, textured. Right: no-texture, per-vertex color captured from texture.
Surprising how many details are still visible.


 

mtarini

Sergeant Knight
Best answers
0
Update! From 1st post...

ver 0.0.77 --  small-update (28 Jun 2012)   
1- new "reimport" tool, to quickly re-import updated models
2- alpha editable in "recolor mesh with uniform color", and hex code editable there
3- option to multiply existing colors with new colors, instead of replacing them
    (keep Shift pressed to activate this option -- works with all tools which compute vertex color)
4- bugfixes and minor improvements
More info:


1- The "reimport" tool, suggested by [iggorbb], works as follows:

you substitute the selected mesh (or collision object, animation...) with a new one, which you import from a file. The new mesh replace the old one, but it will inherit from it: name, material name, flags, and (unless they are redefined) vertex colors, rigging... basically, anything that it might miss and you would otherwise have to reinsert manually. That's nothing that could not be done manually already; it is designed as a way to hasten routine tasks.


2- "Pick a color" dialog improvements:

Now, when you "color uniform..." a mesh, and you pick the color, you can also edit the hex code (e.g. "#FF0000" for red)  (suggestion by [Romainoir]) . This can be useful to cut and paste colors.
Plus, now you also get to pick alpha channel if you want to.
Plus, if the mesh is already colored, the dialog starts with its current general color.
   

3- Multiply colors mode (instead of replacing them).

As you know, there is a handful of tools in OpenBRF which replace all per-vertex colors in one (or more) mesh.
Namely, they are:
- [color uniform] (to color mesh vertices uniformly with a given color)
- [compute AO] (Ambient Occlusion, to bake global lighting on the mesh)
- [paste vert colors] (to transfer vertex-colors from another mesh)
- [copy colors from textures] (to transfer colors from the texture to per-vertex colors)

The new part: now, whenever you use any one of the above tools, if the Shift key is pressed when the tool is activated , then OpenBRF will multiply existing colors with the new one(s), instead of replacing them.

Examples of use: if you keep Shift pressed when you "compute AO", OpenBRF will just darken current colors accoriding to global illumination (instead of producing shades of gray). If you keep Shift pressed when you [color uniform] a mesh with a blue color, and the mesh already has ambient occlusion, you will get a mesh with different shades of lighter/darker blue (instead of all uniform blue).

For completeness, in the [Settings] menu, there is now a tool, called [On mesh recoloring (info)...],which simply pops up a small info screen which describes the above "keep shift pressed" functionality.

(I thought this was the quickest way for the user to access this option, and for me to program it in. A bit crude, but effective).


4- Finally, bug fixes:
They include the last reported bugs (see bug thread here)...


edit: b-version (hotfix): reintroduced accidentally lost [Swyter]'s Spanish translation!


Small note: the list of things which I plan to add in OpenBRF at all is growing thinner, unless someone comes with interesting and useful suggestions. There might be a thing or two. Beside, the TLD mod is out already (remember this was among the main motivations for OpenBRF). I'll try to keep removing bugs more or less forever anyway.
 

mtarini

Sergeant Knight
Best answers
0
Update! From the 1st post...
ver 0.0.78 --  "un-re-do" release (06 Jul 2012)
1- undo/redo added
2- ambient occlusion computation now considers "up" direction correctly for... "helmets"
3- fixed tab orderings
4- bug-fixes
5- translation update (Spanish, by [swyter])

Additional notes...

1- undo/redo
Self explaining. Lo-o-o-o-o-ong standing request, so here it is. Notes:
- Undo-history is some 25 levels deep, I wonder if they are enough (the drawback of having too many would be memory consumption).
- the command pair is found under [edit] menu, or accessed by the shortcuts you would expect (ctrl+Z and ctrl+Y, naturally).
- OpenBRF will name the exact actions which are to be undone/redone, in the menu.
- Bursts of actions of the same sort, done in succession, are grouped into single un-doable moves (where that makes sense).
- "Modified status" of file should behave coherently, too
- It went almost too smooth... I wouldn't be too suprised if some bugs escaped me.


2- ambient occlusion (minor) improvement
Following a request by [Zimke Zlovoljni], now Ambient Occlusion computation, if asked to consider light as "coming mostly from above" (as determined from [settings] menu), will now consider the Up direction as Z (not Y), in case you are currently viewing the models with [Helmet] view-mode (see lower right of OpenBRF window). Recall that that view-mode is used to orientate, in a visually natural way, unrigged helmets (and, more in general, objects having "Z" as "up").

3- tab ordering fixes
should now make sense in all dialogs and panels. By that I mean which box you focus on if you [Tab] or [Shift-Tab] back and forth with the keyboard, all over the GUI. Thanks to [Barabas] for spotting that this required fixing.

4- bugfixes
of various nature, including the ones in [this] post in bug-report thread, and a few more.


and, last but not least:

5- spanish translation updated
...(completely, up to ver 0.0.77b !) thanks (once again) to [swyter] !
 

mtarini

Sergeant Knight
Best answers
0
New version!

ver 0.0.79 --  "revamp-skin" release (01 Aug 2012)   
1- added an option to place items at game-predefined "carry-positions" (e.g. swords carried on belts).
    It's inside the [mount on one bone] mesh tool.
2- new group-view mode, [auto], to see all subparts of the same object combined (but separated from the rest)
      (e.g. "castle.1" and "castle.2").
3- now [alt]+clicks selects all subparts of a given objects
4- direct visualization of materials a bit improved
5- new tool [discard]=>[rigging (unmount from bone)], which positions objects back into origin.
6- bug-fixes and several polishes
7- translation update (German, by [Roemerboy] this time!)
A bit of features!

1. Predefined carry positions

MaB / Warband, as you might know, give a set of predefined "carry-positions" for modders to use.
Each equippable item in the mod is set to-be-carried on one "carry-position", e.g. swords hanging on left hip or shields on back.

The new OpenBRF tool lets you simulate what will happen in game, by placing and rigging the item in a carry-position of your choice. It is accessible under [mount on one bone] tool, because after all the functionality is similar.

This has a number of uses: it lets you fine tune the geometry of the object (e.g. the strings around the body), and let's you preview how that scabbard will look like, and helps you choosing which carry position to assign to your items. Also, it's good for making great custom skins (which are what OpenBRF uses to preview animations).

By the way, this feature is fully customizable. You will find a file called "carry_positions.txt" in OpenBRF folder, which details carry positions used by OpenBRF. This might be useful if, in the future (by any means) carry positions will be changed or even made customizable. If so, I might add a tool in the future to help the definition of new carry positions (like: you place the object where you want, and this defines the carry position).

Minor note: a few of the current carry-positions are dependent on the length of weapons... if needed, the [ruler] tools pops up for you to tell OpenBRF about the length of the object you are mounting in a carry position.

I tested this tool by amassing suitable items over each one of the  23 predefined carry positions, in a skin; the result is...



This is how I would ever go in battle, if I really had to. :grin: You never know what you'll need!

This feature was only possible thanks to the info provided by [cmpxchg8b] about in game carry-positions. His knowledge of the details of internal M&B/WB engine has already proven precious on several occasions. Thanks a thousands for sharing!


2- New combo view-mode: "auto".


As you know, in OpenBRF you can select multiple objects (e.g. Ctrl+A for all, or Ctrl-click to select unselect individual items, or Shift-click to select intervals). When multiple meshes are selected, you can choose to view them combined (combo-view mode: "combo") or side-to-side (combo-view mode: "aside"). Now there is a third mode.

In the new mode, called "auto" meshes which are part of the same objects (e.g. "castle.1", "castle.3") are combined together. This should help making quicker previews (e.g. for you to screenshot). A simple rule is applied: whatever has the same name before the dot goes together.

This mode also puts together in the same cluster all LODS for a given object (e.g. "castle.lod1.1" with "castle"). For now, only the most detailed lod available is shown. In the future, this could be advanced to make it so that the LOD used depends on the zooming distance, so to let users simulate what will happen in game and thus make a visual pre-test of lods.

The mode also works for Ambient Occlusion computation (AO will be computed for exactly the objects you are seeing on the screen, combined as you see in the screen, so it depends on how you are grouping them).

Small problem ('cos I'm lazy): right now, if sub-items are not consecutive the list, they will sometimes not be grouped together. You can sort them to bypass this problem (remember there is an option to sort item alphabetically, under [tool]). I probably will correct this at some point later.


3- [alt]+clicks group selection.

This is a simple new option. If you [Alt] click on an object, you will select not only it,but also all its subparts. This works nicely with the option above, for quick previewing. This also works in conjunction with other modifiers e.g. [Ctrl] (toggles selections on and off) and Shift (selects interval).

4- improved direct visualization of materials

This is a small thing. This is how it looks like:


Basically, now it is easier to tell that the material includes several textures.

Similarly to before, by clicking on texture names or mousing over the texture links (in the middle panel) (e.g. "DiffuseA" or "bump") to choose which one is on top. Naturally, you can follow the link and go to the texture item (where you are told all the details of that texture).


5- unmount-from-bone tool

This is accessible from [discard] sub-menu. It is a third way to get rid of rigging:

Way one: plain. Just forget the rigging.
Way two: freeze frame. The rigging is gone, and the mesh is freezed in whichever position you are seeing on the screen.
Way three (new way): unmount: assuming the object was placed at bone positions, it is placed back at origin.

This can be useful to make, e.g., unrigged helmets.
Here is how: (1) You start with the helmet on its final position (on the neck).
(2) You mount it on the head bone (telling OpenBRF that the object is already in its final position).
(3) Now, you "unmount" it, and openBRF will place it in standard MaB/WB helm position (ready to be placed back on the neck by the game)


6- bug-fixes and several polishes

The polishes include: better guessing whether alpha blending is to be used, and sqashing of a very old bug where "shift" selecting an interval of items didn't always work correctly. BTW, I hope I didn't introduce too many bugs, because lots of little things were changed internally.


7- revamped german translation!!!
By [Roemerboy] this time (thank you [Roemerboy]!!!)
The new German translation is not complete, but is a drastic improvement over the previous one, which was too old!



Edit: no time for updating source files, translations files... soon! Done now
 
Status
Not open for further replies.