| Home Page | Recent Changes

Linking Karma Ragdolls

Update October 23rd - by SkullboX (Email addresses: SkullboX@planetquake.com)

This info will apply when the first UT2003 patch has been released. For mod developers the info below is still relevant. However, for those making custom UT2003 player models that require custom ragdoll skeletons, it will be easier when the new patch is released. The info has been posted on the [this Unreal Developer Network page].

In the release version of UT2003 (version 2107) you had to create your own species in a new .u file to use a custom ragdoll. This was a little fiddly, but more importantly was caught by the cheat protection code. This approach is still suitable for mod development though, where you are creating a new species anyway to add new animations etc.

In the forthcoming patch there is an alternative way to use your own ragdoll. Remember that a ragdoll asset is identified by its asset name not the name of the .ka file, so make sure the asset name is unique.

1) Place the new .ka file in the /KarmaData directory.

2) Create a new .upl file in the /System directory for your new character.

3) At the end of the Player=(... line, inside the brackets, add:

Ragdoll=AssetName

Obviously replacing 'AssetName' with the name of the ragdoll asset to use for that character.

Thats it! If no Ragdoll is supplied, it will simply use the one specified by the character's species.

October 15th

This tutorial briefly explains how to get a custom ragdoll linked to a custom model. The tutorial isn't very detailed and written rather fast, so if you come across any problems or if it still doesn't work after having done all this, please leave me a note.

If you've got a model set up using one of the existing UT2003 skeletons, it *should* work when using one of the existing karma collision models. Make sure the Skeleton setup you chose for your model (for example, Jugg) matches the Species (Species=xGame.SPECIES_Jugg). If you've got one of the human skeletons, you should probably use SPECIES_Egypt, _Merc or _Night.

The subject model in this case is named MoP, and MoP's been imported into UnrealEd and has all the sockets set up as they should. If you need info on getting the model working in UT, go to [this post] by Praetorius.

It also has a custom ragdoll created for it, if you don't know how to make one take [this tutorial].

Start by putting the MoP.ka file in the UT2003\KarmaData folder.

Start UnrealEd, and go to the Actor Classes tab (if you do not have that window, go to View → Show Actor Class Browser. This should bring up a list of Unreal scripts.

Start by unchecking the two options on top of that list, 'Use 'Actor' as Parent?' and 'Placeable classes Only?'.

Once you've done that, the list of scripts should be noticeably longer. Scroll down and look for a subtree called SpeciesType, expand it. Four scripts should be there; SPECIES_Alien, SPECIES_Bot, SPECIES_Human and SPECIES_Jugg.

Now select the SpeciesType subtree, and click the new script icon on top of the browser. Behind Package, fill in something related to you model, in this case I would name it MoPScripts (Calling it just MoP will cause confusion and effors when making the .UPL file.) For name fill in SPECIES_MoP. (see Create a subclass)

Now the new script will come up, and you should see something like:

//=============================================================================
// SPECIES_MoP.
//=============================================================================
class SPECIES_MoP extends SpeciesType
placeable;

Now Open one of the other Species scripts, SPECIES_Alien for example, and copy the info from 'abstract;' to the bottom. Then go back to your own script and paste it over 'placeable'. Finally, rename "Alien2" to "MoP". Your script should look liek this by now:

//=============================================================================
// SPECIES_MoP.
//=============================================================================
class SPECIES_MoP extends SpeciesType
abstract;
static function string GetRagSkelName(String MeshName)
{
return "MoP";
}

To finish the scripting part, chose from the class window, Tools → Compile Changed. Then finally press View in the Actor Class Browser and check Show Packages. Select your newly created script and choose to Save Selected Packages. The created file, MoPScripts.u, shouldn't be bigger than 1 kb, if it's larger you've probably saved all the scripts together.

You're now done with the Unreal Scripting, the last step in Linking the Ragdoll to the model is to alter the UPL file of your model. Look for the part with 'species=' and change the stuff behind it to match the location of your newly created script. In my case it would look like this:

Species=MoPScripts.SPECIES_MoP

Save the UPL file, and it should work.


Category Tutorial

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

FAQs

Help Desk

Mapping Topics

Mapping Lessons

UnrealEd Interface

UnrealScript Topics

UnrealScript Lessons

Making Mods

Class Tree

Modeling Topics

Chongqing Page

Log In