• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Retera's Model Studio

This bundle is marked as director's cut. It exceeds all expectations and excels in every regard.
This is Retera's Model Studio v0.04 Public Beta. It is not finished! But it is something that works and is better than the Matrix Eater application, and is compatible with Patch 1.32.

Retera's Model Studio is the second evolution of the Matrix Eater project. It is a standalone MDL and MDX model editor. The project has diverged from the Matrix Eater that is available here on the Hive, and become a different program with features that do not totally overlap -- although my goal is for this to entirely replace the Matrix Eater.

Features:
  • Open and view MDL and MDX model files
  • CASC Data browser with double-click to view model, or texture, using JCASC from DrSuperGood
  • Attempts to support every single Warcraft III Patch up to and including Patch 1.31
  • MPQ Data browser seamlessly replaces CASC browser when using older patches of the game
  • 24 color "Team Color" menu will seamlessly swap to 12 colors when using an older patch of the game
  • Edit the model geometry (Select by Vertex, Select by Face, Select by Group)
  • Editor hotkeys that were not present in the Matrix Eater predecessor (QWER for edit mode, ASDF for select mode)
  • Control which Geosets are editable at one time
  • Animation Previewing (No particles or ribbons yet)
  • An "Open Internal" menu for loading game models quickly
  • Can open and save MDX to MDL or MDL to MDX using a converter that supports features such as ReplaceableId on Particle Emitters better than some alternatives
  • Includes a basic UV map editor
  • Multiple GUI themes available in the Preferences Window
Experimental Features:
  • Create a new blank model with basic planes and boxes
  • Can open BLP or PNG images for previewing (similar to Magos application)
  • Includes an Edit Textures menu to view the list of used textures, and quickly change used paths.
  • Quick Browse: Opening a new model in the Data Browser will close unsaved old ones (can be turned off in preferences)
  • Customizable layout, allowing you to draw components of the UI into different places
  • Window -> Reset Layout to reload the default layout
  • T-Pose edit mode, which can move mesh based on assigned bones in a more intelligent way
  • Cluster selection mode, similar to Group mode but using connected mesh rather than assigned VertexGroup
  • Animation edit mode, which can edit and modify animations (Warning: uses Hermite and Bezier by default, and inserts incorrect inward and outward tangents that will cause visual "vibrations" of nonlinear models in some cases, this is a fixable bug, needs more time)
  • Hive Browser is a feature that does not work and was added only as a UI mockup to discuss technology, and was included by accident in V0.01. It will be removed in V0.02, as to my knowledge, the required server technology for the hypothetical feature to work was not built.
Limitations:
  • Unlike Matrix Eater, this application cannot pin a Geoset to be visible but not editable
  • Unlike Matrix Eater, this application gives no indication of a node's name graphically in the 2D editing space
  • No user interface to control mounting system for MPQ/CASC hybrid loading system, so it will break again in Patch 1.32 or whenever Blizzard moves data once again
  • Inherits WC3 cached install directory information from Matrix Eater, which can be removed in the case of incompatibility and is located at C:\Users\<name>\AppData\Roaming\JWC3\user.profile
  • After running this application, configuration settings from the Matrix Eater application may become corrupted and not work correctly, causing strange white background errors (This application will not be affected)
Required for running Retera's Model Studio:
  • A Java SE Runtime Environment. A bundle is included with a Windows 64-bit EXE launcher but if you want the application to run on Linux or Mac then you must install the Java SE Runtime Environment separately.
  • The above statement means that if you are a 32-bit Windows XP user, the EXE application will not function (only tested with Windows 7 64-bit, and Windows 10 64-bit)
  • A valid Warcraft III Installation (only tested with Patch 1.22 through Patch 1.31)
Additionally bundled applications (main methods in the same Java application included as EXE files):
  • Includes the AnimTransfer EXE that was previously included with Matrix Eater, which will use the Retera Model Studio MDL and MDX parser, which has significant subtle improvements over the one in the Matrix Eater application thanks to contributions from Ghostwolf.
  • Includes the ObjectEditor EXE shown in YouTube videos that has custom folders based on unit race, and can be opened multiple times simultaneously and can select, copy, and paste multiple Units between two running instances of the software. (Known to have bugs, requires Windows Clipboard, fails on Linux)
  • BlpConv EXE that can be used to convert TGA to BLP using DrSuperGood's blp-iio-plugin on systems where Magos or BLP Lab are not working (although these two alternative tools are typically superior to mine)
v0.04.2b
  • Fixed a bug in "Edit/delete model components" reported by Hive user @Makkad (retains FaceFX chunks now)
v0.04.2
  • Tiny change requested by discord user VictorZ that allows "Rotate Type-In" to work in the Animation Editor. (The code for this was copied almost directly from the Twilac version of 0.05, so you should seriously probably just use 0.05!)

v0.04.1
  • Opening a file in a folder does not walk the directory tree of that folder
  • Scripts -> Skin Splice function added upon request from Vulfar
v0.04 for 1.32.10
  • Fixes the program to work with the new Warcraft III Patch 1.32.10 that changed the TFVS formatting for some reason.
  • Includes some really minor internal bug fixes over the previous version
v0.04:
  • Merged the version known as "Retera Model Studio Reforged Hack" to be the mainline version of the tool going forward (this version includes all of the fixes listed here)
  • Added support for Reforged assets and a bunch of bug fixes related to working with those
  • Added "Scripts -> Assign FormatVersion 800" to convert Reforged Classic Models to the legacy classic model format, as well as "Scripts -> Assign FormatVersion 1000" to convert legacy game client models to match the format used by the "Classic Graphics" of Reforged.
  • Added a "Reforged Graphics Mode" and "Classic Graphics Mode" in the data sources chooser panel
  • Added the "Model" tab which is buggy and unfinished
