Jump to content


JKHub Staff
  • Posts

  • Joined

  • Last visited

Everything posted by AshuraDX

  1. Hey, You need to download an older version of 3ds max, either via your account or other means. Unfortunately there is no downgrade option within 3ds max. I can't help with Blender related questions. Try opening a different thread about that to attract the attention of our resident Blender users
  2. Hey Piau, Which version of 3ds max do you use? Unfortunately @Archangel35757 has not yet compiled the plugins for 3ds max 2023+ The latest version you can use is 3ds max 2022. If you already use max 2022, can you share details on how you tried to install the plugin or any error messages max displays? Are you using my CAT Rig Guide for exporting the animations? If you want to use something other than 3ds max, look at Blender. But there you will deal with .gla files directly which involves a very different process of merging your new gla with an existing file and then editing the animation.cfg by hand.
  3. That may be faster to remake. All of the parts were taken from jedi academy models and ported to Battlefront. Actually I think the Uploader, @Teancum, may still be around here.
  4. You missed the checkbox "Maintain aspect ratio". Uncheck that and you will be free to change width and height independently
  5. Now that's a name I didn't expect to see outside of gothics modding scene
  6. Unfortunately this plugin is only a glm importer/exporter. They neither im- or export animations. The Gla is only needed for the exact bone position and orientation as well as the bone indices I would guess.
  7. Tutorial: Export & Compile Animations for Jedi Knight Jedi Academy Introduction This Tutorial will teach you how to export animations made with the Jedi Knight CAT Rig for 3DS MAX and compile them for use in Jedi Knight Jedi Academy. With a minor change, this Tutorial will also work for Jedi Knight Jedi Outcast. Requirements The Jedi Knight CAT Rig *.max file The core to this tutorial, without this the remaining part of this tutorial might not make much sense to you. Download The dotXSI Exporter for your version of 3DS MAX This is the plugin you need to export your animation as a *.xsi file which we will then run through the animation compiler to create our game-ready-animation. Version Downloads: 2021 2020 2019 2018 2017 2015/2016 2013/2014 The JKA SDK Repack This file contains all of the required tools and source files we need to do this. Download A Texteditor Any Texteditor will do as long as it has a find & replace function. I would recommend Notepad++, but the regular Notepad or even the default Windows Texteditor will work just fine. Get Notepad++ Setup & Preparation After you have downloaded the required files from JKHub, follow these Steps: Install the dotXSI Export Plugin for your version of 3ds max following the provided readMe file Unzip the JKA SDKRepack to a Working directory of your choice, e.g. "E:/JKA-SDK-Repack/". To avoid Problems it's best to avoid having any spaces in the path. This will give you this directory structure: JKA-SDK-Repack assets codemp Tools Original SDK readme.txt Read Me !.txt Add the following branch to your Working directory: JKA-SDK-Repack assets base models players _humanoid source ... Start the Program called Assimilate.exe from the Tools folder, once it opened click Edit > Preferences... on the main-menubar. Here, we'll need to set up some paths. Replace .../JKA-SDK-Repack with the path to your working directory and follow from there. Enum file: .../JKA-SDK-Repack/codemp/game/anims.h Compiler: .../JKA-SDK-Repack/Tools/carcass.exe Quake Dir: .../JKA-SDK-Repack/base/ Make sure to keep the Trailing "/" on the Quake Dir path! Copy all files from "/assets/models/players/_humanoid/*" to "/base/models/players/_humanoid/source/*" Open the _humanoid.car file from ".../_humanoid/source/" in your Texteditor and run the following find & replace. Make sure that the file is not write protected when you try to do this Find: "/_humanoid/" => Replace: "/humanoid/source/" If done correctly, the last line of the _humanoid.car file should look like this: $aseanimconvertmdx_noask models/players/_humanoid/source/root -makeskel models/players/_humanoid/source/_humanoid -origin 0 0 24 Now we need to change the part that's highlighted green back to models/players/_humanoid/_humanoid and save the file. This file will function as our source and backup file from now on. Whenever we open this file in Assimilate.exe, it will read the source files and generate a fresh and completely vanilla _humanoid.gla for us. Exporting your animation Now that we are done with the setup part, it's time to export our animation. It's time to jump into 3ds max Animating a CAT Rig is outside the scope of this tutorial. If you want to learn how to do that, there will be a link to a fantastic Youtube channel at the end of this Tutorial. First, we have to configure our Timeline, if we haven't done so already. We only want to export the actual animation, so we want to set our timeline to range from Frame 1 to our last keyframe of our animation. Then, we use the Animation Export Selection Set to select everything we need to export. Clicking the set will most likely issue a Warning, that hidden/frozen objects are about to be selected. This warning can be safely ignored, so press NO to continue. The relevant Objects for Animation Export are sensitive to changes and as such are frozen, hidden and mostly secured by constraints by default to prevent any sort of accidental change to them. With our Jedi Knight Skeleton selected via the Animation Export Selection Set, we can Export our animation. To do this click File > Export > Export Selected... and export your Animation to your _humanoid folder as a Softimage dotXSI 3.0 (*.xsi) file. Name your file appropiately, for this Tutorial I saved my file as ".../JKA-SDK-Repack/base/models/players/_humanoid/both_tutorial.xsi". When exporting an animation, your main concern is for 3 Settings in the Export Dialog: Animation is checked File Type is set to ASCII Scene Root Name is set to model_root These should be the default settings, but it's better to be safe than sorry. If everything went correctly, we should now have succesfully exported our animation. Compiling the animation from .xsi to .gla We are almost done. The last step we need to do is setup our gla compile. Remember the .../source/_humanoid.car file we edited earlier? It is time to copy that file from /_humanoid/source/ to /_humanoid/ and open it in our Texteditor. I would also suggest renaming it to prevent any accidental overwriting of our source .car file. For this Tutorial I named my file Tutorial.car What we need to do now, is to add our new .xsi animation to this .car file, to do this we must insert a line with the following pattern into the .car file: $aseanimgrab [filename] -loop [loopframe] In my case, my Animation filename is models/players/_humanoid/both_tutorial.xsi and since my animation is not meant to loop, I am going to set the loopframe to -1. If your animation should loop, set the loopframe to the frame that the animation should return to after being completed. (usually frame 0). Our new line should now look something like this: $aseanimgrab models/players/_humanoid/both_tutorial.xsi -loop -1 Last thing left to do before we can compile, is to insert it into the right location in the .car file. The "right" location, is right above the line $aseanimgrab models/players/_humanoid/source/root.xsi -loop -1 Which should be the third to last line in our .car file Now all we need to do is to copy & paste our new line right above the root.xsi line, like so: ... $aseanimgrab models/players/_humanoid/both_tutorial.xsi -loop -1 $aseanimgrab models/players/_humanoid/source/root.xsi -loop -1 $aseanimgrabfinalize $aseanimconvertmdx_noask models/players/_humanoid/source/root -makeskel models/players/_humanoid/_humanoid -origin 0 0 24 ...and save our .car file. With our .car file being finished, it's time to open it in Assimilate.exe. Once open it will take a short while to load in all of the animation files. Once it has completed that, we can press the big B Button on the main Toolbar to build our gla. Shortly after you clicked it, a CMD/DOS Window will open and rush through a lot of lines detailing its work. If all goes well it will finish and you will be greated by an Info dialog telling you that "Everything seemed to go ok". Ideally, you will have a freshly compiled GLA File including your new Animation at Hand. If not there will be some troubleshooting required. A link to a list of common Assimilate/Carcass Errors and how to fix them will be at the End of this Tutorial. Testing your animation The moment we've been waiting for is finally here. Now would be a good time to unpack your favourite character model from its pk3 file to your JKA-SDK-Repack base folder and opening it in Modview. Somewhere at the bottom of the Sequence List you should find your new animation. Double click it to play and view it for the first time in Modview. Thank you Thank you for reading this, I hope you learned something new from my rambling. I would also like to thank Miloš Černý for his invaluable Tutorial videos on building CAT Rigs without which I would not have started this project, as well as WC3Tutorial for his rigorous Testing and Feedback on how this Rig and its earlier iterations performed. If you run into any problems, don't be shy to reach out to me on JKHub or the JK Community Discord. JKHub Profile JK Community Useful Links Carcass Error Guide. Miloš Černý Animation - A Youtube Channel dedicated to animating in 3ds Max with CAT. XSI Viewer, a program that can preview *.xsi files.
  8. Original source :https://io.meskinaw.net/vehicle_importing_tutorial_for_ja.html (Dead link) Vehicle Importing Tutorial for JA Part 1: non animated vehicles by Duncan_10158 A. Contents: A. Contents B. This tutorial is about C. What we need D. What could help E. Where we start F. The tutorial G. How to name H. Troubleshooting B. This tutorial is about how to bring a model as vehicle into Jedi Knight Jedi Academy. In this part, I will explain that only on non- animated vehicles. The tutorial starts with a finished mash of a vehicle and shows what is to do to bring it in game. It will not treat: modeling, UV-maping, skining, shaders, editting .veh/.npc files or editting weapons. Its only about geting the mesh in game. basicly its very similar to bringing player models in game, you can take a look in those tutorials too for getting a better overview. I am using 3ds Max for modeling, but the meshes can be done where ever, importent are the last steps and they can only be done in 3ds Max. And thats what's this tutorial about. C. What we need to bring a new vehicle model in game are following things: 3ds Max 4.x or 5, we need that program cause there is no other way to export a model in XSI format with all mashes weighted to bones. To say it right away, creating a model.glm using the MD3View tool, like for saber hilts, does not work. using this method the model has no bones nor is it attached to a .gla animation file. Then, to be able to export the model we need XSIImporter.dli plugin for 3ds Max from the first >JKEdittingToolsJKEdittingTools2JKEdittingTools Here is the list: 3ds Max 4.x or 5 XSIImporter.dli plugin for 3ds Max vmdexp.dle plugin for 3ds Max assimilate tool with carcass.exe Notepad WinZip or WinRAR or any other zipper D. What could help is the >jedi academy model and animationAnother great help is to use the models and files in the >assets1.pk3swoop model and its .veh and .npc files. E. Where we start, in this tutorial i will bring my STAP model in game, so every time I use the name >stap F. The Tutorial (or 20 steps to enlightenment) 1. Open or import the model into 3ds Max, give every element an appropriat unique name. Rotate the model so that it correspond to the 3ds Max views, place it in the middle of the z axis above the origin. how high on the z axis isnt that importent yet, you will probably need to change it at step 8 anyway. 2. Add to every element a modifier Unwrap UVW, with this you can later change the UVmaps without adding a modifier above the skin modifier. 3. Now we need to add all the tag for the vehicle. There are two ways to do that, you can either create them as triangles or import them from an existing model. a tag is basicly an element of three vertecs with a single sided face connecting it. every tag has the prefix >bolt_ bolt_driver ;tag for the placing the driver bolt_muzzleX ;tag for the weapon, you can place multibles, X is the number vor everyone bolt_exhaustX ;tag for the exhaust effect,you can place multibles, X is the number for eveyone If you create a vehicle without driver, weapons or exhaust effects, you can leave that out or do it and deatived it in the .veh file. I place them and decide later, the other way that doesnt work, you know. 4. For this non-animated model we basicly need one bone, cause of the creating in 3ds Max, we will end up with two, thats ok, later we can use the second bone very good anyway. Under create/systems use the bone buttom and place them in the right view on the z axis. the name of the bone can be whatever. I am using the same bone names as in JO player modeling, there is the main bone >pelvisend<. so i have these two bones: pelvis to which everything will be weighted>pelvisend ;the end chain bone 5. Last thing to add are the Dummys. These are small green cubes only importent for the correct hirarchy, we need four of them. Same as the tags you can import them or creat them on your own. Place them in the origin, they have the following names: XSISceeneRoot B:modelroot skeleton_root mesh_root 6. To create the hirarchy open the Schematic View. Use >Linkbodymesh_root<.>Skeleton_rootmesh_rootB:model_rootB:model_rootXSISceeneRoot<.> 7. To avoid an error when using assimilate to create a animation gla file without any animations in our file, we do now a small animation. assimilate dont accept a file without this the way we will use it, so we do one that has no affect, only to have more then one frame in our file. Move the time slider to 5 and actived >AnimatepelvisendAnimate 8. We have to bring every tag and bone in the correct place. The bolt_muzzle and bolt_exhaust are easy, place them where you want to see those effects. The Dummys in the origin, as already mentioned. Place the pelvis (moving pelvis will move pelvisend too) somewhere above the origin in the middle of the vehicle. to place the bolt_diver is the difficult part in this step. It may, or better it will happen that you have to do this a few times until you find the correct place. the problem is, we want to have the driver in the right place, but the bolt_driver, the pelvis and the Dummys in the origin must have an exact distance relation (A to B, in the pic). You will see in game, if you dont place it right, the vehicle will have another rolling center point then the driver. you can take a look at the swoop for reference. In game you will see that the driver is not in the right place and/or is rolling wrong, then you have to come back to this step, correct it and do the rest ot the tutorial steps again. if the driver is not correct, you have to move the bolt_driver relativly to the vehicle. if the driver is wrong turning, you have to select the hole vehicle and all tags and move them vertical relativly to the bone (pelvis), this to keep the driver in the right place. Importent, if moving a vehicle part or a tag, it must not be weighted, you always have to delete the weigting befor moving and weight it again, or you get horrible problems! 9. Add to one vehicle part the skin modifier, so we can weight it. click on >Add BoneSelectEdit EnvelopesEdit Envelopes Now we have done everything in 3ds Max, except to export it. Save your vehicle, so you can fix bugs from this point on. 10. To have the assimilate work properly, we need a correct folder structure and set it up right. the assimilate tool and carcass.exe have to be in a >basemodels/players/vehicle_youbasestap_dun<. that folder name is very importent its the same as in pk3 files and nearly more will be of animation file. to avoid compabilety problems give it a unique i use add suffix>_dun 11. Now the setup of assimilate.exe, start it. Open >Edit / Preferences.. Compilercarcass.exe<. everything else doesnt need to be changed.>OK 12. Back to 3ds Max, we have to export our model. >File / ExportSelect File to Exportrootbase/models/players/vehicle_you 13. We get to >XSI ExportOK 14. Back to assimilate again, we have to add the model file. Chose >File / Add Files...root.XSIvehicle_youOpen<. a message will pop up:> >You're trying to add "root.xsi", which is inherent, you should only do this if you're making a model that has no seperate anim files Proceed? Thats exactly what we want, so >Yes<. we get back to the main view there is now folder>vehicle_youvehicle_you This window you will see many times before you find the right seting for your vehicle. first check >Make it's own skeleton<. the scale sizes your vehicle in game centre is where root dummys are.>Origin - Adjust We also have to correct the >Pathd:/base/models/players/vehicle_you/vehicle_you<. this will be the animation file i suggest we dont change name.>OK 15. We come to the compile process, you can click >BEdit / Build Model>. Save the file as >model.car A msdos window will pop up. You will get an error message if something went wrong (see Toubleshooting). Hit a key to close the window and if all went right there will be a message that >Everything seemed to go okclose assimilate. 16. There are six new files, but we need only three of them: animation.cfg model.glm vehicle_you.gla (an empty animation file ) from now on everyone who modded vehicles shoud know how to finish it, so you can go on your own if you like. But read on the wise man would. 17. For editing files and packing it up i use an other folder structure. Copy the three files we created into the >models/players/vehicle_youmodel_default.skinshader 18. In the >ext_data/npcsvehicle_you.npcvehicle_you<. set>widthheight stap_dun { weapon WP_BLASTER playerTeam TEAM_NEUTRAL enemyTeam TEAM_NEUTRAL class CLASS_VEHICLE width 24 height 32 } 19. In the >ext_data/vehiclesvehicle_you.veh<. open it with notepad edit three thing: tile>namemodelvehicle_you stap_dun { name stap_dun .... model stap_dun .... } 20. We nearly done it, use WinZip to pack up >modelsext_datavehicle_you01.pk3Jedi Academy\GameData\Base When the game is loaded, start a map in cheat mode (devmap mp/ffa5). As soon the map is loaded bring down the console (§ + shift) and typ in: >/npc spawn vehicle vehicle_you or whatever you used when i wrote >vehicle_you<. your vehicle should be in front of you. its game> If the driver is in wrong place or rotating not correctly you have to go back to point 8 and try to correct it by moving the vehicle or the driver tag. On any problems, see Troubleshooting.  G. How to name the file is very importent, in the tutorial i use >vehicle_youstap_newskin>vehicle type<_>three to four letters of your name<_>type of skin<.> Keep an eye on the community about the names used. To have them unique is very importent or it will cause server crashes. H. Troubleshooting This is a beta version of the tutorial, troubleshooting will grow as you help me to find the "problems" of this tutorial, Thanks. All rights belong to their owner.
  9. A quick video tutorial on how to export models from 3ds max as .md3 with proper texture assignments. https://jkhub.org/files/file/2982-3ds-max-quake-iii-md3-exporter-multi-version-pack/ BACKUP VIDEO
  10. I thought I'd share some tricks I picked up over my modeling "career" that I use to reduce the vertex & triangle count of my models let's take a look at a model here and let's take a look at the wireframe there are quite a few vertices which dont contribute to the shape of the model at all or only minorly so let's see what we can get rid of... I've highlighted a few things there as you might notice, now let's see what we can do to save a couple of vertices on these areas. This loop is completely useless, it does not add to the shape of the model at all , it just exists so get rid of those edges and all connected vertices. We can collapse every other edge in this loop and still maintain a similiar silhouette, in this case it doesn't make much of a difference though. These boxes have been extruded out of each other and out of the model, we can remove the top yellow loop completely if we make these 2 boxes sepperate objects instead , and also save 3 quads/6 tris on the larger box. We can also get rid of most of the lower yellow loop but have to keep the top edge of the indented part , this edge will then be connected to the bottom edge of this model. After doing all I've mentioned above the models wireframe looks like this : and the actual model does not appear all that different The same principle I've demonstrated for the orange loop can be applied to spheres or any rounded object, just reduce the amount of sides depending on the diameter
  11. https://drive.google.com/file/d/13yBM74qAsU_o58YCRp-r9RUNjriw_doa/view?usp=sharing This is a zip archive containing the script and its current output files in json format. Currently this works by dropping it into your base folder and running it. The script will poop out three files: base_tree.json - A json file that lists all pk3 archives and their included files with all details relevant for this script like the pk3 they're in, the date they were last changed, filesize and md5sum duplicates_by_name.json - Files grouped by identical name/path. Lists all filenames that occur atleast twice alongside additional details duplicates_by_hash.json - Groups files by md5sum and lists all files that have the same content, regardless of name. There is no GUI, no automatic resolvation of duplicates or anything yet. But you could use this to find duplicate files and manually remove obsolete duplicates to reduce the overall number of files used.
  12. I have an unfinished project that was designed to identify duplicate files across pk3 archives and later down the road produce optimized packages. If you know anything about python I could share the half finished scripts
  13. This model, and likely the others too, are missing surfaces named r_hand and l_hand. For some reason this prevents sabers from spawning their blades in Singleplayer. To work correctly a player model should always have the following surfaces in this hierarchy: hips torso head l_arm l_hand r_arm r_leg l_leg r_leg This vegeta model is a complete mess - it has none of those This model is completely messed up and needs rebuilding. So open it in blender, split it into the appropiate parts with the exact names, fix the hierarchy and reexport to .glm any surfaces besides the listed ones should be named with suffixes to the parent surface. So if you have a belt that wraps around the characters hips as an additional surface, that should be named "hips_belt"
  14. We just had a bit of a spambot invasion - we have disabled the option to register a new account temporarily while we investigate how this could happen!

  15. Unfortunately we don't have that option. If you don't have access to a PC, you could upload the image to imgur.com from your phone (or use their app), then grab the link and share the image that way.
  16. Does the scripts folder exist? It may be missing permission to create the folder to save the file there. Edit: Have you tried clicking the button with the 3 dots in the metashader section?
  17. As far as I know the game loads all shader files from all pk3s, and then sorts them alphabetically. So the pk3 name should not matter at all, just the .shader filename.
  18. The effect works by taking a snapshot of whats rendered behind it and transforming those pixels by modifying scale and translation slightly. This can not be replicated with the tools we have in vanilla jka. A modded renderer could probably expose the effect to the materrial system but that seems like a lot of work. @SomaZ should be able to elaborate on that. Not without making a fork of OpenJK, adding in your changes and compiling a custom version of the game executable that way I'm afraid.
  19. The displacement you see is a hardcoded effect which you can not access through conventional material definitions in .shader files.
  20. I just checked back with the plugin dev and it seems that LODs can be exported hjust as well as imported, regardless of what the outdated guide says. You just need to make copies of your model and tags/bolts for every LOD you want to add and add a number suffix to the copied meshes and bolts. You can import a base jka model with LODs to see how they are set up. I would suggest working with scene layers for the individual LODs to easily switch between them while working in max. I usually also keep the bones on a seperate layer. About rigging with no gaps: Have you ever used a skinwrap modifier before? One of its functions is to copy skin data from one object to another. This means you can rig a merged copy of your model that has not been split and then transfer those weights over to the split copy of the mesh. This is how I rig my models to avoid splits between parts. I actually have a premade, perfectly weighted base mesh that I always transfer from to get a good base to work up from whenever I make a new model. Fell free to add me on discord if you want a more in depth explanation ashuradx#1192
  21. Unfortunately this plugin is only a glm importer/exporter. They neither im- or export animations. The Gla is only needed for the exact bone position and orientation as well as the bone indices I would guess.
  22. Hey, that's even better. I'm kinda the local 3ds max guy, responsible for the JKA Animation CAT Rig and developing a Mapping plugin. Do you use the glm import/export plugins or do you work with the xsi->Carcass->glm route? I would recommend the latter. Pro optimizer has a lot of settings, but unfortunately when you import models from other games you often get open edges on a mesh. These often relate the hard edges or uv seams and can fuck with prooptimizer. A good idea would be to apply a weld modifier to the whole mesh and then optimize. You could go even further and retopologize over top of the imported model, then use render to texture to transfer the textures to your new retopologized mesh. That way you can quickly build a smooth, low detail surface over many small geometry objects that cover a mesh and project all of the detail in a texture map to use for your new lowpoly model. This is the way to deal with zbrush models btw, as this gives you full control over the mesh topology, which also makes for a faster rigging process and better animateability. About LODs, Yes they are absolutely required to avoid crashing with high poly models as you encountered. They help to prevent the Transformspace error by feeding the game with a lower detail mesh to do the collision calculations with while still keeping your immaculate, high detail model on display.
  23. You seem to have glanced over the LODS I mentioned. LODS are lower detail Versions of a model, packaged into the model. If a model has LODs, you can view them in Modview by using the F1 to F4 keys on your keyboard. How can they help? The Transform Space error occurs on collision against a model. If the model it is performing the collision check against is very heavy in geometry, the available memory does not suffice for the required calculations, resulting in the aforementioned error message. Luckily for us, the devs where rather smart about it and made it so that the game tries to use a lower LOD mesh for collision detection if one is available. This means that if your additional LODs are low enough, the game will not crash and continue running just fine. LODS are only shown to the player if: Low graphics settings are used The model is so far away from the player that he generally wouldn't notice in normal gameplay You could import a vanilal jka model into blender to see how the LODs are set up. Usually it should jsut be copies of every mesh with a _<number> at the end of their names. Do you have any further questions?
  • Create New...