-
Contributor
[WIP] Machinima Tool
Hello everyone.
I began working on my very own WoW machinima tool about a week ago, and I wanted to make a thread here to get some feedback and questions answered at the same time.
Keep in mind that I'm more of an artist than a programmer, I'm learning on the go, so I will most likely end up staring with my jaw open if I don't understand your "expert" replies
Decided to use the Unity 3D engine for this because I'm familiar with it, and it also provides access to all the dot net goodies. But also minor useful things, like the ability to auto decompress a DXT1-DXT5 byte array into a texture.
I'm reading the data from an unpacked WoW, so I don't have to deal with extracting from CASC just yet in order to improve debugging speed.
Updated:
What it can do so far:
- Read BLP Textures (need to fix an issue with DXT1 alpha)
- Read Terrain data: Terrain Mesh, Textures, Vertex Color (No water yet, Vertex normals are recalculated in Unity. Need to import them)
- Read WMO models with simple shader (need to fix texture assignment, some meshes don't get the correct textures)
- Read M2 models (Mesh with Material, no bones and animation yet. Same texture assignment issue for some models.)
- A minimap viewer to help choose the terrain block to load, it will load the terrain with all models.
Latest Preview
Progress....
Minimap Viewer
Now I've started working on loading the next texture layers, but for that I need to read all of the different alpha maps that tell the shader how to compose each layer.
As some of you know the alpha maps come in 4 different types: compressed, uncompressed etc.
At the moment I'm working on the 2048 byte uncompressed version, I found that Outlands uses that format, and here's what I have so far:
I'm recording the second layer alpha into an RGB24 for debugging purpose atm.
As you can see there are a few errors I'm trying to figure out, some of the small map chunks (16x16) seem to have the texture attributed wrongly (sharp edges), trying to figure out what's up with those.
Last edited by Flavius; 06-28-2016 at 07:20 AM.
-
Post Thanks / Like - 8 Thanks
-
Contributor
-
holy **** this is great work!
-
Join us at #modcraft in irc.quakenet if you need help parsing the terrain files
-
Post Thanks / Like - 2 Thanks
Xel,
akspa420 (2 members gave Thanks to karliky for this useful post)
-
Contributor
Originally Posted by
karliky
Join us at #modcraft in irc.quakenet if you need help parsing the terrain files
That's a great offer, thanks
-
Contributor
-
Member
Hey,
Nice work, keep it on!
You use some subversion control I could have a look at? (like GitHub)
Thanks a lot!
-
༼ つ ◕_◕ ༽つ
This looks fantastic (though half of the attachments doesn't seem to be working).
-
Contributor
Originally Posted by
Fadelol
This looks fantastic (though half of the attachments doesn't seem to be working).
Not sure why, I can see all the attachments. Here's an imgur link to the gallery: Machinima Tool Previews - Album on Imgur
Originally Posted by
trineon89
Hey,
Nice work, keep it on!
You use some subversion control I could have a look at? (like GitHub)
Thanks a lot!
I only have the assets/code on my pc at the moment. I'll have to look at how to get it syncing with Github since I'm using Unity to manage my project not VS.
Cheers
-
Member
There is a great tutorial from Unity at https://unity3d.com/learn/tutorials/...playlist=17866 how to get git working with your project.
I am currently working on an own engine including World of Warcaft Maps (I don't want to share too much Informations to Public at the current stage), and your import tool is exactly what I am struggling at the moment. If you could share it how to read WDT and properly assign ADT-Files with it, i would apreciate it. If you want more Informations 'bout my Project, Message me in private.
Thanks and again, very good work till now, keep it on!
-
Contributor
-
Contributor
Been a while since I posted here ,but I am now back to working on this project.
I've started working on a simplified casc extracting method in Unity, with a lot of hair pulling because of the limitaions you get with a game engine.
This (Analysis of the CASC filesystem) thread and Tom Rus' casc library has been tremendous help, wanted to mention that.
Getting really close to having it work now, but I have hit a wall that I want to ask about if anyone can figure it out:
I managed to find and save the Encoding file without any problems, however using the same method to get the Root file and I can't seem to find its 9 byte key in the IDX archives.
They way I'm doing this is, saving all of the IDX data in a generic Dictionary <String, EncodingEntry>, converting the 9 byte key into a String key with Convert.ToBase64String ( it didn't seem to find the encoding file either when i used a byte[] key instead )
I'm converting the encoding/root hashes from the build config into a byte array, trimming the array to the first 9 bytes, then converting that into a string which I use to search in the dictionary.
Currently stuck at this, got the encoding file, but can't find the root file. Hitting my head against this wall :P
-
Member
This is really a very good project! Support you to continue to research and development
Here I found the bigworld engine development suite code, hope I can help to you!
Modcraft - View topic - [C++] I think I have the original world of warcraft terrain
-
Post Thanks / Like - 1 Thanks
Flavius (1 members gave Thanks to sinkhile for this useful post)
-
Contributor
Originally Posted by
sinkhile
Ooh thanks, I'll look into it!
-
Member