v0.03:
  • Changed the program to use Java 11. Had trouble exporting the JAR from Eclipse, so I changed it back to Java 8 for now.
  • Changed the program to use the latest version of DrSuperGood's JCASC, which requires Java 11 to use, then I modified his code so that it did not require Java 11 so that we could continue deployment in the previous fashion.
  • Changed the startup sequence to use a "data source chooser" view, which is also available in Preferences. This allows users to load CASC or MPQ data in a way that is intended to be straightforward and clear to the user, and for CASC data the user able to choose the locale to load from the game. Locales that are present in the CASC's list but have not been downloaded from Blizzard are shown in dark red. These dark red options won't work until you launch Warcraft III at least one time using that locale.
  • Changed the startup sequence to return the user to the "data source chooser" any time that the program crashes during startup, so that the user is always able to reconfigure their settings.
  • Changed the model previewer to include the rendering of Particle Emitters, so that users can have a better feel for how their models might look in-game. This is a nontrivial task that involves many hundreds of lines of code replicating the behavior of the game and it was only possible because of the works of Ghostwolf, which I translated nearly directly from JavaScript into Java.
    • "Squirt" mode particles will emit at random times when they should not because of a difference between my code and Ghostwolf's code (his does not have this bug).
    • Also, priority plane and layering are known to have issues.
  • Added a JSON parser that loads the "filealiases.json" data when using CASC. This file is used by the 1.30 and 1.31 clients to support removed legacy files inside the Warcraft III game, and it will now be supported by the Retera Model Studio when viewing models. This will fix missing textures in some instances when the textures were not missing in-game.
  • Changed the default application data folder to be named "ReteraStudio" instead of "JWC3". This change removes bad interactions with the "Matrix Eater" application where the "Retera Model Studio" and "Matrix Eater" would write clashing versions of the same data to the same settings file (see "AppData/Roaming/ReteraStudio" on your computer).
    • This will cause a reset of all user settings for the Retera Model Studio version v0.03.
    • If you wish to avoid a settings reset, copy your settings file from "AppData/Roaming/JWC3". However I do not promise backwards compatibility.
  • Fixed an issue with the Quick Browse option so that turning it off and on will work correctly.
  • Added a scroll bar to the "Change Animation Lengths (by Scaling)" popup. (Thanks Mythic!) This popup is now listed under the "Scripts" menu.
  • Added 3 new GUI Themes: HiFi, Acryl, and Aluminium. These are all from the JTattoo library. Also, the "Dark" theme was technically the "Noire" theme from the JTattoo library, and it has been renamed accordingly. Aluminium is now the default theme (this can still be changed in the Preferences Window).
  • Changed code in the BLP loading pipeline used for rendering models and icons that aims to avoid destruction of texture data that is beneath an alpha channel yet loaded on a model's surface regardless of the alpha channel. Previously visual artifacts were visible in some cases that were not in accordance with how the textures would display in the Warcraft III game.
  • Added an "Edit" button in the Time Bound Chooser panel, but it does not actually work yet and will be fixed in a future version.
  • Changed some code with the "X" button on the program and how closing model files functions, so that it should not be able to bug out and fail to close a model or fail to close the application in a way unexpected by the user.
  • Added a system in the 3D displays that compares the aspect ratios known to the application with the aspect ratios known to the graphics card that attempts to use this information to fix the renderer when used on desktops that have the UI Scale setting specified. This was tested on Windows 10 with the UI scale, and it still fails on multiple monitor configurations where the second or third monitor have differing UI Scale specified. However, it should always work correctly on the main display when previously it may not have worked correctly at all.
  • Added a Preferences option to disable rendering particle emitters, as well as a separate option to disable rendering particle emitters in the Editor view.
  • Changed the "Use Boxes for Pivot Points" option so that it also affects the 2D displays in the Animation Editor.
  • Changed the Right-Click mouse button not to do anything on the Outliner widget, so that it can popup an "Edit" option on a popup menu in a future version of the software.
  • Changed the code that converts program data to MDX at Save time, so that some models that previously would not save due to state corruption inside the Model Studio will now be able to save. There may be more similar bugs yet to be fixed.
  • Changed the SLK parser used to load Unit Data so that it should be able to load data from the Reign of Chaos and from Project Revolution, in case users wish to load that data using the new game data source choosing settings.
  • Changed the Unit Browser to reload its contents when the program data source is changed. Previously, the "View -> Change Game Directory" option was likely to change the internal setting but keep previously cached information in the Unit Browser.
  • Added a command line option, "-forcedataprompt" to force the program to start with the Data Source Chooser window, so that users can specify their Warcraft III game data source without launching the application.
  • Changed how missing textures resolve so that they should resolve to a white surface. This should hopefully remove the irritating popup.
  • Attempted to make the Perspective view constantly repaint itself to always update dynamically, however in practice this is still not working in some cases.
  • Changed the texture loader so that a default Tree texture will be loaded when the replaceable texture ID is not known. This does not yet help with previewing cliff models but it means that the Mountain Giant and similar models should preview decently.
  • Added a scroll bar to the Texture Manager shown with "Tools -> Edit Textures" for use on models with many textures
  • Reorganized some of the program menus to attempt to make them more logical (Based on some suggestions from Hayate, many thanks! If only this program could be updated as quickly as his mockup UI!) More changes to these may be added in a future version, as they are still rather disorganized.
    • The new "Scripts" is a place for one-off script utilities that don't fit anywhere else, and maybe be user modifiable to include custom code in the future. At this time, it is only a preset list.
    • "Scripts -> Export Animated to Static Mesh" is a new option to build snapshot models. Unfortunately, it only snapshots the currently timeline in the Editor view, not in the Viewer that you see when you start the application. Also, it discards all node information, including Billboarded nodes, so camera-centric planes will be left to face forward instead of the camera.
    • "Edit -> Optimize" now include an option to merge all geosets that share like materials and visibility that is called "Minimize Geosets". Misha and a few other users have been asking for this option for years. I have not tested it very extensively and there may still be bugs in it. It worked on one or two sample cases that I experimented with.
  • In v0.01/v0.02 I added an option in Program Preferences to allow loading Non-BLP textures, so that users can open a PNG file or a model that references a PNG file even though these are generally not valid MDX files when used inside the Warcraft III game. This option may have been changed in the newer one to fix bugs, according to some of my code history information.
  • Fixed a crash relating to parsing WTS files for unit data, such as when the Data Source Chooser is used to load a custom map file as an MPQ.
  • Changed "Error: A matrix's bone id was not referencing a real bone!" to be a console log line instead of a popup, so that users do not receive a spamming wave of popups when opening a model file.
  • Changed the model parser to accept models with missing Pivot Points (as the Warcraft III game does), so that the Retera Model Studio is able to open some MDX models that previously would have caused a crash popup.
v0.02:
  • Removed Hive Browser UI mockup that did not work
  • Wrapped the startup code in a block that will catch and display errors in a GUI
  • Fixed an issue where users who had never run the Matrix Eater application in the past would have the Retera Model Studio application crash the first time it was run
