Leaderboard


Popular Content

Showing content with the highest reputation since 09/08/2015 in Tutorials

  1. 8 points
    Note: this is only for 64-bit exe of 7.3.5 26972! To disable GlueXML signature check, make the following changes in Wow-64.exe using your favorite hex editor: at 1B7A8E: replace A6 with A7 at 86D522: replace DB with DC
  2. 5 points
    Hello, I am writing this tutorial becasue I have strugeled to do this and did not find many people that seem to know wbout this topic. So here we go: What is this tutorial about? Today I want to show how to setup a CDN for yourself to be independent from Blizzard. This is very usefull when you want to stick to a certan version of WoW. This tuorial is made for people that have basic skills in WoW-Modding and know some terms. For simplicity I will use Legion as my prime version. This works very similar to all versions that have a CASC storage. What is a CDN used for? As you may have noticed your Legion Client is able to load files not only via the BattlenetApp but also ingame. This is caused by a technology called CASC. A CASC is a special type of storage developed by Blizzard to be able to stream files to a game client. These CASC storage is provided via a CDN. Why have a own CDN? The anser is quite simple. Blizzard turns off support for older game versions. If you run a server and Blizzard shuts down their CDN for your client version it might stop working. To avoid this you need to have your own CDN. What do I need? You need a list of software in order to host a own CDN. Alot of these tools can be changed for equivalents feel free to use whatever tool suits you. I wont cover how to install these if you have trouble feel free to ask me. Here is my list: A Web server : https://httpd.apache.org/ A 010 Editor: https://www.sweetscape.com https://github.com/wowdev/Ribbit.NET (if you want to compile BuildBackup) Marlamin BuildBackup: https://github.com/Marlamin/BuildBackup/ (or allready downloaded CDN-Files) A simple Text Editor What to do? 1. Step Marlamin BuildBackup NOTE: You need Ribbit.net to use BuildBackup this is due to recent changes in the way Blizzard cdns work. You will need to use this aswell to downlaod from Blizzard cdns. After you have compiled the sources you will have a output that looks like this: You probably lack the batch but I will show you how to do this right now. dotnet BuildBackup.dll forcebuild wow 3b0517b51edbe0b96f6ac5ea7eaaed38 da4896ce91922122bc0a2371ee114423 As you can see this batch runs the BuildBackup.dll with the following parameters forcebuild - This forces it to load the right version wow - This is the game you want to download from the Blizzard CDN (only wow should matter) 2 Hashes You have to modify the 2 Hases to get the correct version. Todo so you open up following page: https://wow.tools/builds/ There you will find a long list of different builds. Search for the correct one and get the Build Config (1. Hash) aswell as the CDN Config (2. Hash). Fill those in to get the right Version. Sadly alot of the older Versions are not available anymore. I cant provide those so back up your Version as long as it still exists! Now run the batch and wait for the process to finish. Your outcome should be a folder named tpr. Make a backup of this folder in case you mess up your working Version. Keep in mind this can be around 200 GB of data. 2. Step getting all other needed Files Click the following 2 links and keep the Files where you can find them. We will need them in a minute. http://us.patch.battle.net:1119/wow/versions http://us.patch.battle.net:1119/wow/cdns These files direct your client to downlaod the correct Version of the Game from your CDN instead of the oficial ones. You need to modify those later. 3. Step configurating the web Server Now you have to open your web-Server. This is needed becasue your Client uses HTTP to request its Files. (Note this will only work for WoD and Legion since they introduced a new Type in BFA). Setup the following folders in your Root folder. In case of Apache 2.4 this folder is called htdocs. htdocs/wow htdocs/tpr/wow/... Copy your CDN-Files from step 1 in place of the trp folder and your files from step 2 in your wow folder. 4. Step editing the wow-folder files. Now open and modify the files according to my example. Starting with cdns: Name!STRING:0|Path!STRING:0|Hosts!STRING:0|Servers!STRING:0|ConfigPath!STRING:0 eu|tpr/wow|localhost|http://localhost|tpr/configs/data tw|tpr/wow|localhost|http://localhost|tpr/configs/data us|tpr/wow|localhost|http://localhost|tpr/configs/data kr|tpr/wow|localhost|http://localhost|tpr/configs/data cn|tpr/wow|localhost|http://localhost|tpr/configs/data Of course you should use the web-server adress you have. To set it up locally you can use localhost. You can also use a diffrent port. If you do simply add the port behind both localhost. I use default 80. Next up is versions: Region!STRING:0|BuildConfig!HEX:16|CDNConfig!HEX:16|KeyRing!HEX:16|BuildId!DEC:4|VersionsName!String:0|ProductConfig!HEX:16 eu|c67ad9d5ac4908d65a512b21fc9171bd|e9754adcc354309d735e9a4b3ba1ec87||26972|7.3.5.26972| tw|c67ad9d5ac4908d65a512b21fc9171bd|e9754adcc354309d735e9a4b3ba1ec87||26972|7.3.5.26972| us|c67ad9d5ac4908d65a512b21fc9171bd|e9754adcc354309d735e9a4b3ba1ec87||26972|7.3.5.26972| kr|c67ad9d5ac4908d65a512b21fc9171bd|e9754adcc354309d735e9a4b3ba1ec87||26972|7.3.5.26972| cn|c67ad9d5ac4908d65a512b21fc9171bd|e9754adcc354309d735e9a4b3ba1ec87||26972|7.3.5.26972| Fill in the hashes you used to download the files in step 1 aswell as the correct Version. Now you are nearly good to play. 5. Step modifying your client The URL to the Blizzard CDN is hardcoded in the client so you need a hex-editor to change this. Open your WoW-exectuable with 010 Editor and hit "ctrl + F". A small search bar apears at the bottom. Select the option text and search for cdns. You will find 2 links pointing to a Blizzard CDN. Simply change those URL's to point to your Web-Server and save the Files. 6. Step Logging in Now you can Login to your Client and use your own custom CDN as long as your Web-Server is running! Als long as your webserver is running your client will patch itself. Also Here is a tutorial on how to add custom files to your own cdn.
  3. 5 points
    In this tutorial we will learn how the so called wotLK procedural water works, and how to activate it. This water was added to the game files in patch 3.0 for internal testing only, so keep in mind that it's not perfect. It's called procedural but actually isn't, because nothing is created algorithmically, it's just a group of textures that interact with each other and give a nice visual effect. There are some patches available online with this water activated, but most of them have errors or look bad (based on my own judgment). We will also learn how to improve it and customize it. Tools -MPQ Editor (or any other MPQ reader) -Any DBC to CSV converter, such as Wow Parser -Notepad -Any BLP converter -Photoshop (or any other image editor) Step One - Editing the DBCs Open MPQ editor and extract the file "DBFilesClient\Liquidtype.dbc". Convert this file to CSV (you can't edit it directly with a DBC editor for some reason) and open it with notepad. Each line corresponds to a liquid type. The one with ID 100 is the procedural water. We will do a line swap. You have to delete these entries: 1 (Water), 2 (Ocean), 5 (Slow Water), 6 (Slow Ocean), 9 (Fast Water), 10 (Fast Ocean). Now copy the line with the procedural water and give it the same name and ID of the entries you deleted. http://i.imgur.com/cC87I59.jpg You will notice that there are 2 kinds of water: simple water and ocean water. If the entry has "Water" in its name, replace the "1" in the 4th column with "0". It should look like this: http://i.imgur.com/a484Hvl.jpg Also, if the entry has "Water" in its name, go to column 20 and replace "proceduralOceanDepthTex" with "proceduralRiverDepthTex". The game uses a special illumination for the ocean, so this step is important or your water could look weird. Technically we are done, but there is one last thing we can do: Go to the column 21 (it's the last texture in the line) and replace "XTextures\ocean\ocean_h.%d.blp" with this transparent texture: "World\GENERIC\PASSIVEDOODADS\ParticleEmitters\DemonGlow04.blp". Doing so will remove this pointless reflection: It's quite annoying and unnatural because it goes against the position of the sun. It's better to remove it, but totally optional. Now you can save your CSV and convert it back to DBC. Note: you can also swap the wintergrasp and hyjal water if you want. Just check the spell id in column 6. Step Two - Extracting the missing textures As you may already noticed, the procedural water uses a few textures that don't exist in-game. Blizzard tested this new water internally, that's why they never added the textures to the WotLK client, but they are present in updated client versions. You can download the missing textures HERE. If you want to extract them by hand, just open an updated wow client (4.x or beyond) and extract the following textures: XTextures\ocean\basicReflectionMap.blp XTextures\ocean\basicWaterHeightTex_X.blp ("X" is a number between 1 and 32, you must extract them all) Rename the folder called "ocean" to "procWater" and it's done. You should have 33 textures, something like this: XTextures\procWater\basicReflectionMap.blp XTextures\procWater\basicWaterHeightTex_1.blp XTextures\procWater\basicWaterHeightTex_2.blp XTextures\procWater\basicWaterHeightTex_3.blp etc. Note: the reflection texture has a unique compression and most blp converters can't read it. If you are having trouble trying to convert this image, install BLPView, preview the texture in the Windows preview pane, take a screenthot and paste it in a new document (768x128). Step Three - Tweaking the Textures Reflecting Texture Now you can test the water in-game. If you did everything right, it should be working correctly. BUT it can look much better. Before starting, it's important that you understand how the reflection texture works. The game only reads the texture if it's 768x128 (width x height). Bigger or smaller images won't work. The texture is divided into 3 sections: The 1st section is a panoramic photo, the reflection itself. The texture bends to form a ring around your character (from another point of view, it wraps around a cylinder). Then, the 2nd section of the texture fills the gap at the center of the ring. The 3rd section overlays all layers. The farther from the center, the more it becomes distorted. Also, it creates some small waves. Now that we know how it works, let's analyze this image: This is how the procedural water looks with the default texture. Yes, it looks like radioactive waste. We have a reflective texture with a lot of green, and the 3rd section of the texture overlays even more green, messing the original color of the water (it should be blue, not yellow). -The first thing we must do is opening the texture with photoshop and removing the sun. Why? Because the water is always reflecting the sun, even at night, and it doesn't look good. -Then, we must desaturate it. If the image is in black and white it doesn't mess the original color of the water (if the water is blue and your reflective texture is red, you will get purple water). You should avoid using color. -We can also darken it a little bit and give some yellow to the third section of the texture. This will give us subtle golden reflections. Now it looks much better. In case you want to remove the 3rd section because you don't like the overlay reflection or waves, just fill it with black. You can even make a lot of new water ids, each one for a different zone, with a different reflective texture (you just need to change the texture name in the DBC), or you can make new liquids, as this "mana water": The "wave effect" You will notice that after some time the water starts doing some kind of fractal movement, creating a weird wave effect. It can look good in the ocean, but a little out of place in ponds or lakes. This is caused by texture tiling. In order to repeat the reflective texture, the game tiles it. Since the texture has different contrast levels, it makes an optical illusion similar to a succession of waves: This effect is hardcoded into the shader (even filling all collumns with 0 in Liquidtype.dbc won't change it), however you can make it less noticeable by using a dark texture with homogeneous contrast, like THIS ONE. You will see less reflections, but the "wave effect" is almost gone: You can use the default texture for the ocean and the one with less reflections for small bodies of water, but it's a matter of taste. Ripples The ripples are created by the sequence of 32 textures named "BASICWATERHEIGHTTEX". They distort the reflection texture. Each one of them is a frame. Basically these textures are normal maps simulating movement and depth. You can also try to apply other textures, but I won't get deeper into that, because I think it looks good with the default sequence, and it's quite difficult to make a new animated normal map. Player wakes and splashes If you want to update the old wake and splash textures, you have to replace the following files: XTEXTURES\Splash\splash.blp XTEXTURES\Splash\wake.blp Here are some textures I made that match procedural water way better than the default ones: (You can download them HERE) Water brightness Procedural water is brighter than classical water. This is more noticeable at night (specially in places like Theramore or Booty Bay). This happens because the texture is not affected by the diffuse and ambient lighting (the same occurs with the default water, but since it has transparency and the material beneath is indeed affected by lighting, you don't notice this effect). There are a few things you can do to counter this issue: -Darken the reflection texture. -Decreasing the water color lightness by half in the DBCs (LightIntband.dbc, last 4 IDs, more information HERE). Conclusion That's all the basic information you need to know about this "procedural" water. You can also download a few custom textures I made HERE, so you can see how different the water looks with different environments. Feel free to make your own textures and explore this topic even further. Also, remember that this water is some kind of alpha testing phase for the liquid system released with Cataclysm, so you can find some artifacts like random lines in the ocean. My goal with this tutorial is to stop people from asking for procedural water mods, it's fairly simple to do it yourself. If you have more information to contribute, please send me a private message and I will add it to the tutorial. Thank you. Have fun!
  4. 5 points
    Introduction Difficulty: Relatively easy Estimated time: 30 min - 1.5 h. Requires: Adobe Photoshop, MapTemplate.psd. Here is the example map that I am going to use as an example for the tutorial. The shape of the continent belongs to one Russian Minecraft project (Medieval Minecraft) and represents their world Asteros. I was too lazy to make something up on my own, so I decided to take this shape. I made this map in about one hour using a graphic tablet (can be also done without it), so it is not that complicated as it may look like. I created a new version of MapTemplate.psd based on the old one by Soldan and using the new WoW worldmap assets provided by Vellear. So, let's begin! Creation process Step 1. Getting the shape. Launch your Photoshop and open MapTemplate.psd. Choose the Ocean layer you prefer and make it visible (it may be with or without watermarks, I used the one without watermarks). Select the ground layer without making it visible. Now use the Lasso Tool (L) to paint the shape of your continent. You can also do it in many other ways, but the main point is to get a properly shaped selection on your canvas. Now switch to Rectangular Marquee Tool (M) and right-click somewhere on the selected space. In the context menu choose "Layer Via Copy". Now you will get the continent shape displayed on a new layer. It may look a little unsatisfactory (such as having a lot of rubbish around, weird shapes and so on), so you can clean it and master the shape using Eraser tool (E). Here is what I got after cleaning and working on the shape: Step 2. Adding details. Now pic up small radius hard brush and use Eraser Tool to paint small rivers, lakes and other details involving the landscape. It is important to use hard brush because soft ones make bigger borders around themselves, so it does not look that good. For this task graphic tablet with pressure sensivity saves tons of time. Here is the result: Now it is time to add some mountains to your continent. Select the layer with the mountain pattern and scale it to fit the size of your continent. You can reduce layer trasparency to see the continent shape through it, so you can decide the average size of the mountains. Switch back to your continent layer and right click on it, choose "Select pixels". This will select your continent again. Get back to the mountain layer and press "Ctrl + Shift + I" in order to reverse the selection. Press delete. Now you have your continent entirely filled with mountains pattern. Use soft brush and Eraser Tool to get rid of the unnecessary mountains and blend them with the ground. You can also make a copy of the original mountain pattern and cut some bigger mountains from there. Be creative to make something interesting. Here is what I got very quickly. Let's finish the shore lines now when the mountains are done. Switch to your continent layer and select its pixels. Go to Selection - Modify - Expand and enter some value like 10 or 12. The space between expanded selection and your continent is going to be your shoreline (water shelf). It should look somewhat this way: Choose the Coast Line layer, select Rectangular Marquee Tool, right-click on selection and choose "Layer Via Copy" in the context menu. Now you will have your shore lines, though they would not look blizzlike. In order to fix that we need to change layer blending settings. So, double click on the little icon representing the layer in the layer manager. Set a check box to "Inner Glow" and choose the appropriate color. Now it is time to get some decorative lines, representing the sea waves or whatever Blizzard thinks they do. They really add much style to the map. Make the Sea Lines layer visible, select continent pixels, get back to lines layer and press "Delete". Now remove the unnecessary lines all over your map using soft brush and Eraser Tool. You can also slightly increase the opacity of the layer as the default one is not on max. It will get more of a Blizzlike feeling. Step 3. Coloring the map. This is basically all you need to do to get a Blizzlike continent. Though, as we are modders, we should improve something, not simply replicate what Blizzard do to their continents. Let's make the map more interesting by coloring different climate zones or something like that. In general, let's go from the boring parchment color theme to something more colorful. Make a backup of the continent and mountain layers. Set the brush mode to "Overlay". Now use soft brush and Brush Tool (B) to paint colors on the ground. Then do the same with the mountains if necessary. That's all. Don't hesitate to leave feedback about my tutorial in the comments
  5. 4 points
    Introduction Originating from Heroes of the Storm (CASC '1.0'), the Content Addressable Storage Container is a new file system for WoW, introduced in Warlords of Draenor as a replacement for MPQ archives (CASC '2.0'). As such, it needs to be worked with in order to use custom game files in WoD, Legion, and BfA. CASCHost is a tool for just that. Tools and resources CASCHost itself Patched WoW.exe If you are running your server and client on the same machine, you can download a suitable WoW.exe here. Alternatively, keep reading for an instruction on how to patch the exe yourself. This will require 010 Editor and the TrinityCore Connection Patcher. As of TC Master 8.0.1, the TC patcher is no longer operational. Chances are, you will be using the Arctium Launcher instead. If you follow my instructions on patching WoW.exe, the Launcher will not work, as it also overwrites the versions url. Read on for an instruction on how to patch the Launcher instead! (the exe should be left unedited). .build.info This file might be in your WoW folder - if it is, use that file for CASCHost as will be described below, and temporarily remove it from your client. While this file is in the same folder as WoW.exe, the latter will ignore your custom CASC and only download files from Blizzard servers. Alternatively, you can always get one here. Make sure to choose the correct version. The Technique Installation Download CASCHost from the link above (either the pre-built version, or clone it from GitHub and build yourself). If you build the program yourself, you will need to manually create some of the folders I talk about below. Place your .build.info in CASCHost folder/wwwroot/SystemFiles/. Place your custom files in CASCHost folder/wwwroot/Data/ with the correct structure (e.g. wwwroot/Data/Character/Human/...). Open the file CASCHost folder/appsettings.json to edit: RebuildPassword - use this field if you would like CASCHost to require a password when issuing rebuild commands from a browser. HostDomain - your server domain in the form domain:port. IP addresses are not supported, apparently. Leave as "localhost:5100" to use the pre-patched WoW.exe. SqlConnection - the IP address of your SQL server, the username and password (typically, trinity/trinity), and the name for the database CASCHost should use. Sometimes you might need to create the database yourself instead of letting CASCHost do it. Locale - the localisation of your server and client(s), e.g. enUS, deDE, enGB, ruRU, etc. (Optional) To publicly host your custom files for other players to download, open the file CASCHost folder/hosting.json, and add your domain:port to the urls list. Patching WoW.exe Patching Arctium WoW Launcher.exe You can now run Start.bat from your CASCHost folder and, once that loads, start WoW.exe/Arctium Launcher. The client should begin downloading the files you placed in CASCHost folder/wwwroot/Data/ (don't worry, it will download whatever it needs from Blizzard servers as well, but your files have priority). Managing CASCHost While CASCHost is running, you may add/edit/remove files in the Data folder. In order for the changes to take effect, you must open your browser and go to http://yourdomain:port/rebuild In the default case, it will be http://localhost:5100/rebuild If you have set up a rebuild password in CASCHost settings, you will need to go to http://yourdomain:port/rebuild_yourpassword To stop CASCHost, press Ctrl+C in the window, and choose Y. Troubleshooting For all of your CASCHost troubles (a file not appearing/updating/being removed, etc.), there is a simple algorithm: try the first step, move to 2 if it doesn't help. It might sometimes be helpful to clear the client cache between steps. Rebuild. Stop CASCHost and run it again. Stop CASCHost, delete the Output folder (in wwwroot/), and run it again. This might take some time if there are a lot of files. Stop CASCHost, delete the Output folder, open the CASCHost database with your SQL editor of choice and delete the root_entries table (Warning: this will lead to all of your custom FileDataIDs being jumbled up!), run it again. Complain on Discord. Create an issue on GitHub. Conclusion I am hoping this guide will answer most questions and resolve most problems people have when introducing themselves to CASCHost. As a semi-experienced user myself, I might have made some mistakes while writing it, and so will welcome any constructive criticism. Regardless, I would like to credit and thank the developers of CASCHost: @barncastle, Maku, @luzifix, and tspearman for, well, developing it, and writing an informative readme.
  6. 4 points
    Hi, this is my first contribution to the community and I came with a simple tutorial on how to add a minimap to your custom map thanks to Krysik who gave me alot of information about. Please see attached pdf file or get it from this link https://drive.google.com/file/d/1VpQnQbVZGaR3ry8n-wUUTtUfTS_DBTYh/view Custom Minimap Instructions.pdf
  7. 4 points
  8. 4 points
    Welcome to the beginner’s World of Warcraft modding tutorial Creating mods for World of Warcraft is a skill that is easy to learn, yet hard to master. Our community is dedicated to bringing you a variety of tutorials that can help you on your way so that you will avoid most beginner’s mistakes and save your precious time. We will give you all of the necessary information required for obtaining a basic understanding of the World of Warcraft modding. We want to inform you that most of the tools which are currently used for creating World of Warcraft mods are made and work only for Wrath of The Lich King (3.3.5a) game client. There are a lot of ways to mod other (prior and later) WoW expansions using these tools, but we strongly recommend you to learn the basics of WoW modding on a 3.3.5a game client. When you are done with that, you can start modding any game version. World of Warcraft modding is a vast field for applying some of your creative skills and knowledge. In a nutshell, it mostly includes design-related work, programming, and some basic data operations. You need to decide what you want to do, while we aim to provide you with the knowledge of most aspects of different branches of modding. If you want to do clientside changes which include level design (mapping), 3d modeling (also known as model changing), interface modding and some other things, you need to take some of your time and read some of the following tutorials in order to get the basic idea of how the client patching system work. Those will also help you to get all the required software installed and configured correctly. Tutorial navigation menu Part 1. Overview. Setting up tools WoW modding overview. File types done Detailed description of WoW file types done Installing the development environment (will be done by @Balkron ) Installing local Trinity Core server (will be done by @Balkron ) Part 2. Noggit basics Map Editing in Noggit (will be rewritten by @Skarn ) Alphamapping Basics (will be rewritten by @Skarn ) Ground Effects, Music and Area ID (will be rewritten by @Skarn ) Creating your blank custom map (will be rewritten by @Skarn ) Part 3. Modeling basics WoW model file types (will be done by @Balkron ) Blender workflow basics (will be done by @Balkron ) WoW Blender Studio addon basics (will be done by @Balkron ) Converting your first static .m2 model into WoW (will be done by @Balkron ) Converting your first .wmo model into WoW (will be done by @Balkron ) Part 4. Testing Creating Your First MPQ Patch done Testing Your Work Without MPQs done
  9. 3 points
    Hey! I try make this guide for you can make you CDN with custom files for 7.3.5 Legion (u other versión). Before I’m sorry for my english level and I hope it can understand you. The first step is download CDN Blizzlike files. Here I share us the CDN Blizzlike files for 7.3.5 26972 (I'm not allowed to share it. When i have time i upload my CDN Files) You must download this files in you server, it can be Linux or Windows, i used Ubuntu server 17. You can use this command in Ubuntu for download from Google Drive: wget https://raw.githubusercontent.com/circulosmeos/gdown.pl/master/gdown.pl chmod +x gdown.pl perl gdown.pl “name of file” Now you must unrar the file in your webhosting app. It can be htdocs or /var/www in case of Linux. If you haven’t Apache installed, you must do it (sudo apt install apache2). You can change the root path of apache2 (cd /etc/apache2 and nano apache2.conf or conf file in some folder) You must have tpr and wow folder of CDN Files you downloaded in root path of apache2 (example: /var/www/tpr and /var/www/wow) You can configure one domain for point your ip. Now you must download CASCHost, you can follow the next guide: https://model-changing.net/tutorials/article/120-beginners-guide-to-caschost/ But in this guide, you must modify appsettings.json with “Staticmode: True” And you must download this .build.info= https://drive.google.com/file/d/1kAzKbwHaVq76BkWHRHjNVZODHqTOvM6G/view?usp=sharing After you must modify and change localhost for your domain, you can have more domains. Example: localhost for try.com localhost 2 for try2.com, etc. If you have other CDN Files or versión, you must change the Keys CDN,Build, etc from .build.info and save. You must put the .build.info in your CASCHost/CASCHost/wwwroot/SystemFiles and your custom files in CASCHost/CASCHost/wwwroot/Data/custom files with blizzlike path. Example: Data/Character/Orc/Male/Orcmale.m2) You must have access to your database as said here: https://model-changing.net/tutorials/article/120-beginners-guide-to-caschost/ After you must go to your CASCHost/CASCHost and you do (dotnet run) When it finish, you copy your custom files from CASCHost/CASCHost/wwwroot/Output to CDN Files webhosting. Tpr and wow folder of CASCHost to tpr and wow of CDN Files in Apache2. You never must delete your database. After you modify your Wow.exe and change the url for your domain.com/wow/cdns and domain.com/wow/versions as said in the other guide. If you have problems, you can ask help you in discord or MC. Enjoy!!!! If somebody want share the CDN files and versions for 8.1 or 8.2, much better!! Thanks to Kallar, Senix and all Model-changing.
  10. 3 points
    Hello there little whelps, there have been quite a lot of requests for transports tutorial and guy who promised that he will write it didn't do so, so I decided I will write this tut for you on my own. What are transports? Transports in WoW are in fact gameobjects which are being moved along a path specified in DBCs, which are quite easy to understand and edit, so this should not be anything difficult even for beginners. Players who stand on gameobject working as transport move together with it, until they leave it. It seems there are 20 blizzlike transports in blizzlike TC2 world database and all are ships and zeppelins, it works quite nice for water and air traveling. Sadly, this system doesn't work very well for ground traveling, I will explain why later. Transport system shares DBCs with taxi (fly/wind path/master) system, and is very similiar to it, with just a few differences. What will you need? - MyDBCEditor (or other WORKING DBC editor, forget Taliis, please) - any editor for MySQL databases - TaxiNodes.dbc - TaxiPath.dbc - TaxiPathNode.dbc TaxiNodes.dbc You can see example of my 2 custom TaxiNodes. These nodes are in fact just to specify where destination lays (docks for example), but they have nothing to do with actual paths which transports will follow. Make sure you enter correct map ID (its in hex here, 0x25 is 37 in dec, and thats ID of map I was using here), but X, Y and Z coords don't need to be really exact. Name is in fact just a note for you and last 2 columns specify entry of creature used as mount for taxi path, but have no effect for transports and thus I left them empty. TaxiPath.dbc This is really fast and simple step, TaxiPath is a connection between two TaxiNodes. Just create a new row with entries of 2 nodes you want to have connected with transport, last column specifies prize for taxi (and we are doing transports, that prize would have no effect even if there was another value than 0). While you can connect only 2 TaxiNodes with one TaxiPath, you may make your transport stop on whatever point of path you wish, it can enter 50 docks and stop there if you want, so both TaxiNodes and TaxiPath aren't important at all - they are there in fact just to make server and client happy and you a little bit more busy. TaxiPathNode.dbc This will take most of your time. You need to specify path which will be followed by transport. Enter (correct) ID of TaxiPath (which connects 2 of your TaxiNodes) and coordinates of each waypoint into #5, #6 and #7 column (you can get your character's coords by command .gps, path on screen belongs to ship, so Z coord was always 0 for me). Don't forget to assign unique point ID in column #3 for every waypoint of your path, otherwise either your client or server may crash (note that first waypoint has ID 0, not 1). You can also notice that I left all other columns 0, they are rarely used and I am not sure what they are for. There are only 2 exceptions, you can notice those 2 rows with values 2 and 10 in #8 and #9 column. In that case, transport stops at that waypoint and waits there for 10 seconds. You can have more than 2 of such points, as I have already mentioned earlier, so your ship/zeppelin can visit as many docks as you wish and wait there as long as you want for passangers.You can try to experiment more with last 5 columns in this DBC, hopefully you will find out how at least some of them work. A few tips and notes for creating a path - Every TaxiPath needs to be made of at least 3 waypoints, otherwise you get crash. - Path itself is made of curves which are being calculated from waypoint positions and distances between them. Its good to keep distances between waypoints even, otherwise you can get unpleasant buggy results. Also don't make too sudden and sharp turns, otherwise your transport can either go very far from waypoints while turning (and even pass through some objects around, and thats obviously quite unpleasant) or bug a little bit and jump/teleport suddenly. - Mark waypoint you have already entered into DBC with some sort of gameobject or NPC while spawning a path. I use wisp NPC Waypoint (entry 1) for this, because it can fly and is invisible for players. You can delete your marks when you are finished. - Make damn sure you don't mistype anything while entering coord values into this DBC. One mistype can send your ship across world and you will be there standing like fool, waiting in docks for ship which is basically never coming, because it is following dozens of kilometres long path. - To make transport follow exact path is very, very difficult, because, like I said, exact path is calculated and calculations are just based on coords of your waypoints. While transport passes waypoints themselves directly, you can't modify its path very easily between waypoints at all. Avoid narrow passages if you can, or create such passages based on already created and finished transport path, not otherwise. For this reason, ground transports just don't work well, they tend to fly above or sink under terrain all the time between waypoints. - While being in transport, players ignore all collision with world around. You can surround for example your island with impassible flags or with some models which can't be passed by players, but they will always pass them in transports. So you can make players to just have to use transports quite easily. - If you wish to make transport teleport players from map A to map B (and thats what basically are mostly transports for in blizzlike setting), just make transport move to some waypoint at map A and then enter a new waypoint with mapID of map B into DBC. Thats whole magic around. - Transports tend to teleport between last and first waypoints of their path. Don't ask me why, I never found out. It seems that transports in fact don't move in circles, they are always respawned after finishing their path. Players are, luckily, not dropped into sea when this happens, but just appear on new transport. Its still a little bit unpleasant effect, especially if you want to have transport travelling around one map without any teleports, but I have never found real solution for this. Just make those last and first waypoints close to each other. Blizzlike transports don't seem to have such problems, I am not sure what is going wrong here. world.gameobject_template You will need to create your gameobject which will be used by transport. Fields which are not noted here don't seem to be important/working and should be left with base values (0/NULL), but again, you are free to experiment. - Entry, do I have to explain anything? - Type needs to be 15 (11 is for elevators, which work with entirely different than transport system). - DisplayID is up to you, which means that transports don't have to be huge WMO ships, you can use even a small M2 boat doodad, if you want to. Just make sure your model has collisions. - Name, again, self-explanatory. - Flags, most transports have flags=40, some have 0, but I would not use 0. - Size can be used other than 1 for M2s. - data0 is ID of your TaxiPath - data1 should be speed but it appears to not work as one would expect. 30 is most common and fine-working value. You can ofc try both lower or higher and see how results will fit to you. - data2 should be some kind of acceleration modifier...? All blizzlike transports with speed 30 have 1 accelRate. - data5, I don't know what this field is for. - data6, specifies ID of group of NPCs spawned onboard and travelling with transport, however, I don't know to what table this field reffers to. - data7, a few transports have value 3481, again, I have no idea what this is for. - data8, a few transports have value 1 and again, I have no idea what this is for. - AIName, ScriptName, you can, obviously, assign any scripts you wish to this gameobject. I have never tryed to assign some, for instance, SmartAI script to transport, but I see no reason why it should not work. One blizzlike transport has SAI scripts. - VerifiedBuild, you should always everywhere use value 12340 (3.3.5a revision number) to avoid any possible problems. world.transports And here we go, the last thing to do is to place our transport here. Make sure you have placed your edited DBCs both into server's data folder and into your client's custom MPQ patch, create a new row in this table with new, unique GUID, enter entry of your transport gameobject, name is just for description. Older TC2 revisions have also period field, which appears to specify how long should core wait to respawn transport (put it on start of path), but it was removed and system seems to obtain that value on its own, automatically.The most easy way to disable transport is just deleting it from this DB table, you don't need to delete its data from DBCs. Your transport should be there, waiting just for you, but it usually takes a few (sometimes dozens) of attempts to make your path smooth, not-running into any terrain or models and clean it of teleport bugs made by too sharp curves or by too big differences of distances between waypoints. Especially making transport really dock properly with proper rotation and position can be pretty terrible task to do. How to create taxi path? Someone asked me about taxi path systems... They are basically the same. You create TaxiNodes (btw again, if memory serves me well, nodes themselves aren't part of paths of taxis), connect them with TaxiPaths (in this case you might also want to specify prize for TaxiPath in copper), spawn TaxiPath which will, in this case, be not a circle, but straight path from point A to point B. And you are, basically, done. Taxi vs transportTaxi pros: + you can make player pay for travelling + you can link taxis to SmartAI scripts (there is action to send player somewhere by taxi) + you don't have to worry so much about boat fitting and sailing around docks without colliding with them, you just need to land on floor and there you go Taxi cons: - player on taxi has no collisions, so hello, boat which has just passed across my face - unlike transport, taxi always connects only 2 points, creating 1 path with 3 docks means creating 2 or 3 TaxiPaths - players can't travel together in taxi - more players travelling together mean more taxis... imagine those 20 boats in one, overlapping group - a map where you select to which TaxiNode you want to be taken never worked for me on maps where no fly masters originaly are, I never found solution, possibly core/LUA issue, I found a way around, you can simply make gossip menu for every fly master where gossip menu options will send you via taxi to wished point, buuut... its not ideal sometimes Transport pros:+ players can play (roleplay?) with each other while travelling together+ can connect multiple places where it stops+ have collisions+ looks nice and realistic, much more than raid of 20 boats Transport cons:- you can't really (easily) make players pay for transportation- can't be (easily) called by SmartAI scripts- path needs to be more properly done around landings- is sometimes somehow inflexible if you want to make one landing temporarily impossible to travel to In general, I found myself still preferring taxi system over transport system, even while taxis have quite a lot of cons. However, taxi system just works better for me while I want to make players pay for travelling and while I want to be able to easily disable some paths from time to time. I also love possibility to assign taxi to SAI script. Being able to have conversation with NPC, during which you will be informed where will you be taken, how long it will take, what hazards are there and so on? Sign me in, especially for RP servers definitely great possibilities. Taxis are also great as part of quests and Blizzard uses them in such manner very often. Its cool and in fact quite simple to make system.
  11. 3 points
    Hey guys, This is a reupload from 2017 by Roccus. I could save it and i want that the legion modding comes more alive. It's time for it. First, let's start with the tools i used so far : http://www.model-changing.net/files/file/82-wdbx-editor/ http://www.model-changing.net/files/file/119-get-filedata-id/ http://www.model-changing.net/files/file/118-getdb2hash/ http://www.model-changing.net/files/file/115-cascexplorer-2017-compiled/ http://www.zezula.net/en/casc/main.html http://www.model-changing.net/files/file/116-list_root-exe/ https://bitbucket.org/suncurio/blender-m2i-scripts/downloads/ https://bitbucket.org/suncurio/m2mod/downloads/ http://www.wowinterface.com/downloads/info6127-BLP2PNG.html http://www.wowinterface.com/downloads/info22445-BLPFormatPlug-inforPhotoshop.html https://www.sweetscape.com/download/ https://mega.nz/#!dvpj0ThZ!t0gx5DOAlMGVQMdwej3p3shWp-SHlQmULi2a2l6AQGw https://mega.nz/#!J2IV1aQZ!SFJZcMEOdf2vZH_prn5RnV7tO1CCb7d_dygYGfhb_bQ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- How to reset 010 Editor: Open regedit (windows) and HKEY_CURRENT_USER/SOFTWARE and delete the SweetScape folder. It will reset your 30 days trial. U can do it again and again ? ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- If you do a 3d custom model or edit one you Will see all mesh separated in game like a constructed doll but it s not that visible in my opinion. And you have to put SET M2UseLOD "0" In your config.wtf file in your WTF because your models Will expand otherwise. Don't ask me why but this Will fix everything. Let's get started now, i will tell you when to use each of those things. PART 1 : Understanding and Editing db2 files from DBFilesClient. Thanx to Barncastle everything is easier with his awesome WDBX Editor which permits to open those db2 with their definitions for 7.3, 7.2, 7.1 etc. For big editing you can even export them to sql file, to your sql server directly as a table and even is csv format which are all pretty cool for mass editing. You all know that there's almost only numbers in the new db2 format from blizzard and that'w why it was difficult to know which textures of models were related to what numbers. Here's the solution. I haven't tried everything. I can tell you that for spell related db2 it's a real maze and i never found the links between them so I will give you the example with either creature db2 and item db2. So you need to extract from cascexplorer or Cascview the modelfiledata.db2, texturefiledata.db2 and thanx to cascexplorer, go to Tools > Extract CASC System Files like this : You just have to wait for it to complete the extraction which is pretty fast and then go take the root file in your cascexplorer folder. It's called « root » and cascexplorer won't tell you if the process is finished, it will be done when you can interact again with the tool. Now use the list_root made by wungasaurus i shared on the links and move the rootfile and your most up to date listfile in the list_root.exe folder. shift+right click to open a command prompt on the folder path. Then type : list_root.exe « listfile.txt » « root » dump_all > whathevername.txt and wait for the process to list the root file of the game which is « Filedata » of Legion to make it easier to understand. Ok now you got everything needed. (note that a little bit of excel editing to get rid of the middle hash between path and Ids make it easier to read this filedata) Here's how you need to use the generated filedata root + modelfiledata.db2 + texturefiledata.db2. I like to make them to csv format on notepad++ for my research. You want to get a special weapon displayID from legion (which is a hard thing since WMV doesn't do it anymore) now it's easy. Open your Itemdisplayinfo.db2 and search for a displayid like this. See the purple highlighted IDS, first one is Model ID and second one Texture ID : Remember those ID's, now go to modelfiledata.db2 for the first one and texturefiledata.db2 for the second one : here's modelIDs of the root : here's texture root ID : now take ID 140142 for model and 140164 for texture. Now go to your root file and search the corresponding ID and then you'll get the filepath and its name ! You can also do this process from root file to itemdisplayinfo ! Now if you ask me, is it the same for every db2 ? Well no, if you take the example for creatures and some others : take the M2 ID from root file, like felreaver2.m2, note its ID, then go to creaturemodeldata.db2 and search this id in the ninth column from the end (or just ctrl+f to find it in csv mode) then you note creaturemodeldata.db2 model ID, the first valu in the row. Then go to creatureDisplayInfo.db2 and search in the third column the creaturemodeldata ID to find the DisplayID of the NPC. On the same row as the found npc you'll get the textureID but this time it's directly the rootfile ID, no need to do the texturefiledata.db2 process this time either. The same goes for GameObjectDisplayInfo.db2. The second column values are the models of the m2 gameobjects. And you can add all the wmo gameobject from root file in this db2 to get all the existing wmo in root spawnable in game. (you need only to put the first part on the wmo's You need only to put the .wmo one, not all the ones with _XXX in the name before.wmo. Then you need to do some sql databases updates to make this work in game but I'll explain it in the SQL part of the tutorial. Here's a video I made of the process to find felo'melorn blue displayID : https://www.youtube.com/watch?v=gHrCGLBjVYU PART 2 : Understanding the M21 format and M2 Hexa_Editing You all know from your retroporting from legion to wotlk or wod etc that all m2 files contain an 8 bytes MD21 header and that you can't retroport them without deleting the MD21 header. I will tell you how to write a custom MD21 header as it's only a pretty simple thing when we know what are the four last bytes of it. We will see how to edit textures, hardcode texture, use creaturedisplayInfo.db2 texture. Unfortnately i can't do animated textures or particles, i never achieved this. And i will tell you how to edit skin01 file to put texture on blank areas of your model too. So here we go. Let's take the voidbroken model from 7.3 : Now to edit it, cut the 8 bytes before MD20, and i suggest you paste them in an empty document in case you're not changing the size of the M2 and by that i mean not adding block of data and adding new bytes etc. Run the M2Template for 010 editor and wait for it to load the structure : Go the the texture section at the end and unfold it, you will see this when you finish unfolding everything: Some explaining now. Hardcoded setting means that those are « linked to the model » if I say this in a simple way. Like some data stored in a personnal M2 databases If you want to edit the name of a texture for practice like Creature\VoidBroken\VoidBrokenShadow.blp. Go to insert mode and write in the right column of the hexa part and type like Creature\Voidbroken\Voidbro.blp. You will be left with something like « Creature\Voidbroken\Voidbro.blphadow.blp » to get rid of the other useless char go to hexa part and go to the corresponding hexadécimal and replace those ones by 00 00 00 until you got only rhe wanted path. Like this : If you make an error of char just press ctrl+z and not delete key as it will delete a byte and don't do that. Deleting just one byte will fuck all up. Be careful. Now the settings you must put in the corresponding hardcoded texture block. Our new path start at offset 238560 for a length of 32, (from C to p it's 31 but you can put +1 in the length it son't change a thing.) now go in the texture block and edit what needs to be edited : Now reload the M2template and done ! All modifications applied, now one last thing before doing the new MD21 header and modifying efficiently the skin01 file. Your new texture is voidbro.blp. The first hardcoded one, it's the texture_texture 1, now go to texlookup section and search int the right part the ID 1 to find the corresponding skin textureID : Remember this ID for the skin01 part. Now the other thing, some explaining for creaturdisplay1 (11) creaturedisplay2 (12) and creaturedisplay3 (13) that can be set in the place of hardcode. The 11 one means model will take the first texture from the three texture column of the models displayid using db2 texturepath, like different color of harpy if you want to see. So imagine i want to use second texture on model to load in game I set the thing to cretauredisplay2 (12). As simple as that. So if you want to swap your model with another model that has 4 skin colors you can make 4 customs BLP's in your swapped creature folder and set to first texture column of creaturedisplayinfo.db2 to apply more easily the textures. How to generate a right MD21 header for our model ? You need to know that if you haven't added or deleted any bytes, you just have to place the cursor at the start of your file before the 'M' of 'MD20' and press ctrl+shift+I to insert bytes. You must have start adress 0 and size 8 in decimal. And you have now 8 empty bytes. Just paste the MD21 header you deleted to launch the M2template on 010editor. Save and you're done. On the other hand, if you lost it and you wanna know how it's done here's the explaining : MD21 has some FID sections, ctrl+f and search in ASCII « FID », you'l have SFID, AFID and for some models BFID. Those sections are not counted in the size of the file like the 8 bytes of the MD21 header. In fact, the header has 8 bytes, 4 are taken by 'MD21' and the other 4 are the old size of the M2 so it's the length of everything between the header and the FID sections. In reality you must read the open file from the bottom to othe start. So here's how to get the old size of the m2 : start the selection after all last FID that you will find ! And go up to the M of MD20. The circled value is the old size, in my example that is just for the theory, we will remember 689024 as the old size. Go to a decimal to hexa converter, you'll get you value in hexadécimal to enter in the last 4 bytes of your header. You must read the value from right to left, so in 4 bytes it's 80 83 0A 00, just need to enter it in the 4 empty bytes in the hexa section of 010 like this : Select the four bytes you worte and in the circled section on the screen you'll see that de int value is 689024 ! You have a working MD21 header for your specific M2 model. Congrat ! Save all the changes and it's done ! Now how to find right mesh part of which texu_textureunit of skin01 using skin00 and WMV reading a custom folder. Make a custom folder on your dekstop and launch de last version of wmv that can read you wow folder, and in setting put the path to your custom folder. Then go create a creature folder in custom and fill it with your voidbroken.m2 and .skin and lauch again your wmv to load it. Find the model in creature section and open show model control. Unfortunately, WMV is unstable with legion and i can't make screen of the voidbroken we did. But here's the menu : You just need to uncheck the green numbers to disable geosets ad fin the right one, imagine now that you take only the geoset 1 of the voidbroken. Open the skin00 and skin01 of it and load skintemplate on both of them in 010 editor. Open the submesh section and unfold the [1] one : and remember its ID and also startTriangles and to make sure you identify the right one in skin01 because skin01 has more submesh than th 00 one. It's because skin00 load the 3D mesh and skin01 is for texture and it separates mesh into sections as far as i guessed it. Go to skin01 and open submesh section like skin00 and search for the submesh that has the same settings as the submesh [1] in skin00 : See ? More submeshes but the one that link to de [1] from skin00 is the [3] of skin01. Now unfold Texu textureunit section and search the one referencing submesh 3 : search all the ones that have uint16 submesh 3 as there can be more than one especially if you're doing character models which are way more complex ! Now take the texlookup ID from the M2, remember the ID 1 ? put it in the textureID of this texu textureunit. Save edits and you're done, you hardcoded Creature\voidbroken\voidbro.blp on submesh 1 of the model ! Last part of the tutorial of MD21. How to swap a legion model with a new one ? MD21 has FID files as you saw in the MD21 structure before skin editing. You need to swap the SFID of your new edited M2 with the SFID of the swapped model. Follow this video to see the effect of not swapping the SFID and how to do it (it's written in french but you have all the manipulation for basic swapping done!) : https://www.youtube.com/watch?v=lMflGnqZkxo&feature=youtu.be And se're done for the MD21 explanation and M2 hex editing, I hope i was clear enough as it is a complex thing to understand and need some time to adapt to the basics ! You'll need to train until you make it work ! PART 3 : SQL Database Editing : This part will need to be completed by someone who know his stuff on legion databases ! It will be a short part because i know only how to make wmo gameobject patch and how to technically blacksmith new items with custom stats and names. To blacksmith items, you'll need to edit the hotfix DB. In order to do this, you'll need Helnesis getDB2hash and to use the knowledge you learned from the root of the part 1 of the tutorial. You just need to test until it works, everything pretty much documented on trinitycore but you need to edit : https://trinitycore.atlassian.net/wiki/display/tc/item_sparse https://trinitycore.atlassian.net/wiki/display/tc/hotfixes_item https://trinitycore.atlassian.net/wiki/display/tc/item_appearance https://trinitycore.atlassian.net/wiki/display/tc/item_modified_appearance https://trinitycore.atlassian.net/wiki/display/tc/hotfix_data when you edited and added the new rows in all those files (i suggest to put same ID to all 4 to have a more easier way to do things). Go to hotfix_data to apply the hotfix, use helnesis getdb2hash to find the hash or use wowpacketparser thing, and in table hash put the hash of each table, so 4 row with the 4 hash of the four tables. In recorID put the ID of the item, like if you did ID 5000000, put 5000000 for each table in the for rows, except if you did like 1, 2 ,3, 4, then you need to put the specifi ID for each tablehash. Then put for the four rows for the item, Ths ID of the creation of each of the four rows in the four columns in RecordID in deleted put 0 or it won't be applied as a hotfix for your server. For french people maybe this could help even if it's wod, it may help : http://wow-emu.fr/V2/printthread.php?tid=2782 EDIT: Here's an advanced visual tutorial of the databse editing needed to do such thing made generously by Magna ! Now for the gameobject patch, go to World DB and open Gameobject_template table and gameobject_template_addon table. https://trinitycore.atlassian.net/wiki/display/tc/gameobject_template https://trinitycore.atlassian.net/wiki/display/tc/gameobject_template_addon Pretty much easy to do I think. I'm done for Legion DB editing since i'm not an Emulator. PART 4 : 3D Modelling in Blender, the tools and theory. Sorry but i won't tell you exatly how to do every step cause in my opinion it's not fun if you do not find it by yourself but with evey video tutorial that are hidden + public ones and advanced tutorials I found on the web you will be able to do this if you try ! You need both blender 2.73 and 2.78, if you ask me why it's because 2.73 got a feature called transfert weight and it permit to transfert weight to bone pretty good if the shape is almost the same ! And in 2.78 transfert weight doesn't work good but you can paint yourself each bone one by one for more precision like for fingers (this nightmare!). Install the M2i import/export scripts in you blender. As well as wow tools and multiedit. Converts blp to png using Blp2png to apply them onto models in blender. Wow tools permits to hide cape, or hair or facials geosets groups to work faster. Multiedit permits to edit multiple mesh at the same time but when you're done never forget to multiedit exit or you will fuck up everything ! To convert your model to M2i use M2modredux 4.8.13 i gave you in intro, it can converts MD21 model to M2i without having to delete the header first ! (works on some items too, not all unfortunately, not everything is perfect.) and use it to export to m2 after your finished editing. So i'm done. Here's tutorial on how to edit using blender 2.73 and transfert weight : https://www.youtube.com/watch?v=JAyxlR3rN6g&feature=youtu.be https://www.youtube.com/watch?v=6qOw1MxkfYg&feature=youtu.be For Uvmapping editing : https://www.youtube.com/watch?v=Yg7bWG-pnrg And now for general things you can do in blender : https://www.youtube.com/watch?v=RxRRdiCIa2Q https://www.youtube.com/watch?v=CGVSvjZ1p3c https://www.youtube.com/watch?v=GEG78mJTEK0 https://www.youtube.com/watch?v=Kpa5W40WuC0 Now if you ask me for weightpainting and possibility in blender 2.78 + 2.73 : http://www.model-changing.net/tutorials/article/3-import-m3-heroes-of-the-storm-to-blender/ http://www.modcraft.io/index.php?topic=9087 This big tutorial on my legion knowledge has now come to an end. I didn't told you everything I know but with the theory you can do the same as me with a lot of hardwork to get the habits. Here's some of my best examples : http://imgur.com/a/DK59m http://imgur.com/a/kbB7F + making vrykul, skeleton or naga morph accessible with the theory of db2 editing + root file etc. Hope it will help a lot of you.
  12. 3 points
    Hello everyone! In this tutorial we will learn how to avoid losing geosets when porting Warlords of Draenor/Legion HD character models, although it's very useful for any other model. It's not a "completely noob" guide, so you must have some 3D modeling knowledge before starting. This tutorial is ONLY for Blender 2.7 and beyond (The decimate modifier is included in older versions but it destroys the UVs). Lets begin! Triangle limit explanation World of Warcraft models have a triangle limit of 21845. In Mists of Pandaria Blizzard managed to bypass this limit by creating geometry levels. If you try to retro-port a model that goes over the polygon limit you get something like this: The extra geometry is rendered as a mess of triangles in modelviewer and you will notice that a lot of geosets are missing in-game. Most people just delete or don't even try to fix them saying that it's impossible to make all geosets work in older versions of the game, but there is a trick to make it happen: reducing the polygon count. What's decimate? Decimate is a Blender modifier that allows you to reduce the polygon count of a mesh with minimal shape changes. It used to work terribly in older releases but was redesigned in Blender 2.7 and now it's "magical". We are going decimate some parts of the HD character models to decrease their polygon count and make them fully work in WOTLK (and Cataclysm). TOOLS -Blender 2.73 (or higer) -M2MOD Redux 4.6.1 THE TUTORIAL STEP 1 - DELETE VERSION INCOMPATIBLE GEOSETS There are some geosets that won't show up in older versions and should be deleted to prevent a "polygon overload": -Bare feet (All draenor HD character models) -Cloaks from Mesh ID 7 to 10 -Belts with Mesh ID 3 (Pandaren Only) -Wristband with Mesh ID 4 (Pandaren Only) -Tabard2 (Pandaren Female Only) STEP 2 - DECIMATING Once you deleted all unnecessary geometry we are going to start with the polygon reduction process. Don't worry! It's super easy! On the upper right corner of Blender you will find some information about the model. We'll be looking at TRIS. That's the current triangle count. As you can see my model has 27060 triangles. Previously I said that WoW's limit is 21845, so some of its geosets will broke after conversion. To make it work properly we must get rid of some triangles until we reach 21845 tris or less. I prefer to only decimate hair geosets. Sometimes you can't tell the difference between the normal and the low poly version because the texture does almost all the work as you can see in the picture: It almost look the same, doesn't it? Ok, to the actual process: -Select the geoset you want to edit and go to Edit Mode. If nothing is selected, select all (shortcut: letter A). -Go to the panel on the left and click on the "Remove doubles" Button (It's not always necessary, go to the TIPS AND CONCLUSION section for more info). This option welds all the floating vertices together (we do this to avoid holes in the geometry). -Now toggle object mode and go to the modifiers tab (on the panel on the right). -1° Click on "ADD MODIFIER" and choose DECIMATE. -2° Make sure the "Collapse" button is highlighted. -3° Click on ratio, write 0.5 and press ENTER. -4° Click on APPLY. DONE! Now this geoset traingle count has decreased by half. Repeat with other hair geosets until your model reaches 21845 tris or less. Then export and convert to M2. TIPS AND CONCLUSION Sometimes when I applied the Decimate modifier I found holes in the geometry. That happens because some vertices are not welded. The "remove doubles" option welds all vertices that are close together and rule out the possibility of finding holes on your geometry after decimating BUT is a little risky because you don't have total control over the geometry and it can mess up certain small parts of the uv mapping. If you used it and the final result looks good, awesome. If not just undo your changes, skip it, apply the decimate modifier and weld the vertices by hand. Personally I recommend you to always avoid the Remove Doubles option and merge the floating vertices by hand to obtain a better result. Handwork takes some time but in this case is the best choice! However i want to clarify that this process is not 100% automatic, in most cases you will have to deal with holes and misplaced vertices, but it's nothing that can't be repaired in a few minutes VIDEO (AKA "TOO LONG, DIDN'T READ") If you have any question let me know. Thanks for reading! Have fun!
  13. 2 points
    TEXTURE ANIMATION: THE TUTORIAL Hello everyone. In this tutorial I will explain how texture animations work. It's based in WotLK but it's exactly the same for Cata and beyond. We will add a basic texture animation to this test model: (you can download it in the Tools section) This method is quite useful to simulate waterfalls, energy beams, fire and much more. If you want to add an advanced opacity mask, check my other tutorial. TOOLS -PyModelEditor. -My test model. Take in mind that it can be done in 010editor as well, but it's a little more complex. Once you know how texture animations work with PyModelEditor, feel free to explore it a little further creating multiple animation layers with different renderflags or adding them with 010editor. THE TUTORIAL Run PyModelEditor and open the test model (TexAnimPlaneTest.m2). 1- Go to GlobalSequences. 2- Write "1500" (without the quotation marks) and click on "OK". This is the ammount of time our animation will take. 1500 milliseconds is 1,5 seconds. The more milliseconds, the slower the animation will be. 3- Go to Edit UV Animations. 4- Click on "Add" to create a new texture animation. 5- Once the new texture animation is created, go to "Edit Translation". 6- A new window will open. Go to "Add AnimSub". 7- Change the Interpolation to "Linear". 8- Apply the global sequence you just created. 9- Paste this line: 0:{ 0.0 , 0.0 , 0.0 } 1500:{ 0.0 , 1.0 , 0.0 } Now, click on Ok on all the windows you have open to apply the changes. 10- Go to Edit Materials. 11- Select the material of the mesh you want to add the texture animation (in this case, the test model only has one) and assign the texture animation you just created. You can now save your model. If you test the model in-game, you will notice that the texture animation works fine, but there is some kind of dragging bug and it doesn't loop correctly: This happens when the texture is not tiled. To tile the texture, open the model with PyModelEditor, go to Edit Textures and check both "X-Wrap" and "Y-Wrap": This should fix the problem! (you can also do it in 010editor by changing the TextureFlag to "3"). TL;DR VIDEO UNDERSTANDING THE ANIMATION SEQUENCE Now that you managed to make your own texture animation, you may be wondering how to reverse the animation, or move it sidewards instead of upwards. The key is in the animation line we added in PyModelEditor: As you can see, each line has 4 segments: time frame, horizontal movement, vertical movement and an unused stack of data that we will never touch. In frame 0, your texture stays on its default pose (0, 0, 0), but in frame 1500 it moves vertically (0, 1, 0) and goes back to where it started (it loops). "1.0" is the ammount of times the texture loops. If you change it to "0.5", the texture will start moving but will return to its defult state when it has traveled half the texture. If you replace "1.0" with "-1.0", the texture will go downwards instead of upwards. So, basically, "1500:{ 0.0 , 1.0 , 0.0 }" means that in 1.5 seconds your texture will loop vertically once. Another example: "3000:{ 0.0 , -1.0 , 0.0 }" means that in 3 seconds the texture will loop vertically once (but downwards). If you put "1.0" in the horizontal segment instead of the vertical segment, you'll see something like this: And if you want it to move to the corners, you simply need to put "1.0" (or -1.0 if you want it to go to the opposite direction) in both the horizontal and the vertical segment: CONCLUSION Texture animation is quite easy once you know how the numbers work. You just need some practice and experimentation to master it. If your model has many .skin files, PyModelEditor won't manage the texture animations so well. The best tool for those cases is 010editor. I recommend you to start with small models first. This tutorial was requested many times. Hope you find it useful.
  14. 2 points
    Hey, I have been around for a while, and thought i'd share a tutorial I made back in 2013. Enjoy- I know it will help one of you out, at least! Objective:*Creating a custom 2D (or 3D if you can model well) Character selection screen. * Requirements:* * This Download A good quality image you want to use for background Photoshop ---- * Today we will be creating something similar to this:* (With your own image of course!) * I found that the Wow Credits folder is a VERY nice source for finding nice stock images, since they are all cut up into usually 6-10 pieces. (You will know what i'm talking about in a second) * I've extracted the 5.2 and the 5.3 PTR, so I have the Pandaria and the Cataclysm Folder aswell, and for this example, i'll be using a image I found the the Mists of Pandaria folder. * Specifically, these:* * * (These are provided in the download above.) * * Now, Let's Get Started! * ---- * First open up "Background Tutorial" Folder, and navigate through the folders until you see the "MODELS" Folder. * Open this, and you will see two different UI Folder. * We will be editing the "UI_PANDAREN" Folder. * Do NOT *Edit the "UI_Bloodelf" Folder. * Also, please note, that this tutorial will be guiding you through how to change the background for a Bloodelf, but this process can be used for any race, just change the Folder name to the desired race, and just rename the M2 File, and the skin files in it to the desired Race's. * * * ( ) * * Back on topic: * In the "UI_PANDAREN" folder, you will see this: * * Convert all the "UI_PANDAREN_BG#" into Png, using the BLPConverter.exe, Then open the PNG images in Photoshop. * And then open a new Photoshop file with the dimensions 3000x3000, and background must be set to transparent * * Now, I really liked those puzzles where you connected small pieces together to make one big picture. Yea, you have to do that... * Until you get... * For this tutorial, i'll use a picture of the World tree to demonstrate how it's done.. * http://www.wallpea.com/wp-content/uploads/2013/05/76693.jpg * --- * * * Open the image in a new layer.. and Scale it to the side of the Puzzle combined.. * You should now have layers that look similar to this: * Do NOT Merge the puzzle pieces into one layer * --- * * Now, I cut up the image into the appropriate sections, and I will now place the Image I want, ontop of this Old puzzle pieces.. * * Now Select the top layer of the first of the puzzle pieces and switch layers to the Top right side, While still having the Section selected.. * Now just paste the section over the original top Left image... and you should get something similar..; * now do this for the rest of them.. * --- * I finished, and now I have this.. * We will now save them all and Convert them back to a BLP format... * And we have this... * * now drag them into your UI_PANDAREN Folder, and replace the old ones. * Your folder should look something like this: * * And the Finished Product.... * (Of course this is a low quality example, Your's should be better.. * * * And this is basically how this works.. Good Luck and stay creative!
  15. 2 points
    THE ADDON IS OUT OF DATE! THE UPDATE WILL COME ~ ON SUMMER Introduction Hello, Model Changing Network. In this tutorial I want to show you how to edit and create WMO models using Blender WMO addon. Actually, this addon is much more than a usual import/export Blender plugin. Besides core functionality of importing and saving edited WMOs, this addon is also a powerful editor supporting nearly all (you still cannot create working transport objects with it) features of World of Warcraft World Model Object (WMO) files. What is World Model Object? World Model Object or just a WMO is a special compound 3D structure used in the game World of Warcraft for making buildings, dungeons and other big complicated 3D objects. It does not only contain traditional 3D model parts as geometry, UV maps, materials and so on; but it does also support features like liquids, complex lighting system, portal culling system and much more. Donation The provided software is available completely free of charge, however, if you want to support the development, here is Skarn's PayPal account. He is also working on a similar Blender plugin for .M2 models. So, by helping him, you can speed up the development of two tools at once. Currently supported features: Geometry Materials Lightmaps Double-UVs Collision and more. Portals Liquids Lights Fogs Doodad Sets Various WMO settings Requirements Blender WMO addon WoW Model Viewer BLPConverter Part 1. Installing addon and configuring your Blender Download and install the latest Blender version (2.78c or newer). Download WMO addon and place it into addons folder inside of your Blender folder: blender\x.xx\scripts\addons\io_scene_wmo\ Download WoW Addon Pack which contains WoW Model Viewer and BLPConverter and place it into your WoW Tools folder: In this tutorial I will use this path: D:\Work\WoWTools\ Step 1. Enable the WMO addon Step 2. Fill your tools paths Always click on Save User Settings button after editing the addon preferences Now you are able to export and import .wmo models right from your Blender Part 2. Basics and peculiarities of WMO editing using Blender This addon is designed in quite a special way and it would probably be better to import some existing .WMO model from WoW to learn how to operate it because the WMO from WoW will be already configured correctly by itself. For this purpose, I am going to use a small human farm. In this tutorial I won't explain how to create models in Blender. I will just tell you how to make them work as a .wmo in the game. I will cover the unusual parts that are different from the normal Blender usage. Quick WMO Tab This tab is the easiest way to edit your model. There are few main sections: Display - used for displaying different object types on the scene Add to scene - used for adding different object types to the scene Game data - used for loading your WoW MPQ patches from your data folder (Part 1 Step 2) Selected - used for converting selected objects and materials Apply - used for applying different actions to objects Doodads - used for doing different actions with the doodads on the scene Material This addon uses his own special material properties called WoW Material which are bound to Blender material. There you can specify the texture you apply to the model by setting a path to it and a few other less important settings: Shader used for producing special WoW render effects Terrain Type used for producing footsteps sounds and footprints Blending used to control texture blending on rendering Texture 1 diffuse texture (object) Texture 2 environment texture (blending) Flags used for defining special render options for the texture Emissive Color the color of the object when no light falls on it Diffuse Color base color of the object Flags Unlit disable world lighting effect Unfogged disable world fog effect TwoSided render from both sides Exterior light ignore local WMO lighting, use world lighting instead NightGlow used for windows to glow at nighttime Window has no description yet, used for windows In order to assign the texture to the geometry you need to assign a usual (Blender) material to it Go to material properties, find a tab called WoW Material and specify the required settings there: When you assign and tweak all of them, the textures will be visible in-game Collision In order to create collision for a model you need to go to Quick WMO Tab and click on Quick Collision: That's all! One button click - pretty easy, isn't it? WMO groups World of Warcraft WMO supports two group types - indoor and outdoor. Outdoor is used for exterior objects and is influenced by the zone lighting. Indoor is used for interior models, interior parts of models. It is not getting influenced by the external light. If you are planning to use indoor groups in your scene you will have to create portals for them. I will explain how to make them later. For setting group types, select your objects and click to Convert selected --> To WMO group and also specify a type of the group: In the same preference tab you can also see various settings: Name - Object's name is saved into the files and is only used for development purposes, for example, when you inspect your model using a 010 editor. Please do not name as "Antiportal", an internally reserved name that actually makes sense for the game. Description - group description, which is also used only for development purposes. Name it whatever you want or leave blank. Place Type - select type for your group: indoor or outdoor. Flags - enable/disable different flags for your model. You can always see the description of each flag when you hover it: DBC GroupID - connected with AreaID for WMO. Used to detect indoor groups for example, so the server can dismount you when you enter them. LiquidType - fills this WMO group with selected liquid. Portals Portals are used to connect indoor groups to outdoor groups or other indoor groups. If the portal is not set but the indoor group is used, you will have the indoor group rendered only while standing in it, everything else will look like emptiness. A portal is a plane that, in most cases, contains only 4 vertices and one face. Portals are created as separate objects (you can see them in the outliner if you import some original WMO like I did with human farm). If the portal is bugged in-game: Step 1. Select your portals Step 2. Use Bake portal relations button Step 3. Use Set portal direction button with Auto option selected If it is still bugged, try one either Positive or Negative unless the portal starts working. If it does not help, make sure that relation baking algorithm has bound the correct WMO groups to the portal object. Creating custom portal geometry There is nothing complicated in making custom portal geometry. Though, remember that it should be precisely on the edges that connected groups share between each other. So, in order to create a correct plane for a custom portal select one of the groups. Simply select 4 corner vertices and press F. It will generate a plain between them. Then select this plane and press P. In the opened menu choose By selection. It will detach the plane to a separate an object, so that you can fill in the settings. If you move the portal from that point it will be bugged in-game on camera rotation. Be careful with that. Step 1. Convert your plane to WMO Portal: Step 2. Bake portal relations. Step 3. Set portal Auto direction if set otherwise. Done! Much easier than in previous addon version. Just make your plane and click on these 3 buttons. Easy peasy Vertex color You can paint vertex colors on WMO groups. It is used for lighting and coloring particular places of a group. For doing that switch to Vertex paint mode. You can learn vertex painting features by practice or by using some Blender tutorials or documentation. Don't forget to enable Vertex color flag in WoW WMO Group tab else the color won't be seen in game. The flag is forced on export for indoor groups, though. For filling, pick up a color and press Shift + K Better than Photoshop, right? Fog The fog effect mimics the scattering of light in a fog. Objects in the distance become less contrasting and acquire a fog color. In night scenes fog is usually dark, in daytime - whitish or slightly bluish, just like real fog. In Blender WoW Fog looks like transparent sphere. In order to add a fog, you just need to click on Add Fog button in Quick WMO Tab: Fog has some simple options to work with: Ignore Radius (probably) makes fog global Inner Radius a radius of fog starting to fade Farclip anything further away from the eye than the far clipping distance isn't displayed (it's too far away) Nearclip anything closer to the eye than the near clipping distance isn't displayed (it's too close) Color fog color Underwater farclip same as Farclip, but under the water Underwater nearclip same as Nearclip, but under the water Underwater Color fog color under the water One-button-action. Again?! Water Water - used to make WoW liquid in your model. In order to add water you need to click on Add Water button in Quick WMO tab: You can't scale water! Just edit your water size (subdivisions) in left bottom corner when you're creating it. WoW Liquid group has own options: LiquidType - type of liquid in WoW. There are lots of variants to work with: Color - water color WMO Group - parent group for this liquid. Use an eyedropper or type the WMO group name to select a parent object. Flags If you switch to vertex paint mode when the water plane is selected, you will be able to set flags to quads that control the rendering of the water. We do not yet know what most of them means, so if you figure that out, please tell Skarn, he will rename the buttons. There is an easy way to work with water. Just tweak your options to get a perfect result. Scale This function is used to add a visual placeholder for taking some information about your model proportion. Just click on the button: You can edit your Scale Type in the left bottom corner when you're creating it: Batch Types. Lightmaps. Blendmaps. Second UV Batches are groups of faces which are used to accelerate rendering. World of Warcraft WMO supports two batch types - Batch A and Batch B. Batches are usually used only for interior groups. Batch A is influenced by the outdoor (zone) lighting. Batch B is not getting influenced by the external light from outdoor groups. Lightmaps - used to accelerate light rendering. Normally used in Batches A in order to blend the geometry with world lighting. See the entrance of the human farm in order to see how it works. Blendmaps - used to accelerate texture blending. If your material is using one of the TwoLayer shaders, you enter a second environment texture path, which will blend with the diffuse texture according to lightmap values. SecondUV - used to define the UV map for double texture materials. Just create a new UVmap, edit it and bind to this property. Step 1. Enable Edit Mode Step 2. Assign faces to vertex group Step 3. Select your group in batch vertex group In order to work with Lightmaps: Step 1. Create vertex group, enable Weight Paint Mode and do your edits Step 2. Select your group in Lightmap vertex group Weight Paint palette: Weight = 1 - red color. Maximum effect Weight = 0 - blue color. Nothing happens. You can learn weight painting features by practice or by using some Blender tutorials or documentation. Blendmaps are painted by the same way. Just try it by yourself. Not so long for making your model looks realistic. Just keep improving your skills at it. Doodads and models importing This function is used to import WoW models (.M2 and .WMO) directly from WoW Model Viewer in a very fast way. Add WMO - used to import the last selected .WMO model from WoW Model Viewer. Imported model will be just a usual Blender object to be edited. Add M2 - used to import last selected .M2 model from WoW Model Viewer. This model is just a visual placeholder for real WoW model. Imported model will have the property WoW Doodad assigned. WoW Doodad has own options: Path - real WoW model path in your patch Color - Doodad color (overlayed effect) Accept Projected Texture - keep textures with enabled Projected Textures in WoW game options Adjust lighting - applying local doodad lighting For WoW Doodad you can edit only position, rotation and 3-axes scaling. You can't scale one or two axes. You won't probably be able to see the changes correctly in game in that case. Doodadset Doodad sets are used to group doodads on your scene into sets. The model can have multiple sets which can be chosen in the map editor to be displayed in one particular WMO instance. Normally they are used to create different furniture blocks to add some variations to the appearance of the model. See the human farm once again as an example. Another common usage is to create the normal set of furniture and the broken set of furniture, see Westfall packs of human buildings. There is always one global doodad set which is displayed along with the selected set. Global doodad set cannot be turned off, however, it may be empty. See the global doodad set in human farm once again - it contains a few crates, some barrels, and smoke coming from the chimney. Those doodads are displayed on all the sets available. If you do not create a global doodad set, empty one will be created on export automatically. In order to add doodads to the doodad set: Select them and click Add to doodadset, there you will be able to create a new doodad set, create a new global doodad set or add to existing doodad set. Choose whatever you need. Export There are some export settings to be observed when you are ready to see your awesome model in the game: Operator presets - allows you to store "favorite" export settings for WMOs. Export selected objects - makes the exporter export only selected objects on the scene. Fill texture paths - automatically fills empty WoW Material texture paths based on texture filenames. Does not change the properties, in contrast to the same operator from the Quick WMO panel. Part 3. Balkron's tips & tricks 1. The fastest way to add anything You can press Shift+A hotkey to add anything to your scene very fast: 2. Disabling black vertex color As you can see, sometimes when you import models, they are black as night. So you can disable this problem: just create new vertex color layer and fill it with white color by Shift+K hotkey: 3. Disabling doodads lines 4. My tips for viewport You can switch your Viewport Shading options: My tips: modeling - Solid + disabled Textured Solid Simplified white models without textures. Easy to work with. bug-finding - Texture That way I can easily find UV-bug or geometry-bug, because there is no shading, but it keeps the textures. overview - Solid + enabled Textured Solid + white vertex color layer It ts the best way to take a look at your model without distortions. difficult model parts - Wireframe Just enable and select what you want without clipping and camera moving. 5. Numpad buttons I'm always using numpad buttons to navigate my models: Num 1 - front view Num 3 - right side view Num 4/6 - horizontal rotation Num 2/8 - vertical rotation Num 5 - orthographic mode Num 7 - top view Num 9 - flip to top/bottom view 6. Hotkeys Always try to learn Blender hotkeys. They will speed-up your work significantly. 7. Other addons You can download other addons to improve your workflow. I recommend F2, Magic UV, Loop Tools and Quad Unwrap. 8. Customize it Always keep making your workflow to be better. Custom hotkeys, themes, tabs placement - just try to make Blender work with you in the fastest way. 9. First person navigation (from Gratural) One more trick - Fly mode. Perfect tool for overwiev and camera move across your WMO's. Hotkeys: Shift+F - enable mod WASD - moving Shift - moving acceleration Space - jump to target face G - enable gravity LMB/Enter - disable fly mode Scroll Up/ Scroll Down - increase/decrease speed 10. Balkron's gifts I decided to share my settings-files with you. There are custom settings, hotkeys and theme. I hope you will find it cool and helpful Settings startup.blend userpref.blend Setup: %AppData%\Roaming\Blender Foundation\Blender\x.xx\config Theme balkron.xml Setup: Blender\2.78\scripts\presets\interface_theme Thanks for reading! This tutorial is relevant to the recent version of WMO addon for Blender. If the addon gets updated, the tutorial will be updated too. startup.blend userpref.blend balkron.xml
  16. 2 points
    Introduction Unfortunately, there are no tools yet that would allow you to edit an M2 directly (although @Skarn is working hard on that), so it has to be converted into an editable format and then converted back. That can be done with M2mod, and after you've read this tutorial, you will be able to perform this incredibly complicated algorithm on an expert level. This method is confirmed to be working in Cataclysm and Mists of Pandaria, and, possibly, in Warlords of Draenor. It has also been reported to not work in Legion, so I will soon edit this tutorial accordingly. Tools and resources Blender 2.77 M2mod Redux 4.6.1 M2mod Redux 4.5 (yes, you need BOTH versions of M2mod Redux) (they will be referred to as simply M2mod 4.6 and M2mod 4.5) Ladik's MPQ Editor Brains (I use version 0.0.2 alpha, but they aren't necessary anyway) The Technique Installation Download everything listed in the "Tools and resources" section. Install Blender. Extract the archives of M2mod 4.6 and M2mod 4.5 (in different folders, obviously). In the extracted M2mod 4.6, there will be another archive inside called "M2Mod scripts 1.2 Blender 2.73.zip". Move/copy it's contents into your Blender folder\2.77\scripts\addons\ (the default installation path is C:\Program Files\Blender Foundation\Blender\2.77\scripts\addons). Proceed to Model Extraction. Model Extraction Choose the model you want to edit. You can use WoW Model Viewer for that, but I can't make the tutorial that detailed. Let's say I want to edit Varian Wrynn's model to make his chin even more brutal. Open Ladik's MPQ Editor, select all the MPQs in your WoW\Data folder, tick "Merged mode" and press "Ok". Wait for the files to load. Find the location of the chosen model (in my case it is Creature\KingVarianWrynn). Extract the model and the .skin files related to it: select the files > press RMB > choose Extract > enter the desired directory > press "Ok" > wait for the files to extract. Proceed to M2->M2i Conversion. M2->M2i Conversion Open the folder with M2mod 4.6 and launch M2ModRedux.exe. Choose the "Export" tab. In the InputM2 field browse the path to your extracted model and choose the .m2 file (in my case it's KingVarianWrynn.m2). Press "Go!". Wait for the Status to say "Export done". Proceed to Modeling. Modeling Open your Blender folder and run blender.exe. Go to File > User Preferences > Add-ons tab > find "Import-Export: Import: WoW M2 Intermediate (.m2i)" and "Import-Export: Export: WoW M2 Intermediate (.m2i)" > tick both of them > press "Save User Settings" > close the Blender User Preferences window. Go to File > Import > M2 Intermediate (.m2i) > find the converted model from M2->M2i Conversion, step 2 and press "Input M2i". Edit the model however you wish. Through hard work and skill, I made Varian look even more brutal than before. Go to File > Export > M2 Intermediate (.m2i) > choose the path you want > press "Export M2I". Proceed to M2i->M2 Conversion. M2i->M2 Conversion Open the folder with M2mod 4.5 and launch M2ModRedux.exe. In the InputM2 field browse the path to the original model (in my case it's KingVarianWrynn.m2). In the InputM2I field browse the path to your edited model (in my case it's KingVarianWrynn.m2i). In the OutputM2 files choose the path and name of the new model (I'll just replace the original KingVarianWrynn.m2). Press "Go!". There is no Status, so just wait. Proceed to Patching. Patching I assume you know how to compile a patch using Ladik's MPQ Editor. Enjoy your edited model! Edit 17/05/18: As per popular demand, I will add a section with Legion modeling instructions within the two upcoming weeks.
  17. 2 points
    Testing your work without MPQs This tutorial explains how to test your edits without repacking the MPQ every time you change something. At the end of the tutorial your WoW client will be reading directly from its folder to save your time. Installation: Download the patched Wow.exe and replace the original one with it. Recommended to make a backup of an original one Create a folder named Patch-X.MPQ (any letter or number instead of X) and put your edited files in there. WoW client reads patches in alphabetical order. First is reading of numeric patches (from 1 to 9), then reading of letter patches (from A to Z) Since in 3.3.5a there are already patches from 1 to 3 you can name your patch as patch-4.mpq or patch-5.mpq etc. The count of available patch names is limited by unused numbers and letters Now your client can read directly from that folder, so you don’t have to create patches. Though, there are ways to make your work more convinient in Noggit too. Find a string called Project Path and fill its value with a path to your patch-folder. An example: C:/Work/World of Warcraft/patch-4.mpq Once done your Noggit will save files directly to this folder. You can run both Noggit and game client at the same time. In order to see the changes you saved, you will need to reload the map in game. You need to teleport to a different zone and back. Type these commands in your chat window (you can also create a macro for that): .tele gmisland (teleports you to GM Island zone) .recall (teleports you back to your initial teleport location) Make sure not to save anything in Noggit while the client is loading a map and vice versa. It can be dangerous for your files Advanced. Patching your own .exe and understanding how it works You may want to do a similar hack to your own WoW.exe because it can be modified with something else. Here we will explain the way to do it. Credits for the .exe patch go to schlumpf and Mjollna. Start Sweetscape 010 Editor and open your WoW.exe in it Edit > Search Turn on Use wildcards, set the seach type to Hex bytes and search the following pattern: E8 ?? ?? ?? ?? 6A 00 E8 ?? ?? ?? ?? 6A 02 Replace the beginning of the pattern with (for any version of WoW): 90 90 90 90 90 6A FF or the entire string for WoW 3.3.5a with: 90 90 90 90 90 6A FF E8 2A EC 01 00 6A 02
  18. 2 points
    first I'm against private servers I only use model for personal and storytelling like machinima like Ventas in youtube How to fix: Open the .anim file that have the problem in 010Editor Delete this header For sitting you need to delete the new header: 41 46 4D 32 D0 3F 00 00 00 00 00 00 00 00 00 00
  19. 2 points
    Alphamapping Tutorial THIS TUTORIAL IS UNDER CONSTRUCTION As you have already learned in the previous part of our tutorial, World of Warcraft uses 4 layers to store the texturing data. Every layer of textures, except for the first one, is basically a usual grayscale image. So, there is a way to do texturing work a lot faster by editing those layers as a whole images. This process is known as alphamapping. You could see the result of alphamapping in the previous parts of our tutorial when you worked with our tutorial map. For using and learning alphamapping you would need a good 2D graphics editor. We recommend to use Adobe Photoshop CS6, but you can also use Gimp. The process will be explained using Photoshop, so some parts and functions may be different in your editor. Download our PSD alphamap demo Before you start creating your first alphamap, you should think about organizing the layers properly. As we are limited to 4 textures per chunk, you should decide what you are going to place on every layer of your alphamap. As you can see in the PSD demo above, Blizzard developers are not very organized with their layers, and it will only make things more complicated for you in the future. Now I’ll quickly explain my own system. First layer (the one you cannot edit) is always dirt for me, the second one is rock, then goes grass and the last one is darker/lighter grass. As you see, all 4 slots are already used, but sometimes you need to make a road or whatever you want. Most people just avoid using the dark/lighter grass layer which obviously makes your final zones look way worse. The solution is actually really simple: you just need to place your road on the same layer on the rock layer where there are no actual rocks around, so you’d be able to swap it to whatever you want. So, now when you’ve got the basic understanding of how texturing works, you can try creating your first alphamap. Step 1. Preparing your working space. Every ADT files basically contains 3 grayscale 1024*1024 pixels .png images which we will need to edit for creating alphamapped texturing. It is not convenient to edit all your .ADTs one by one, so we are going to create a single image for the entire map. Start your Photoshop. Go to “File” and select “New…”. Enter any name you like. Fill in width and height depending on the amount of .ADTs you have on your map. Just count how much .ADTs your map has in width and height and multiply each value by 1024. As an example I took a 5 x 5 map. So, 5 x 1024 = 5120. Press “Okay”. As a result you will see a white space. Pick up the “Paint Bucket Tool” and fill the area with black color. Now you need to divide your image into slices which represent every .adt file in your map. In order to do that, first go to “View”, choose “Show” and enable “Slice”. Also make sure “Extras” is also activated. Then find a “Crop tool” icon on the toolbar, right click on it and select “Slice tool” in the dropdown. Select the whole area with it, right click somewhere and select “Divide Slice…”. You will see the following window. Now right click on every slice and select “Edit slice options” and change the name of every slice to its coordinates on the ADT grid. It is boring, but it will save you a lot more time in the future. Step 2. Creating the alphamap Open the following folder: “WoWDevKit/Tools/Futa/Templates/”. Import some mountain templates from that folder in Photoshop and make a desired landscape layout out of them. You can copy, rotate and paste the same piece of template as much as you want. But don’t be repetitive in order to create a better map. Also try to avoid resizing mountains, especially making them bigger. It will make the texturing look blur in the game. So, here is an example landscape: I also recommend to create a separate layer and fill every ADT there with “chunks.png” that is provided in the “Templates” folder. It will help you to organise chunks properly when you need to create a road or something else that requires additional texture. Now create two additional layers out of dark grass and light grass templates. Switch back to your mountains layer, right click on it and press “Select pixels”. Switch back to one of the grass ones. Press “Delete”. Hide the revealed mountain layer. This is how it should look like: Do the exact same thing for the second grass layer (exclude mountains pixel from it). Export each layer + black background using the “Save for Web” function which can be found in the “File” menu. Select all the slices of your image in the windows where they are displayed. Set the extension to .PNG using the dropdown menu. Click Save and save your images to the “FuTa” folder of WoWDevKit. Step 3. Injecting alphamaps. Make a backup of your map files and open them in “FuTa.exe”. Keep in mind that you can only edited fully textured files with FuTa. It means that all 256 chunks should be filled with 4 textures. Open “Settings”, “Alphamap”, “Format” and set it to grayscale. Open every .ADT one by one and import your layers corresponding to the adt coordinate numbers. It is a long and boring process but you have to deal with it. At least, it is hundreds of times faster than manual texturing. Select every .adt one by one, go to “File” and click “Save”. You should save every opened file one by one. For speeding up the process you can use arrow buttons on your keyboard for navigating faster. Add the files to the patch or your working directory. Additional part. How to rip alphamap templates from Blizzard's maps. We have provided you with a bunch of alphamapping templates within our WoWDevKit, though it may not be enough, especially if you are working on a big project with multiple zones. So, the first idea of the solution to this problem is to extract the alphamaps from original .ADTs. However, there is a small problem. Unlike to Noggit, WoWEdit (Blizzard's map editor) does not care about the order of textures it paints on the ADT chunks, so sometimes multiple layers are messed up on one ADT. Though, it can be solved using a graphic editor. So, let's do it. Step 1. Choosing the proper .ADT to export from. I recommend you searching for the .ADTs that contain as much more mountains (or any other pattern you want to rip) as possible. Rip only those alphamaps that you can later raise with Noggit. From my own experience, some mountains styles like cliffs or spikes have the hardest alphamaps to raise. So, don't waste time if you want the immediate result, those alphamaps would require quite some terraforming skill to get raised. You should also try searching for some good repetitive patterns that can help you to create long mountain ranges by just copying them around. Here is an example of Blizzard using them in Hyjal (3.3.5a version). This particular mountain pattern is already ripped an released with our WoWDevKit. Step 2. Exporting and fixing the alphamaps. Open your .ADT file with FuTa, select the alphamap tab and press Export. All your 3 layers will be exported into the folder with the map files. Let's imagine that we want to rip that mountain range template. As you can see, some chunks are missing. You can find them as 1.69 x 1.69 cm squares on the other two layers. So, go to those layers. Scroll closer to the chunk by holding "Alt" and scrolling the mouse wheel until a pixel grid shows up. Select the chunk by using the "Rectangular Marquee tool", copy it and paste it to its place on the first layer. Do it for every missing chunk.
  20. 1 point
    Hi there, Today I'd like to share some of my knowledge regarded to creating a working world map in-game. I will try to cover the most basic things, but I have to admit there are still some unknowns to me such as clickable zones on the world map, however, I 'd like to cover those and continents map in the future. In this tutorial I will cover a basic in-game map creation for GM Island. Required tools: Dbc Editor MPQ Editor Photoshop or any other image editor (I myself use Photofiltre) World Map Tutorial Package - download link down below (I recommend you downloading this, because I think it is useful for you to reverse engineers the stuff done in present tutorial). Link to the source: https://mega.nz/#!zUpxlYpK!ctrulp0IpFncI8FYAOFsLwm64PPn9lZyzXSQkNaJ7RQ (Either copy the link with the yellow decription key to your browser, or use the decription key in yellow to acces the file.) Difficulty - Easy Estimated time - 15-25 minutes Before sinking teeth into technical details concerning map implementation you might want to check out a WoW Map Template by Balkron and a short video attached to it - So first of all some theory. When it comes to Dbc files what really matters to us right now is WorldMapArea.dbc. This Dbc looks somethings like this: Now to some collum information: 2. - this collum refers to map.dbc and literally says on which map is this world map going to be placed (1 stands for Kalimdor). 3. - this one refers to the area name (the dbc number), in this case it is 876 (GM Island). 4. - the map file name - this just refers to your file names, so if I decide to call it GmIsland all the files will have to named that way - GmIsland_1.blp, GmIsland_2.blp... 5. - upper y coordinate of your map (serves coordinates). 6. - lower y coordinate of your map (serves coordinates). 7. - upper x coordinate of your map (serves coordinates). 8. - lower x coordinate of your map (serves coordinates). 9. - has to be -1? 10., 11. - has to be 0? So this was some Dbc stuff. Now let's move to the real map stuff. Obviously what you need to is to create yourself a world map, Skarn has covered this topic some time ago, there is a link to his tutorial mentioned above if you need to create a map I recommend you going there. But now comes the tidious stuff. In order to make your map working you have to divide it into 12 256x256 images and name them just like this - GmIsland1.blp, GmIsland2.blp, this however, comes for GmIsland map, if you name your map in WorldAreaMap.dbc TelAbim you have to name your files TelAbim1.blp and so on. When it comes to chronology you have to follow the one shown in the picture down below. So GmIsland1.blp represents sector 1 and so on. This is obviously some really boring stuff, but it is essential. In addition, I think it is good for you to know that all the segments and the right (4, 8, 12) and all those on the bottom (9, 10, 11 ,12) have to be transparent and won't take the entire 256x256 area. Skarn has thought of this when making his map templates, so you don't really have to worry about this one. Now we need to put all the files into a patch, so that the game can loads those. The Dbc stuff is kind of obvious, you put that into DBFilesClient folder, and as for the blp files you have follow this chronology :Interface/WorldMap/GmIsland (Dbc name of your map)/GmIsland1.blp ... So once we are done with all of this, we can check the map in-game and see if it works. The maps seems to be working. If you are trying to create a world map for yourself, you should start by taking down the map coordinates (in-game or in the Noggit) and then according to that create the map. I hope this quick tutorial was helpful in some ways, and hopefully I will find myself some more time to extend it one day. Maybe I could cover making a new continent or making a zone clickable on world map. Link to the source patch - https://mega.nz/#!zUpxlYpK!ctrulp0IpFncI8FYAOFsLwm64PPn9lZyzXSQkNaJ7RQ (Either copy the link with the yellow decription key to your browser, or use the decription key in yellow to acces the file.) If you have some questions, or something doesn't seem to be clear, or perhaps doesn't work at all, do not hesitate and write it down, I will try taking a look at it. Update #1: December 2 2023 - Some minor tweaks & addition of link to Balkron's WoW Subzone Template Package and video.
  21. 1 point
    Welcome to this quick guide. ** DISCLAIMER ** This will NOT downport character models Since many of you have been PMing me desperately asking : "How do you downport this shit man??" Here you go. Enjoy. Tools needed: CascExplorer Adspartan's Multiconverter BfA Listfile (put this in your CascExplorer folder) Thanks to Wungasaurus for the correct listfile ------------------------------------------------------- Enjoy your new models, homeboy
  22. 1 point
    Creating your own custom blank map THIS TUTORIAL IS UNDER CONSTRUCTION For this tutorial you DO NOT need Taliis or any other outdated software! Please use the software specified in the tutorial. Pictures from Taliis are just an imaginary explanation of how the WDT grid looks like. If you have read all the previous parts of our beginner’s tutorial, you are probably able to perform almost all the basic operations on World of Warcraft maps. In this part of the tutorial, you will learn how to create new blank custom map for your builds, expand it and join different maps together. First of all, you should get a basic understanding of how maps are handled in WoW client. Every map basically consists of .adt files, one .wdt file, one .wdl file and an entry in "Map.dbc". Now, we will explain what each file type is responsible for: .ADT file is the most important element of ever map’s structure. It contains heightmap, texture, model and many other kinds of information. That’s the files Noggit is mostly aimed to edit. .WDT file keeps all information about the position of every .adt file on your map, the quantity of used .adt files and some other things. Every map has only one .wdt file. .WDL contains some heightmap and model information which is used by the game client for rendering far away mountains, models. This file also also allows Noggit to display your map contours on the map preview. There is only one .wdl file per each map. This file is optional and a map will get loaded even without it. So, let’s get started and create your first custom map. Step 1. Generating .adt files First of all, you should decide on the size of your map. I will use 5 x 5 map as an example. This is basically how the .adt array in .wdt files looks like. So, now imagine that we want a map of 5 x 5 .adt files in size. Launch AdtAdder.exe tool which can be found in your WoWDevKit in the Tools folder. Select a source .adt from your ADTAdder folder. The file is named “Template_0_0.adt” Enter your map name. This is how your files will be named, it does not affect anything much. Fill in the coords that are demonstrated on the picture below. Everything is quite clearly explained there by arrows and other pointers. Press “Start creation” button and wait until the tool creates your files. Step 2. Moving your .adts and generating .wdt files Now you have your map files, but the client is not able to read them because there are still no .wdt file. In order to create it, open a tool called “Riu’s zone masher” in your “Tools” folder. Once opened, you will see this window. Click on File and choose Add files. Select and open the .adt files we generated in the previous step. Now you should have your files imported, so that you will see them as blue squares on the grid. Move this group of .adt files to the center of the grid, so you will be able to add some extra files to expand your map from every side in the future. Make sure Fix Offsets and Create WDT options are enabled. Enter the map name which will again be the name of the files. Enter your map name Press Mash! Your map files are now saved to the “Riu’s zone masher” folder. The folder will be named identically to your map name. Add this folder to your MPQ or project folder or client directory (if folder loading “WoW.exe” mod is installed) within the following path: “world\maps\”. Once one group of .adt files is loaded, you can load some more which will appear as a separate group. This is the way you can expand your map or change the shape. Step 3. Adding an entry to Map.dbc Map.dbc is located in DBFilesClient folder as well as all other .dbc files. It contains different data including the real map name, map type, etc. You can read more about it on our wiki. [LINK TO WIKI] You can take the “Map.dbc” file from our tutorial map, you have been practicing on in the previous parts of the tutorial. Or you can take it from the latest locale patch. Open it with “MyDBCEditor” which can also be found in the “Tools” folder. Go to the end of the table and see what ID is the latest. Memorize it. Select Azeroth or Kalimdor line by left clicking on it. Right click on the selected line and choose “Copy line to”. Enter a free ID here. (Last UID + 1). Rename the field “Azeroth” to your map name. The name your .adt files have. Enter the real name of your map instead of Eastern Kingdoms in your language. Click “File” and “Save”. Add your “Map.dbc” to the patch, project folder or client by the following path: “DBFilesClient\” Now you have your map working in Noggit!
  23. 1 point
    You must make your custom files on Noggit or you can get your maps modified parsed to Cata, MoP or WoD and convert this to Legion. If you use the ADT Converter and you use "-l" this convert to Legion, but this can give error because the wdts, wdl and tex fails and the water dissapear. For fix this, you must parse your maps from Wotlk to Cata/MoP/WoD with this tool ADT Converter After you must put on the data folder yours maps modified and you must make click in the .bat file, this parse alls files to WoD (Cata and mop too). Now you must download the script file and .bat modified for me, this files Adt Converter to Legion You must unrar, after you must edit the bat file and you find: 010editor "%%i" -script:"PATH\ADT-Legion-Conversion.1sc" "%%i" -nowarnings -noui Now you must edit the PATH for your path folder of script file, after you save this. After you must copy your ADTs files only from Cata/MoP/WoD to ADT folder and now you must click in the .bat. When this program closed, you must get the ADTs and put on the path folder patch (World/Maps/example/example.adt) in your World of Warcraft root folder. Et voila, your maps it's working. (Delete WDT, WDL, TEX files for this work) Like the post if you like it! and sorry for my english. Credits: Luzifix (Adt Converter), Arektor (Script 010editor of Wod to Legion), Me, Darkkang for make the tutorial and the .bat file and testing this. http://www.modcraft.io/index.php?topic=10780.0 http://www.modcraft.io/index.php?topic=13869.0
  24. 1 point
    Salut à tous ! Je vais tenter de vous expliquer comment faire cet import tout simple en 3.3.5 ! Sommaire Outils requis Trouver et convertir Petit coup d'oeil en DBC Édition de DB En jeu ?! Outils requis Bien entendu, nous aurons besoin de CASC Explorer pour trouver de nouveaux modèles, de la viande fraiche... Ainsi qu'un convertisseur pour nos M2 sinon ça ne marchera pas ! CASC Explorer ici => https://github.com/WoW-Tools/CASCExplorer/releases/ Et le convertisseur par ici (supporte même les particules !) => https://mega.nz/#!Jc0TQCqa!N_AInk3dRr_JmrJ-ZIHHVtHKtJ7MzpvLKEeGqDF2XFM MyDBCEditor Nous avons tout ce qu'il faut, c'est parti ! Trouver le modèle Tout d'abord avant de commencer, il est nécessaire de trouver le modèle qu'on veut, sinon nous n'iront pas bien loin... Je choisis Murloc2 (path : Creature/Murloc2) qui est modèle qui arrive tout droit de Legion Une fois choisi, extrayez le model et tout les fichiers qui vont avec dans un dossier, .m2, .skin, .anim, .blp... tout ! Ce qui nous donne : C'est cool, j'ai mon modèle, mais qu'en faire ? Sélectionnez votre M2 et faites un glisser déposer sur le convertisseur précédemment téléchargé. Voici le résultat une fois que c'est terminé : Supprimez les .m2 et les .skin puis renommez les fichiers suivants de cette manière : mymodel.m2_lk -> mymodel.m2 mymodel.skin_lk -> mymodel.skin Conversion terminée ! Vous pouvez désormais mettre votre/vos nouveau(x) modèle(s) dans votre patch MPQ, nous n'en aurons plus besoin. Bientôt l'edit côté serveur ! Avant toute chose, ouvrez WoW Model Viewer (oui je ne l'ai pas mis dans les outils requis car comme il est nécessaire partout...). Avec lui nous serons en mesure de savoir quelle texture nous appliquerons sur le modèle, ouvrez donc WMV et sélectionnez votre nouveau modèle comme ceci : La partie qui nous intéresse ici est la box où il est écrit murloc2_green, il s'agit tout simplement du nom de la texture du Murloc... Vert ! Mais vous vous en serez doutés, sur WoW les Murlocs ont plusieurs couleurs, si vous ne voulez pas d'un murloc vert en premier, prenez le bleu, le violet, l'orange... ! Incroyable hein ? Pour ma part je vais commencer avec le murloc vert et je ferais les autres plus tard... Bien, je connais le nom de la texture ! Ouvrons donc CreatureDisplayInfo avec MyDBCEditor et lançons nous dans la création du DisplayID de notre Murloc ! Allez jusqu'à la dernière ligne de la DBC, faites un clic droit et choisissez "Insert line...", attention, votre ID doit être unique, afin de ne pas écraser un autre DisplayID, dans mon cas vu que je souhaite remplacer les vieux murlocs par les nouveaux, je commencerais par le 31. Attention, pour chaque texture que vous appliquerez, il faudra créer une nouvelle ligne ! Une pour le vert, une pour le bleu... Explication rapide : Première colonne : ID unique Seconde colonne : l'ID du model tel qu'enregistré dans CreatureModelData.dbc (31 = l'ancien modèle du murloc, vu que j'ai changé le chemin dans CreatureModelData de l'ancien murloc vers le nouveau, je peux laisser à 31) Troisième colonne : aucune idée, on met 0 Quatrième colonne : CreatureDisplayInfoExtra. aucun intérêt ici, laissez à 0. Cinquième colonne : Mettez 1 Sixième colonne : Opacité du display, 255 = creature opaque, 0 = fantome. Septième et huitième colonne : Extra texture, quand vous créez une créature, celle ci n'a pas besoin de CreatureDisplayInfoExtra mais de ces deux colonnes, inscrivez dans la première le nom de la texture que vous avez choisi (dans mon cas murloc2_green) Colonne suivant : Sound ID, par défaut 0 mais si vous souhaitez donner une voix à votre creature, allez fouiner dans NPCSounds.dbc. Dernière colonne : 0 Voila à quoi cela ressemble : Je ne vous expliquerais pas comment vous servir de CreatureModelData, c'est relativement simple et dans la majeure partie des cas, il suffit de copier le contenu d'une ancienne ligne, en créer une nouvelle, changer le chemin du modèle par le nouveau (creature/murloc/murloc.mdx => creature/murloc2/murloc2.mdx) et c'est terminé. Mettez ces deux DBC (CreatureDisplayInfo et CreatureModelData) dans les DBC de votre serveur, puis dans votre patch MPQ. Plus besoin d'y toucher non plus, on attaque le SQL ! Creature_model_info Côté serveur ! Dans votre DB world ouvrez la table Creature_model_info Explication rap... non allez, copiez le contenu d'une autre ligne et collez le comme une brute, ne changez rien SAUF UNE CHOSE ! Votre ID doit être le même que celui choisi dans CreatureDisplayInfo, dans mon cas : 31. Il s'agite de votre DisplayID à utiliser pour votre créature. On sauvegarde, on crée le PNJ, on relance le serveur... J'espère que ce tutoriel est assez simple et complet, si vous pensez qu'il manque des infos, n'hésitez pas à le dire dans les commentaires ! Je complèterais
  25. 1 point
    Open .m2 file in 010Editor Fill value of uint32 PlaybackSpeed equal 150 in .m2 template Enjoy! Here is some fixed models