• Check out the results of the Techtree Contest #19!
  • Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

War3 Model Tuner v1.4.1

Description

Features

Credits

To be completed in the future

Changelog

Demonstrations

Want to make your own modelling app in C#?


This tool is a work in progress, and I welcome feature requests, feedback, and issue reports, including optimization, adjustments, modifications, inspections, bug reports, and automation ideas.
For support or discussion, please start a private conversation with me or contact me on Discord at Stan0033, and I will do my best to assist you.
If you are a modeler, it is recommended that you have a clear understanding of the feature(s) you are looking for and that you familiarize yourself with both the application and its description before making requests.


It can render, edit, inspect, optimize and animate models format 800 and has many handy tools, and intuitive UI. Github Repository
:piru:

Note for 1.2: if rendering seems off go to Render>Refresh Render Data

Requirements: .NET 3.5 (the version from december 2024) or .NET 5.0 (this)




open/save models format 800
Edit/delete/create all model components
Cascade deletion
Copy/Transfer animations
Precautions
Render model
Edit geoset
Easier editing of visibilities
Transformation editor
Optimizer
Import components
Import OBJ models
Info
inspector (and various inspection amenities in the UI)
Error Checker
Cleaner - remove multiple components with one click
Camera control
create Camera from view
Texture Browser
Model Browser
Extra tools - batch convert models, batch convert images, pathing texture maker,loading screen maker, gradual visibility maker, model color variant changer etc
MPQ Browser
Collision Shape Editor
Nodes Editor
Animations editor
Rigging editor
Vertex editor
Triangles editor
UV Mapper
Dependency Graph
× Play animations
× Reforged support
× Undo/redo



MDXLib from MAGOS - read/write MDX/MDL format 800
War3NET Libraries - read/write MPQ and BLP
dsafa's Color picker for WPF
SharpGL for rendering

Visual Studio - for working on the project

Play animations
Movements
Undo/redo
Some quick animations
Other disabled stuff


1.0.4

1.0.5

1.0.6

1.0.7

1.0.8

1.0.9

1.10

1.11

1.12

1.13

1.14

1.15

1.16

1.17

1.18

1.19

1.2

1.2.1

1.2.2

1.2.2.1

1.2.3

1.2.3.1 - 1.2.3.2

1.2.3.3

1.2.3.4

1.2.3.5

1.2.4

1.2.5

1.2.6

1.2.7

1.2.7.1

1.2.7.2

1.2.8

1.2.9

1.3

1.3.1

1.3.2

1.3.3

1.3.4

1.3.5

1.3.6

1.3.7

1.3.8

1.3.9

1.4

1.4.1



in geosets added button to edit the geoset animations visibilities of a geoset easily with a dialog (requested by @Villagerino)
In inspector added error checker similar to sanity test
longer item width for nodeslist node
An item in the layer's list also contains more info
in layers - you can now create new and change order
in optimizer - added option to remove repetitive track by time
in nodes - selecting a node also displays its pivot point
- added button to open the folder of the model


added option to create material (how could i forget)
added optiosn to create tean color and team glow textures
error checker now also checks the keyframes
updated the render function to render normals
added dedicated transformation editor and you can edit all components' tranformations (exept special data of nodes)
dialogs to edit the data of attachment, bone, collision shape xD

two more buttons in the transformation editor, and global sequence select combobobx
changed the layout of the node tab @Villagerino
changed the layout of the sequences tab
lil update to optimize tab ui
in the list of layers, now a layer item also contains its used texture animation and filtermode.
in teh lsit of textures now a replaceable id1 is named team color and repalceableid2 is names team glow
int ransformation editor: double clicking on an item will flip it if it's visibility
for texture animations - button "new", and layer allow selecting the texture animation
fix: geosets>"delete" + now also deletes geoset animation/s that use it
Removed the sliders - you can now zoom and rotate with the mouse @Villagerino
merge geosets now also removed the geoset animations of the removed geosets
you can now create and edit event objects
you can now make screenshots from "UI"
UPGGRADED to .net5.0. Minimum OS now Windows 7 SP1
Because I included .WAr3NET Library for reading BLP FIles and the MPQ
And now the model will be rendered with textures! even though it's kinda broken for now.
Fixed duplicate geoset command
create team background and hero glow fixed
Geosets>center at enabled
new command Geosets>subdivide
in transformation editor added option to loop
other fixes and thingies


Update to UI of geosets
In nodes , [edit data] support for the remaining nodes - emitter1, emitter2,ribbon, light
in emitter2 you can set all of the filtermodes explained here Particle Emitters 2
in Geosets added more commands: Simplify, Flatten Side, fragment, and others
the list of geosets now has checkboxes that make a geoset visible/invisible.
fixed loading external textures from the local folder of the model


new command in geosets> negate normals
in optimizer new options:
Delete overlapping triangles who use the same vertices
Delete fully overlapping triangles who use different vertices
in error checker - check for that as well.
transformation editor - fixed [no scaling down tracks] when updating the transformations of scaling and alpha
new commands in Transformations Editor - increment/decrement all with, negate, negaete all, set all to..., multiply all by..., enter from text
- in import added option "Overwrite list of sequences with another model's"
in geoset animations > added command "Make all geoset animations the same as this"

completed and enabled all options in "import nodes of..."
the options loop x times, and unlopp, were removed because you can do that in the transformation editor
the option "space transformation" finished and enabled
the app can now open a model file if you associate the extension with it, and double click it
"Sync with..." completed and enabled



Support for rendering and dispalaying team color. Automatically detect if you have 12 or 24 colors MPQs
Error checker - checks if a non-static geoset animation has all sequences as keyframes
Error checker - now checks there are overlapping/intersecting triangles as a warning.
in optimizer - added clamp normals. Though it is highly unlikely to have invalid normals, unless you edited the file with notepad.
in optimizer - added option to remove triangles with 0 area
in optimizer - added option to merge vertices that have the same position and texture position
in sequences - one additional row that displays which nodes are animated in the selected sequence or global sequence
changing textures and geoset materials now updates with the viewport to avoid exceptions
in textures you can now check wrap width and height


v1.10

UI:
Various UI fixes
Fixed some things related to node data editing
fixes on the transformation editor
in transformation editor added a dialog the same as geoset visibilities that allows to set all visibilities fast. 'set per sequence'. it's only available for alphas and visibilities
trying to open an emitter2's data will prompt error "no textures" if there arent
Transformation editor will display error message for no sequences if there arent any, now
color picker now displays in textblocks what value is selected in the sliders
if the geosets count was 0 and trying to zoom in the viewport, that crashed the app. Fixed that.
fixed a miss: now selecting a layer also select the used texture animation. And Selecting a texture animation sets it to the layer.
creating particle emitters now is refused if there are no sequences (precaution)
Creating new sequence now capitalizes the name
particle emitter2 - fixed read/write segments, heads and tails
hitting 'Esc' on all dialogs will now close them
hotkeys for some menu items
'make all geoset aniamtions alpha static 1' moved under geoset animations from cleaner
NEW: Camera manager

Error checker:
Added <error> - "There are particle emitters but no sequences". (That would crash a map)

optimizer:
added option "Remove duplicate geosets" (@Villagerino)
after all optimizations, one more is done - remove invalid/no longer valid geoset animations