Personal note: On the Matrix Eater application, I left a note where I said:
I really wanted to revamp this program and add new features and write a tutorial before I uploaded it onto the Hive, but I just haven't had time recently, and I want to stop sitting on this updated version because it has several internal fixes that should make it less likely to save buggy MDX models and so I feel the community deserves this new version in case anybody is using the program -- regardless of whether I end up getting the time to improve it to match up with my dreams or not.

This application does not solve that concern of mine. I am not uploading this as a finished product. But as we have seen with Patch 1.31, some times, software is pushed into production when it isn't ready. That is the case with this application. I want more than I have. I just can't stand not to share with the community what I have anymore, because I feel a deep sense of guilt for anyone who is using the Matrix Eater application and forcing themselves to mod on Patch 1.26 or some nonsense, while the above application existed on my computer and has for almost a year.

I believe in the power of open source, and this application is entirely open source. I have been developing it for about two years since the Matrix Eater was posted, and it has evolved out of the same codebase. This is the same GitHub link that was included on the Matrix Eater program, but it now contains the source for Retera Model Studio:
Retera/JWC3
Previews
Contents

Retera Model Studio 0.04.4m (For Patch 1.33) (Binary)

Retera's Model Studio 0.4.5j (Experimental) (Binary)

Reviews
Archian
If it wasn't for this tool, Reforged Modeling wouldn't have become what it is today. In recognition of this, the Hive Administration team awards Retera's Model Studio a Director's Cut status. @Retera
Level 3
Joined
Nov 21, 2016
Messages
18
i cant make this application run, when i run both .exe and .jar file , nothing happens , the OS is windows 10 64bit, latest java installed
same thing, running .exe file does notning, attempt to run .jar from command line tool produces following ouput. i think it's related to locale since im using russian wc3

