Jump to content

About This Club

For all things mapping!

  1. What's new in this club
  2. Im looking for someone to make a great map with, i have the concept but i need help, mostly with optimizing for performance. I have made little progress and if you map for Zombie escape, friend me and let me know if you want to map it with me. https://steamcommunity.com/id/Jew_Bacca/
  3. Updated some parts to mention my tool Added clarifications in Best way to never get invalid solids and a video where I show how to properly move vertices of a solid with 5 faces, to never get issues.
  4. Updated the guide to mention my tool. Edited the Steps, to add a message where the tool can do it directly.
  5. I guess that can make things easier. But well in this case, using the tool to do the changes is pretty fast. you load your file in the file browser (that save the latest folder visited) you check what you need and press the button you want I dont think a batch would have been the most efficient way
  6. I prefer commandline tools, specially if you make them support batch input and output, can just make a drag and drop system that awy where i drag everything onto a batch/shell file with my settings entered and 0 effort work, but good work.
  7. thank you so much buddy that is really hard work for you thanks man
  8. Nintendo64 Mapping Tool In the other guides, I talked about a tool I was making to make some process of ripping N64 models faster. It is finally done and will do most of the texturing work for you. ___________________________________________________________________________________________________ So what can it do ? 1) Convert the .wrl file you get from the emulator into an .obj That means, you no longer need to import the wrl in Blender and then export as .obj Even better, the conversion will be perfectly useable no matter the game you ripped. Saddong encountered an issue with the Blender Import-Export method for the game Castlevania64. Once converted into .obj, the groups names didnt have the texture name in them, which made it impossible to know which texture to apply on which group. He tested with my tool and the .obj he got was useable. 2) Delete all materials from an existing .obj That means, you no longer need to use the AutoClicker to click thousand of time on the Delete button in Milkshape. It will be done in less than a second. 3) Apply all correct materials on an .obj So, you dont need to manually do it and search for each texture in the folder. Even better, you can texture completly a ripped area (again in less than a second), which make it easier to know which texture to apply on which wall in Hammer. Doing that manually usually took me +1 hour if the area had a lot of different texture. 4) Scale the .obj by a given value You can directly scale the model in the tool. 5) Reverse the vertex order You can do it directly instead of doing it in Milkshape. Depending of the game, reversing the vertex order is needed. 6) Merge together groups that use the same texture Instead of having dozens of groups using the same texture, you can merge them into one. I don't recommend doing it on the .obj you use to extract specific model as some groups might use the same texture but with a different color applied to it. So you would lose all these groups. 7) Sort groups alphabetically Obviously, it sort the groups by their name, and put them in an alphabetical order. Unless you merge the .obj, this won't have any effect because of the way I name the groups initially: 0_XXXXXXXX_c.bmp 1_XXXXXXXX_c.bmp etc... It would just sort by the number. The materials are also always added in an alphabetical order, no matter the option you checked. ___________________________________________________________________________________________________ Updated The Tool has now new options and the menu are separated: Copy all textures used by a model in a folder Mirror a picture horizontally and vertically Create a .png by using the _a.bmp and _c.bmp (instead of doing it manually in Gimp (you can ofc use Rice to directly get the png files) It's pretty straight-forward to use these. Simply browse to your files/folder and press the buttons. ___________________________________________________________________________________________________ The Tool I first programmed it in Python3, it was a Command Prompt tool only. It was working fine but not really efficient because you had to manually write the path to the file to convert. Another problem was Python itself; to execute the tool, the user needed to have Python installed on his computer, which wouldnt allow people to easily use it. I looked for a way to implement Python script into another language and I found the C# with the plugin IronPython. IronPython only works with Python2, so I edited my scripts to adapt few things that were different between the 2 versions. I made a WPF application in Visual Studio, with a basic GUI and few buttons: (this is the old version of the tool) ___________________________________________________________________________________________________ How to use it I think the buttons are self-explanatory. But I will explain all of them: Conversion of .wrl to .obj To convert a .wrl to .obj, click Browse, it will open a directory, you can then select the .wrl file you want. Once selected, it will write the path to the file in the box and unlock the Convert button. Click on the button, it will open the last directory you visited (the one where you loaded the .wrl). Now you just need to give a name to the .obj file (per default, it's output.obj) When the conversion is done (it will take 1-2 second depending of the file), a text box appears and says Done. Modification of .obj Again, you need to click on Browse to load the .obj file you want. It will write the path to the file in the box and unlock 3 buttons: Delete all materials from the .obj Apply all materials on the .obj Modify the .obj ________ Clicking on Delete all materials from the .obj will open a directory. Now you just need to give a name to the .obj file (per default, it's untextured.obj) When the new .obj is created, a text box appears and says Done. ________ Clicking on Apply all materials on the .obj will open a directory. Now you just need to give a name to the .obj file (per default, it's textured.obj) When the new .obj is created, a text box appears and says Done. ________ Before clicking on Modify the .obj you first need to select one or more checkbox. Clicking on Scale the model, unlock the text box where you write the scale you want. The value need to be bigger than 0, otherwise there will be an error textbox that appear when you click on the button. I explained earlier what each of these functions does, so I won't do it again. You can then click on Modify the .obj to open a directory. Now you just need to give a name to the .obj file (per default, it's modified.obj) When the new .obj is created, a text box appears and says Done. ___________________________________________________________________________________________________ Advice Make an untextured .obj, import it in Milkshape and use that file to extract specific models you need (always have backup so you dont override). When you rip a specific model, export it untextured as an .obj, using Milkshape. And then use that .obj in my tool, to fully texture it. I often got issue with Milkshape crashing when exporting a completly textured model. It never crashes if the model is untextured. ___________________________________________________________________________________________________ Errors If you enter a path to a file that doesn't exist, there will be an error message. If you put a .obj file in the .wrl path (and vice versa), there will be an error message. If you put a negative scale or 0, there will be an error message. If the main.py file is missing, the tool won't be able to do any modifications to the .wrl / .obj files and there will be an error message. If other .py files used for the current action are missing, it will not create the new .wrl/.obj and there will be an error message. If the IronPython .dll and other files are missing, the tool might just crash when trying to convert a .wrl or modify an .obj ___________________________________________________________________________________________________ Download Link Here is the Tool: https://www.dropbox.com/s/1y59rywc8kcx67w/N64MappingTool.rar?dl=0 You will find the .exe, some plugins used (IronPython and its dependencies) and the Python scripts (.py). If you want to see the original python scripts, here they are: https://www.dropbox.com/s/cpa4g4ze018g6cx/N64 Converter Python2.rar?dl=0 https://www.dropbox.com/s/yntubhymxqn2tjq/N64 Converter Python3.rar?dl=0 ___________________________________________________________________________________________________ Credits Thanks to Saddong for testing the tool when it was only Python and help me find bugs. Thanks to 44 Colt for testing the .exe tool and helping me figure the problems. ___________________________________________________________________________________________________ Adding New Features I might add more option to the tool Maybe generate a .qc for the 'reference models' used for building (see the guide Building a N64 map in Source Engine) Maybe a obj -> smd converter (which might not work with any .obj as I only handle specific parameters)
  9. Hello everyone. In this quick tutorial I'll show you how to make a working mini-map / radar for your maps in Counter-Strike: Source. (This tutorial uses a Zombie Escape [ze_] map as an example, but you can use this to make minimaps for any map that you'd like.) Note that minimaps for Counter-Strike: Global Offensive are made in almost the same way, but the process changes at one point so consider this as a CS:S only tutorial. Also note that if your map has a lot of overlapping areas (for example Frostdrake, Santa or Mako v5) then the end result may not look as good. Things you need: Paint.NET or any image editing software that isn't MS Paint Notepad++ VTFEdit The damn game Steps: Step #1: First, go to your game's video options and set the display options to the following: 4:3 Aspect Ratio - 1280 x 1024 Resolution - Windowed Display Mode Step #2: Load your map, once you're in type the following commands in the console: sv_cheats 1, cl_leveloverviewmarker 1024, noclip Note: You can see from this screen that I do NOT have a minimap for this map. However, if I do the rest of this tutorial correctly then I will have one. Step #3: Now that you see that red line across your screen, you need to type "cl_leveloverview X" into the console, where X can be any number you want. The goal here is to fit your map within the red square (since a minimap needs to be 1024 x 1024), you also need noclip to fly up or down so that more of your map is visible at once. Tips: Before typing cl_leveloverview X, go into noclip mode and fly very high above your level, then mess around with the command, if you want to go back to your normal view, type "cl_leveloverview 0" You can also type decimal values, such as "cl_leveloverview 29.4" for a more accurate minimap, just remember the whole map has to fit inside the red square! If parts of your level aren't being rendered, you may need to fly higher / lower If your map has HDR lighting, type "mat_hdr_level 0" in console to remove it until you take the screenshot, otherwise it can lead to weird results where, if the void of your map is green, some of that will get in the way of the image. (Note: The void can sometimes be green [like in the example] and sometimes it can be fully black) Step #4: With cl_leveloverview still on, once you're happy with what you see on screen, you should see that a spam of the same command has generated due to you moving around with cl_leveloverview on, copy the last command that was generated and paste it where you won't forget about it, we will need this info for later. Step #5: Once you have the command copied somewhere, type "r_drawvgui 0" in the console, and everything should be gone from the screen except the overview of the map, at this point, you're free to take a picture of this. It is VERY important that you don't move. Tips: Hitting Alt + PrintScreen gives a more high-res screenshot of the map than taking a screenshot through Steam Step #6: Once you hit Alt + PrintScreen, open your image editing software (for this example I will use Paint.NET) and make a new canvas, when prompted if you want to resize the window or not, hit yes. Tips: Because you hit Alt + PrintScreen, if your game was being blocked by your taskbar, it is very important that you move the taskbar to the side AND THEN hit the key combination, otherwise your taskbar will get on the way of the image, as shown here. This step is done to confirm that you have an image of your minimap, and also to keep a back-up of it just in case. Step #7: Once you have imported your image file to Paint.NET without anything in the way other than the game, now we have to make it a 1024 x 1024 image. Select all of your image with Windows' borders and everything, hit Ctrl + C and then hit Ctrl + N to make a new canvas, set the size to 1024 x 1024. Paste your image in there and when prompted to resize the canvas, press No. Of course, because your image is larger than the canvas, some of your minimap will be off. To fix this, zoom in to the top left corner, and move your image ever so slightly in a way that all of the border is gone As you can see, all that's left out of the canvas is the silhouette of Windows' window, this is what we want. Tips: I recommend zooming in as much as possible to move the image, since you really only want to move the image until the borders of the Windows' window are completely gone If done correctly, our image will look like this: Step #8: For some reason, CS:S sometimes turns the void into green, as seen in this example. If the background color of your minimap was black then feel free to skip this step, if the background color was green, as seen in this example, we'll color it to black. All we need for this is the paint bucket tool, color the green void to black until you are happy with the results: Tips: Some mappers prefer removing the background color completely and leaving it transparent (minimaps like Totemo Roka, Santassination and Westersand do this), personally I prefer coloring the background to black since that helps with visibility in the minimap, but that decision is up to you. Step #9: Once you are done with editing your minimap file, save it with any name as a .png file. After this, open VTFEdit and import your minimap's png file. Once we have imported it into VTFEdit, make sure to tick these two options to the left of the image to prevent your minimap from glitching (making it repeat itself over and over even if you are outside of your level). Now we need to save this as a texture file, for this, we're gonna hit click "Save as", and we're gonna save this VTF into the following directory: > C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Source\cstrike\materials\overviews Note that the directory can be different depending on where you installed the game. The name of the vtf has to be the exact same as your map, for this example I'm working with a map named ze_LOTR_Isengard_v1_5 so I will name my vtf "ze_LOTR_Isengard_v1_5" If your map name is "ze_i_love_MaKo_AnD_WeSTeRsAnd" then your vtf HAS to be named this, NAME IS CASE SENSITIVE, SO MAKE SURE TO INCLUDE UPPERCASE LETTERS TOO Step #10: Once you have saved the .vtf file, now we need to make a .vmt file, this file tells the texture how to appear in-game. While in VTFEdit, press Ctrl + N and this should come up to your screen: When you are here, you will need to have some text written in here so that your texture can appear in the minimap, the text that you need will be hidden inside this spoiler: In my case, because my map name is ze_LOTR_Isengard_v1_5, the text that I will have to write in this file has to look like this: Tip: EVERYTHING here is case sensitive, so if the name of your map has caps (which it shouldn't) then you need to include those too Once this is done, save this .vmt with the exact same name of the map, just like we did for the vtf file. IMPORTANT: Once you have saved the .vmt file, you need to make another copy of it, but this copy needs to end with the word "_radar". So you need two .vmt files (one with mapname and one with mapname and that ends with "_radar") and one .vtf file, if you don't do this then your minimap won't look clear and it will have some rubbish green tint to it. Step #11: Once we're done with this, we need to open Notepad++ to generate a text file that we need. Remember the series of numbers that came up when we did "cl_leveloverview"? This is what we need them for. You will need this format when making this .txt file: In my case, based on the results I got with cl_leveloverview, this is how my txt file should look: Once you're done with this, save this txt file into this directory with THE EXACT SAME NAME as your map, caps and all: > C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Source\cstrike\resource\overviews You are done! If you did everything correctly (and I'm good at explaining), when you load your map in the game again you should be able to see a fully working minimap: Don't forget to pack all the folders and stuff when you are packing the files for your map, otherwise the minimap won't work! Disclaimers / Things to keep in mind If you move around with cl_leveloverview on, you ALWAYS need to keep the last generated command, if you copy the wrong command, or you copy the command, move the image in CS:S and then forget to copy the last generated command again, then the minimap will not be accurate Stuff like water will appear as fully black in the minimap Doors, elevators, props and things that move will turn invisible when you fly out of the world in noclip If you are updating your map (but there are no changes to geometry), you NEED to change the names AND the contents of ALL your files (vmt's, vtf's and .txt and the text you wrote in them) to include the updated mapname, otherwise your minimap won't work Resolutions HAVE to be what I typed, otherwise this may not work. A good way to test if you packed your minimap files properly is to remove the "materials/overviews" and "resource/overviews" folders from your root folder and then test the map. This may seem like too much work, but in practice and once you get the hang of it, making minimaps won't take you more than two minutes to make. They can provide great visual queue to help visualize where the zombies actually are if you can't make it up for yourself in-game (or, say, if everyone's stacking, a minimap can help you know where zombies actually are or from where are they coming from). If you'd like to report something or have any questions feel free to let me know! Thanks to Moltard and j0ueurnul for pointing out a few things that were added in this tutorial.
  10. Hi guys ! I was sooo busy past months but i'm back now, i'm giving you some update about my map ( for the interested ) I updated the imgur album and i've made a little playthrough of the map. (still in realy dev)
  11. Building a N64 map in Source Engine This guide assume you have read Ripping N64 models to Source - V2 and you know how to rip models from N64 games. Here we will focus on how to build a replica of an area from any N64 game. Again, if the emulator cannot start the game with Nemu64 enabled, then the game is probably impossible to rip. Don't forget to take a look at my tool as it will make the texturing way easier: The method I use is basically building the map in Hammer with brushes, using a Reference Model. I add a prop_static in the map, browse to the model and I can start building following its shape. To make things clean, I use the visgroups to easily Enable and Disable the different models. Here you can see all the rooms of the Stone Tower Temple from Majora's Mask. ___________________________________________________________________________________________________ ___________________________________________________________________________________________________ Getting a reference model So, you know how to use the plugin to get the VRML, you can extract the model you want and compile it to Source engine. If you don't, go back reading the previous guide. Convert the .wrl to .obj, import it into Milkshape, scale it by the amount you need and delete all materials. Once you have your model with all materials deleted, do a final scale up to adjust it for your game and export the .smd Use my tool to convert the .wrl and automatically delete every texture of the .obj. One important thing to know is the default material path used by a model when you don't specify one in the .qc file. It will take the path of the $modelname and change the model name into a folder. For example: $scale 1 $modelname "oot_trace/OOT_FT/OOT_FT_Room1a.mdl" $staticprop $body oot_FT_Port "OOT_FT_Room1a.smd" $sequence idle "OOT_FT_Room1a" activity ACT_IDLE -1 fps 1 This is an example of .qc I have been using for my reference models in CS:S. In this case, the model will look for the VMTs in materials\models\oot_trace\OOT_FT\OOT_FT_Room1a\. You remember that we deleted all materials, so which one would he look for ? Well the .smd need atleast 1 material and if none exist, it create one called default. So in this case, the model is looking for a default.vmt in the above folder. While for CS:S it's fine to have missing texture for the reference model (you have seen above the purple black texture). It's not on CS:GO, because that game has the awesome idea of displaying missing textures as blackness. Pretty cool right, you can't do any mapping with this. So a solution I found was to make the model load a default texture. $scale 1.6 $modelname "oot_trace/OOT_FT/OOT_FT_Room1a.mdl" $staticprop $body oot_FT_Port "OOT_FT_Room1a.smd" $cdmaterials "n64_reference" $sequence idle "OOT_FT_Room1a" activity ACT_IDLE -1 fps 1 You can see this new line $cdmaterials "n64_reference". The model will now look for default.vmt in that folder. Of course, what you need now is the actual .vmt and .vtf to load. So why not the good old missing texture from all the other source game. You can download the vmt and vtf by cliking here Texture Reference. The texture might look a bit weird compared to CS:S, but once you zoom in, it's fine. Feel free to use any other .vtf you want, even though the purple black is simple to use in my opinion. Edit the $basetexture in default.vmt For the .qc file, I recommend you to have different 'base' folders for the reference models and the map models. For example, here i used oot_trace/OOT_FT (OOT_FT = Ocarina of Time Fire Temple). All my reference models use that path. For the ripped models I add in the map, I use moltard/OOT_FT/. I plan to make the reference model creation automatic with my tool. ___________________________________________________________________________________________________ Adding the model in your map Add a prop_static in your map (if you are starting a new map, make a brush and add the prop_static on that brush). Browse to the model you compiled. Hold Alt and move the prop to align it on the grid. Depending of the size of the prop, you will be able to build with big or small unit. Zelda related, I had to build everything with Unit 1, when I used the original scale. After I scaled up by 1.6, I could build with Unit 8, making everything way easier and faster to build. So now that you have your model, add it to a visgroup. Select the prop and click on the red cube of the topbar. A small window appear. Make sure 'Create new visgroup' is checked. Add a name and click OK. Your model will disappear from the views, and you can see the new Visgroup added on the right. You can check and uncheck it to make the model appear and disappear. In my first screenshot, you might have noticed I have Sub Visgroup like those you find in the Auto tab. To make them, select a visgroup with your Right Click and drag it on another existing visgroup. To create a new visgroup without using any brush/entity, click on the Edit button. A small window appear, click on New group at the bottom, it will make a new visgroup, you can then rename it and Close the window. You can now drag your model visgroup on the new one _________ Method to align reference models I have a method to quickly add all the reference models of your map, that might not work with all games. In Zelda games, all the models of an area/temple/cave all use the exact same origin. You can see that the first room and the second room of the Fire Temple got the same origin point. So assuming you named the reference models in a logic way (Room1, Room2, Room3, etc...), you can quickly edit the path of the prop_static to select the model you want. Select your first reference prop, copy it (Ctrl C) and do Paste Special (Ctrl Shift V). Set the amount of copy you want to make. If you have 12 models in your area, put 12. Then press Enter or click OK. In my case, 28 because there are 28 differents room in the Fire Temple of Ocarina of time. All the models will be stacked on the first reference model. The next step is to select the model and change its path. Since everything is stacked, you can Click on the first model Change the path (in my case to Room2a) Click on the first model again Change again the path (now Room3a) etc... After doing that for all the models, everything is perfectly aligned and the rooms are next to each others. ___________________________________________________________________________________________________ Build the map So now, it's obvious, you follow the shape of the model to build your brushes. I recommend you to build with Nodraw, and use the 3D Flat Mode of the 3D view. Click on the word Camera to change the mode. While it might seems really easy mapping at first, once you encounter complex shapes, you will have issues building. The 2D views will not render every walls you need to build. Let's take the lava room of the Fire temple for a good example You can probably see the problem. The 2D views cannot help us build, so we need to use the 3D view. But even the 3D view doesn't help much, because of the way textures are applied, you cannot know the size of the brushes you need to make. I found out the method to build after struggling building the Ikana Valley in my old project. Change the 3D view from Textured/Flat to Wireframe. Now, you can magically see how every solid were built in the original N64 games. Triangular shapes everywhere. Back then, every shape had to be triangular (even the Source engine transform brushes into triangles during compile). So while we still cannot use the 2D views to see what we are building, we have the 3D view. You will mainly need to work with brushes with 5 faces in this case. The vertex tool will be your best friend. At first you will surely create many invalid solid (Alt + P to check the errors). But the more you use it, the less you make errors. Here is the Lava Room built and textured (took over 300 brushes to make): _________ Best way to never get invalid solids If you always move 2 aligned vertices of a brush, and if you always work with brushes with 5 faces, there will be 0 issues. Here is a video that show how you should always move the 2 adjacents vertices together. That way you can easily duplicate the brush, move the vertices to create any shape you want. The problems will happen when you will have to use brushes with 4 faces, which are kinda weird. They can be invalid while Hammer doesn't notice it. I often got that problem when building in wireframe mode. In that mode, I wouldn't notice that the brush was concave. The solution is pretty simple to fix, you just need to switch 2 vertices position. _________ Another problems of the brushes with 4 faces These brush are really not well handled by Hammer and when reloading the map, you could have the following problem A vertice get split into few mini-vertices. You will only see it if you zoom in the 2D views and you might notice cracks between the brushes in the 3D views. You can try fixing it with the Vertex Tool, by making a box to select all mini vertices. Then press Ctrl B to merge them all together. Once you reload the map, the problem will surely appear again. If these brushes are func_detail, you won't have any issue during the compilation, but it's always better to not have these glitched brushes. The best way to prevent that is, like I said above, to use brushes with 5 faces. Or to use HammerPatch which is not something I recommend. While it's working as intended, that makes you dependent from a modification of Hammer. And I assume HammerPatch doesn't work on CS:GO since that game runs a modified version of Hammer. _________ Brushes vertices glitching on map reload Sometimes, when doing brushwork with 4 faces solids, these brushes can get modified when you reload the .vmf It mostly happens on very large brushes, and it splits a vertex in 2 (or more) mini-vertices with an offset of like 0.1 unit. So the brush no longer has all his vertices aligned on the grid but it's the kind of brush that need to be a func_detail anyway. In this case, it is fine, you cannot really do anything to fix the issue, because that's how Hammer act with those brushes. If you really want to fix the problem, select the Vertex Tool. Make a selection box around the whole brush to select all vertexes at the same time. Do Ctrl B to snap to the closest grid point each vertexes and if the message Merge Vertices message appear, press Yes. It might just re-do the exact same problem on the map reload. But if the offset is very large (like 10 units), your brush is probably incorrectly made and you might aswell remake it. _________ Brushes with 3 faces error To make brushes with 4 faces, you usually use the vertex tool and merge the vertices together. If you merge the wrong vertices together, you can end up with a 3 faces solid. It is obviously invalid and need to be fixed. You can remake the brush or you can transform it back into a 4 faces solid. To do so, select the brush and the Vertex Tool. On one of the 2D views, you should see 2 vertices that are not connected together. Select both (Hold Ctrl) and press Ctrl F to reconnect them. ___________________________________________________________________________________________________ Texturing the map You have all the textures of the area in the VRML rip and if needed, you can use RiceVideo to get some .png. Since we want to do an exact replica, the texture work should be like in the original game. _________ Use my tool to automatically texture the .obj To know which texture to apply on which face, we will need to use Milkshape and do the texturing in it. Since you know how to do the texturing for a single model, it won't change here. It can take some times though because there are hundreds of different groups. You can of course delete many groups that are unneeded, or that you already converted as a single model. _________ Another way is to look in the game what texture seems to be used, but make sure you are using the good one. As for the texture scale in hammer, it's all about adjusting it until you get the good one. To help you, find a distinctive point on a texture, and count how many time it appears. i.e. Count the bricks of a brick texture in Milkshape. But luckily, once you have found the texture scale of one texture, that texture scale is the same for many others textures in the area. It can change of course, but rarely. With the Zelda maps, 2.25 on X and Y axis was the scale I used the most. ___________________________________________________________________________________________________ 3D Skybox Assuming you know how to build 3D skybox, you know that per default the brushes in the skybox are 1/16 the size of the map brush. Knowing that, you can compile a downscaled reference model, by changing the $scale value in the .qc file. For the example, I will use the Fire Temple map I'm doing. As you can see, the spawn area is surrounded by Skybox brushes. Using a 3D skybox for this area was the cleanest way I could do. Not only was the reference model massive but the area would have been too big and if people don't even visit, what's the point of adding it in the main map. In red you can see the playable area. Everything around is the reference model. As with any 3D skybox, I selected brushes from my main map as reference, I duplicated them, scaled them down along with a sky_camera which I moved in a 3D Skybox. Once I did that, I added my 'mini reference model' in the 3D skybox, and I aligned it with my reference brushes. Once it's correctly added, I simply needed to rip the 'skybox area' and texture it in Milkshape. After that, I convert to .smd, I compile with a 1/16 scale in the $qc, and I align it with my mini reference model. As you can see, everything is perfecly aligned. So I add all the skybox references (model and brushes) into a visgroup to disable them for the compile. I could also delete them, but it's better to have a backup in case I edit the skybox Once compiled, here is the result in game ___________________________________________________________________________________________________ ___________________________________________________________________________________________________ Thanks for reading this guide, let me know if you have any question or if I should add some informations.
  12. Ripping N64 models to Source - V2 This guide is an updated version of the guide I made 2 years ago. Since then, I learned more tricks on how to rip the models. This part of the guide will explain the steps to rip models from Nintendo 64 games. I will do another guide to explain how to build an exact replica of a N64 area. The following is confirmed to work at 100% with Mario64, Zelda OOT and Zelda MM. Mario Kart 64 also work, but as I haven't made many rips of that game, it might not work for everything. Banjo Kazooie, Castlevania work too. Some games can't be ripped, either the game doesn't start with the plugin enabled or the outputed rip is unusable. Once you are done with this guide, read the next one, which explain how you can build correctly a nintendo64 map. Update I was making a tool to help in n64 mapping and here it is now: Every informations about it in that post. Note that some of the software used in this guide are no longer needed thanks to the tool: Blender Free Mouse Auto Clicker And some steps will be way faster now: Converting the .wrl to .obj Deleting all materials from a model Texturing completly a model ___________________________________________________________________________________________________ ___________________________________________________________________________________________________ Software needed Project64: An N64 emulator. It was provided by FrozenState and has all the needed plugins installed Blender 2.63: It is important that you get this version [No Longer Needed] Milkshape 1.8.4: Get the "Full 30 days trial version". Dont take 1.8.5 Crowbar: A compiler/decompiler of models (.smd/.mdl) Software you may need Gimp: Or Photoshop if you have it/can use it. It will be needed for transparency parts VTFEdit: The usual .vtf creator VIDE: It has a Mass VTF Creator Pretador's VMT Generator: Mass VMT Creator Free Mouse Auto Clicker: Or another auto clicker software you know [No Longer Needed] ___________________________________________________________________________________________________ Step0: Installing softwares Install Milkshape 1.8.4. Make sure to get the 30 days trial version (not the free version), so you can register it with the following key: Name = Model Registration Code = oZMl2-J5BdK2-3Ed21dd Open Milkshape Click on Help -> About... Then Register Enter the Name and the Registration Code Click OK A box will appear, and will tell you thanks for purchasing Milkshape. But you will notice on the top of Milkshape window that it's still not registered. And it won't be if you close Milkshape right away. What you need to do is open a .ms3d file in Milkshape. You will find some in Milkshape root folder. For example: valve_skeleton.ms3d Now you got full Milkshape, with no limitation. If for some reason, the key I provided above doesn't work, download this keygen: Open the .rar, and inside go to f4ms01.zip -> f4cg.r00.rar. The tool is in that .rar Write a name and get the Registration Code ________________________________________ Install Project64, you can put it into any folder, no need to install on Program Files. All the plugins used for ripping models are installed. Nemu64 is the main plugin you will use. It will rip the models and dump textures of the area Rice Video is a plugin that can rip all the textures that you render in the game TR64 OpenGL is another plugin that can rip the models, it can be used if you have issue getting some areas with Nemu64. Although only few games can launch with it. And it might be able to preserve the lighting of the original models, but that is out of the scope of this guide. To select the plugin to use, go to Options > Settings (Ctrl+T). Click on Plugins in the Tree, then select the Video (graphics) plugin you want. You can then select the settings of the Graphic Plugin with Options > Configure Graphic Plugin. Don't change anything yet for Nemu64. Go to C:\ . In there, create a folder called VRML. It is where the rips of games will be dumped by the plugin (Textures + Model). If you encounter crashes of games with Project64 2.2, install an older version (2.1), and copy the plugins to its folder: LemD3D8.dll in Plugin/GFX tr64_ogl.dll and .ini in Plugin/GFX RiceVideo files (cfg,ini,dll) in Plugin/GFX or just directly in Plugin (it doesn't matter as you can load it from any folder) I had that problem when I was ripping the big room in Shadow temple. The emulator would directly crash when the room was loaded. Switching to my normal Project64 2.1 (that I simply used to play N64 games) fixed the problem. It might be a setting in FrozenState's Project64 but I didn't find the problem. ________________________________________ If you download my tool, this information below is no longer relevant, as you won't use Blender Make sure you installed Blender 2.63, it is needed to import .wrl files obtained with Nemu64 and export them to .obj The newest versions of Blender can import .wrl too, but the problem is that the names of 'groups' no longer match their associated texture. Which make it impossible to know which texture to apply on which face. ________________________________________ As for Crowbar, make sure to set it up for the game you want (CS:S, CS:GO,...). You can find guides on the Steam group of the software. ________________________________________ For the auto-clicker, get the one I linked or any other you know: ________________________________________ As for the N64 ROMS, I won't provide any. Emuparadise no longer host any ROMS. FreeRoms has probably all the ROMS you are looking for. They can be installed anywhere you want on your computer, you simply need to select the folder: ___________________________________________________________________________________________________ Step1: Dump the game Launch Project64, select Nemu64 as the Graphic Plugin like shown above and start a ROM. Go to the area you want to rip and pause the game (F2). Now go in Configure Graphic Plugin. You will see this window: Check Export VRML and press OK. Now unpause and pause the game quickly (press F2 two times). Go back in Configure Graphic Plugin and uncheck Export VRML. Don't forget it, otherwise when you will unpause the emulator, the game will lag as it will dump textures every frames. The dumped textures and model will appear in C:\VRML. You will find +100 textures .bmp (depends of the complexicity of the area) and a .wrl model file. I suggest you to select all the files created and move them in a new folder. I use many subfolder for my different projects: So you can see I sort the different ripped areas. Always make sure to move the dumped textures and model before doing another rip as the model file is overwritten and you would get tons of duplicated texture. ___ If the ROM doesn't start or if the screen is black, it might be because the game doesn't support the plugin and it is probably impossible to rip. You can try launching the game with the default Graphic Plugin Jabo's Direct3D8 (if you don't have it, use RiceVideo), reach the area you want and do a Save State. Then launch the game with Nemu64 and load the Save State. I can't guarentee it will work or that the models you get won't be corrupted. ___ One thing you will notice is that since all textures are .bmp, there is no transparent texture (.png). All textures come with 2 files: XXXXXXXX_c.bmp = Texture XXXXXXXX_a.bmp = Define the alpha of the texture The _a is the alpha of the texture, which mean you can transform the _c into a png using it. I will explain the process later. If the _a is just a black texture, then the _c is not a translucent texture. If the _a and the _c are the exact same texture, then _c is not a translucent texture either. You can see many textures that don't really seem useful, they either come from the player hud or the skybox. In the above screenshot, you can see a ladder texture which has its alpha .bmp (6DF61CAE_a.bmp) . So we will be able to transform it into a png. But you can also see that only one side of the ladder is there. To save memory on the Nintendo 64, many of the textures were only half and were mirrored once (or twice) when applied in the games. I will explain later how to mirror the textures (really easy with Paint / Paint 3D) and how to apply them correctly on models. You can also notice that all the textures are upside-down, but once applied on models, it will be good. So, while for model you shouldn't modify the texture, if you want to use them in hammer, I recommend you to rotate them. You can do it by opening the picture in the default Photos app of windows and click on the rotating button 2 times. Using RiceVideo plugin, you can dump all textures that you see in the game. These textures will be more complete than the VRML textures and they will have transparency. I will explain how to use RiceVideo later. ___________________________________________________________________________________________________ Step2: Load the model If you use my tool, you can directly convert the .wrl file to .obj, so skip to Step3 I also recommend that you use it as the Blender Import-Export can lead to issues with groups name in some games like Castlevania64. My tool doesnt have that problem. At the bottom, you can find output.wrl. It is the model of the area. Open Blender 2.63. Make sure to use this 2.63 version and not a newer, otherwise you will get problems like I mentionned in the Step0. The groups name will be called "Shape.XXX" (where XXX is a number) preventing you from knowing which texture to apply. When you start Blender, you will see a box and a camera. Press A two times to select everything, press your Delete key and then Enter. The 3D view is now empty, so we can import the .wrl inside Blender. Click on File -> Import -> X3D Extensible 3D (.x3d/.wrl) The model should now be loaded. But we wont modify it with Blender. If you know how to use Blender, feel free to use it instead of Milkshape. This guide is adapted to people who have no experience with 3d modelling software as Milkshape is really easy to use. The interface is a lot like Hammer with a 3D view and three 2D grids. We will now export the model as a .obj Click on File -> Export -> Wavefront (.obj) And export it into the same folder as the .wrl ___________________________________________________________________________________________________ Step3: Import in Milkshape Launch Milkshape, if you followed the Step0, you should have the full version. Click on File -> Import -> Wavefront OBJ and select the .obj file you just exported. The model is now imported, but depending of the game, the visible faces might be reversed and you would only see black textures on the 3D view. You need to reverse the Vertex order. Do Ctrl + A to select every vertices. Click on Face -> Reverse Vertex Order (Ctrl Shift F). If after this step, the model has still black parts, click on Face -> Smooth All (Ctrl M) The model is now correctly visible in the 3D view, but the textures are not correctly applied on most faces. So we will need to delete all current Materials. If you use my tool, you can directly delete all the materials from the .obj You can also do the Revert Vertex Order and the scaling. You can skip to Step4, if you have done everything needed Go to the Materials tab and launch the AutoClicker. If you use the one I linked, set everything to 0 except the 1/100 S. Put 2 to make it click every 0.02 second. Then put your mouse on the Delete button in Milkshape and press the Start Hotkey of the Autoclicker (Ctrl F2 per default). Wait until it's done, and press Ctrl F3 to stop it. There might be a slight delay before it actually stop. I recommend you to save that scaled model without any texture under a new name. It will be easier for you to extract the different models of the area. Depending of the game, the model might be too small for you to easily edit it, so I recommend you to scale it up. For the Zelda games and Mario64, scaling the model by 80 is good. For the final export of the model, you will need to scale it again (with a different value). Do Ctrl + A to select everything, and click on the Model tab, then the Scale button. In the Scale Options, click on Origin and set a value of 80 in the three text boxes. You can now press the button Scale. Again make a save of that model (or just overwrite the previous one). ___________________________________________________________________________________________________ Step4: Get the model you want So now let's say you want a specific model of the room. You simply need to delete the stuff you don't need (make a backup of the 'non textured area' model). Save your current file in a subfolder to keep things clean. I have a different folder for each model I rip. If some models are the exact same with just different size/position, I put them in the same folder. For example, in the Totem folder, I have a model of a Small Totem and a Big Totem from the Fire Temple first room. Click on the Model tab, then the Select button. In the Select Options, click on Face. To move around in the 2D grids and 3D view, hold Ctrl, use the Left Click and move your mouse. To unselect everything, click on Edit > Select None (Ctrl Shift A). Make selection boxes in the 2D views to select the model you want. You will probably select others objects around it, so it will take few steps to get the model you want. Once stuff is selected, click on Edit > Select Invert (Ctrl I), and press you Delete key. Repeat that until you only have the model you want. If you are having trouble selecting only a specific part of the model, try on the different 2D views. If you are having issue deleting small vertices of another object, you can also click on Vertex in the Select Options. Once you have your model, you need to center it at the origin of Milkshape, that will be easier to rotate the prop in Hammer. Click on the Model tab, then the Move button. In the Move Options, make sure each textbox is at 0.0 and change Relative to Absolute. You can now press the button Move. ___________________________________________________________________________________________________ Step5: Texturing the model If you use my tool, texturing the model can be done in one second. Export an untextured .obj with Milkshape and load it in my tool. Press the Apply all materials on the .obj button and save the new .obj You can now skip to Step6. If you see black faces on your model, that mean the backface of the model is enabled. You can disable it by right clicking on the 3D view, and unchecking Draw Backfaces. Also make sure you are in the Textured mode of the 3D view and not Smooth Shaded otherwise you won't see textures once you apply them. So now you only have the model you want to rip. Go in Groups tab. You can see different groups with <No Material> applied, 4 in my case. Their name is what will tell you which texture to apply. That's where people who didn't use Blender 2.63 to import the .wrl will get problems as the name will be replaced with Shape.### (### being a number). So you can see that in the 4 groups, 2 use the same texture: 548308A0_c.bmp and 7F05D05B_c.bmp. So for ease, we can regroup them, to only have 2 groups in total. Make sure nothing is selected in the 2D views (Ctrl Shift A). Either Double-Click on a group name or click once on a group, then click on Select. Do the same for the other group. Copy the name of the texture somewhere so you don't lose it (i.e. a temporary txt file) and then click on Regroup. That will merge the selected groups into a new one called Regroup01 (the next merge will be called Regroup02, etc...) You can now select that new group, then paste the texture name in the small textbox and click on Rename. Unselect everything (Ctrl Shift A) and do the same for the next groups. Once you have done that for all the groups, you should have a much cleaner list. So now you have the list of used textures, you can find and copy them to your model folder. Back to Milkshape, in the Groups tab, select one of the group and copy its name. Then go in the Materials tab. Click on New, it will create a new material called Material01 (next time it will be Material02, etc...). Paste the name of the group in the textbox and click Rename. Then click on the first <none> to browse to the texture (should be fast if you already added them in your model folder). Then you need to Assign that material to the selected group, you can either double click on the material name or click on the Assign button. Once it's done, unselect everything with Ctrl+Shift+A. If you are in the Selection mode, you can also click in an empty area of the 2D view to unselect all. Do that for each group until your model is fully textured. It's possible that the name of a group doesn't have the texture name in it. Usually it's because its an useless element that you can delete. But I got that issue on the Eye Switch model from Zelda which had its sides without any known texture. In that case, I simply applied the Eye texture on the sides and it gave the correct result. So if that happens, look at what that group is used for and if you can delete it. ___________________________________________________________________________________________________ Step6: VTF Conversion and .qc Creation So if you followed what I said previously, in the folder of your current model you have the used textures. We will convert them to the .vtf format using VIDE. So launch VIDE and press the 8th button of the tool bar for the Mass VTF Editor. Copy the path of your model folder: And paste it in the Source Directory and Target Directory in VIDE. Set the picture format to BMP so it will convert every .bmp of the folder. Then press Apply. If your model use .png and .bmp, first set the format to BMP, click Apply, then click Return, change the format to PNG and click Apply again. The next step is to create a vmt for each vtf, which would be long to do manually. To do it faster, we will use Pretador's VMT Generator. Download it (link at the top), extract the .zip where you want and launch the software. Be careful not to have your audio too high when launching it as it will say Hello. If you have issue launching it, delete the folder and re-extract it from the .zip. So at the top you have the Texture Shader. Props only support 2 shaders: UnlitGeneric and VertexLitGeneric. The shader we are going to use is VertexLitGeneric. But if you want one of your material to be fullbright, you can use UnlitGeneric. Select the Surfaceprop you want, although it's not needed for a model. No Proxies will be needed either. As for the Parameters, you will need $model. If your texture has transparency, you will need $translucent too. At the bottom left, there is the browse button. Use it to navigate to the folder with your .vtf files. I recommend you to create a temporary folder on the desktop and move the VTFs there. It will be way faster to go to a folder on the Desktop than anywhere else because the browsing system of the software is not great. So now you have the vtf files loaded, select them all by holding left click and dragging down. You need to add the $basetexture path. The syntax is the following: MyFolder/AnotherSubFolder/ You can add as many subfolder as you want, just make sure you end the path with a / Once you are done, click on Preview to see what the vmt will look like. If multiple vtf are selected, it will show for only one of them. If the vmt looks good for you, make sure the vtf files you want are selected and click on Generate. It will create the vmt files next to the vtfs. If you have one picture that needs transparency but not the others, select that vtf only and generate the vmt with its own parameter. Save the path you used for the vmt somwhere as you will need it for the .qc For my model, I used models/moltard/OOT_FT/Detail/Totem/, which mean my vmt will load a vtf in materials/models/moltard/OOT_FT/Detail/Totem/ Remember that a model doesn't load a .vtf file. It only loads a .vmt in the folder it is compiled for. The .vmt then has the path that lead to thee .vtf, which means you could have the .vmt and .vtf in completly different folders. But for ease, usually you have the vmt and the vtf in the same folder. So now you need a .smd file, it is the Source format you will compile into a .mdl thanks to a .qc file and Crowbar. If you remember, you previously scaled up your model in Milkshape by 80 to make it easier to edit it. This time you will need to scale it again depending of the game: Zelda OOT and MM: 14 14 14 Mario 64: 5 5 5 Other games: You need to figure out the best scale possible What you can do is import a Counter-strike model in milkshape and compare it with the scale Counter Strike Player Model Click to download it I included a .smd and a .obj, so you can import either Once you have scaled your model, you can export it as a .smd Click on File -> Export -> Half-Life SMD and name it like your Milkshape file. In a .qc file, you can change the $scale of the model compiled. _________ Zelda related, while the 14 14 14 scale is perfect for an exact reproduction (Link being around the size of a CT model), it is not adapted for ze gameplay. As you need to think about zombies, if the hallways are too small in your map, it won't be fun for zombies who will get bullied. I have used $scale 1.6 for my lastest Zelda projects (Shadow Temple, Fire Temple, Ikana) Here you can see the Stone Tower Temple (Majora's Mask), I built 2 years ago for my Ikana project with a $scale 1 And here is the Ikana project, that I restarted 1,5 month ago, with a $scale 1.6 It was faster to build cause I could use bigger units (since the areas were larger) and probably because I had more experience building. _________ Create a new text file and change the extension to .qc Paste this into it: $scale 1 // scale up the model after compile $modelname "moltard/OOT_FT/Detail/Totem/TotemBig.mdl" // path of the model once compiled, relative to models/ $staticprop // allow the prop to be static/dynamic $surfaceprop "rock" // the surface property $body FT_Models "TotemBig.smd" // the smd you exported $cdmaterials "models/moltard/OOT_FT/Detail/Totem" // where the model load the vmts, relative to materials/ $sequence idle "TotemBig" activity ACT_IDLE -1 fps 1 // the smd for the 'idle' animation (you are not forced to put .smd) $collisionmodel "TotemBig.smd"{ // the collisions of the model $concave $automass } If you followed the Step0, your Crowbar is setup for the game you want (CS:S / CS:GO). So now you need to compile the model. ___________________________________________________________________________________________________ Step7: Compilation Check if you have the needed files: .smd .qc .vtf and .vmt in their folder Open Crowbar and drag the .qc file on it. You can then press the Compile button. Once the model is compiled, you can have 3 choices: - Click on Goto and Crowbar will open the directory where the .mdl file is. - Click on Recompile will obviously recompile the model, so if you need to edit a parameter of the .qc, you can then compile again - Click on Use in View will open the View tab From there, you can click on the button View to open the model in the Model Viewer of your game _________ Problems that can happen on the model Error in the compile log: Probably an invalid parameter of the .qc, you should see in the log the exact problem. There is no Model appearing on the Model Viewer: Either you put LightMappedGeneric in the model vmts or you did something wrong to the model in Milshape. In the first case, simply replace the shader of the vmt by VertexLitGeneric. For the second case, retart from the untextured .obj Black/Purple textures (= missing texture): On CS:GO, the missing texture result in a totally black model (which is really dumb imo). On CS:S, the missing texture is the black purple texture In the model viewer, look at the Model tab, if there is no VMTs Loaded, the following error appear: *** ERROR *** Model attemped to load one or more VMTs it can't find That means the VMTs are not in the folder you specified in the .qc file or they are not named correctly. In the Model tab, you can also see at the bottom a select list called Materials used. This is the list of VMTs the model tries to load. The name of the VMTs loaded by the model are the same as the textures file name you used Milkshape. So make sure the VMTs are named accordingly. That's one of the difference with exporting .smd in Blender (Blender Source Tool). With Blender, the VMTs name needs to be named like the Material name and not like the file name. If the VMTs are loaded but the textures are still missing, that means the VMTs target non existant VTFs. So verify if the VTFs are there or if they are correctly named. ___________________________________________________________________________________________________ ___________________________________________________________________________________________________ Tips and Trick RiceVideo At the Step0, I talked about the plugin RiceVideo that was included with Project64. One if its feature is to dump textures. While VRML does it too when you rip a model, you noticed there was no .png (transparent textures), only _c.bmp and _a.bmp RiceVideo can dump every single texture you see in the game with their transparency. So go in Project64 settings, change the Graphic plugin to RiceVideo 0.4.4 RELEASE. Then go in Configure Graphic Plugin, under Texture Enhancement & Filters, check Dump textures to files. Press OK and launch your game. Go in the area where you want to dump textures and the plugin will do its job. A folder called texture_dump will be located in the same folder as RiceVideo.dll (Plugin/GFX per default). In there, you will find folders for the different game you used the plugin on. And for each there will be 2 (or more) folders: ci_by_png png_all Dependings of the games, you will find the textures you want in either of those folder. I mentionned earlier that all textures obtained from VRML are upside-down. That is not the case with RiceVideo textures which have directly the good rotation. So if you need to use one of these texture on a model, you will need to rotate it and mirror it. Here is an example of a flower: From VRML, .bmp so no transparency. From RiceVideo, .png transparency but upside down. Previous flower after rotation. Previous flower after I mirrored it. While Paint can rotate and mirror pictures, it will remove any transparency when you save the picture. So it's obviously more adapted for the .bmp pictures you get with VRML. I have used Paint 3D which come with Windows 10 and it's pretty fast to mirror pictures and preserve the .png transparency. To rotate a picture, you can either rotate it in the Photos application of Windows (like I mentionned at the beginning). Or you can do it in Paint 3D (if you don't have it, use Gimp or something else). Right click on the picture, click on Edit with Paint 3D to open the software. Zoom in with your mousewheel if it's too small to see. Do Ctrl A to select the picture. Tools will appear on the sidebar (if they dont, press M): If you haven't rotated the picture earlier, click on the Rotating button 2 times Click on the Mirror button (Horizontal) Once you are done, click away to disable the Tools and do Ctrl S to save the picture. _________ Mirroring Pictures At the beginning, I talked about the N64 using Half textures to save memory. The flower of the previous trick is one of them. Applying it on the model in Milkshape will not give us the result we want. So we will need to Mirror the flower to get its symmetry. Again, I will use Paint 3D, so open the picture like earlier. Do Ctrl A to select the picture, then do Ctrl C to copy it. Then click on Canvas on the top bar. On the sidebar: Make sure that When resizing the canvas, adjust my image as well is unchecked Make sure the Aspect ratio is locked is checked Make sure Pixels is selected and not Percentage You can now grab the square on the right on the picture to double its length. On the sidebar you can see the length, so if it was 16px, increase it to 32px. Since you copied the picture earlier, you can now paste it, move it to the empty space you just created and mirror it. You can now save the picture. Of course, depending of the texture, you will either need to Mirror it horizontally, vertically or both. Go back in Milkshape. If you load that new picture in your Materials, you will now notice a new problem: - The texture is duplicated on the model, which is pretty logic since we doubled its size. We now need to use the Texture Coordinate Editor of Milkshape. Click on Window > Texture Coordinate Editor (Ctrl T). So in this small window, you can see few tools, few options you can check and a select bar where you choose the Group you want to modify. In Milkshape, in the Group tab, double click on the group you want to select. Select that group too in the Texture Coordinate Editor. The group you selected in Milkshape will have a white rectangle in the Texture Coordinate Editor so you know when you selected the correct one. Click on the Scale option, in Factor you can see 2 textboxes. The first one is for the X axis and the second for the Y axis. In our case, we only mirrored horizontally (X axis), so we put 0.5 in the first textbox. To be safe, you can also check Lock Y, so the Y scaling will not get modified if you mess with the other value. Once you are ready, click on the S button next to the textboxes. You will see the change on the Texture Coordinate Editor. To see what changed on the 3D view, simply click anywhere on it. Do the same for the others groups that need it. Depending how you mirrored your picture, you might also need to Scale by 0.5 on the Y axis. One problem you can encounter is after you re-scaled the texture, it is not aligned anymore. The fix is simple, click on the Move Tool of the Texture Coordinate Editor. Again there is two textboxes. Put 0.5 in the textbox you need and press the M button next to the textboxes. In my case since it's not aligned on the X axis, I put 0.5 in the first textbox. Click on the 3D view, and it should be fixed. While 0.5 is the solution and will fix the texture alignment, if, in the Texture Coordinate Editor, the "box" is not on the texture and if you are accurate like me, you might want to fix it. You can use negative numbers in the textboxes, so just put -1 in the textbox you need and press the M button. _________ Draw the backfaces of models To stay on the topic of the flower model, one issue you will encounter is that, once compiled, the backfaces of the model will not be rendered. On the 3D view, you can enable and disable Draw Backfaces to see the difference: With the backfaces enabled With the backfaces disabled To fix it, you need to add the parameter $nocull 1 to your vmts. Here is one of the .vmt of the model: "VertexLitGeneric" { "$surfaceprop" "grass" "$basetexture" "models/moltard/OOT_KG/Flower/16D12D0D_c" "$model" "1" "$nocull" "1" "$alphatest" "1" } You can also see that I use $alphatest 1 instead of $translucent 1. In the case of this model, because multiple translucent texture were crossing each other (flower + leaf), it wasn't rendering correctly. $alphatest fix that issue, you can read more on valve wiki about $translucent. _________ Get a .png texture from the _a.bmp and _c.bmp As you have seen previously, you can easily get translucent texture using RiceVideo. But in case you are not able, your only alternative is to use the _a.bmp with the _c.bmp to get the .png. Depending what the _a.bmp look like, you can see if the texture need or doesn't need transparency: Totally black texture, the texture doesn't need transparency The _a.bmp and _c.bmp are the same, the texture doesn't need transparency The _a.bmp is made only of black and white, the texture need transparency For the example, I will use the leaf of the flower model of earlier. Here you can see the _a.bmp, the _c.bmp and the .png we should get as result. Download Gimp if you haven't done it already, the link is at the top. Feel free to use Photoshop if you are more experienced with it. Open both textures in Gimp (in 2 separate windows), by clicking on File > Open, 2 times. In the _c texture, click on Layer > Transparency > Add Alpha Channel. In the _a texture, do Ctrl A to select it, then Ctrl C to copy it. Go back in the _c texture and paste it. You now have the _a texture on top of the _c texture. We will now use the 2 tools windows which might be disabled on Gimp Launch. To enable them click on Windows -> Recently Closed Docks. Go in the Layers Window. Right click on Floating Selection (Pasted Layer) and click on To New Layer. It will then become Pasted Layer. Go in the Toolbox, and select the Magic Wand. Click on the white areas of the alpha texture. To select multiple areas, hold Shift while clicking. Once you have selected everything that needs to be removed, click on the Eye of the Pasted Layer in the Layers Window. The alpha texture won't be visible, so you can now select the _c texture by clicking on it in the Layers Window. Press the Delete key on your keyboard and it will remove every parts of the _c texture that need to be transparent. You can now save it as a .png Click on File -> Export As (Ctrl Shift E). Give it the same name as the _c texture (1249F6AB_c.png in my example). Obviously, when using a transparent texture, don't forget to use either $translucent or $alphatest in the .vmt _________ Texture with wrong color In some case, a texture ingame has a specific color. But the texture obtained through VRML / RiceVideo is kinda grey-white, or another color. The best you can do is check ingame the color and take a screenshot of the texture. Then use the Eyedropper tool of any software (even Paint can do it) to get the RGB code of the color. Use VTFEdit, import the picture and the usual window appear. You can turn the texture grey by setting the Normal Format to I8 and the Alpha Format to IA88. Press OK and save the vtf. In the .vmt, you will add a $color parameter "$color" "{255 255 255}" Replace it by your RGB code. $color only work with brushes. If you want to use color on a model, you need to use $color2. The syntax stays the same. ___________________________________________________________________________________________________ ___________________________________________________________________________________________________ Thanks for reading this guide, it should be more complete now and more clear. Check the Nintendo64 Mapping Guide and my N64 Mapping Tool, the links are at the top.
  13. Well on dropbox files get deleted after a little time so I don't really use it! I will use Mega. Thank you anyway
  14. you should use good website to upload your file not some sketchy website like zippyshare I recommend you dropbox. You can 'share' stuff that you upload Mega is also good
  15. I started mapping back a few months ago, but I had some problems and I couldn't do what I want, Later when I joined here, I got some help on discord and was able to do what I wanted This is the map feel free to test it. *V2 - First Version as I made another map before it and suggested it, but it wasn't that good and it was kinda small. *V2_1 - The Bugs that were found while testing the map on ze were fixed, changed the boss and few parts of the level-2. It's longer and harder now. -Added Music to the map -Made the doors to kill who blocks it to prevent bugs -Added few boxes/crates to the empty spaces to help humans defending -Level-2 After lego boat part is completely changed. -Few more changes, not that important. -First level Elevator is fixed now. *V2_2 - -Fixed the bridge bug which makes it disappear (Noticed it while testing offline) -Added few breakable boxes to slow humans down -More Traps *V2_3 - Quick fix (Recompile to un-hide few objects) *V2_4 -Fixed a bug with the first elevator -Fixed a bug with lights -Changed the sky texture to black in few areas to prevent vision bugs -Changed few textures all over the map -Prepared for level 3. *V2_5 -Level-3 -Few Texture changes *V2_5a- Quick fix. (Light) *V2_5b- Quick fix for level 3. *V2_Fix(Final) -Level 1 Elevator bug is fixed -Level 2 Boss is removed, instead of a boss humans will need to defend a bit more in that area -Level 3 Trigger is fixed (Forgot to check "Cleints" Flag which fucked it up, same applys to zombie teleport. -First level music is changed. *V3 -Added Level-4. [It's normally playable by winning the 3th stage for now, in future it will be playable by finding 3 keys during the 3 stages.] Download Link: Here If you could beat the 4th stage, I will be glad
  16. Hello fellow mappers, I'm going to keep this short and sweet. Looking to do a collab on a CSGO map, if anyone is interested let me know. Here's my steam. I will discuss details in DMs https://steamcommunity.com/id/LegendaryFluff
  17. nice church btw amazing architecture no lie fam.
  18. As some may know I've been working on this map for a while, and it's finally ready to be beta tested! Would really appreciate if you could go check out my map and give some feedback! https://steamcommunity.com/sharedfiles/filedetails/?id=1438252485
  19. Please look at the date before posting.
  20. Hey, this doesn't have anything to do with the Church!
  21. @4ix You should finish that map and give it to CS:GO JB custom map. Make sure to add some things that make it especially special wtf did I just saY? to our server!
  22. Your daddy targeter has these outputs: "OUTPUTS: OnTrigger -> !self -> Disable -> -> Delay = 0 seconds OnTrigger -> !activator -> AddOutput -> targetname boss_target -> Delay = 0 seconds OnTrigger -> !activator -> AddOutput -> targetname no_target -> Delay = 4.95 seconds OnTrigger -> !self -> Enable -> -> Delay = 5 seconds" but if you set the Delay before reset to 5, then no need to enable/disable the trigger. Because once someone triggers it, it cannot be triggered again until the 5 seconds have passed. nice guide otherwise