new Commands:
in Sequences - 'Create presets...' - select from a list and create them, along with tiers, and alternate, and worker
in nodes - 'Reset all keyframes to default...'
in nodes - 'Duplicate'
in nodes - 'Remove sequences from keyframes...'

App:
- global exceptions report as messagebox, in case of bugs

Fixes inside MdxLib:
MDX no longer saves/loads an emitter2 with "head" tag checked if it wasn't checked. (Thats because the condition for <neither> was missing. (head or tail or both or neither)
MDX no longer saves/loads an emitter2 with a wrong filter mode
MDX now saves emitter2 segments' alpha properly
MDX never saves static visibility. I added saving temporarily but breaks other magos programs, so no. Magos decided not to read/write static visibility. Why would one anyway.
When saving a MDL file the MDXLib appended some bytes in the beginning of the file that made it unreadable to other programs. Added a function to clean the file after being saved.
Fixed error when opening a model with camera in MDL format (it expected a word instead of final closing brace)



1.11

new commands:
in transfomration editor - copy + paste
in nodes - find by name...
in geosets - 'attatch all geosets to bone...'

UI:
in 'new sequence': cannot enter negative values for 'from' or 'to', now (oops)
in transaformation editor: Tracks are now also enumerated
Material - has now bool property 'sort primitives near z' as it's present in mdxlib
other UI changes.

