[WIP] Machinima Tool menu

These ads disappear when you log in.

Results 1 to 15 of 15
  1. #1
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)

    [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.
    Attached Thumbnails Attached Thumbnails [WIP] Machinima Tool-yzqz4vi-jpg   [WIP] Machinima Tool-9f7bba7c6a-jpg   [WIP] Machinima Tool-62d698bed4-jpg   [WIP] Machinima Tool-e6abcb2568-jpg   [WIP] Machinima Tool-e4c9a07e9e-jpg  

    [WIP] Machinima Tool-7eaaa9a256-jpg  
    Last edited by Flavius; 06-28-2016 at 07:20 AM.

  2. Thanks Smitten, ev0, Xecis, akspa420, fjums, Xel, Fadelol, pepesonicomola (8 members gave Thanks to Flavius for this useful post)
  3. #2
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)
    Turns out the sharp edges is the alpha maps are alright, they just look like that because a different texture will be mixed there.
    Anyway managed to write a CG surface shader that can layer 1-4 textures using the black and white alpha channels provided. Also can set different tiling/texture. Still needs work.




    I am still having some bugs with the alpha channels though, it looks as if I'm reading wrong MCAL(alphas) offsets from the ADT, however they're all 2048 bytes in size and follow each other, so no clue why these artifacts appear in random chunks.





    I believe this is the error that's causing the texture bug.
    One of the alpha layers isn't read properly, and I'm noticing the texture has a repeating pattern on the right side, like it's mipmaps (although these alpha maps don't have mipmaps)

    Any ideas?

    Attached Thumbnails Attached Thumbnails [WIP] Machinima Tool-145e908f91-jpg  
    Last edited by Flavius; 06-20-2016 at 04:02 PM.

  4. #3
    ev0's Avatar Moderator Press "1" for Help
    CoreCoins User Authenticator enabled
    Reputation
    1806
    Join Date
    Jul 2012
    Posts
    2,460
    Thanks G/R
    287/348
    Trade Feedback
    15 (100%)
    holy **** this is great work!
    - Professional PHP/MySQL Developer -




  5. #4
    karliky's Avatar Contributor CoreCoins User Authenticator enabled
    Reputation
    111
    Join Date
    Jun 2007
    Posts
    69
    Thanks G/R
    6/26
    Trade Feedback
    0 (0%)
    Join us at #modcraft in irc.quakenet if you need help parsing the terrain files

  6. Thanks Xel, akspa420 (2 members gave Thanks to karliky for this useful post)
  7. #5
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)
    Originally Posted by karliky View Post
    Join us at #modcraft in irc.quakenet if you need help parsing the terrain files
    That's a great offer, thanks

  8. #6
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)
    After a very long day I've come to realise the stupid mistakes I was making.
    Apparently the terrain alpha map can vary in compression from layer to layer, so I had to move the code around and check flags each time.
    That and I should have payed more attention to wowdev wiki instead of parsing stuff with info I get from the hex editor ( I wasn't skipping shadow map chunks properly ).

    I got all terrain textures loading perfectly now, there are a few things that I still need to fix like stretching the UV's properly, and importing the normals instead of recalculating them.

    Anyway it takes 2-3 seconds to load a chunk of terrain with textures (minimap square sized mesh), with my terrible coding I'm surprised I managed to push it to that speed. Like seriously your eyes would bleed if you saw how I code.

    Here's a galery of a few chunks I loaded to test the textures working

    (Kalimdor) Thunderbluff


    (Outlands) Hellfire Peninsula


    (Northrend) Grizzly Hills


    (Pandaria) Jade Forest


    (Draenor) Gorgrond


    And supports Legion too :>

    (Broken Shores) Stormheim

  9. #7
    trineon89's Avatar Member
    Reputation
    1
    Join Date
    May 2009
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Hey,

    Nice work, keep it on!

    You use some subversion control I could have a look at? (like GitHub)

    Thanks a lot!

  10. #8
    Fadelol's Avatar ༼ つ ◕_◕ ༽つ CoreCoins User
    Reputation
    660
    Join Date
    Dec 2007
    Posts
    610
    Thanks G/R
    161/202
    Trade Feedback
    0 (0%)
    This looks fantastic (though half of the attachments doesn't seem to be working).
    ~Fadelol

  11. #9
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)
    Originally Posted by Fadelol View Post
    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 View Post
    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

  12. #10
    trineon89's Avatar Member
    Reputation
    1
    Join Date
    May 2009
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    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!

  13. #11
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)
    Edited the main post to reflect what I have going so far with the tool.

    There are a lot of things that need fixing now until I move on to the next phase (probably the animation system):
    - Textures don't seem to want to assign correctly to some WMO's and BLP's, assuming it's a parsing issue.
    - Need to import the terrain normals, right now I let Unity recalculate them, so each small chunk has sharp looking edges.
    - The terrain UV's aren't a tight fit, need to calculate it better.
    - Loading multiple terrain chunks will result in some WMO's (around the edges) getting loaded twice, need to skip them.

    The #modcraft community has been very helpful

    Some more previews to show.



    Last edited by Flavius; 06-28-2016 at 07:31 AM.

  14. #12
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)
    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

  15. #13
    sinkhile's Avatar Member
    Reputation
    2
    Join Date
    Aug 2016
    Posts
    1
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    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

  16. Thanks Flavius (1 members gave Thanks to sinkhile for this useful post)
  17. #14
    Flavius's Avatar Contributor CoreCoins User
    Reputation
    105
    Join Date
    Sep 2007
    Posts
    77
    Thanks G/R
    24/30
    Trade Feedback
    1 (100%)
    Originally Posted by sinkhile View Post
    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
    Ooh thanks, I'll look into it!

  18. #15
    scryuh's Avatar Member
    Reputation
    1
    Join Date
    Oct 2019
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Fantastic, Thanks!

Similar Threads

  1. [Video Guide] Maximize World of Warcraft's Graphics with WoW Machinima Tool
    By WoTLKleaked in forum WoW UI, Macros and Talent Specs
    Replies: 1
    Last Post: 08-18-2011, 11:44 AM
  2. WoW Machinima Tool for 4.0.X ?
    By the_shield in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 11-30-2010, 02:50 PM
  3. [Release] WoW Machinima Tool v2
    By UnknOwned in forum World of Warcraft Bots and Programs
    Replies: 100
    Last Post: 03-06-2010, 10:56 AM
  4. WoW Machinima Tool V2 Source Code [AutoIT]
    By UnknOwned in forum WoW Memory Editing
    Replies: 6
    Last Post: 08-20-2009, 08:59 AM
  5. [Video] - WoW Machinima Tool v2 Show-off
    By UnknOwned in forum WoW Memory Editing
    Replies: 24
    Last Post: 06-09-2009, 01:39 PM
All times are GMT -5. The time now is 03:04 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved. Digital Point modules: Sphinx-based search