• 🏆 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!

Modeling Resource: Customized Vertex Editor

Status
Not open for further replies.
Sorry to double post, but I've accomplished something pretty cool.

SABREWULF, you asked if the program could animate a WoW model. Because it couldn't, I mentioned I could add a "Matrix-build" on right-click feature. I did, and as an example I animated the Cinematic Illidan model found in the "Extra" section of the game.

To help people learn how to use the MatrixEater (which I've really been coming to like as a modeling program, even just for my own wc3 mod project) I used the new feature for an hour long session and recorded it all in video. I don't yet have a way to upload it, but pretty soon I'll have a video of how to animate a complicated model like Cinematic Illidan with absolutely no bones or animations, using the MatrixEater's import and matrix building tools. This was accomplished in little more than an hour. (You could do the same for a WoW model if you had one!)
attachment.php


I imported in the bones from the Eredar Warlock, then imported in the WING bones from the Demon Hunter Morphed (Illidan Evil's morphed form) which were slid by the Matrix Eater semi-automatically to fit in time with the Eredar Warlock's animations (so that they move fairly smoothly).
I'll try to find a way to upload my hour-long video on the internet sometime soon for how it was done, I'm not entirely sure what the best way to do that would be. For now, here's the new version of the tool, the example illidan, and a cool picture.
 

Attachments

  • SuperIllidan.png
    SuperIllidan.png
    691.8 KB · Views: 5,329
  • MatrixEaterV0.10.jar.zip
    335.9 KB · Views: 125
  • IllidanWithEredarMotion2.mdx
    308.4 KB · Views: 145
Well, thank you for the compliments, it's an encouragement to keep doing what I'm doing!

I definitely agree that an hour feels like it might be too long. I recently came by a copy of Adobe Premier Elements, and I think that using it I could potentially speed up repetitious parts of the video and get in the idea of everything that I did without making people watch it all.

Edit:
I've been really behind on this project, and busy with lots of other stuff in life. I've almost got a copy of that video onto the internet, and I may finally have it up sometime in the near future.
 
Last edited:
Alright! Sorry to double-post, but, I've got the first 60 of 80 minutes of video on YouTube... I didn't do a very good job shortening much of it, but I think that watching the entire thing could give a person a feel for how I would make a model in its entirety.
Alternatively, if you're pressed for time I think I could suggest watching the first 15 minutes of video which includes me describing almost all features of the Import dialog, as well as me using that new "Re-assign Matrix" feature on Illidan's head. Most of the rest of the time consists of me repeating the assignment process to animate Illidan's body, and importing and assigning more bones for the wings. There's also some general tweaking at the end.

Here are links to the 10 min segments of video in order (like I said, watching the first two might be all you need to really get a general overview of using the program):
http://www.youtube.com/watch?v=PTOk7VlhrVM
http://www.youtube.com/watch?v=N2xuOphstpI
http://www.youtube.com/watch?v=WEDzNf3a8W4
http://www.youtube.com/watch?v=t1-kF63y4eg
http://www.youtube.com/watch?v=_1WqDMLMcIE
http://www.youtube.com/watch?v=mhHOTJEoScI
http://www.youtube.com/watch?v=icSlFX6zFsA
http://www.youtube.com/watch?v=aEKbENtCEP8

I'll probably edit this to include the next two links, but looking at the end of video 6 it looks like by that point I had already made most of the model, and was just tweaking.
 
Last edited:
That's a bloody good question, and it's about time I added that feature into the program! To be honest, in my own work recently I have just used this dummy model that I put together and imported the entire model in, minus the parts that I don't want.
It's such a stupid, round-about way of "deleting" that it actually works almost perfectly with the software, except that you lose the model file's header -- which you will want to recopy when you are done, or risk losing the model's bounding radius (and having it disappear when it's only halfway off of the screen).

But I just spent the evening adding mesh and animation mirroring to the program for a guy, and perhaps sometime soon I'll throw in that delete feature and then post the new version with both of those updates. If you want a copy of the version with mirroring, here's a link. Also, I'm getting really behind on keeping the "undo" system working. I think it has several bugs now, due to new features being added without a way to undo them.

So anyway, I really need to add delete -- you're right!
 
So it struck me, that I've been using the Matrix Eater a lot and working around bugs that I'm totally aware exist, so I should document them so other people can work around them, and so that I'll eventually fix them.

Things that need to be fixed, or don't work:
- File parsing when tabs are made up of spaces instead of tab characters
- Opening a model with no Materials
- Null name error that causes crash on double-layer animated textures (water elemental texture crash, which I've fixed and need to upload the next version for)
- "Clear pre-existing animations" and "Clear pre-existing bones and helpers" will sometimes corrupt models, I think
- "Rebuild as Global Sequence" doesn't actually work on animations, it just corrupts them or something (creates a global sequence using the wrong data, etc)
- You can't delete stuff!
- You can't view or edit Cameras (which would be a pretty easy feature to add!)
- You can import Materials, but cannot change references filepaths for a texture (might as well be able to in the GUI instead of going to Notepad++ or a text editor like I do all the time)
- There should be a way to make models from scratch, that would be great
- Texture view (like mdlvis) was suggested

Edit:
- In-Program Visibility and editability of geosets after import are functionally off, but toggled on (This doesn't do anything to the actual model, but looks bad)
- Destroying of Two-Sided Faces - In some cases (Blasemaster's Flag, Furion's Cape, Phoenix's Wing... to name a few) where Blizzard made a two-sided flat shape, the Matrix Eater was vaporizing one of the two sides automatically, just by opening and saving the model. This was due to a piece of stray code that auto-deleted faces on top of each other, which I wrote because Extrude used to create an exponential number of copies of the model all physically exactly on top of each other, and this crashed my computer's display drivers at least once. I left the auto-delete code in, because theoretically no two faces should ever be completely identical, but I did it wrong and it was counting reversed-faces as identical. Anyway, I'll have it fixed so the next version does NOT cause users any of these problems.
- Import Visibility Issues - The Import tool's visibility selection has the power to rewrite all the visibility data, so if something goes wrong it can corrupt non-imported stuff for seemingly no reason.
 
Last edited:

Kyrbi0

Arena Moderator
Level 45
Joined
Jul 29, 2008
Messages
9,492
So it struck me, that I've been using the Matrix Eater a lot and working around bugs that I'm totally aware exist, so I should document them so other people can work around them, and so that I'll eventually fix them.

Things that need to be fixed, or don't work:
- File parsing when tabs are made up of spaces instead of tab characters
- Opening a model with no Materials
- Null name error that causes crash on double-layer animated textures (water elemental texture crash, which I've fixed and need to upload the next version for)
- "Clear pre-existing animations" and "Clear pre-existing bones and helpers" will sometimes corrupt models, I think
- "Rebuild as Global Sequence" doesn't actually work on animations, it just corrupts them or something (creates a global sequence using the wrong data, etc)
- You can't delete stuff!
- You can't view or edit Cameras (which would be a pretty easy feature to add!)
- You can import Materials, but cannot change references filepaths for a texture (might as well be able to in the GUI instead of going to Notepad++ or a text editor like I do all the time)
- There should be a way to make models from scratch, that would be great
- Texture view (like mdlvis) was suggested

It's really impressive that you're just building your own program to do all this stuff. Even moreso that you're intent on fixing it up & continually improving.

For "making models from scratch", have you considered a set of "primitives" (similar to Oinkerwinkles' tools) that your program could then manipulate? (cube, square, triangle, etc)
 
Something like that had occurred to me... I've used some various versions of 3dsmax, and I think it would be best if the Primitives were buttons/functions rather than models to use, though. It might be handier that way.

Edit: So I was sending someone a PM about how to import an attachment, and it struck me that the Matrix Eater needs more documentation. So, I'm going to post my little "import an attachment" tutorial here:

How to Add An Attachment Point to Anything:
1. Use the Matrix Eater - Get the latest build of the Matrix Eater from this forum (Modeling Resource: Customized Vertex Editor), it will be towards the end most likely.

2. Get Your Model & An Attachment Source - Extract the model you want to add the attachment point into, in MDL format. Also extract a model that you KNOW has the kind of attachment point that you want.

3. Open Model with Matrix Eater - Start up the Matrix Eater, and open up the model that you want to add the attachment point into.

4. Start an Import - Go to File > Import and select the model that you want to copy an attachment point out of.

- At this point, you should see a large window pop up with several tabs across the top. If you don't, then the Import script has crashed; if you'd like, you could report to me what model you were importing so that I can improve the program and fix those sorts of crashes.

- The "Import" tool is very complicated, so that it can do almost everything, but we need to tell it what not to do. By default, it tries to import the whole model.

4. Start By Importing Nothing - Select the "Geosets", "Animations", "Bones", and "Objects" tabs one by one. In each tab, click "Leave All". This tells the program not to import anything you don't explicitly want.

5. Find the Attachment - Then, in the "Objects" tab, find the Attachment point you want. It will show up on the list on the left. For example, if you wanted the "origin" attachment, the Matrix Eater will have labeled it Attachment "Origin Ref" or something close to that.

6. Import the Attachment - Select the Attachment that you want and press the checkbox next to "Import this object" on the right side of the screen.

7. Set Parent and Visiblity - Depending on the kind of attachment you want, there are two other settings to note here:
- Underneath "Import this object" you should see a large list filled with many names. Clicking something on this list will automatically set the Attachment's "Parent" to what you clicked. This means that the attachment will move along with the thing you clicked. So, if I was importing Attachment "Weapon Ref", for example, I would check this list for something with a name like "<name of model>: Bone "Weapon"". If the character didn't have a weapon, I could look instead for something like "<name of model>: Helper "Bone_HandR"" to attach it to a right hand, for example.
- The second of the two import settings is the Visibility tab. Some Attachments have visibility data associated with them. If you go to this tab, you will see the new Attachment in orange somewhere near the bottom of the list on the left. Click it, then check the menu on the right. The important setting in this case is "Existing animation visibility from:" because we didn't add/change any animations, so they will all be considered "existing" animations. On the drop-down below this phrase, you can pick any object from the original model that had any visibility data, and it will apply that same data to the new attachment. For example, if I put an Attachment into, say, a building model that had a death animation where it disappeared, I could select "<name of model>: Geoset 1" and this would make stuff attached to the Attachment turn invisible along with the building's first Geoset. (Outside the import tab, you can hover your mouse over a Geoset in the "Geoset Controller" window, and that Geoset will turn yellow in the main program display to tell you which one it is.)

8. Finish Import - Lastly, click "Finish" on the import. If you don't, none of your options or settings will be saved.

9. Position the Attachment's Pivot Point - Then, save the model and give it a try! If you don't like where the attachment point is in 3D space, click the purple box tab in the "Geoset Controller" (it says "BONE" in small black letters). Select both "Show pivot points" and "Show pivot point object names". This setting will look a bit gross, as many, many little purple points will appear in the model with names next to them. However, somewhere you should be able to find the new Attachment (it'll just show something like "Origin Ref" next to its purple dot). You can drag the associated "Origin Ref" point around with the "Select" and "Move" commands, putting it anywhere in the model that you want.

And that's how to add an Attachment with the Matrix Eater.
 
Last edited:
I don't know if it was that something wc3-related could be made, or just that there was no reason it couldn't.

Last year I had a class in Java, which I've continued this year in the AP/second year version, and I've now decided to go major in Computer Science. Basically, in our class we made simple video games like Snake and Memory, and learned how to paint rectangles and other objects to the screen. Due both to that, and to side projects of my own that I started where I learned how to edit basic text files (i.e. a high score file in Snake), I just up and decided I might as well apply it to MDLs if they were just text.

I had, as I got to that point, started off using Oinkerwinkle's Geoset Merger, then eventually stopped, because I would just merge the models in Notepad++. It took days of work in the summer, but the results were great. Some of those works are available if you look at the Heaven's Fall mod, and include:
- The "Sky Hydra," the first of my greatest MDL merge experiments, which basically was a Hydra wrapped around the animations of a Chimaera, but retaining the Chimaera wings.
- The "Ascended Overlord" of the void, basically a Faceless One with a Nether Dragon pasted onto its back -- and, accordingly, fiddled with in Notepad++. I inserted the Nether Dragon's wing bones/animations (with Oinker's ObjectId Inserter and Oinker's Key Redistributer) onto its back, so it was a winged faceless one.
- The "Mursoph Emperor", which basically wrapped a Murloc's 3d mesh and a Sea Giant carrying some Sunken Ruins doodads (i.e. Throne) onto the Goblin Alchemist, with the Murloc in place of the Goblin.
There were so many laborious hours of notepad work involved in making these models that by the end I even made the Murloc's eyes blink in the Mursoph Emperor, just for kicks.

So, after I had a programming class, it just seemed like... All the work that I had taught myself to do was so mind-numbingly rote, but it all allowed for fantastic creativity. So, if I could program, why not make all the creativity without all the rote-ness? So I made the Matrix Eater's import to do everything I might have merged in notepad automatically, so that I'll never have to monkey around with a Notepad multi-geoset and animation merge again.
I spent week after week last summer, where I would wake up late, spend an hour on the treadmill to keep my brain going, then just program all day and often past midnight a few hours. My first step was to make Java load the complete entirety of the MDL into Java object variables that I could mess around with in scripts/gui, which was the hardest part, and then it was just some Java Swing GUI writing. Really, if you want to automate something in MDL editing, and you know or are willing to learn Java, just download the sourcecode for the Matrix Eater and write a script using its "MDL" class. To be sure, it was written to work and is currently poorly documented and probably glitched here or there, but it basically works. It's not "good code," per say, but it's an automation of my former notepad editing of MDLs.

I'll post an updated version of the sourcecode on here, I recently migrated it to Eclipse -- but it should work in any development environment you want if you just take all the .java files.

Edit: As the name "Matrix Eater" suggests, there are a couple of things like Matrices that the program handles differently than native MDLs. As far as I could tell from looking at MDLs, a "Matrix" is really just a list of what bones a Vertex in a geoset is attached to, so the Matrix Eater vaporizes all of that and each vertex just has an ArrayList<Bone> of what bones it's attached to.
 

Attachments

  • MatrixEater.7z
    270.9 KB · Views: 134
https://dl.dropboxusercontent.com/u/92572084/MatrixEater3DV0.12a.jar
Here's a new update to the Matrix Eater! Still got several ideas I would love to make that I have not, but this update adds:
- "File > Edit/delete model components" - The ability to "delete," which can be found on the File menu and basically overrides an Import to import the model from nothing (it's the idea I used before of "importing from a null model" but it does it automatically). I intend to replace this with a much better delete feature in the future when I have time, but between this and Magos for now modelers should be able to get the job done.
- "File > Show Controller" - Ever wanted to make that handy "Geoset Controller" pop back up? Also, now it's called the "View Controller"
- Cameras - Just in case you ever wanted to edit Cameras inside the MatrixEater interface, now you can. However, Magos's tool handles camera creation beautifully and also cameras in the MatrixEater are currently invisible in 3D view. Still, this will let you view/edit the cameras/camera targets that already exist -- they appear as green arrows in the GUI, or orange if selected (similar to purple PivotPoints).
- "Perspective View" - I added an experimental display of the model's surfaces in 3D. This still does not display anything other than what was displayed in the other 3 views; it simply allows a view from all-sides while working. (I need to learn MPQ extraction techniques, so that I can go get game textures while the program is running!)
- "X, Y, Z" locks - These function exactly like in Oinkerwinkle's Vertex Modifier, and are placed in the same place. While any one of them is highlighted, vertices/pivotpoints/cameras cannot be moved in that dimension.

- Import visibility - After you import something, visibility settings are immediately refreshed and it immediately appears in the model.
- "Uncheck Unused" - This experimental button, found in the "Bones" section of an import, will attempt to deselect any Bones that are not referenced by either a geoset or another object parenting to it. It sometimes breaks and does nothing, but when it works it can quickly and efficiently help delete bones when you remove geosets and you want to take out the associated bones to save file size.
- Change to Open/Save Defaults - The program will remember your last opened folder, even after you close it and open it again. That way, you'll spend less time navigating folders! In addition, when you do File > Open, or File > Import, the computer will jump to the directory that contains the currently opened tab's model.

Edit: "Perspective" View Controls:
Left-click drag: Rotate the model
Mouse-wheel button drag: Pan the 3D view around
Mouse-wheel scroll: Zoom the 3D view
 
Last edited:
Level 12
Joined
May 12, 2012
Messages
631
awesome! thanks for all of your hardwork :thumbs_up:
+Rep

just a suggestion when updating, how about adding a bug fixes list :ogre_hurrhurr:

edit: you forgot to include in the update list "Mirror X/Y/Z" that function is so awesome... if it is undoable and the geoset's shadow blends right
edit2: what is auto-center bone(s)?
 
Wasn't "Mirror" in that 11c version earlier?
I think it fixes normals, so that it will do proper shadowing after mirroring? I do need to add undo, but for now just mirror it again and it will go back to where it started.

Auto-center bones is something else that I forgot I added. It seems to me to be most useful for bordered planes, but it will make all selected bones jump to a position that is the average coordinates of all of the stuff attached to that bone. So, for example, if you took a model and messed up the shape and didn't move the bones along with it, you might be able to get them back in about the right spot with "auto-center bone(s)". Or, if you have a bordered plane that pivots around a bone to always face the camera (i.e. a glow, like the Chimaera's blue attack glow) and you move the geoset's vertices without moving the bone, you can get the bone back in the exact center with "auto-center bone(s)".
 
Level 12
Joined
May 12, 2012
Messages
631
nope, I think your program has that only tool :vw_unimpressed:
yes that's what it suppose to do... buuut
wdwe.png

the outside is the one shaded and the inside is the one which is bright, should be reverse

ohhh, I get it. another example would be if I scale the geoset right? and the bones will just move
 
Then you could do "re-assign Matrix" after the import, and give animations to something that was 100% animationless (like I did with that "Extra - Cinematic Illidan" model in my too-long 80 minute tutorial). With some skimming of my videos hmight get you going enoug to where you could learn it yourself. :)
 
I think after a certain number of hours sitting copying and editing Matrices in notepad you start to go nuts, and so I named the program after not doing that.
After having made it, I've almost never gone back to do that manually. So it ate up those Matrices!

Maybe I should change the name at some point, though. Other than that, I don't really remember exactly why I picked that name either.
 
Hey, guys... I found a new problem with the Matrix Eater, but I'm liking the fix I came up with.

See, I was working on a model when I got to thinking that the shading didn't look right, and then I toyed around with Oinkerwinkle's Vertex Modifier and realized that an important part of rotating vertices is also rotating the normals accordingly. It makes models retain their proper shading.

The Matrix Eater has never done that; any model you made using its "rotate" feature probably could have had better normal data for shading than it actually does.

So, to fix the issue, rotating now fully updates normals, can properly undo edits made to normals, and if you select one vertex alone and rotate it then it rotates that vertex's normal. This means that if you really wanted to spend a lot of time, you could fix normals from older models made with the Matrix Eater. Also, the shading in the 3D view reflects the data in the normals, and draws them as little pinpricks.

The viewing of normals is currently set to always in 3D and never in 2D, which is kind of bad, so there'll probably be another update later than makes it toggleable in both.

(Also, for all you Linux/Mac users out there, I bundled this version with more libraries than the 3D version. It might work, if the other 3D version didn't? Let me know if you have problems with that. I work in Windows 7 and don't have explicit knowledge of how to make the 3D library compatible.)
 

Attachments

  • MatrixEater3DV0.15B.jar.zip
    2.8 MB · Views: 154
Actually, if you get that new version I posted I think I added merging geosets at one point a few weeks ago when I wanted it and didn't want to bother opening Oinkerwinkle's one.
Check under the "File" menu in the newest version -- although geoset merge feature definitely hasn't been well debugged yet, so save before you do it.
 
Sorry to double post, but I was hoping anybody subscribed to this thread might get this message so I could get some input on a new idea that I just had:

I've seen and heard a lot of requests for a Matrix Eater tutorial (a better one than me playing around making super illidan for 80 minutes!) and so I was struck by this idea: What if I programmed a "tutorial" into the import menu itself.

For example, have a window pop up that says: "What kind of import would you like to do?" and then have only a single dropdown with options like:
"Import geoset(s) with no animation"
"Import geoset(s) with their animations"
"Import animation(s) from another model"
"Combine animations with those of another model"
"Import Attachment(s), ParticleEmitter(s), or other objects"
(Then, after you picked one, it would ask for any other information pertaining to that particular automated choice.)

And stuff like that. Basically, I know how to use the Matrix Eater import right now to do all of these things, but it's really hard to teach because of how complicated the interface is -- and depending on what specifically you want to do, I can probably have the Matrix Eater do more for you! It's just that right now, the interface is super complex to let you do almost anything when importing.
Also, I could probably jump to the currently complex settings mode at the very end, in case people who understood those settings wanted to tweak them after stuff was done automatically (in case it messed up or something). What do you guys think of that? Also, which types of operations would you like to see available in the automatic/simple mode?
 

Kyrbi0

Arena Moderator
Level 45
Joined
Jul 29, 2008
Messages
9,492
I should probably actually open the program before making a comment... But in lieu of that, I would say that 'yes', more options are always better. Especially if the option can be given to have a "simple/tutorial" mode.

Case in point, I have been training with an IDE called Eclipse in my JAVA classes at college for the last two terms... And I have been incredibly frustrated. I can tell it's a powerful program; something with that many buttons just has to be! It seems I can conceivably do anything... Except anything I actually need to do. The program is so obtuse, uses such "programmer-specific/jargon-heavy" language, and is so unforgiving in what it does, that I can't barely figure out more than a teaspoon of what it does. I basically know enough to make my little assignments work (and even then, have lots of game-breaking issues).

Anyway, I say that to say: doesn't matter how powerful your tool is, ultimately. If it's too unclear or obtuse or obfuscating, people will be impressed and nothing more. This tool has the power to revolutionize modeling, the way I see it & the way you have described it. Move over, Oinkerwinkles; head on out, Warforger and MDLVis. However, those programs are successes partially due to how simple things are to work with (and built-in tutorials).

So YES. Not even sure what, but yes. :p
 
Speaking of Eclipse, I moved the MatrixEater source code from BlueJ to Eclipse a few months ago after learning to prefer it due to the way it displays and suggests code more effectively.

Honestly, I doubt I know what half of the buttons do either, but I just ignore the ones I don't know and use the ones I do know, and I get along pretty well. Mostly I just write code into the text box area.

I think the MatrixEater still has quite a ways to go before it could best MDLVis; I've started using that thing now and then, and it has some features that I imagine would be hard to write.

(Also, the Heavens Fall Launcher was written in JAVA in Eclipse, too, speaking of that)

Edit: I went online and googled for like a day and then got help from Shadow Daemon (which was awesome) and the next update of the MatrixEater, when I get to fully finishing it, should be able to actually texture the 3D models in the "Perspective" display, by opening MPQ archives from your warcraft folder and loading the BLP textures inside for wrapping. (Something Magos's tool does also)

Edit: New fancy update with some new features and primarily Textured View for the 3D render. I'll probably figure out Textured View for the other viewports at some point, but because they are written in a simpler way it would take more work than you would think to put textured view on them.
Not that I won't necessarily do it, but I may focus on other things first.

In order to read files from your Warcraft III folder to get textured view to work, you have to run this new version with "Run as Administrator" from the right-click menu on Win7 if you have UAC enabled. It's some bug in StormLib that in order to open an MPQ file it has to have both read and write privileges, instead of just read privileges, because it conceptually could write something. (Even though the MatrixEater doesn't.)

(Pssst...Somebody say something so that people are notified of the update without me double posting.)
 

Attachments

  • MatrixEater3DV0.16A_Windows.zip
    4.8 MB · Views: 773
Last edited:
It's getting time that I should publish a new update to this, as there are some features I've added in my sourcecode that I typically use to run the program that aren't in the live updates yet. I added better controls for hiding/showing normals since the last update, if that wasn't in the other one, as well as something that automatically deletes a geoset out of the model (so it doesn't break the model) if you delete the geoset's entire contents.

I also added opening of MDX files, but it launches the MdlxConverter software available here on the hive to convert them and open them, and so you can see the mdlxconvert GUI flash by if you look really closely as the MatrixEater opens/closes it. That said, it does automate opening MDXs, even if its a bit hacky. Any other features you guys would really like to see if I post an update within the week? I recall that a Recent list ought to be added, which really shouldn't be hard. Maybe I'll get to that this week.

Edit: I made a video or two, and also compiled some videos that I made last summer, and uploaded them. My goal is to make better tutorials for the Matrix Eater software -- these videos are pretty basic, but I may make even more after them:

Part 0: Opening the Matrix Eater
http://www.youtube.com/watch?v=lmGuxcdi1fU
(This one is partially meant to be a bit of a comedy against myself, because it took me 8 minutes to make the Matrix Eater work.)

Part 1: Opening files in the Matrix Eater
http://www.youtube.com/watch?v=PxKKbvett4w&feature=youtu.be

Part 2: Basic Controls/Editing in the Matrix Eater
http://www.youtube.com/watch?v=uplzdfldvLg&feature=youtu.be

Part 3: Simple Combining of Models with the Import Feature
http://www.youtube.com/watch?v=m9Uv24YIqDY&feature=youtu.be

I may edit this as I make more videos in the series! Hopefully these can help more than the "How to Use the Matrix Eater" series. Those things were pretty terrible -- they showed me doing stuff, but not much about how it actually all worked.

Edit: Publishing the version of the matrix eater used in these videos. It's kind of experimental; I didn't really plan this update, but it's been too long since i updated so I wanted to practice compiling it and reminding myself to release what I have.

Edit: Published with a bug in 16B. If you just got 16B in the 10 or 20 minutes that I left it up for download, change to 16C.
 

Attachments

  • MatrixEater3DV0.16C_Windows.zip
    4.9 MB · Views: 154
Last edited:
Level 48
Joined
Apr 18, 2008
Messages
8,421
I've been playing around with the Matrix Eater again today, and I must say I'm really enjoying it thus far. :)
A few things, though - if you undo cloning, copies tend to remain elsewhere on the mesh, which is a bit silly, and expanding selection does not always select the vertexes that seem to be selected. Also, one function that would be absolutely fantastic and doesn't exist in any other free program that I'm aware of would be the ability to flip UV wrap(either X or Y) - that would make wrapping WC3 textures that much easier.
 
There is now!
I suggest everyone gets that new version; I've been using it for a while now, and almost forgot to mention that new feature.

That's why I need to release updates more often. Any other features you want? I don't know if you noticed, but in "File > Simple Import" I also added an almost perfect 1 for 1 replica of Oinkerwinkle's Animation Transferer, in case you wanted that. It's like "Import" only with 4 buttons instead of 4 million for animation combining.
 
Level 12
Joined
May 12, 2012
Messages
631
missed that update lol. will try it out ASAP!

TIP: lol. can (if you like [not forcing you or anything]) put a *never show this message again on load image? because why the hell would the editor click it if he/she didn't want to look at the texture lol
 

Kyrbi0

Arena Moderator
Level 45
Joined
Jul 29, 2008
Messages
9,492
So is a UV Editor where I could take the wrap for a model & move it around? Not sure that made sense...

Like, I can take Magos and reassign any given Geoset to any given texture (either in the model or outside it, in the MPQ). However, when reassigning the texture, the Geoset "knows" what part of the texture it wants to wrap to, and if it's the Shadow Hunter's face or the Pandaren's keg, well then that's just what it's going to be. That's a problem.

So I don't know what that's called, but I always thought it was "UV Wrapping" or something like it. Is there a quick/simple/relatively-painless way to modify "where the Geoset 'knows' it'll wrap to" on a given model? Either without this tool or (especially, on-topic) with?
 
The description in the original post makes this tool sound incredible and all the alternative tools are pretty damn clunky and make me want to avoid Warcraft modding like the plague. I want to try out this tool, but I was wondering how stable it is. Am I in peril of any data loss within my models by using this program? Are there any nasty buggy functions that I should avoid until an update comes around?
 
@Deolrin
I missed your message earlier, but I saw you comment that flipping UV mapping would be really nice.
Checkout the UV editor's "Edit > Mirror > Mirror X" and "Edit > Mirror > Mirror Y" in the latest update -- do those do what you wanted? They're already in that most recent release. :)

@Hawkwing
You raise some really good questions. When I first wrote the Matrix Eater, I planned for data loss like people plan to eat meals (which is to say daily). It's definitely been an improving thing, which still has some unfortunate weird quirks to the program that I've taught myself to avoid when it would have been better to just code them out of existence. Up until the most recent release, for example, there was a "remove all existing animations" button in the import tool that just corrupted your model. It has since been fixed, so far as I can tell.
Most notable nuisances I can think of are probably bugs in the undo/redo system, there's something where if you delete stuff, do more stuff, then undo a lot it will add back in part of the stuff you deleted but not all the data and bug up the model.
When I began the program I was a model developer, not really a programmer, who'd only been doing solid coding (other than warcraft map coding) for about a year. The only reason the thing was finished was dedication. However, I'm now studying Computer Science (software) at a university and if you point out any frustrating flaws in the Matrix Eater I very well might be able to resolve them.

Things that I have witnessed as completely functionally safe for the UNDO/REDO system as far as my memory serves:
- Undo/Redo Move
- Undo/Redo Scale
- Undo/Redo Rotate
- Undo/Redo Select
- Undo/Redo Select Add
- Undo/Redo Deselect
- Undo/Redo Expand Selection
- Undo/Redo Invert Selection
- Undo/Redo Select All
- Undo/Redo Snap
- Undo/Redo UV versions of the above (but you have to go back to the main window to click undo as of now)
- Undo/Redo UV "Select from Viewer" operation should be totally fine, but it's relatively new as a feature
- Undo/Redo Extrude and Extend
- Undo/Redo of the above with lock X, Y, and Z enabled
(Undo/Redo of these operations should work soundly on everything, including PivotPoints and Cameras that are hidden in the second tab of the View Controller)

Things that work and should not break models but provide little or no undo/redo functionality:
- Undo of Delete sometimes works, sometimes bugs. When it bugs, if you Redo the delete before going on it usually goes back to having no problems (other than the stuff still being deleted).
- Apparently others on here have said Undo of Clone is bugged; I don't remember seeing that one much myself but it's been a while since I tested it and I definitely would believe that there could be a bug
- Re-assign Matrix (right-click menu)
- Auto-center Bone(s) (right-click menu)
- Mirror X, Y, and Z (note that this mirrors animations of selected animation nodes, unlike other software. Also you can mirror twice to "undo" a mirror)
- Flip all selected faces
- Import
- Simple Import
- Edit/delete model components
- Toggling geoset Visibility and Editability (these alter what can and can't be selected, which can interfere with the undo system in regards to selection)
- Toggling show cameras, show pivot points, and names for both (has undo + selection availability bug similar to geoset visibility)
- "Edit/Delete model components" operation in the File menu, which is technically an import of the currently open model into an empty model, allowing you to use the Import menu's plethora of features without actually importing a model. Since the introduction of this feature, auto-deletion of geosets after they become empty from the normal delete tool has been added, so it's a little less important.

Known stupid problems:
- Merge Geoset tries to preserve the Geoset's original numeric IDs for what bones the geoset was attached to, which can be convenient when merging identical or nearly-identical models if you want to merge 2 geosets without damaging animations. However, this also means that you can get geosets with invalid bone ids that corrupt the model if you're not careful. After any Merge Geoset operation, you should be able to "Re-assign Matrix" on all the newly merged geoset's stuff to clear out any of these invalid values -- so it's a solvable problem, but bad if you don't expect it
- "Clear pre-existing bones and helpers" in the Import menu might still corrupt models. It's been entirely too long since I ever tested that feature.
- There was a bug that may have been fixed in the most recent version -- I tried to get it out because it really started getting frustrating -- where when you had "Show pivot points" toggled on, but "Only show parents of active geosets" also on, that the program would let you select (and thereby accidentally edit with a group) pivot points that were not displayed. In effect, you'd break a model's animation inexplicably by doing too much PivotPoint editing and it would be hard to find what points got moved while they were invisible to the program's on-screen display.
 

Attachments

  • UVFlip.png
    UVFlip.png
    163.8 KB · Views: 144
Level 48
Joined
Apr 18, 2008
Messages
8,421
Checkout the UV editor's "Edit > Mirror > Mirror X" and "Edit > Mirror > Mirror Y" in the latest update -- do those do what you wanted? They're already in that most recent release. :)

Holy shit. I did not notice this existed. This is just... Far too perfect for words. I have been messing around with some fun wrap stuff(give the Rifleman a Paladin face texture, for instance) and it works PERFECTLY. You are simply a god, Retera!

Now, doing the above, I've come upon a few problems I didn't notice before. What bugs me the most, at the moment, is that the program does not seem to be compatible with Magos' War3 Model Editor. When you try to run both of the simultaneously, the program that was opened last will fail to properly display textures as it will be unable to access the MPQs(or so I assume) because the other program is using them, or something like that. This is quite annoying, as I like to use Magos for material\bone related tweaks as well as for easier\better 3D viewing while working on the mesh and wrap in other programs. If you could somehow fix that, I would be very grateful!
Now, I don't know if it already exists(if it does, please do tell me how to find it!), but a function that I would love to have would be the ability to easily 'split' geosets without screwing up the animations\wrap. It would be great to have a right-click drop down menu to change the material of a geoset as well - I'm not sure if that's possible at all in the current version, but I haven't been able to find out how to do that. This is useful for unwrapping scenarios such as when you want to split a few body parts from an existing model to re-wrap them to a different texture without affecting the rest of the geoset(for example, split the rifleman's head from the rest of the body so that it could be retextured to the paladin's face texture). Another function which would be nice to have is the ability to hide\make uneditable individual verticles or parts of the geoset, without having to hide the entire geoset, much like how it works in Milkshape 3D.
Finally, a few UV Editor improvements could include the ability to work on specific geosets(by hiding the rest of the model on the wrapping table) without having to hide the geosets in the main viewer, and having the corresponding points on the UV Wrap be selected when parts of the model are selected(much like in Vertex Modify and Milkshape 3D) would be fantastic as well.
Overall, I'm loving this tool more and more. It's absolutely amazing. Keep up the great work!a
 
What bugs me the most, at the moment, is that the program does not seem to be compatible with Magos' War3 Model Editor. When you try to run both of the simultaneously, the program that was opened last will fail to properly display textures as it will be unable to access the MPQs(or so I assume) because the other program is using them, or something like that. This is quite annoying, as I like to use Magos for material\bone related tweaks as well as for easier\better 3D viewing while working on the mesh and wrap in other programs. If you could somehow fix that, I would be very grateful!

Basics of the Matrix Eater, Part 0: (Sort of a joke video due to how much I struggled with this, but it contains an answer for the time being)
http://www.youtube.com/watch?v=lmGuxcdi1fU
 
@Hawkwing
You raise some really good questions. When I first wrote the Matrix Eater, I planned for data loss like people plan to eat meals (which is to say daily). It's definitely been an improving thing, which still has some unfortunate weird quirks to the program that I've taught myself to avoid when it would have been better to just code them out of existence. Up until the most recent release, for example, there was a "remove all existing animations" button in the import tool that just corrupted your model. It has since been fixed, so far as I can tell.
Most notable nuisances I can think of are probably bugs in the undo/redo system, there's something where if you delete stuff, do more stuff, then undo a lot it will add back in part of the stuff you deleted but not all the data and bug up the model.
When I began the program I was a model developer, not really a programmer, who'd only been doing solid coding (other than warcraft map coding) for about a year. The only reason the thing was finished was dedication. However, I'm now studying Computer Science (software) at a university and if you point out any frustrating flaws in the Matrix Eater I very well might be able to resolve them.

Things that I have witnessed as completely functionally safe for the UNDO/REDO system as far as my memory serves:
- Undo/Redo Move
- Undo/Redo Scale
- Undo/Redo Rotate
- Undo/Redo Select
- Undo/Redo Select Add
- Undo/Redo Deselect
- Undo/Redo Expand Selection
- Undo/Redo Invert Selection
- Undo/Redo Select All
- Undo/Redo Snap
- Undo/Redo UV versions of the above (but you have to go back to the main window to click undo as of now)
- Undo/Redo UV "Select from Viewer" operation should be totally fine, but it's relatively new as a feature
- Undo/Redo Extrude and Extend
- Undo/Redo of the above with lock X, Y, and Z enabled
(Undo/Redo of these operations should work soundly on everything, including PivotPoints and Cameras that are hidden in the second tab of the View Controller)

Things that work and should not break models but provide little or no undo/redo functionality:
- Undo of Delete sometimes works, sometimes bugs. When it bugs, if you Redo the delete before going on it usually goes back to having no problems (other than the stuff still being deleted).
- Apparently others on here have said Undo of Clone is bugged; I don't remember seeing that one much myself but it's been a while since I tested it and I definitely would believe that there could be a bug
- Re-assign Matrix (right-click menu)
- Auto-center Bone(s) (right-click menu)
- Mirror X, Y, and Z (note that this mirrors animations of selected animation nodes, unlike other software. Also you can mirror twice to "undo" a mirror)
- Flip all selected faces
- Import
- Simple Import
- Edit/delete model components
- Toggling geoset Visibility and Editability (these alter what can and can't be selected, which can interfere with the undo system in regards to selection)
- Toggling show cameras, show pivot points, and names for both (has undo + selection availability bug similar to geoset visibility)
- "Edit/Delete model components" operation in the File menu, which is technically an import of the currently open model into an empty model, allowing you to use the Import menu's plethora of features without actually importing a model. Since the introduction of this feature, auto-deletion of geosets after they become empty from the normal delete tool has been added, so it's a little less important.

Known stupid problems:
- Merge Geoset tries to preserve the Geoset's original numeric IDs for what bones the geoset was attached to, which can be convenient when merging identical or nearly-identical models if you want to merge 2 geosets without damaging animations. However, this also means that you can get geosets with invalid bone ids that corrupt the model if you're not careful. After any Merge Geoset operation, you should be able to "Re-assign Matrix" on all the newly merged geoset's stuff to clear out any of these invalid values -- so it's a solvable problem, but bad if you don't expect it
- "Clear pre-existing bones and helpers" in the Import menu might still corrupt models. It's been entirely too long since I ever tested that feature.
- There was a bug that may have been fixed in the most recent version -- I tried to get it out because it really started getting frustrating -- where when you had "Show pivot points" toggled on, but "Only show parents of active geosets" also on, that the program would let you select (and thereby accidentally edit with a group) pivot points that were not displayed. In effect, you'd break a model's animation inexplicably by doing too much PivotPoint editing and it would be hard to find what points got moved while they were invisible to the program's on-screen display.

I appreciate the reply. I will try out the tool when I get a chance. I'm a bit busy at the moment but over the spring and summer I'll definitely be doing some more Warcraft modding.
 
I'm been busy with classwork this week and haven't read through all posts with as much care as I might.
Kyrbi0, seeing your questions about UV wrapping I'm thinking I could make a simple video in the "Basics" series of how to edit some UV wrapping on a model -- maybe this weekend.

Edit: Maybe I'll update the program with the good suggestions here before making the video; that way it'll be teaching how to use the newest and best features, too.
 
Status
Not open for further replies.
Top