optimizer:
option 'merge identical materials'
option 'delete duplicate layers'
option 'merge identical textures'
option 'merge identical texture animaions'
'Delete similar adjascent keyframes' enabled and completed
Various Fixes ('merge vertices' fixed, does not destroy geometry, remove unused materials' now also checks inside ribbon emitters, others)
'Add missing keyframes' now will also add missing tracks at time 0, if the transformation uses a global sequence

Fixes in MDXLib:
no longer saves un-aniamted (0 keyframes) tranformation marked as animated


13/01/25
1.12:

Fixes:
import textures now also refreshes the list of textures (oops)
'Fragment' now adds matrix group to each geoset and bone if no bones (oops)
geoset>select all will NOT cause the program to lag if the geosets are a lot (oops)
'merge geosets' will now work properly (oopa)
a bug with the checkboxes

UI:
Geosets>'change used material' 's selectior nowalso has the used texture of the first layer of each material displayed

new in Optimizer:
'minimize repeating matrix groups'
'delete invalid geoset animations' (mandatory)

new in Error checker:
warning: geoset has more than 20,000 triangles
warning: number of geoset animations not equal to the number of geosets
warning: geoset used by more than one geoset animation

new commands:
in geosets> 'Separate' - if a geoset contains 2 or more objects, split them into different geosets
in geosets animations> - create missing, and delete all
in geosets> more fragment conmnds....


05/02/25
fixes:
the multiselector now can select multiple items (oops)
fixed filling static color in transformation editor ((it wasnt reversed)
geosets: create hero glow and creatе team background now also adds matrix group to the geoset (oops)
loading a file now sets the filepath for saving (oops)
in error checker fixed some miss related to missing opening track for geoset anim
'reverse sequence' and 'reverse all sequences' are now working

UI:
icon of bone updated
Tooltips for some checkboxes
(New) two more options under "Render" -> "shading" and "collision shapes"
(New) Model>Load models from MPQ browser
In nodes > all buttons converted to contextmenu of the treeview
In textures > almost all options converted from buttons to context menus
In sequences > the buttons of the sequences part converterted to context menu
double-clicking on a sequence will also make it looping/nonlooping
in sequences> in new > one more option
in geoset animations menu > command to make all use and not use color
in nodes > selecting a bone also shows in the info panel the count of the vertices attached to
(new) Model>Save as copy with timestamp
in textures tab>in textures> you can now create from custom input, but is checked if existing
(new) button close

Geosets:
(new) The command to rotate renamed to 'rotate each' and added another command 'rotate together'
(new) 'create polygon' (it can also load an image for comparison)
(new) in addition to the command 'create collision shape for this geoset' added 'create sphere collision shape for this geoset', and also these functions now position the pivot point o the collision shape where the centroid of its geoset is


optimizer:
enabled and completed 'remove similar adjascent keyframes' (this time for real. And tested.)
(new) 'Attach geosets with no matrix group to a dummy bone'
Categorized checkboxes
Changed the way the optizier deals with missing opening/closing tracks
(fix) fixed quaternion (rotation) clamping for 'clamp all keyframes'.
(fix) fixed 'clamp uv coordinates' due to logical error in the clamping
(fix) 'minimize repeating matrix groups' fixed, it had logical error when checking for identical groups, that caused a model to be with broken rigging

Transformations editor:
(new) buttons 'copy as text' and 'Copy all as text'


NOTE: MDLVis cannot read MDX saved with this library because it expects the count of geosets in the header (like in the MDL format), or otherwise
says that there are no geosets, but i dont know how to add that in the header in MDXLib, or even if it's supposed to be there. So if you want to open the model in mdlvis, save as MDL. Or maybe MDLvis's parser expects a specific order of object definitions in order to recognize the geosets.




11/02/25

UI:
(NEW) Render>Geoset Extents box and sphere

Textures tab:
For material properties added the missing 'priority plane', both filling and setting.

sequences:
(NEW) "Set all sequence extents' celings" (this is for helping you fix the health bar issue)

Geosets:

(NEW) 'Rotate each geoset around custom point...' and 'Rotate all geosets around custom point...'
(NEW) 'Scale Together'
(NEW) i've written my own import/export logic for geosets, with file extension ".tgeo". You can now import/export single geosets. Not compatible with the one of magos editor. Magos editor's is in binary, mine is text.

error checker:
(FIX) 'missing the origin attachment point' now also trims the name of a node in order to check for such node
(NEW) added checking for unused global sequences
(NEW) now also checks for zero area triangles. That incldues triangle which has very small area, and triangle that uses the same vertex for 2 or 3 of its vertices.

optimizer:
(FIX) 'remove unused global sequences' fixed, wasnt checking correctly. (Magos' built-in check for references is not working.)
(NEW) 'Deduplicate matrix group nodes' - if a matrix group has two or more of the same node, remove excess

info:
sequences total duration is now sepearated each 3 digits by comma

Rendering:
the last layer of a material is now rendered instead of the first.

Nodes:
Trying to delete a node that has attached vertices to it will prompt a message saying to reattach them first
(NEW) 'Reattach attached vertices to another bone'

Transformation editor:
input fix for rotation


1.15:
13/02/25

Nodes:
'Move under another node' now checks if it's not its parent xD (oops)
(new) many pivot point commands...
'Duplicate' gives it a new name (oops)

Geosets:
new command 'Set Distance between two geoets' (push both, push second only, push first only

UI:
More render options


16/02/25
UI:
menuitem rearrangements
Render > 'Enabled'

Geosets:
(NEW) You can set a geoset's 'selection group' and 'unselectable' properties
(NEW) can edit extents manually of geosets and sequences

nodes:
new command 'Root all children of node'
new command 'Root all children and sub-children of node'

sequene:
(NEW) delete inbetween keyframes...
(NEW) leave sequence at specific keyframe....

error handling:
if a texture's extension is not blp, display error message and use instead textures\white.blp

1.17:
18/02/25

Nodes:
in the window for editing collision shape added commands 'Scale' and 'Translate'. This does not change the pivot point but the extent of the collision shape itself.
Geosets:
new command - center at node...
new command - Spread overlapping vertices
new command - edit visibility for ALL in sequence.... (useful for example if you want to make the whole model invisible at the end of 'Death' sequence)

Textures:
In the texture list menu added a button 'create plane with this texture'. It also has options for orientation.

Fixes:
cannot create negative and 0-length global sequence

29/02/25
UI:
now using for color picker <dsafa>'s color picker for WPF, instead of mine
various small fixes
menu "View" for the camera and camera controller
Import > 'Batch import OBJ/s as geoset/s'
menu "Tools":
'Batch convert MDL<->MDX'
'Batch convert BLP to PNG'
'Text colorizer for game tooltips
My pathing texture maker
My loading screen maker
Geosets:
create polygon - added export and import commands
'Swap locations'
'Mirror...'
'Distance from point...'

Textures:
Materials> 'Apply this material to all geosets'
Deleting a material, attaches another material to affected geosets ,to avoid exceptions
Cannot delete the only material if there are geosets
Deleting a texture attaches another to affected materials' layers
cannot delete the only texture if there is a material
Textures browser:
Added tab 'favourites'
commands 'export', 'export as PNG' and 'Copy path to clipboard'

Nodes:
'Swap Locations in tree' - if one or both are nested under different nodes
'Swap pivot points'


1.19:
05/03/25



(fix) Fixed a coding mistake where the model would not be rendered unless you uncheck and check again Render> 'Enabled'. I felt like pushing an update earleir cuz people who cant see the model render would be discouraged from the app when they dont know how to fix that
Sequences > 'Mass create global sequences'
Model > (check) optimize on save
Saving and loading all preferences now found under 'Render', and the one above.
Tools > 1. Batch optimize...; 2. MPQ browser;

I've planned more stuff but for next version...

15/03/25
UI

<Enter> will now "click" the confirmation button for most dialogs.
More rendering options under "Render"
Other UI Changes

Info

Which bones are not animated?
Now also counts edges

View

Create camera from current view.

Textures > Textures

Delete texture and all materials using it – Removes a texture along with every material that depends on it.

Import / Model / Geosets

More import/export options.

Cleaner

Remove all lone nodes at root.

Model

Adjust model position (all geometry and all nodes).

Geosets

Rename – You can assign a name to a geoset, but since format 800 doesn't support geoset names, the name will only be visible in-app.
The command "Reset all geoset animations' alphas to static 1" was completed now. (oversight)
Command 'Change geometry based on a keyframe...' - For each selected geoset - select an existing keyframe and change the permanent geometry of that geoset to the keyframe. If not all vertices of a geoset are attached to one bone then do nothing.

Other

Other small fixes around.

Sequences

Set all sequence extents to...

Tools

Image To BLP Batch Converter
Calculate extents with exception... – For example, if your model has a TC background, you can exclude it from extent calculations.

Textures

Prepend War3Imported – This command adds the prefix to texture paths, so you don’t have to rename each imported texture in Warcraft 3's map editor.
Strip path – Removes unnecessary path data from textures.
Import – The app will now only look for .blp images in the folder of the current model.

Optimizer

Now fixes textures with invalid replaceable IDs upon opening a model.
Rewrie of 'Remove unused keyframes', with adjustments for 0 resulting keyframes, and resulting of invisible geoset animations
Added adjustment for time middle of particle2
'Add origin ref if missing' now working (oversight)
The mandatory optimization for 'make all transformations with 1/no keyframes static' fixed for some default values

Transformation Editor

Set all keyframes of sequence to...
Start each sequence with default data
End each sequence with default data
Stretch sequence keyframes... – Keyframe times for the selected sequence will be adjusted to fill the entire sequence.
Copy/Cut selected sequence...
Stretch all sequences – Same as "Stretch sequence keyframes," but applied to all sequences.
The combobox filled with global sequences will now also show their durations
Command 'Change gradually inside sequence' - add multiple keyframes from track to track slowly going from one vlaue to another.
'Duplicate sequence to sequence/s'
Sequences

When selecting a global sequence, under the list you also get a list of components that use it
Nodes > Pivot Point

Align with parent...
Adjust at extent... (top, bottom, left, right, front, back...) – Can be based on model extent, sequence extent, geoset extent, geoset sequence extent, or extent from attached vertices.
Copy/Cut/Paste sequence from node to node – Move translation, rotation, or scaling sequences between nodes.
Nodes
Also paste coped transformation to muliple selected nodes
Rendering & Viewport

Switched for rendering from Viewport3D to OpenGL (SharpGL).
UV rendering is 100% correct
Camera control is now more normal, it does't reset on each refresh and can be rotated more freely. (use now middle mouse button)

There are still a lot of things I'd like to add, but I think as of right now these changes are significant enough for a release before the next comes.

25/03/25
Changelog - v1.2.1:


Fixes & Improvements:


Textures > Textures:
FIX - When creating a plane from a texture, it now correctly creates its own bone and riggings (apologies for the oversight).
App:
Fixed a logical error when trying to load textures from the model’s folder.
Viewport:
The camera will now reset if any of its values become NaN.
Selecting a geoset in the vieport now shows its edges instead of showing an extent
UI:
Clicking "Save" when nothing is loaded now triggers "Save As" instead of showing an "empty save path" message.
The model’s name is now displayed in the main window’s title.
Dynamic debug information is available for the camera in the viewport.
Fixed an exception that appeared when trying to import a geoset with the Geosets tab open.
Node data is refreshed after closing a dialog in the Nodes tab.
New 'Start Maximized' checkbox added.
Increased minimum app width from 600 to 800.
Transformation Editor:
Bug fix: cleared the old list before generating a new one upon clicking "Apply."
New button: "Edit Time" allows you to change the time without modifying the keyframe data.
New options:
"Move keyframe’s time to start of its sequence."
"Move keyframe’s time to end of its sequence."
UI (Various):
Several UI updates and fixes to ensure proper updating after actions.

Tools & Utilities:


Cleaner:
Added option to Remove all extents.
Added option to Remove all Geosets' sequence extents.
Geosets:
New option to Create Primitive Shape > Sphere.
Properties > View Groups: View and manage groups associated with geosets.
The geoset list now also shows how many groups are associated with each geoset.
Geoset Animations: Added Copy/Paste commands.
Collision Shape Editor tab: Now you can easily edit multiple collision shapes at once.
Node Editor tab: Ability to change one or more nodes simultaneously.
Transform Panel added under the viewport for faster transformations.
Nodes:
Merge Bones: Combine multiple bones (from the root) into one, and all attached vertices will be recalculated to the new bone.
Duplicate Node: Fixed a logical mistake where the node’s translation, rotation, and scaling were not duplicated properly.
Fixed a logical mistake where a node’s time was already in the list when trying to add a track.
Textures:
Copy/Paste from Clipboard: Easily transfer a texture using a copied string.

Rendering:


Rendering Colors:
Updated rendering colors.
Team Color in Viewport:
Fixed an issue with changing team colors in the viewport (missed during the switch from viewport3D to OpenGL).

Miscellaneous:


Tools > Raw Keyframe Rearranger: New tool for rearranging keyframes.
Tools > Tile Paths Reference: New reference for tile paths.
P.S: also check some of the tutorial videos.

Coming in the future, eventually: UV Mapper, Vertex Editor, Triangles Editor, Rigging Editor, Animator (basic and advanced animating)

Geosets -> Center geoset/s at geoset
Geosets -> bottom Transformation panel -> Arrows movement buttons for faster-ish transforming
Rendering -> rendering of the different layer filter modes now.
Node editor -> Select all nodes used by geoset....
in Geosets > Animaator > There is a working tab "Paths" for reusing animation movements. Check it out.
App -> Hotkeys for the transformation modes in the transformation panel at the bottom

1.2.2.1:
Rendering -> The viewport no longer stretches the rendered image, becasue now the viewport aspect ratio is forced to always match the apect ratio of the projection matrix
Geosets -> Animators -> Paths -> 'Extract path from node keyframes...'
Nodes -> attachments -> Can now create origin ref with 1 click

UI -> almost every command will now mark the model as unsaved until you save it.
Geosets -> Fixed change with arrows for the nodes (overlook)
UI -> (fix) "Resize sequence" now refreshes the list (oversight)
UI -> The "delete" button will delete objects, depending on which is the focused UI control
UI -> The tab 'optimize' moved at second last position
Nodes -> inspection -> Now when you click on a node of type emitter1, emitter2, ribbon, light, or attachment, you will see in the side info panel in which sequences it is visible!
Nodes > the nodes lit items are now wider to support visibility for more nested
Textures -> which geosets and nodes use this texture ?
Nodes -> Added 3 commands in Nodes that deal with merging helpers and bones. (For dealng with converted models from WoW) @Power
Textures -> Layers > Duplicate layer
Textures -> Materials -> 'Duplicate'
Textures -> Texture Animations -> 'Duplicate'

03 april 2025
Various fixes all around
UI -> Transformation editor -> sequence name in the list also contains (start) or (end) for starting/ending tracks
UI -> Transformation editor - the delete button and the enter button now call click events.
UI -> Nodes -> 'Info' removed, and instead in teh right panel the info about which geosets are attached is displayed
UI -> (Inspection) Geosets -> Now when you select a single geoset, the tooltip of the listboxItem will change in order to show the visibilities of that geoset!
Error checker -> checks if ageoset have more than 255 matrix groups
Error checker - checks if 1. all values of a transformation are the same, 2. and if all values of a sequence in a transformation are the same
Nodes -> The editor for emitter2 will now disable static emission rate, if you check 'squirt'
Nodes > Create Presets -> 'Fire', 'Blast Flare'
Nodes -> 'Make visible in...' for quick editing of visibility of emitter1, emitter2, light, attachment, ribbon

1.2.3.2
You can now transform inside the viwport by dragging with the mouse. Select a mode, select an axes, input an increment value, then hold right mouse button and drag up or down.

05/april/2025:
- various fixes
Error checer -> added warning that particle emitter 2's alpha segments are 0 (Invisible)
Error checer -> Added check for geoset animations that checks if its alpha or color are missing sequence entries


Fixes in transformation editor:
clears list before recreating it upon update, for all (oversight)
Fixed setting values for alpha in transformaion edior (oversight)
Fixed error for invalid scaling in input
fixed 'create all starts' for some

Nodes -> Fixed the issue where when opening the dialog of an event object, the used data would not be selected in the big listbox

- optimizaion "remove unused keyframes" now also removes tracks from event objects (oversight)

Geosets -> new command - Export/import geommerge - this is similar to export geoset but the exported file also contains the material, layer, texture and texture animation data for the selected geoset so when you import it, you get not only the same geometry, but the same appearance.
Watch the video demonstration


06/aparil/25

Render > Presets (for fast checking/unchecking of render modes)
Render > Preferences - you can now edit the colors of lines and sze of points rendered
varous fixes
fixes for the texture edtor
fixes for the emitter2 window
Textures > Textures > 'View in big'

07/aparil/25
Edit visibilities - added button to check all, none, or inverse (in case you have a lot of sequences)
(Inspection) - UI - 'Colorize transforamtions'; in the list of sequences, the background color of a listbox item will now be different depending on what transformations it contains. Could be transparent, solid color, or gradent. Green for translation, yellow for rotaton, red for scaling.




1.2.4 08/april/2025
various fixes
--------------------------------------------------
transformation edtor:
--------------------------------------------------
Organized the 'more' menu
new command - 'Swap Sequences'
'Duplicate sequence to sequence/s' - finished. (oversight)
more commands - for optimization
More> 'Refresh keyframes list'
gradual keyframes maker - fixed an exception
----------------------------------
inspector -> 'Which sequences don't have animated geometry? '
Inspector -> now all inspect buttons show a dialog that also allows copy
--------------------------------------------------
UI -> Check for enabling transforming by dragging in the viewport
--------------------------------------------------
Sequences -> commands Copy and Paste Animations
Sequences -> "Delete all sequenes containiing keyword..."
--------------------------------------------------
Geosets -> bottom bar -> Copy and paste buttons (for fields)
Geosets -> Geoset animations -> 'Copy visibilities of sequence to sequence...'
Geosets -> for edit visibilities - upon initialization, checks only the visible ones

1.2.5 09/april/25

Various fixes
-------------------------------------------------------------------
Nodes :
'delete node and any geometry attached to it'
Copy keyframes via clipboard and paste keyframes via clipboard - you can easily tranfer keyframes via the clipboard!
-------------------------------------------------------------------
Rendering & Viewport :
Now the layer tag 'two-sided' is considered;
Now color influenced by geoset animation is consdered;
Lightng and shading are now visible and there is a check under render for lighting
Now when you press up/down, the camera's LookAt (Center) moves up/down
Transformation panel -> button "M" for more transformation modes, and 6 new transformation modes. Check them out
-------------------------------------------------------------------
Geosets:
Commanmd - auto-rig - each vertex is attached to its closest bone . Use wth caution.
Copy/Paste Rig - if a geoset has one matrix group, duplicate it onto another
Geoset operatons > Rotate > command 'Straighten' - rotates a geoset straight on a selected axes. Fast fix for tilted geosets. Works for multple selected geoses.
Normals > Force all normals to point outward/inward
-------------------------------------------------------------------
Textures -> Replace with... - replaces the texture's path which affects all materials and geosets using it
Tools -> 'Model Colors Changer' - For example if you have a model that uses geoset animation colors, fixed team color texture, colored glow or star, the command will change all of them. This is if you want to quickly create colored variations of a model.
-------------------------------------------------------------------


10/april/25
transformation panel:
1. Context menu with more options for the input fields;
2. A button to set all;
3. 2 more transformation modes: rotatte each, scale each,



NEW:
Geosets -> (Live) Mini UV Mapper - You can also see live changes on the model in the viewport.
Controls:
LMB Drag - Select
Left/Right/Up/Down - Move
Scroll - scale
Ctrl + Scroll - Rotate
Alt + Scroll - Scale Horizontally
Shift + Scroll - Scale Vertically
For hoykeys see the screenshot.
You can also use the menu items at the top

13/04/25
- Various fixes
Now when you create a sequence all animated geoset animation visibilities And all animated node visibilities and layer alphas are UPDATED. /so this takes away less worry from you./
Import -> import materials of...;
geosets -> 'to whch bones is attached ths geoset?' (inspection)
App - (FIX!) For some users the app crashes becasue it couldnt find listfile inside the mpqs and I added error message and the listfiile inside the folder "Paths"
- new optimization - split geosets with more than 255 matrix groups (reported by Elprede)
Nodes > Presets > create huuman skeleton
Geosets -> Removed tooltips forvisibilities from gesoets and isnstead there is a button 'Report visibilities'



1.2.7.1
--------------------------------------------
Geosets, Noodes -> 'Edit visibilities based on keyword...' - even easier editing of visibilites! For example if you want the geoset "gold" to be visibiile only in sequences containing the keyword "gold" or team background to be visible only in "portrait"
Geosets -> Menu to check/unckeck or invert check (for visibility in viewport)
-------------------------------------------------------------------

21/april/25

1. More hotkeys for some render options (and the option 'Textured' is now fixed)
2 Nodes -> Pivot Points (all) -> 'Center each bone at its centroid of attachment'
3. Centering, align and create menus moved to the top and works differently for each selected editor
4. UV Mapper - mouse dragging for moving;
5. UV Mapper -> Undo/Redo (ctrl+z/ctrl+y)
6. UV Mapper -> 'Average similar coordinates'
7. Switching between geoset tabs checks the relevant render checkboxes
8. Rendering-> Anti-aliasing.
9. Some other fixes



02 May 2025

Mouse picking
Vertices editor
Triangles editor
Rigging Editor

Textures > 'Create layer with this texture'
Menu -> Model -> 'New' - contains options to start a new model depending on what type it is
Error checker -> A check if a node is using 0 scaling instead of visibilities
Model -> 'Set model name as filename'
Model -> 'Set default author'
Menu -> Center -> Snap commands, depending on selected editor
Nodes -> 'Mass Rename'
Help -> 'What does the error checker check for?'
Create -> Draw... (use pencil or line to draw 2d and then extrude it
Tools -> Sequence names helper
Tools -> You can now create a screenshot ICON of your model. Be in geosets tab, adjust which render options are checked, zoom in on your model, click Tools > Make icon. When completed, the folder will open in windows explorer.
Textures > Quick add > White, black
---------------------------------------
Mini UV Mapper:
'Copy UV Position From Mouse'
Manual Input
Snap selection to mouse position
Hotkey for calling the mini uv mapper (P)
after delete vertices and geosets we must refresh edge data
Colllapse
Grid
snap to grid
'Snap selection to current pre-selection extents'
'Project triangle islands'
'Weld all within threshold...'
'Clamp all'
other adjustments

01. 06. 2025


App:
- code optimizations and minor bugfixes

UI:
Sequences -> the properties of a sequence can be more easily accesed by the panel under the list
Nodes context menu -> rearranging and grouping
tooltips on create node diaog
Textures -> TExture animations -> The right panel now contains translation rotation and scaling buttons, similar to how nodes are
Textures -> Editing alpha and texture id also moved to the right panel
nodes -> the rigtht panel also shows info for event objects
Right Mosue release no longer triggers selecting (fix)
Undo/Redo is completed - works for geometry, nodes and sequences. (but not for the textures tab, global sequencese; When undoing sequence changes, keyframes are not undone)
You can now associate mdx and mdl extension with the app and upon double-clicking a model, the app will load it.
Geosets -> the menu for propertis moved from the context menu to above the listbox
Geoset Animations -> use color and drop shadow now moved under the list
in OPTIMIZER the option 'clamp uv coordinated' has a different color to see it easier and uncheck it because often models who are not strictly insdie 0-1 range can break uv mapping

Menu -> Center - > Put half on ground

Textures > Double clicking on a texture now also acts as clicking 'view in big'

Inspector -> what is the model's actual extent?

Geosets:
fix for merge geosets - missed groups
some functions in the geosets tab now refresh their lists
option to also edit geoset data manually from a window
command 'swap visibilities of selected geosets'
command 'swap colors of selected geosets'
command 'swap geoset animations of selected geosets'
button 'S' next to "Del" -> It will select the geoset animation that is using the selected geoset/s. Purely for convinience and faster working on a model
in vertices -> button to swap groups of two selected vertices
mutliple fixes for certain edit modes not working in certain work modes...

Error checker:
check if camera has nan or too big values or is not pointing toward any geometry.
Generating the report now happens with a button instead of when switching to the tab and now the textbox is replaced by richtextbox that allows colorizing the text
Transformation editor > 'Delete all'
- checks if a a transformation has no tracks for stand sequence but has tracks for other sequences

Tools -> Set all extents to...

Vertex editor > Swap vertices of triangles of affected vertices (select 2)

Textures > Materials > Others > 'Duplicate material to one per geoset using it'
Sequence -> now you can make one, or all, to Title Case. (minor optimization)

Geosets>Rigging editor> You can now copy/paste/swap a vertex group attachment from vertex/vertices to vertex/vertices


13.june.25

Geoset animations -> Deduplicator (dedicated window to selecting which geoset animations to leave and which to remove)
(passive) Geoset Animations -> Now always arranging by ascending order of geosets used
you can now drag-and-drop a file onto the viewport and it will load it!
Error checker -> added a check for the error found in the sanity check 'Track 1 at frame 83367 is not in global sequence 1'. This unused warning means that any keyframe that goes beyond the duration of the global sequence.
Tools -> 'Make all particles disappear at the end of their sequences'
Tools -> Make all geosets disappear at the end of death sequence
in nodes -> edit visibilities' -> you can also edit the visibilities of event objects!
Fixed a miss - you can now also duplicate event objects

26.june.25



NEW! Create -> Custom geoset manager - you can import any custom generated geoset by the program
because of this: Geosets -> Import/Export -> Save geomerge as custom...
FIX: For imported geomerges - bone in the list and attachments

04.July.2025



(FIX) Error checker -> fixed an non-implemented function in the error checker about int transformations
(FIX) Transformation editor -> the commands to create starts and/or ends now works for color also

(NEW) Tools > Model colors variation generator (this tool I made and used for generating those! (changes the colors of all particles, and all geoset animations who have the tag 'uses color')
(NEW) Tools > Gradual visibility maker - this tool is useful for example for creating birth animation for buildings by gradually appearing geosets
(NEW) Nodes -> 'make all extents same as this collision shape'
(NEW) Nodes -> 'swap attachments with...'
(NEW) Nodes -> Move multiple to root or under node
(NEW) Geosets -> extent editor - added contet menu with more options
(NEW) Geosets -> attachment -> 'swap attachments'
(NEW) Geosets -> Attachment -> 'improvise sprite attachment points positions' (This is if you want quickly to set up the burning attachment points for a building at the top of the selected geoset)
(NEW) NEW way of saving and loading preset nodes: (does not work for bone,helper, attachment)
nodes> new > preset... (opens a dialog that offers importing from presets
nodes > save as preset... (works for emitter1, emitter2, ribbon, light, collision shape, event)
Nodes > Skeleton... - you can also create and load skeleton of bones and/or helpers! Creating is done by wriing it. Loading is done from a list




24 september 2025


  • Fixed the parsing of the local settings file, where it did not consider local format, which caused crash for users with windows format that is not using commma as separator.
  • Updated global exception handling
  • "command find by name" now does not change the tab (fix)
  • Changes on the appearance of the error checker
  • fixed various mistakes in error checker

03.October.2025

  • added in tools > Batch tools > Batch texture renamer-
  • in model browser and texture browser the title will contain the count of the results
  • In optimizer - delete 0-length gloal sequences also deletes negative

17.October.2025
FIXED A CRITICAl BUG INSIDE MDXLIB:
- some class objects in the library were using CONSTANTS which shared the same object. This includes:
extents, segments, intervals and some Vectors.

new options in optimizer:
  • wrap textures by width and height if they are mapped outside of 0-1 range
  • merge identical attachment points
  • trim and title case camera names
  • trim and title case node names
  • trim and title case sequence names
  • fix static visibility of special efffects
  • merge identical collisioon shapes
  • merge identical event objects
  • average UV coordinates who are too similar
  • remove unused event objects
  • updated calculation for extents for optimizer

in node editor: direct editing of pivot points instead of with dialog

NEW: Off-spin editor tool - "Tuner's Raw Editor". Just edit from the tree. No rendering.

02 november 2025:

  • All functions for moving nodes now do not refresh the entire tree.
  • You can skip entering a name for a new node now. It will give generic name.
  • Trying to delete a node that has children bones who have attached vertices will now also prompt error message.
  • Yo ucan now move nodes in the tree by dragging them with the mouse
  • updated all messageboxes to have icons

11 november 2025:


- changes on the UI:
  • in collision shape editor changed the buttons with 3d cube, for clicking
  • in optimizer grouped the options inside expanders, and the options for selecting are now part of a right-click contextmenu
  • listboxes have different shade of gray
  • all buttons have 3px rounded corners and hover color
  • Fixed the aspect ratio change issue of the viewport when resizing
  • Fixed some typos and casing around


20 november 2025
Further changes in the UI:
1. In Geosets tab -> moved triangles, vertices and rigging in a tabcontrol together with geoset animations. This is on order to re-use the one list of geosets instead of having one for each tab
2. The First tab "Geosets" renamed to "Workspace" to avoid repeating with its child tabItem's header
3. Update on the sequences tab
4. Update on the nodes tab
4. Other UI updates

new tab! - [Workplace>cameras] ...instead of editing from [model>cameras]
  • it can edit the fields for the camera, and also has other useful functions like zooming, moving up/down and orbiting, positioning at node, or geoset;
  • This comes with: In Render -> Cameras - You can now see the cameras inside the veiwport.
  • Also in Preferences added options for camera line color

new tab -> properties (instead of editing model properties from the model menu)

New tool -> Dependency Graph - this shows you visually which components are using which

seleciton:
  • finished the missing ability to select triangles with selection rectangle
  • Selecting in the viwport with selection rectangle is now more accurate - it reacts on vertices within frustrum.

23 december 2025

New commands:
  • Import > Select import from model... -> this lets you select which nodes, textures, materials, sequences, global sequences, texture animations to import from another model, with lists and checkboxes
  • in the right-click menu of sequences added 'set new end... (without editing keyframes)'
  • in the right-click menu of sequences added 'set new end... (with editing keyframes)'
  • in the right-click menu of sequences added 'set new range... (with editing keyframes)'
  • in geosets > ... > visibilities > show me order of appeareances... (inspection)
  • in textures > material and layer > "Clear and layers and create layer with this texture for the selected material"
  • In Geosets > Animator > Animate: Added a grid-like timeline for easier access and change of keyframes. Now also includes geoset visibilities. And other changes around that timeline , the lists and the animation process. Revisited the calculation of the animated position of the model and the rendering.
  • In geosets > Attachment > command "attach each geoset to its own bone"
  • in triangles > command "flip normal"

Changes:
(UI+Functionality) The window for editing visibilities now ALSO allows you to edit ENDS.
(UI) In geosets added a button below the list 'visibilies' which calls the window to edit visibilities. its just a second slightly faster way to access it.
(UI) in model browser added right-click copy path to clipboard
(UI) Some changes on the right-click menu in Nodes
(UI) Collision shape editor window -> copy and paste buttons
(UI) in model browser - you can now copy path to clipboard
(UI) double-clicking in geoset animations now opens the alphas, in adition to the button
(UI) in nodes-> the right panel now contains field for fast renaming and a button to delete
(UI) added checkbox to enable/disable node dragging in the node tree
(UI) in geosets' material selection menu, the tooltips of the textures now have pictures
(inspection) to the left of the listbox of textures -> it shows how much layers and materials use it
(inspection) to the left of the listbox of materials -> info which geosets use it
(inspection) in the lists of materials, textures and texture animations, those who are unused will be colored in gray
Viewport - swapped the rotation directions of the camera when rotating the view with the mouse
Geosets > changed the way geosets in the list are accessed. This is to avoid exceptions after deleting some of them.
changing material no longer refreshes geosets list...
  • modifying the selection in the viewport now will dynamically update the XYZ input fields (similar to MDLVis)
  • update on some normal editing commands
Fixes:
  • the app no longer renames event objects when opening a model. (their name IS their data)
  • Duplicating an event object also does not change the name of an event object now
  • the button [Delete] now works for deleting vertices and triangles in the vieport when its tab is selected
  • (UI) a new programmatical approach to generating overlay grid that does not cause app lag
  • (UI) the window for changing material of a geoset now selects the currently used material when opened.
  • (UI) in info, vertices are not displayed twice
  • in triangles - [detach as new geoset] and its variations are FIXED
  • importing geoset > now attaches to the selected bone as expected.
  • Changing a material of a geoset no longer refreshes the list of geosets
  • Merging geosets now preserves all attachments (fix)
  • when geoset are refreshed, check states are preserved now

Undo/Redo:
you can now undo/redo sequences and textures.
you can undo/redo deleting a geoset from the [...] menu. When a geoset is deleted, it is just marked as deleted and hidden for the lifetime of the app. If you save and reopen, it will be gone forever.


IN FUTURE UPDATES:
  • undo/redo for other components
  • improements on the timeline



  • advanced search for model browser and texture browser
  • fixed a bug with saving deleted geosets in mdx and related


  • Fix for edit visibilities of geosets
  • Fix for merge geosets - unassigned groups
  • - refresh render data after importing geomerge (minor fix)
  • when selecting more than 1 geoset in the list of geosets, now the 'material' button changes color to green or default to show if they use the same material
  • Fix for 'duplicate sequence' (working)
  • transformation editor can now display and edit tangents
  • in nodes' context menu => copy + paste (only basic - names, hierarchy. No tags, no data.)
  • Fix for transformation editor: 'edit value' now updates color





Demonstrations

If you want to make your own app for read/write warcraft 3 models:
1. Download and install visual studio
2. start a C# project (console or WPF or Winforms or anotehr GUI framework)
3. from this bundle copy MDXLIB.DLL to your project's folder at <project>/Bin/Debug/<build folder>/
4. in visual studio while the project is open, on the right side of the screen where the solution explorer is, right-click on the project name > Add > Reference > Browse for MDXLIB.DLL you just copied
5. When mdxlib.dll appears in the list with a checkbox, check the checkbox, then click OK
6. The reference is added and you can now save/load models.
7. open your main .cs file and at the top of the document add "using MdxLib.Model;"
8. to create an empty model, in your main class write Cmodel model = new Cmodel();
9. You can copy this Class for Save/Load warcraft 3 models with MDXLIB - Pastebin.com class your project and use it to save/load models.

Specifics about working with the library:
to assign a component to another component, you don't write "=", you use ".Attach();".





Older version from december 2024 click


Made with C# .NET3.5 / 5.0, WPF, Visual Studio 2022
Contents

Tuner's MDLX Batch Converter (Binary)

Tuner's Raw Editor v1.0 (.NET 5.0) (Binary)

War3 Model Tuner 1.4 (.NET5.0) (Binary)

Reviews
eejin
Useful with many options. It would be great to have some UX improvements. Some things I've noticed The 3D view does not maintain aspect ratio and stretches when I resize the window There are many many optimization options. Perhaps all safe options...
So many useful functions, need to check it out!

If you'd like a command added, comment.
I'm very glad you're open for suggestions! 👍

That would be nice to have an option for a list of animations to work with visibility of a certain Geoset, e.g.:
300: 1
1536: 0
2558: 1
4800: 1
A full list from the beginning till the end because Magos makes it shorter and you have to write things by hand 🙂
(Usually I use a workaround - to get the list I copy a certain Geoset with its visibility via RMS and then open it in Magos and get its full sequence list.)

It is also hard for Magos to find a certain Geoset Animation, while you can right-click on a Geoset and it's position and also its Material layer will get highlighted, the Geoset Animations won't. If there's a way to open a model after you opened it in Magos, get the same numbers and see a list with what Geoset Animations refer to what Geosets? Or could this me done in Magos? :grin: At least people like me and Vinz sometimes suffer from this as you can have like 20 geoset animations in one model, eh.

Huge thanks in advance!
 
Last edited:
Special thanks for the function with normals, I think many will be very happy ✨

Tested the stuff: seems that recalculation does split normals 😔
Снимок экрана 2024-12-26 161707.png
Снимок экрана 2024-12-26 161800.png

This function is just top notch, I've never seen something easier for editing the visibilities, great work 🤘
Снимок экрана 2024-12-26 161449.png
It's very handsome that you highlight the geosets, here I only could wish to make the viewer have a bigger scale:
SE_bell1.gif
Because huge portrait backgrounds or other big stuff will limit the scaling.

I also wanted to draw attention to the selection of Geosets:
SE_bell2.gif
When you want to see something from behind, in this case the back of the head, the viewer resets the camera angle.

Another UI issue is that you cannot see the full Node list when you open the full list of functions:
SE_bell3.gif
When you run some of the functions the only way to get back to the full Node list is to use (scroll) your mouse wheel.

In the Textures tab it's hard to track what is what:
Снимок экрана 2024-12-26 165809.png
Seems that all IDs are set to 0 and you don't know what Material is based on what texture.

There's a sweet function that deletes duplicate Geo Animations:
Снимок экрана 2024-12-26 163746.png

I wanted to find a function that deletes duplicate Geosets. Am I missing it? If not, when added we can do without running MdlVis or dragging stuff into the MDLX Optimizer 👌

Probably a bug: 'Check for errors' function in the Inspector tab makes the app crash.

I'll keep looking through the other stuff when I have time, I hope that my feedback will help you 🤝
 
Last edited:
I don't quite understand it, but if Villagerino likes it I'm downloading it just in case I need it. ^_^
If you understand warcraft 3 models and the editor of magos you would understand this tool. Like any other experienced modeler on this site.
 
Love the new stuff in 0.8 and 0.9, especially removing overlapping faces (I believe they are triangles 😀), work with normals (gonna check this highly useful thing when have time 👌) and set all geo animations as one specific (helps setting the visibility much, much faster in simpler models - using this in Retera), good job, thanks for your effort 👍
 
Since this is using Magos code from 2008, although I haven't spent a lot of time looking into all the features of this tool yet and I'm just adding a reminder in passing, are you able to confirm if this has the same bugs as other Magos based things such as:
  • Changing the name of "length" to "width" and vice versa when opening MDX and saving as MDL
  • Sometimes causing light intensity to bounce to an infinite value in some cases (maybe)
  • Issues when reading certain models with multiple different TVertices (UVAS) chunks on the same surface. (Volcano spell effect destructable model, Cliff Cave doodad, etc)
  • Flipping (or failing to flip) the RGB versus BGR of animated color data (geoset animations)
I'm just mentioning this because in my case, I don't think that I would entrust my work to the Magos War3ModelEditor program typically due to issues like these if I was working on a model, because it would be constraining the parsing and handling of the file to have bugs from 16 years ago that generally weren't fixed during that time.

If you want to convert MDX<->MDL and back to look for errors in the Magos code and perhaps fix that code, one good way to do this would be to use the official Blizzard code for the conversion process. That way, every MDX is guaranteed to create a fully equivalent MDL that will reproducibly generate the same MDX when converted back. Because I already had the official converter available to me from 2004 onwards, by the time 2012 rolled around and I wrote my own custom software for processing models and converting and such, I tended to build my code to expect .mdl extension files to be in the Blizzard format instead of the Magos format. Ideally, there should not be two formats. "Length" should only have one meaning, etc. Until these kind of bugs are fixed, I wouldn't personally write software using Magos's code knowing how many issues it has. But, obviously if you're okay with a certain lower standard and Magos code generating various errors or inconsistencies in files, sometimes it's possible to live that "don't know, don't care" lifestyle and use files that are "good enough" even if they have problems.
 
@Retera

I knew an older library would have bugs, I didn't know what they are, someone had to tell me.

  • Yes, i saw now that loading MDX file (not for mdl) swaps emitter2's Width and Length if they are static.
  • thats why there is clamp attentuations in the app. You mean the library saves as that? That "maybe" would mean it happens in rare cases for unknown reasons.
  • i dont know what "having multiple texture coordinate chunks on the same surface" mean. Sounds like this shouldnt be valid as there is one texture coordinate per vertex. Do you mean that the list of texture coordinats in the file is longer than the other lists, before combining the lists into vertices? no wait, that would throw an error... i dont know
  • I believe that flipping of RGB is done by the developer not that library? the color is initially normalized BGR. So far i havent had issues with colors

Dont make is sound worse than it is, the inconsistensies are not that much.

Kinda suspicious that you "always" had access to official Blizzard code. Are you an ex employee or have direct relations to Blizzard?
 
Last edited:
Dont make is sound worse than it is, the inconsistensies are not that much.
I simply do not want any inconsistencies. Whether that is "worse than it is" or not is a matter of personal preference. There is not anything that would validate my opinions, since they are only opinions, but I'm also not certain that anything would make them invalid. (Nevertheless I thought it might be worthwhile to mention the technological issues, in case you have access to fixing them or if it might motivate you to use a newer library.)

this shouldnt be valid as there is one texture coordinate per vertex.
My definition of what is valid and what is not is something I try to only base on the game contents. To that end, some models have multiple texture coordinates per vertex. The Volcano and the Cliff Cave are examples of this. The volcano even includes independent moving surface texture animation applied to the different texture coordinates independently, but all on the same vertex. But as you have pointed out, caring about that could be considered something that sounds "worse than it is," since any model author could simply declare, "I shall not care about the Volcano ability art nor the power to modify it!" and then using Magos technology is great and fine.

Kinda suspicious that you "always" had access to official Blizzard code. Are you an ex employee or have direct relations to Blizzard?
I am not. Anyone can access this. A hacker named YobGul created a basic GUI app that converted between MDX and MDL using some War3Beta DLLs and published it, probably on wc3c back in the day. When I was a small child, someone copied this YobGul file converter tool onto my computer and I played with it offline even before having access to the internet. So this is a matter of random circumstance and not a matter of direct relations.

However, a bunch of MDX/MDL tools were included in the recent Reforged Debug leaks, so I also mentioned it because I would imagine you might be able to use those tools in a manner similar to the YobGul converter.
 
Hello, I tried to launch this application but I got the following error message :
"To run this application, you must install .NET. Would you like to download it now?"
When I click yes, nothing happens.
From what I understand, I need to install a .NET runtime that I can manually download here: Download .NET Framework | Free official downloads

But I don't know which one I need. I tried 3.5 SP1, but nothing happened when I tried to run it (as admin, in compatibility mode...).
 
Hello, I tried to launch this application but I got the following error message :
"To run this application, you must install .NET. Would you like to download it now?"
When I click yes, nothing happens.
From what I understand, I need to install a .NET runtime that I can manually download here: Download .NET Framework | Free official downloads

But I don't know which one I need. I tried 3.5 SP1, but nothing happened when I tried to run it (as admin, in compatibility mode...).
5.0
 
You metntioned that you can add features by request, any chance you can add a merge between bones and helpers?
yes, there is already merge for bone-bone, but i could add that.
As far as the other command 'merge similar bones' im working on it.

what do you want to do in merging process with transformations ? merge, erase, overwrite ?
What to do in case of parent-child relationships and conflicts ? merge, leave?
 
OK so it's a model editing program; nice. This begs the question, though: what sets this apart from Magos, MDLvis, or either of the RMS's? What is the use-case, and/or what deficiency in the others are you covering for with your work here?

/edit/ To be clear, this isn't an accusation or a negative comment. I'm honestly curious. (personally, I use Magos for a lot, but MDLvis has better controls & UVWrapping, while RMS does all that + can import animation sets + other stuff. So they have different functionalities, reasons people might want to use one over the other).
 
Last edited:
OK so it's a model editing program; nice.
I don't like your dismissive tone
This begs the question, though: what sets this apart from Magos, MDLvis, or either of the RMS's? What is the use-case, and/or what deficiency in the others are you covering for with your work here?

/edit/ To be clear, this isn't an accusation or a negative comment. I'm honestly curious. (personally, I use Magos for a lot, but MDLvis has better controls & UVWrapping, while RMS does all that + can import animation sets + other stuff. So they have different functionalities, reasons people might want to use one over the other).
if you are so curious then you should make the comparisons by yourself by inspecting all the description and trying the app instead of expecting information to be hand-fed to you.
 
Last edited:
You are responsible for documenting and explaining the functions of your program.
1. There is written explanation of features, screenshots and videos, and a changelog. Plenty already. Functions inside have tooltips and there is 'help' menu
2. Your 'poor' rating is definitely not a fair reflection of the effort put into this project
3. It's not your job to intervene in other conversations.
You are the one having a dismissive and quite gross tone.
I am not dismissive or gross, I am addressing his lack of effort
 
I don't like your dismissive tone
I'm sorry if my initial post seemed dismissive; I tried to edit in a disclaimer to soften it.

You have done a lot of documentation already, and I was essentially asking you to compare-contrast with other programs, to 'sell me' on this one. If you don't want to, that's fine. If so, it's nothing personal, but I'll probably not have the time to check it out myself (honestly still waiting to dig into RMS & I've known about that one for years, lol), so I wish you luck.
 
Sadly I have problems installing it, it couldnt read some war3.patch but I picked the fitting one
Or does it require newer warcraft cos Im on 1.26 rn
It works on 1.26a for me, and another user mentioned it also works on 1.28.5.
The issue might be with the war3net library, which I'm using but didn’t develop myself — so I don’t have full control over its compatibility.
 
Last edited:
Useful with many options. It would be great to have some UX improvements.
Some things I've noticed
  • The 3D view does not maintain aspect ratio and stretches when I resize the window
  • There are many many optimization options. Perhaps all safe options could just be done by default and not shown to simplify it
  • The used theme is a very old and visually busy theme. Either the default newest Windows theme or a simpler color scheme would ease the eyes and make things clearer.
  • I can't undo the Align -> X Y Z actions
  • Warcraft 2.x support would be great. Right now users need to have the older MPQs on their system
 
Useful with many options. It would be great to have some UX improvements.
Some things I've noticed
  • The 3D view does not maintain aspect ratio and stretches when I resize the window
  • There are many many optimization options. Perhaps all safe options could just be done by default and not shown to simplify it
  • The used theme is a very old and visually busy theme. Either the default newest Windows theme or a simpler color scheme would ease the eyes and make things clearer.
  • I can't undo the Align -> X Y Z actions
  • Warcraft 2.x support would be great. Right now users need to have the older MPQs on their system
thanks for the review, i've fixed the aspect ratio issue and optimization options can expand now. Undo/redo is coming at some point. For Reforged i'll see in the future if i can achieve it.
 
Since this is using Magos code from 2008, although I haven't spent a lot of time looking into all the features of this tool yet and I'm just adding a reminder in passing, are you able to confirm if this has the same bugs as other Magos based things such as:
  • Changing the name of "length" to "width" and vice versa when opening MDX and saving as MDL
  • Sometimes causing light intensity to bounce to an infinite value in some cases (maybe)
  • Issues when reading certain models with multiple different TVertices (UVAS) chunks on the same surface. (Volcano spell effect destructable model, Cliff Cave doodad, etc)
  • Flipping (or failing to flip) the RGB versus BGR of animated color data (geoset animations)
I'm just mentioning this because in my case, I don't think that I would entrust my work to the Magos War3ModelEditor program typically due to issues like these if I was working on a model, because it would be constraining the parsing and handling of the file to have bugs from 16 years ago that generally weren't fixed during that time.

If you want to convert MDX<->MDL and back to look for errors in the Magos code and perhaps fix that code, one good way to do this would be to use the official Blizzard code for the conversion process. That way, every MDX is guaranteed to create a fully equivalent MDL that will reproducibly generate the same MDX when converted back. Because I already had the official converter available to me from 2004 onwards, by the time 2012 rolled around and I wrote my own custom software for processing models and converting and such, I tended to build my code to expect .mdl extension files to be in the Blizzard format instead of the Magos format. Ideally, there should not be two formats. "Length" should only have one meaning, etc. Until these kind of bugs are fixed, I wouldn't personally write software using Magos's code knowing how many issues it has. But, obviously if you're okay with a certain lower standard and Magos code generating various errors or inconsistencies in files, sometimes it's possible to live that "don't know, don't care" lifestyle and use files that are "good enough" even if they have problems.
Where can I get a copy of "the official Blizzard converter"?
 
Wanted to get rid of repeaty keyframes, got the latest version and saw this Oo Seems the TC material layer gets on top. Maybe I have a viewer's thing unticked somewhere?

1773226719776.png


And also wanted to ask, if it's nessesary for the model to have closing keyframe? Because If you have starting keyframes the animation will repeat anyways, like you can delete them in RMS and nothing will happen.
 
Back
Top