-
Posts
527 -
Joined
-
Last visited
Content Type
Profiles
News Articles
Tutorials
Forums
Downloads
Everything posted by NAB622
-
Warning: Degenerate T Junction Edge found
NAB622 replied to jedimaster123's topic in Modding Assistance
Any light with a style key, or a unique targetname, counts as a styled light. Multiple lights with the same targetname are grouped together and will function together as a single style. Color and brightness are irrelevant in all cases. Can you post a few pictures of the current state? Depending on how blocky the result is, there may be several solutions. Assuming nothing is glitched, my immediate thought is to identify the problematic surfaces, make them a func_group, then add a _lightmapscale value of 0.5 or less, and see if it helps. -
Warning: Degenerate T Junction Edge found
NAB622 replied to jedimaster123's topic in Modding Assistance
I doubt the T-Junction error has much to do with the lighting, although it is possible. See if a brush cleanup will help with the T-junction error. There is a limit on light styles per surface, though, and that's likely what's causing the most serious issues here. The best approach to switched lights is to use as few switches (And styles) as possible. If I understand correctly, light entities are grouped together by their targetnames during compile, and there's a limit of four different light styles (Switches included) per surface. It's okay to hit the limit, but surpassing it will screw things up royally. For reference, it is possible to use switched lights to make an RGB system, with a switched red, green and blue light on the same surface. It will hit the limit and throw warnings, but it does not surpass the limit, so it remains functional. However, any other switched/styled lights touching the same surfaces will break it. -
My suggestion is..... Make a single, large brush for the underwater effect that covers your entire underwater area, textured on all faces with caulk_water. Then for your water surfaces, either use a separate brush with a shader that does not contain the water property, or use a patch mesh for each one.
-
I believe the models are inside assets0.pk3. If not there, then assets1.pk3.
-
Autosprite2 is mostly used for energy beams and effects-style stuff. In the single player campaign, I believe the chains on Korriban use it. I've used it in several of my own creations, too. Taspir Power Complex v3 uses it on the CTF map. There are small vertical energy beams surrounding the flags for each team. Don't know if I ever released the source files for that, though...
-
That's really strange. I get the feeling something else is at play here. The only way I can try to help further is to see the .map file and the shader file. Sorry I haven't been much help on this one.
-
Okay, yeah, you'll definitely want to remake that brush. Don't do any vertex edits, make sure there's no chance of the game getting confused. Now..... In my opinion, autosprite2 isn't even a great idea here. The candle is large enough that you should seriously consider creating it out of geometry, with either a 12 sided brush or a patch mesh. Use autosprite2 for the flame at the top. In both cases, if you are using brushes be sure to also mark them as detail (Ctrl + M), that should discourage the geometry splits on each face.
-
After thinking about it for a bit, what does the wireframe on that brush look like? Maybe it has a bunch of invalid faces. That could certainly cause issues.
-
We learn by doing, and that goes for me too!
-
Actually, that's okay to do for most edits. Certain things like lightmaps have to be compiled, so recompile your map and reload the level in-game, and you should see the changes. That's probably why it suddenly started working for you.
-
Ah, sorry, I misunderstood your issue then. Can you post a screenshot?
-
Autosprite2 works across the longest axis of a surface . Try making your surface rectangular instead of square.
-
Here's what I would do..... I would make the candle flames a separate texture on a pure black background, add them as a separate stage to your shader, and use blendFunc GL_ONE GL_ONE on them so they blend properly with the environment. For the candlesticks, remove the blendFunc, and use an alphaFunc to mask them. I haven't written shaders in forever, so I can't write an example, but if memory serves, the landing pad texture at the center of mp/ffa5 is a great example of alphaFunc in action if you need it.
-
Can you post the image as well? If it's just a flame, forget using alpha and just use blendFunc GL_ONE GL_ONE.
-
/developer 1 is a CVar that needs manually typed into the in-game console, not added to the script. It will show the execution of the script as it goes, making troubleshooting much easier. It likely won't help me very much, but it could help someone more experienced with single player scripts to determine the problem. If you're using something as a template, I would suggest reverting to that method, since ultimately I'm just shooting from the hip. The suggestion for /developer 1 and the print blocks remains a good idea, though.
-
I don't work with single player, so this might be wrong, but I believe you can remove the "Affect" block, and check the "runonactivator" flag on the target_scriptrunner. I can verify that it does work that way in multiplayer. To further troubleshoot, I would add a few print blocks to the script, set /developer 1 in-game, and see if the prints show up in the console. That should help you determine exactly where the failure is.
-
Assuming SoundGroup is not a thing.....a simple script and a series of target_speaker entities is 100% the cleanest way to go. If you want to set up an entity system to play random sounds without a script, use some kind of a trigger (I'll use trigger_once here), target_delay, target_random and target_relay. trigger_once | | v target_delay <--------| | | |-------> target_relay | | v target_random | ------------------------------- | | | v v v target_speaker target_speaker target_speaker Target_delay has a random key, use that to create your randomization. Edit: A side effect of this setup is that the trigger_once will also trigger the target_random, since they'll end up with the same targetname. All it will do is trigger a sound immediately before the delay takes place, so it's not a problem, just something to be aware of.
-
Target_speaker is buggy as hell. Several of the parameters don't work. I don't think the wait key does anything on them, either. You might be better off using target_delay or a script to fire it every few seconds or whatever. In fact, if you're looking for random sounds, that wouldn't be a bad idea, in my opinion. I've never heard of SoundGroup before....is that even a thing in Jedi Outcast/Academy?? It looks like your Radiant is set up for Voyager: Elite Force, judging by the Borg reference. Try changing it to Jedi Academy and see what happens.
-
Files in PK3 getting corrupted and missing
NAB622 replied to RobiWanKen0bi's topic in General Modding Discussions
Are you modifying the base game's assets1-4 files? Definitely don't do that. It's just asking for trouble. -
Files in PK3 getting corrupted and missing
NAB622 replied to RobiWanKen0bi's topic in General Modding Discussions
For numerous reasons, don't edit a PK3 directly. Use a project folder to contain your mod, and create a new PK3 when you want to test it. Or if you want, you can start the game with sv_pure 0 and it will also load assets directly from the base folder as well, which is great for testing mods. I've never heard of files going missing from a PK3, but due to the nature of how ZIP files work, it is a bad idea to ever edit one. I've seen them bloat for no reason, and I've seen them take forever to do a simple edit. Never seen files go missing, but it wouldn't surprise me. -
trying to make a cylindrical doorway in a cylinder
NAB622 replied to Chansta's topic in Modding Assistance
My recommendation: make the shaft any shape you like, but make the door square. The physics engine in JA will bug out like crazy if you try to rotate a cylindrical door around the player. Believe me, I've tried. It's not worth the effort. If you want to time the movement of the door with the elevator, you may want to look into scripting the movement. Edit: As far as cutting the shaft, you're probably looking for the clipper tool. If the button is missing or you can't find it, press X. -
Noted.
-
You've made me curious, how is GTK hard? I'm not saying it isn't, I'm just genuinely curious what parts bother you.
-
Eh, consider me a "Wannabe" as far as Radiant is concerned. I have my own set of annoyances with it, and yes, it's very slow to edit many things. But since you've used a different editor, I was curious what parts of Radiant specifically bothered you, compared to the other editor.
-
Well, I thought this was common knowledge, but I guess it isn't. The title of this tutorial says it all - you can make ASE models using nothing but GTKRadiant and a simple trick. Before we get into details, I'll start out by giving you the advantages of using ASE models over MD3s: • ASE models do not need UV mapped. They get textured like everything else in Radiant. • Because they reference the original textures, this can reduce load times. Think about it - if your map already uses the textures you apply to your model, it has no new textures to load! • ASE models do not have the "always drawn" glitch that MD3 models do. This saves a few FPS. • ASE models zip up very nicely, since it's just a text file. • You can use curve patches in your ASE models. • Making an ASE in Radiant is just as accurate as making an MD3 in a professional program. I know what you're thinking - Radiant's grid is not small enough. Just trust me on this, I'll explain it later on. It's actually more accurate to make a model in Radiant, because you are forced to snap everything to the grid, meaning no offset origins. Now, to be fair, there are a few downsides: • Since there is no UV mapping, you can't get quite as much texture variety. • You can't use these models for anything else in JA - just map objects. • Misc_model is the ONLY entity that can use ASE models. Everything else requires an MD3 model. This includes the model2 key on func_ entities. This will be short and sweet, so let's cut to the chase. Start GTKRadiant. Once it is open, you need to ingrain this message into your head: Build everything at least four times as large as you want it to be! This is important! The entire process hinges on this. Not only will it be easier to edit, but this is what enables you to make higher detail models. In Radiant, you will see the origin (0, 0, 0) point of the grid. This is where the base of the misc_model will be. Build your model anywhere on the grid. You'll have to move it at the end, though. For this tutorial, I'm going to pull up an old, somewhat lame model I made of a lantern. Click here to download the lantern's source files. I would suggest following along with them the first time around, and once you get the hang of this, you can do it on your own. Don't forget to add lantern.shader to shaderlist.txt if you use this example! Not the best model, but it worked for what I needed. Anyway, here's a look at the grid view. Check out the scaling: As you can see, this thing is MONSTROUS. That's because I made it 10 times bigger than I wanted it to be. Notice that the textures are stretched large on it as well. There is a reason for this. <a name="important" style="color: rgb(238, 255, 255); font-family: 'Times New Roman'; text-align: -webkit-center; background-color: rgb(0, 0, 90); font-size: medium; ">IMPORTANT: Your model must have AT LEAST one structural brush somewhere on it. This is easy to cheat on - just add a structural brush of caulking in a random location. It won't affect your model in any way, and it's invisible, so it doesn't matter where. In the lantern example, I made everything detail except the stem of the lantern. I don't know why I bothered, but I did. If you fail to do this, no ase file will be created and no warnings will be given. Additionally: You need to get the origin at the correct spot. This is critical! You can't put the origin in the middle of the model, or it won't work properly. Whatever part of this model will be attached to something is where the origin in Radiant must be. To put it simply: If your model is going to hang from the ceiling, you need to make the top of your model touch the map's origin in Radiant (The lantern is a good example of this). If it's going to sit on the ground, you need to make it touch the bottom. If it's going to hang on a wall, you need the origin to be against the side of your model that will be against the wall. You'll see why this is important. Now, let's convert this into an ASE model. I use Yzmo's .map to .ase Converter Utility to create ASEs, but you can also do it with q3map2GUI, q3map2build, or even just with cmd.exe and q3map2.exe if you like. I'm going to use the .map to .ase converter, because it's easiest to explain and use. Once you have it downloaded and installed, read on. Once the program is running, click the settings button and give the program the paths to q3map2.exe file and your GameData/base/maps folder. Uncheck the Make Window Semi Transparent box if you like, then click ok. You should see this: Now for the juicy part. Make sure the .map you want to convert is in your GameData/maps folder. Now, just type the name of your .map file (minus the .map extension) into the first box. You can leave the second one blank if you like. Press enter and watch it go. Open up your GameData/Maps folder. You should see two new files: lantern.srf and lantern.ase. Delete the .srf file and copy the .ase file to whatever folder you want. I'll copy it to GameData/models/mymap as an example. If you do not see any files, make sure you read the warnings above and try again. We're almost done. Now we just need to add the model to our map. Load up whatever map you want to add this model to. Find where you want to place the model, right-click on the grid and create a misc_model. Note: misc_model_static does not work with ASE models! When opening the model, You'll have to change the format to .ASE to see it: Once you get the model loaded, you should see it's massive bulk eat up a ton of space in your map. We're going to fix that next. With the model still selected, press N to bring up the entity window. Depending on what scale you built your model to, you'll have to scale it differently. If you made your model four times the size you wanted, you'll need to enter: Key: modelscale Value: .25 If you built it to a scale of ten, like I did, you'll need to enter: Key: modelscale Value: .1 If you built it to a scale of two, you would enter: Key: modelscale Value: .5 Here's what the entity should look like if you built it on a scale of 10: For extra realism, you can also check the "lighted" checkbox. If you do not have a "lighted" checkbox, you need Darth G's updated entity definitions. Here's what it looks like with the correct modelscale value: Much nicer, isn't it? Few things in closing. Instead of using the modelscale key, you can use modelscale_vec and give it three different values (.4 .8 2) and scale it on each axis individually. Also, instead of using the angle key to rotate your model, you can use the angles key to rotate it on every axis individually as well (20 45 90). Thanks for reading this tutorial, and I hope it helps you in one way or another!