Code:
C:\Games\Warcraft III Modding\Tools\ReterasModelStudioV0.02\jre\bin>java -jar "C:\Games\Warcraft III Modding\Tools\ReterasModelStudioV0.02\ReterasModelStudio.jar"
C:\Games\Warcraft III\ appears valid
java.nio.file.NoSuchFileException: C:\Games\Warcraft III\war3.mpq
        at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.loadMPQ(MpqCodebase.java:315)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.<init>(MpqCodebase.java:81)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.get(MpqCodebase.java:402)
        at com.hiveworkshop.wc3.gui.BLPHandler.getGameTex(BLPHandler.java:121)
        at com.matrixeater.src.MainPanel.<init>(MainPanel.java:1165)
        at com.matrixeater.src.MainFrame.<init>(MainFrame.java:216)
        at com.matrixeater.src.MainFrame$1.run(MainFrame.java:201)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$400(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
java.nio.file.NoSuchFileException: C:\Games\Warcraft III\war3x.mpq
        at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.loadMPQ(MpqCodebase.java:315)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.<init>(MpqCodebase.java:82)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.get(MpqCodebase.java:402)
        at com.hiveworkshop.wc3.gui.BLPHandler.getGameTex(BLPHandler.java:121)
        at com.matrixeater.src.MainPanel.<init>(MainPanel.java:1165)
        at com.matrixeater.src.MainFrame.<init>(MainFrame.java:216)
        at com.matrixeater.src.MainFrame$1.run(MainFrame.java:201)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$400(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
java.nio.file.NoSuchFileException: C:\Games\Warcraft III\war3xlocal.mpq
        at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.loadMPQ(MpqCodebase.java:315)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.<init>(MpqCodebase.java:83)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.get(MpqCodebase.java:402)
        at com.hiveworkshop.wc3.gui.BLPHandler.getGameTex(BLPHandler.java:121)
        at com.matrixeater.src.MainPanel.<init>(MainPanel.java:1165)
        at com.matrixeater.src.MainFrame.<init>(MainFrame.java:216)
        at com.matrixeater.src.MainFrame$1.run(MainFrame.java:201)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$400(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
opening info
extracting build configuration key
opening configuration
opening store
mounting VFS
getting all paths
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\campaignabilitystrings.txt : 31608 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\campaignunitstrings.txt : 15305 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\campaignupgradestrings.txt : 1871 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\commandstrings.txt : 14876 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\commonabilitystrings.txt : 3807 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\humanabilitystrings.txt : 25946 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\humanunitstrings.txt : 7745 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\humanupgradestrings.txt : 4717 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\itemabilitystrings.txt : 18788 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\itemstrings.txt : 30199 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\neutralabilitystrings.txt : 112826 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\neutralunitstrings.txt : 37262 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\neutralupgradestrings.txt : 281 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\nightelfabilitystrings.txt : 31281 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\nightelfunitstrings.txt : 8322 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\nightelfupgradestrings.txt : 5119 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\orcabilitystrings.txt : 26851 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\orcunitstrings.txt : 6349 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\orcupgradestrings.txt : 4704 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\undeadabilitystrings.txt : 31364 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\undeadunitstrings.txt : 7017 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\undeadupgradestrings.txt : 4506 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v0.w3mod\\units\\unitglobalstrings.txt : 98 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\campaignabilitystrings.txt : 31608 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\campaignunitstrings.txt : 39205 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\campaignupgradestrings.txt : 1871 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\commandstrings.txt : 14876 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\commonabilitystrings.txt : 3807 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\humanabilitystrings.txt : 25946 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\humanunitstrings.txt : 10218 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\humanupgradestrings.txt : 5970 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\itemabilitystrings.txt : 18788 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\itemstrings.txt : 69768 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\neutralabilitystrings.txt : 112826 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\neutralunitstrings.txt : 69066 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\neutralupgradestrings.txt : 281 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\nightelfabilitystrings.txt : 31281 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\nightelfunitstrings.txt : 11101 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\nightelfupgradestrings.txt : 6390 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\orcabilitystrings.txt : 26851 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\orcunitstrings.txt : 10344 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\orcupgradestrings.txt : 6244 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\undeadabilitystrings.txt : 31364 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\undeadunitstrings.txt : 9839 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\undeadupgradestrings.txt : 5721 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\custom_v1.w3mod\\units\\unitglobalstrings.txt : 98 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\campaignabilitystrings.txt : 31608 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\campaignunitstrings.txt : 15307 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\campaignupgradestrings.txt : 1871 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\commandstrings.txt : 14876 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\commonabilitystrings.txt : 3807 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\humanabilitystrings.txt : 25946 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\humanunitstrings.txt : 7769 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\humanupgradestrings.txt : 4596 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\itemabilitystrings.txt : 18788 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\itemstrings.txt : 31047 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\neutralabilitystrings.txt : 112826 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\neutralunitstrings.txt : 37162 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\neutralupgradestrings.txt : 281 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\nightelfabilitystrings.txt : 31281 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\nightelfunitstrings.txt : 8322 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\nightelfupgradestrings.txt : 5106 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\orcabilitystrings.txt : 26851 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\orcunitstrings.txt : 6343 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\orcupgradestrings.txt : 4648 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\undeadabilitystrings.txt : 31364 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\undeadunitstrings.txt : 7017 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\undeadupgradestrings.txt : 4469 : no
\war3.w3mod\\_locales\\enus.w3mod\\_balance\\melee_v0.w3mod\\units\\unitglobalstrings.txt : 98 : no
\war3.w3mod\\_locales\\enus.w3mod\\config.txt : 1675 : no
\war3.w3mod\\_locales\\enus.w3mod\\customkeyinfo.txt : 5518 : no
\war3.w3mod\\_locales\\enus.w3mod\\customkeyssample.txt : 60407 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\campaignstrings.txt : 6753 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\campaignstrings_exp.txt : 6587 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\chathelp-war3-enus.txt : 9630 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\helpstrings.txt : 3791 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\machelpstrings.txt : 3879 : yes
\war3.w3mod\\_locales\\enus.w3mod\\ui\\macstrings.txt : 1951 : yes
\war3.w3mod\\_locales\\enus.w3mod\\ui\\macworldeditstrings.txt : 2123 : yes
\war3.w3mod\\_locales\\enus.w3mod\\ui\\miscui.txt : 6440 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\newaccount-enus.txt : 527 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\termsofservice-enus.txt : 19581 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\tipstrings.txt : 12006 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\triggerstrings.txt : 248449 : yes
\war3.w3mod\\_locales\\enus.w3mod\\ui\\war3skins.txt : 44353 : yes
\war3.w3mod\\_locales\\enus.w3mod\\ui\\worldeditgamestrings.txt : 18437 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\worldeditlicense.txt : 14132 : no
\war3.w3mod\\_locales\\enus.w3mod\\ui\\worldeditstrings.txt : 451440 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\campaignabilitystrings.txt : 31609 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\campaignunitstrings.txt : 39205 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\campaignupgradestrings.txt : 1871 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\commandstrings.txt : 14872 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\commonabilitystrings.txt : 3807 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\humanabilitystrings.txt : 26094 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\humanunitstrings.txt : 10323 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\humanupgradestrings.txt : 6157 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\itemabilitystrings.txt : 19037 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\itemstrings.txt : 69958 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\neutralabilitystrings.txt : 113153 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\neutralunitstrings.txt : 69119 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\neutralupgradestrings.txt : 281 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\nightelfabilitystrings.txt : 31827 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\nightelfunitstrings.txt : 11052 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\nightelfupgradestrings.txt : 6336 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\orcabilitystrings.txt : 26857 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\orcunitstrings.txt : 10406 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\orcupgradestrings.txt : 6291 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\undeadabilitystrings.txt : 31743 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\undeadunitstrings.txt : 9884 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\undeadupgradestrings.txt : 5829 : no
\war3.w3mod\\_locales\\enus.w3mod\\units\\unitglobalstrings.txt : 98 : no
shuttting down thread pool
total path string count: 65126
running time to process all files: 0.421094733s
average process speed: 0.0B/sec
success
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at java.io.Reader.<init>(Unknown Source)
        at java.io.InputStreamReader.<init>(Unknown Source)
        at com.hiveworkshop.wc3.units.DataTable.readTXT(DataTable.java:378)
        at com.hiveworkshop.wc3.units.StandardObjectData.getStandardUnits(StandardObjectData.java:38)
        at com.matrixeater.src.MainPanel.getUnitData(MainPanel.java:1480)
        at com.matrixeater.src.MainPanel.createUnitEditorTree(MainPanel.java:1346)
        at com.matrixeater.src.MainPanel.createMainLayout(MainPanel.java:1328)
        at com.matrixeater.src.MainPanel.<init>(MainPanel.java:1204)
        at com.matrixeater.src.MainFrame.<init>(MainFrame.java:216)
        at com.matrixeater.src.MainFrame$1.run(MainFrame.java:201)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$400(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
 
Last edited:
@Drynwhyl I can confirm that the issue you posted here, and the issue affecting @terrio, are both because of locale, from everything that I understood.
In the code there is a place where I typed in "enus" but instead I need to let the user choose. I believe this will fix it.
I may also look and see if the game locale can be automatically determined
 
I am glad to see this is finally being released! I only had about 40 minutes to take a look at the program but already I am very impressed! I was not expecting animation support beyond playback, so that alone has made me very happy.

I haven't seen any catastrophic issues so far, but there are a few less significant issues that I have noticed.
  1. After using the Tools > Put together two animations... tool, the animation controller would not list the resulting animation, giving me no way to view my new animation. Same goes for the animation list in the Modeling menu when I am using Select Nodes and Animate. The new animation would, however, appear in the list of animations if I were to again use to Tools > Put together two animations... tool. In one instance, this list did update eventually after using the program for ten minutes or so. I am not certain what specifically caused it to update that time. At a later point, on another model, I had the same issue occur and the animation list did not update until I imported another model into the scene. I was able to reproduce this solution twice.
  2. Using the Tools > Put together two animations... tool, pressing the Cancel button still causes the program to proceed to the next dialog, forcing me to press Cancel three times to exit the tool. This is super minor but a small quality of life change that I would love to see dealt with.
  3. I find it odd that File > Show Controller brings up a panel labelled "Outliner." This is another very minor issue, but had I not used Matrix Eater previously, the lack of consistency between the naming may have made it less evident which panel this would manipulate. I also think this option should be pulled from the File menu and placed alongside the other options in Window > Views, which seem to be doing effectively the same thing but with other panels.
  4. Correct me if I am wrong, but I can see no way to reset the camera in any of the orthographic or the perspective views. It is relatively easy to move your camera so that your model is out of frame, or that the target point of the camera is off center in the perspective view, making it difficult to nicely orbit around the model. If you aren't careful and you, for example, have your camera positioned a fair distance in front of your model, making him appear small in the view, and then you zoom in to compensate, your model will be obstructed by the near clipping plane before you can zoom in enough to have the model fill the view. These are all, of course, caused by user error, but if you are new to the program and aren't very comfortable working in 3D space, these could be recurring issues. It is also standard, in my experience, in 3D modelling software to have the ability to fit your view to the selection or the visible model, centering the camera so that it pivots around an appropriate point and the model fills the view. If this is too difficult to implement, even to have the option to reset the camera to the default view you get when opening the scene would be nice.
  5. I would love to see more comprehensive hotkey options. Personally, I find A, S, D, F, G to be unconventional default hotkeys for the different selection types. What is default really doesn't matter terribly, but I would like to be able to change this. If it influences your decision making at all, 3D Studio Max uses 1, 2, 3, 4 for Vertices, Edges, Borders, and Faces respectively. Maya uses F8, F9, F10, F11 for objects, vertices, edges, faces.

Whether or not you are able to implement any of the above fixes and recommendations, I thank you for the release of this tool and I eagerly await to see how you improve it in the future. How far we have come from the early days of Warcraft 3 modding!
 

eejin

Tool Moderator
Level 12
Joined
Mar 6, 2017
Messages
221
A great tool with great promise too. Here is a list of some random things I noticed:

upload_2019-6-4_13-6-22.png

- The tiny blue bar for animation speed is awfully slim so kind of hard to drag

- Zooming by scrolling does not displace you into the right direction.
upload_2019-6-4_13-9-0.png

Zooming out from this position seems to move the camera upwards instead of only along the axis you are looking.

- There is some flicker on the model when looking through items on the menu bar.
- The option to display the axis and a ground plane would be nice
- Some of the buttons on the toolbar don't have a tooltip
- There is a lot of flicker when you first load a model or texture
- The default origin for the camera
- The open file/save file dialogs use the old Windows xp versions which are a pain
- Better size scaling for UI elements. When you fullscreen the application a lot of UI elements take up a lot more space than they would need.
upload_2019-6-4_13-22-19.png

Note the empty space on the left and right
- Cannot pan in the front/side/bottom view. My middle mouse button is broken (need to buy a new mouse) so I changed pan to the right button. Might be that it
- It seems to sometimes take a long time (4-6s) for the view to update after you change the mesh

But all these points do not stand in the way for an approval!
 
Level 3
Joined
Aug 17, 2009
Messages
33
Bugs:
- Animation Speed calculation seems wrong. Very fast transition from 100% to 98% and 50% to 48%
- Selecting Extended Primitives and Animation Nodes in the Modeling Drop-Down does nothing
- NullPointerException when loading a file which does not exist
- NullPointerException when exporting a texture but not selecting a texture
- When exporting a texture, it says no file type given even if one is selected from the dropdown. You manually need to type .jpg, and so on, even when changing the type. The dropdown does nothing.
- Vertex Selection in one view does not apply in another view until you hover over it.
- Add animation Death, etc. -> Overwrite -> Rotate the model with this new Death animation in the view -> IndexOutOfBoundsException and View does not respond until you change the animation.

Suggestions:
- Hotkeys for Modeling (G to move, R to rotate current plane, S to scale, E to extrude)
- Would be nice to see vertices even when in a different mode (select faces, groups, etc.)
 
Level 7
Joined
Jun 5, 2018
Messages
180
So this is the great project that combines Magus's, Mdlvis and Matrix Eater, as you promised yet, right? I have been waiting for it so long.

A great work, indeed. Maybe the greatest model editor that every one must have.

Continue this project, please!
 
Level 9
Joined
Sep 20, 2015
Messages
385
it works for me
try to install visual c++ and net framework the newest version
I tried but still nothing happens. I opened the task manager and when i open the object editor or the model studio a process appears, then a jawaw process apears and then they just disappear, like they close themselves for some reasons. The Blpconv and Animtransfer works just fine.....i don't really know what to do.

@Retera Please, can you help me?

Thanks
 
@Hawkwing @eejin @T3rm1n4tor
I really appreciate the reports of bugs and suggestions like this, and I'm going to make an effort to get them done. In the past week, my time has gone into other activities, but I haven't forgotten the upgrades I want to do on this project.

@BogdanKryskevich
Currently the best instructions for this program that I have made are my YouTube videos. They are of varying quality. Some are good, and others are not so good.
Below is an example of one. In this video, I still called the thing I was working on the "Matrix Eater", but as you will see, I was using this newer software, not the old one:
After this video was created, I added Window -> Reset Layout . In the video I incorrectedly claimed that such a function did not exist. It was true at the time, but since v0.01 this feature has been included.

@sonphamthe11H
The program can do exactly what you are describing, and I have done it multiple times, but it is not a supported feature and you have to build from source. I am not going to talk about that more because I don't care about it and it encroaches on being a violation of policy. It is an accidental side effect of the design that it became so easy to do. There is a function in the source called "loadMPQ", and the object editor loads SLK data. It's the same way that the official World Editor works, so you can generally do the same things with the official World Editor.

@yxq1122
Is this the great project that combines them all? It is and it isn't. I want more. I really want a lot, lot more. I only have the source code for Magos, Matrix Eater, and Ghostwolf's viewer -- not MdlVis. But when I think about what I want the program to be, sometimes I end up procrastinating, doing other tasks that aren't coding. Many times I end up thinking that I need to choose to be smarter and live through habits. I think that I need to make a habit of upgrading the code as a form of fun for myself -- rather than to pine for my grandiose ideas, which have not all been accomplished.

@terrio @Drynwhyl @Edusx @wc3neverdies
Below, I plan to outline what help I can give with debugging this issue. I have never experienced the issue myself, so I am still learning about what I will need to fix.
Regarding your suggestion @sonphamthe11H , I really do not think that installing visual C++ runtime and .NET framework will make *any* difference, to be honest.
This program is not written in C++ and it was not written using the .NET framework. Have you experienced an issue with the program where installing these things you suggested actually made a difference? This would only be possible if Java itself needed those, and was installed incorrectly. It's unlikely, but possible.

How is a Java Program Constructed?

The Java program, after it is written as code, becomes a JAR file. This is actually a ZIP file archive.
This ".jar" file is not very different from a Warcraft 3 ".w3x" map in some ways. Alone, the file is an archive of data and it cannot do anything. This is true of a ".w3x" and it is also true of a ".jar" .
To play a Warcraft 3 map, you need the Warcraft 3 game.
Likewise, to run a ".jar" you need a program called "java". Similar to how you can do "war3.exe -loadfile MyMap.w3x", you can also do "java.exe -jar MyJar.jar". The concept is pretty similar. It is an archive of data and scripts, and they can only be run by the interpreter program to run them -- they are not actually true computer code.

What you should understand about how this program is made to get it running (on any operating system)

ReteraModelStudio.exe is a tiny program that doesn't do anything. The actual model editor program and all of its code is inside ReteraModelStudio.jar, which is a ZIP file. We need to start a "java.exe" program running that is loading that ZIP file as the place to get its code data from, that is all and that is the only thing we must do. You can do that on any operating system.
I have run ReteraModelStudio and the code it grew out of on Ubuntu Linux, and I have run ReteraModelStudio on Gentoo Linux. I have run it on Windows 7 64-bit, and I have run it on Windows 10 64-bit. Once in my life, in the summer of 2012, I ran a previous version of the program on Windows XP 32-bit on a dying laptop, although it was very slow. I sent this model studio to a friend who uses MacOS in 2018, and he said it worked for him on MacOS also. But in each of these cases, we were not using ReteraModelStudio.exe -- we were using the JAR, where the real program is. Obviously the ".exe" file is only going to work on Windows.

ReteraModelStudio.exe is just a wrapper to launch "ReteraModelStudio/jre/bin/java.exe" that should be included with the download.

What I am saying here is that I included the Java runtime with the program. I'm not certain whether we are really supposed to do it that way, but the Java automatic updater is a tremendous irritation that is generally unnecessary and has made many users complain to me that they will never install Java no matter what, despite anything to do with how the language is used or what it can do. I do not have much interest forcing people to install the Java updater, especially if they do not want to. So I included all of Java in the download, to increase the probability that the program works for people who don't care about any of that and don't want to go through annoying Java installations.

When I double-click ReteraModelStudio.exe, nothing happens. What next?


So, once you know all of that, here are the steps to debug the program:
  1. Check your computer's operating system. If it is any 64-bit Windows, then generally the EXE should probably work as intended and we need to SKIP to Step 6. But if you are on 32-bit Windows, or Linux, or Mac, or something else, then you will not be able to use the EXE included. In that case, go to Step 2.
  2. Because your computer cannot use the EXE that is included, you must install Java. To do this, I usually Google Search "Install Java". If you do not like Google, it appears that the correct website is https://www.java.com (java DOT com) which is rather logical. Go to this website and install the Java application. The recommended version of Java to use for the Matrix Eater is Java 8. Originally, any new version of Java was supposed to be able to run older Java programs. If you code a program using Java 6 or Java 7, you can run that program using Java 8. From Java 9 and afterward, I think this backwards compatibility was broken. I do not believe this program would work on Java 9, Java 10, or Java 11, but I have not tested it more than possibly one time, when it did not work for me for a reason that I do not know.
  3. Using the Java application that you installed in Step 2, your computer should now be able to run "java" from the command line. On Linux or Mac, you can open this by searching for "Terminal Emulator" or "Terminal" or something related (per operating system) in your list of applications. On Windows, press Windows Key + R to open the Run box, and type "cmd" into the box. It does not need to be administrator.
  4. Regardless of your operating system if your installation of Java is successful, and you have opened the command line of your operating system, then you will be able to type "java -version" into the box, and it will print out something for you.
    upload_2019-6-9_22-32-11.png
  5. If the box tells you something such as java: command not found then this means that it did not install correctly. You could try restarting your computer. If this does not help, Google search how to run Java on your specific operating system. On some unusual versions of Linux, maybe you would need to type "/usr/bin/jre7/bin/java -version" or something similar. It might have a special location on Mac OS, if they do not install it naturally. This may depend how you install. On Windows XP or a weird Windows, in the worst case, you can probably type "C:\Program Files\Java\jdk8<versionnumber>\bin\java" instead. On any operating system, if you found and ran this program like we see above, it should show this version information. That means you found it.
  6. Find the folder where you downloaded and unzipped the program and its readme from the Hive Download button. In my case, this was in the Windows Downloads folder. I get a result like this:
    upload_2019-6-9_22-42-39.png
  7. Click on the folder location on the top of this window so that it becomes something that you can copy, and then press CTRL+C on the folder path so that now you have copied that location.
    upload_2019-6-9_22-44-13.png
  8. Open the command line. You may already have done this on Step 3 if you are using the non-standard process. On Windows, press Windows Key + R to open the Run box, and type "cmd" into the box. It does not need to be administrator.
  9. In your command line, regardless of operating system, type cd which is the special command to open a folder. Then press SPACEBAR. Then paste the clipboard contents that you copied on Step 7. On Windows, you can do this by doing either CTRL+V or Right Click in the black CMD window. If this does not work, right click on the top of the window and go to Edit -> Paste.
    upload_2019-6-9_22-47-25.png
  10. Now, at this point, the black window will contain something like "cd C:\Users\micro\Downloads\Reteras Model Studio\ReterasModelStudioV0.01". Go ahead and press the ENTER key.
  11. On Windows, you should now see this box give you back a prompt that is showing the folder you have typed. If this fails, it is possible that you copied the incorrect location on the computer. That is not a problem, just try again from Step 8 and make sure that you copy the correct location.
    upload_2019-6-9_22-49-25.png
  12. If you are doing the non-standard setup, then enter the name of the "java" program that you found in Step 4 or Step 5. If you skipped those steps because you are doing the standard 64-bit Windows setup, then enter into the box .\jre\bin\java but do not press enter.
  13. After entering the name of this java program, on the same line, type in -jar ReterasModelStudio.jar
  14. Now press ENTER. This should command the system to run the program in the debugging mode that will show additional information, and so the information that you see next will be very important for how to fix your setup.
  15. On a computer with a fresh install of this program that has never used the Matrix Eater application precursor, nor the Retera Model Studio, this presents me with a popup that asks me where my Warcraft 3 Installation is located. You can also give yourself this popup by deleting the config information in C:\Users\<Name>\AppData\Roaming\JWC3 even if you have used the program previously. On Linux or Mac, these temporary files are in your home directory in a dotfile folder called ".jwc3".
    upload_2019-6-9_22-54-37.png
  16. If you do not see the popup shown above, go to Step 17 for debugging. Otherwise, skip ahead to Step 20.
  17. The second most likely case, if you do not see the popup above, is that you might be on a computer where Warcraft III is not installed, or you only have installed the very latest version that no longer reports to the Registry where it is located. So, if you are using Patch 1.30 or newer (this might also affect Patch 1.29) or your Warcraft 3 installation was created in a nonstandard way, you might see the popup shown below. If not, skip to Step 19 to debug when Java is not working at all. If Java is working, you are generally guaranteed to see one of these popups, unless cached information was loaded from previous use of the Matrix Eater or from Retera Model Studio.
    upload_2019-6-9_23-6-31.png
  18. When you see this popup Error retrieving Warcraft III game directory... This is actually a very good sign. It means that you are well on your way to making the program work. When this happens, press OK. Now you will see the popup on Step 15, but you will see that I have no idea what to suggest to you, because my code could not find the Registry Keys for Warcraft III, so it will show some default folder that is not very useful. Enter the location of your Warcraft III installation that is NOT in My Documents and contains either "Warcraft III.exe" or "Warcraft III Launcher.exe" in this box. It is commonly "C:\Program Files\Warcraft III" or something similar.
    runprogram-gif.325018
  19. If the popup boxes do not appear, and Java is not working at all, then generally this will mean you have one of three problems.
    1. The first possible problem is if Java is not installed correctly at all, or you did you enter the location of java correctly. This will show some kind of error from the system and then it will do nothing else. Here are two examples of how this might look:
      upload_2019-6-9_23-22-41.png
      upload_2019-6-9_23-23-49.png

      Both of these errors shown above indicate that the Java installation is not valid. The first one means that the folder we typed does not even exist, and the second one means that the java we tried to use is not installed or is not valid. You should be able to fix this by revisiting Step 2.
    2. You might also get Error: Unable to access jarfile ReterasModelStudio.jar . If you see this, it means that the Java installation is good, but we did not type the correct name of the JAR that contains all of my program code. In the example below, I deliberately entered a mistake that says "ReteraModelStudio.jar" instead of "ReterasModelStudio.jar" and so I caused the error to occur.
      upload_2019-6-9_23-26-27.png

      There is also a second error that we might get with a good Java installation but where there is something wrong when it tries to find my code. This would occur if you had the wrong version of Java installed, in which case you might get an error like "Unsupported major.minor version 52.0". I get this error if I attempt to run the application using Java 6 (since it requires Java 8):
      upload_2019-6-9_23-31-3.png
    3. You might get some other weird bug -- such as something wrong with my code that I don't know about that is specific to your computer. In this case, you will see a big bunch of text starting with "Exception in thread" (similar to the version issue shown above, but in this case there will not be anything about UnsupportedClassVersionError). Generally, if you see the word Exception this indicates something is wrong with the code of the program that I wrote, even though Java is running correctly. Here is an example of what this might look like:
      upload_2019-6-9_23-35-21.png

      One possible culprit for this problem would be if you are using an operating system or hardware that the OpenGL code for rendering models does not support. Apart from running Java, there is special OpenGL code that I am using that tries to load immediately after the Java code starts up. At that point, it goes back to linking binary program code that is per-operating-system and can fail in ways specific to your computer, but it should report the reason for the problem with something such as UnsatisfiedLinkError or RuntimeException: Unable to extract LWJGL natives . Either of these would mean a failure in that subsystem for rendering 3D graphics. Generally, this uses the same LWJGL library for rendering 3D in Java that was used to build Minecraft. Another possible error like this would be when the program fails to find information in the game data, such as this failure to load the Unit Data SLK tables that occurs if I install the game in a different language (this should hopefully be fixed in Reteras Model Studio v0.03):
      upload_2019-6-9_23-54-7.png
  20. Press OK after entering the Warcraft III installation path, and the application should start. If it does not, report back on this forum what kind of output you receive in the black terminal window. Generally, that will be the most helpful way that you can tell me something that I can fix.
 

Attachments

  • upload_2019-6-9_23-9-16.png
    upload_2019-6-9_23-9-16.png
    35.1 KB · Views: 308
  • upload_2019-6-9_23-10-5.png
    upload_2019-6-9_23-10-5.png
    30.8 KB · Views: 344
  • runprogram.gif
    runprogram.gif
    119 KB · Views: 11,625
  • upload_2019-6-9_23-39-37.png
    upload_2019-6-9_23-39-37.png
    13.5 KB · Views: 324
Last edited:
Level 9
Joined
Sep 20, 2015
Messages
385
Hello and thanks you for your reply. I followed the stpes but i have a different error. It seems that the program comflicts with Magos model editor.

Code:
Microsoft Windows [Versione 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Tutti i diritti riservati.

C:\Users\EdoardoFisso>cd E:\Wc3Tools\Reteras Model Studio\Reteras Model Studio\R
eterasModelStudioV0.02\jre\bin\jawa -jar ReterasModelStudio.jar
Impossibile trovare il percorso specificato.

C:\Users\EdoardoFisso>cd C:\Users\EdoardoFisso\ReterasModelStudioV0.02

C:\Users\EdoardoFisso\ReterasModelStudioV0.02>.\jre\bin\java -jar ReterasModelSt
udio.jar
E:\Wc3Tools\War3 Model Editor\War3 Model Editor\War3ModelEditor\ appears valid
opening info
an exception occured
java.nio.file.NoSuchFileException: E:\Wc3Tools\War3 Model Editor\War3 Model Edit
or\War3ModelEditor\.build.info
        at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at java.nio.file.Files.newByteChannel(Unknown Source)
        at java.nio.file.Files.readAllBytes(Unknown Source)
        at com.hiveworkshop.wc3.casc.Cascket.<init>(Cascket.java:47)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.<init>(MpqCodebase.java:89)
        at com.hiveworkshop.wc3.mpq.MpqCodebase.get(MpqCodebase.java:402)
        at com.hiveworkshop.wc3.gui.BLPHandler.getGameTex(BLPHandler.java:121)
        at com.matrixeater.src.MainPanel.<init>(MainPanel.java:1165)
        at com.matrixeater.src.MainFrame.<init>(MainFrame.java:216)
        at com.matrixeater.src.MainFrame$1.run(MainFrame.java:201)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$400(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
fail
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at com.hiveworkshop.wc3.units.DataTable.readTXT(DataTable.java:437)
        at com.hiveworkshop.wc3.units.StandardObjectData.getStandardUnits(Standa
rdObjectData.java:40)
        at com.matrixeater.src.MainPanel.getUnitData(MainPanel.java:1480)
        at com.matrixeater.src.MainPanel.createUnitEditorTree(MainPanel.java:134
6)
        at com.matrixeater.src.MainPanel.createMainLayout(MainPanel.java:1328)
        at com.matrixeater.src.MainPanel.<init>(MainPanel.java:1204)
        at com.matrixeater.src.MainFrame.<init>(MainFrame.java:216)
        at com.matrixeater.src.MainFrame$1.run(MainFrame.java:201)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$400(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

C:\Users\EdoardoFisso\ReterasModelStudioV0.02>

I will try to remove the Magos program, but i still want to ba able to use it

Edit: I deleted the Magos model editor and now it works.... Thanks @Retera
 
@wc3neverdies This is actually quite strange. I have used Magos and Retera Model Studio together at the same time, and I have done so often and on multiple computers.
If you download magos again after Retera Model Studio is working, then are you able to have both running at the same time?
 
Level 9
Joined
May 31, 2010
Messages
366
@Retera i do have the same issue as some others do, both .jar and .exe dont do anything (also no error), i tried reinstalling java64 bit didnt help, OS is win7 64bit, i didnt had any issues with matrixeater and it still runs (displays a bunch of errors due to missing mpq files but after that it runs as it should)
 
Level 9
Joined
Sep 20, 2015
Messages
385
@wc3neverdies This is actually quite strange. I have used Magos and Retera Model Studio together at the same time, and I have done so often and on multiple computers.
If you download magos again after Retera Model Studio is working, then are you able to have both running at the same time?

Yes i reinstalled Magos and i can use them both at the same time now. Anyway I think the main issue was that i extracted the folder in a differnt hard drive than Java.



@Retera i do have the same issue as some others do, both .jar and .exe dont do anything (also no error), i tried reinstalling java64 bit didnt help, OS is win7 64bit, i didnt had any issues with matrixeater and it still runs (displays a bunch of errors due to missing mpq files but after that it runs as it should)
Try to put the ReterasModelStudio folder in C:/Users/youruser/whatever or in the same place where the Java is installed.
 
@Cryze666 Please follow the instructions included in my previous post by clicking the Green Button that says "Spoiler: How To Debug Why a Java Program Doesnt Work"

If you click that button, I spent a very long time describing a process that will bring you to a debug screen so that you can tell me why the program doesnt work, so that I can fix it for you.
If you ignore this tutorial on how to find the debugging information, and instead you copy the program to random different locations on your hard drive, then I will probably not be able to help you even if I want to, because I need for you to send me the debugging information regarding why the program doesnt work in order for me to know how to fix it
 
Level 9
Joined
May 31, 2010
Messages
366
@Retera sorry, i was just doing what @wc3neverdies suggested

i tried ur step by step but at step 14 nothing happens, i copied the things to enter directly from your step by step but it just says (roughly translated) "either spelled wrong or couldnt find"

also i remember the first time i tried starting the .exe it promted me a window asking me to enter the wc3 installation folder, after i did that nothing happened and since then clicking either .jar or .exe doesnt do anything - idk if this information is helpful to you
 
Ooh, yeah actually that's super helpful.

Because you saw the window asking for the wc3 installation folder, that means that Java is installed correctly and stuff. So the problem is just application code. The CASC code is not configured correctly for you Warcraft III installation or its language setting
 
Level 1
Joined
Jun 5, 2019
Messages
1
I've had the same problem as Cryze666, i've followed your step and i get an error in the cmd saying that it could find the .mpq in the folder i specified (C://program files/Warcraft III)

I hope it helps ! (i can link the message if you want :) )

upload_2019-6-11_15-24-19.png


EDIT : I can't open the object editor too btw !
 
Last edited:
Level 9
Joined
May 31, 2010
Messages
366
you have any suggestions on what i could try then? after that i tried deleting your tool and just redownloaded it, trying to start it then did not bring up that window anymore, after that i tried to reinstall java, also didnt change the result
 
@Boboop because the program can use either CASC or MPQ, the failure to find the MPQ is actually *not* fatal and does not crash the program. If you scroll down, there is probably a different reason later on for why the program did not open

@Cryze666 Nothing you could do yet unless you remove the JWC3 config folder, install an older Warcraft III that is patch 1.28 or earlier, and then relaunch the Retera Model Studio. Then in the popup you would have to tell it to use the older Warcraft III install. This is because your Warcraft III installation is causing my code to crash with the issue many people are seeing. Your installation CASC happens to be formatted differently than mine for some reason or other, so my code is crashing on your computer based on that CASC issue with where to find files. It is because of a difference between your computer's copy of Warcraft III and the copy that I installed on my computer, which was the English copy.

I installed a Spanish copy of Warcraft 3 on my computer after uninstalling the game and this Spanish copy makes the Retera Model Studio crash on my computer as well. Sometime soon when I am back at my computer, I will upgrade my code so that it is able to load the data from other language versions of the game.


When my code is loading MPQ instead of CASC, in that case it should always work because the file locations in the data were all the same and did not contain special names unique to the language. So, as a result, if you use a different language copy of the game on 1.28 or earlier, then my code should work fine.
 
Level 39
Joined
Jul 26, 2004
Messages
1,481
This tool looks absolutely fantastic. How I wish I had something like this when I started out modeling! It would have made life much easier.

Keep up the amazing work! I look forward to seeing how many features you manage to develop in the future. Proper ribbon and particle effects would effectively render Magos deprecated.
 
Having the same issue of nothing happening when I try to start the program. I went ahead and debugged it, but I'm not too sure what it's telling me what I need to do. Any ideas?

For the record, I can't even get it to ask me where my War3 installation is. Literally nothing happens when I try to run the exe or the jar.

Debug.jpg
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,178
Having the same issue of nothing happening when I try to start the program. I went ahead and debugged it, but I'm not too sure what it's telling me what I need to do. Any ideas?

For the record, I can't even get it to ask me where my War3 installation is. Literally nothing happens when I try to run the exe or the jar.
It seems to have auto detected your Warcraft III install looking at where the exception originated from. Make sure that this detected install is 1.31.1.

It looks like it is trying to access a file that is not in your local Warcraft III CASC storage. Please make sure you are using 1.31.1 for optimum compatibility as Blizzard completely restructured the file system used by Warcraft III between 1.30.4 and 1.31.0.

If you are using 1.31.1 and have repaired to verify local storage integrity, then this must be a bug related to the locale you are using. The Warcraft III CASC file system lists all files for all locales but only files for the installed locale will be available within local storage.
But wait, you have the source code of Magos Model Editor? Where did you get it? Is it written in C++?
Yes. However it is not the full source code as the silly person who wrote it was concerned people would steal it and so he deleted critical parts of the source code before releasing it. This is why Magos has not been updated since that person disappeared.
 
Level 21
Joined
May 29, 2013
Messages
1,567
When I am playing animation on Sorceress in this program at "Spell Attack," why I am not seeing any effect from her spell, but only her body moving? I want to be able to see her spell effect too... I just downloaded this program and trying it out.
Read the description, particle emitters and ribbon emitters are not supported yet. Also, I'm pretty sure that Sorceress' Spell Attack animation isn't supposed to have any effects.
 
Top