-
Notifications
You must be signed in to change notification settings - Fork 0
Binding a character to a posing skeleton
Our latest Character Assembler tools can automate the importing of skeletons ("armatures") and the binding of player characters and NPCs' parts to it, but it happens to be a VERY EASY thing to do manually (which we still need to know in order to rig, pose and animate Creature-type NPCs).
It's the simplest thing, a ten seconds or less-long operation! And it goes like this:
- Import the correct skeleton object.
- Select all the character's objects.
- Select the skeleton last so that it becomes the selection's "active object".
- Parent the objects to the skeleton with the Armature Deform option, and we are done!
One of the virtues of the .gr2 import/export add-on for Blender is that, when importing models, it preserves their rigging information (vertex groups and weights) so that, first of all, Blender can know which regions of the objects have to be influenced by which bones in the skeleton, and how to deform the objects to produce good-looking push and pull of limbs and gear (well, up to a point, because SWTOR can be a bit wonky at that at times 😅 , but it's a great start and we can further improve that with Blender's own features).
All the game's skeletons are stored in our SWTOR Slicers app's Output Folder
\resources\art\dynamic\spec
as .gr2
object files (the following screencapture is from a full assets extraction. Yours might lack some of those subfolders, which is perfectly OK):
There we can find skeletons for all the diverse types of characters in the game (humanoids, big arm-little legs bipeds, cuadrupeds, etc.), mechanical contraptions (doors, elevator platforms, ships' moving parts, etc.), and other types of objects.
Humanoid skeletons follow the game's body type naming conventions:
-
Female Body Type 1:
bfanew_skeleton.gr2
(bfa: base female adolescent, athletic…) -
Female Body Type 2:
bfnnew_skeleton.gr2
(bfn: base female normal) -
Female Body Type 3:
bfsnew_skeleton.gr2
(bfs: base female strong, super…) -
Female Body Type 4:
bfbnew_skeleton.gr2
(bfb: base female big) -
Male Body Type 1:
bmanew_skeleton.gr2
(bma: base male adolescent, athletic…) -
Male Body Type 2:
bmnnew_skeleton.gr2
(bmn: base male normal) -
Male Body Type 3:
bmsnew_skeleton.gr2
(bms: base male strong, super…) -
Male Body Type 4:
bmfnew_skeleton.gr2
(bmf: base male fat 😑. Remember: it's bmf vs. bfb)
Creature skeletons demand a bit of extra effort, as creatures of a same type reuse common skeletons and their names are a bit ambiguous ("cat_skeleton.gr2", "bull_skeleton.gr2", etc…).
If we rely on TORCommunity.com's tools (its player Character Designer or its database of NPCs), we won't need to divine the skeletons' name and location paths: those are annotated in a file named "skeleton.json".
DON'T IMPORT THAT FILE INTO BLENDER: that will result in an error message. Open it with a text editor such as Notepad, instead: you'll find inside it the path to the file you need to use, relative to the "resources" subfolder within your Slicers GUI output folder.
We can follow the path, which would be: our SWTOR Slicers app's Output Folder
\resources\art\dynamic\spec\bmnnew_skeleton.gr2
(yes, SWTOR is a little inconsistent in its use of pathname directory separators, Windows backslashes vs. Unix slashes. Always use or convert to backslashes while in Windows).
Or instead we can do a File Explorer search for bmnnew_skeleton.gr2
and spare us all the drilling through so many subfolders.
WARNING: when dealing with creature-type characters (non-humanoid NPCs), TORC's database produces at times a wrong skeleton name by including the word "new" in the filename. For example, Tuk'ata use dog_skeleton.gr2
, but TORC's exported reference says dognew_skeleton.gr2
. If you can't find a skeleton file that has the "new" bit in its name, try omitting it.
As SWTOR's rigging skeletons are stored as .gr2 files, we use the .gr2 import option to load it into the Blender project.
The bones will appear as a series of dots (instead of the traditional ball and stick style) in and around the character. Here we see them highlighted by selecting them as we would any other object).
Let's suppose we have Lord Scourge, a Body Type 3 NPC, so, the skeleton is "bmsnew_skeleton.gr2".
We have loaded the objects and the skeleton, which shows up as a series of dots around and inside the character's parts. You'll notice that there are bones floating way outside the character or in rather strange places: those are meant as hooks for things like stowed weapons, cinematic cameras, etc. Every bone is named according to the body part it relates to, so, everything is fairly self-explanatory in that regard while posing, as each bone will show its name in the 3D View's top-left corner when selected. We can even have their names previewed floating next to them, although that makes the display feel a little messy.
While we are at it: to make the bones that are hidden inside the body visible anyway, tick the "In Front" checkbox in the Properties Editor's Skeleton tab.
To bind the objects to the skeleton we need to select them all while making sure that the skeleton is the last selected item. That's because many operations in Blender depend on having a selection of items of which one is the "active item", usually the last selected one. To know that it is so, we can check in the Outliner that the skeleton has a more solid yellow text and blue selection colors than the rest.
Tip: in Blender, shift-clicking on an already selected object doesn't immediately deselect it: it turns it into the active object, (requiring a second shift-click to actually deselect it). So, it's easier to just marquee-select all the character's parts including the skeleton (or do a plain Select All) and, if the skeleton didn't end up as the active object, shift-click it to turn it into such.
And now we do the binding itself: press ctrl-p
(Parent
operation) and select the Armature Deform
option (select that option directly, without using any of its sub-options). Alternatively, do the same from the Object > Parent > Armature Deform
menu option.
That's it, we are done! We can see in the Outliner that the skeleton is now the "parent" of all the involved objects. We could select the skeleton, switch to Pose Mode and start posing our character away.
And if we want to unbind any item, we just follow Blender's convention of using alt as the opposite of ctrl: select the objects to separate from the skeleton, and alt-p
will bring up the Clear Parent
operation (alternatively, use the Object > Parent > Clear Parent
menu option)
The beauty of this method's simplicity is that we aren't forced to have just everything (say, all the armor parts we think we'll ever need for this character) ready for the binding at once: we can always parent more objects later on, or unparent already bound ones, at any moment.
The only requisite to bind an object is to have the skeleton in its neutral position and pose. Luckily, Blender can temporarily set it to neutral at the push of the Properties's Armature tab's Rest Position
button: it TEMPORARILY sets the bones' rotations and translations to neutral. To go back to the pose we were working on we simply press the contiguous Pose Position
button.
(As it's important that the position of the skeleton as a whole is back to neutral in those circumstances, it's recommended that, when moving our characters around in the scene, we try to displace them by translating its skeleton while in Pose Mode instead of the whole character plus skeleton while in Object Mode (that, or have some easy way to get them back to their original position without it being a bother).
There are a few lackings, although they aren't showstoppers at all:
-
The game's skeletons don't contain the bones needed for physics-driven parts such as capes, flaps, lekku, some bits of hair and the like: those are defined through physics-related files data we haven't covered with our tools yet. That said, it's not that difficult to add our own bones to the game's skeletons to solve those without breaking anything (in the sense of still being able to apply game animations to the results), and they can be transplanted to other characters to save work. We also have a provisional guide on how to apply physics to those objects without the need for bones: Making capes and hair work, manually and through Cloth Simulation.
-
These are forward kinematics ("FK") skeletons. One can use Blender's Auto IK tool to simulate inverse kinematics ("IK") characteristics or modify the skeleton to have proper ones by following any Blender tutorials on the matter. We have a few pre-made IK skeletons here for you to try.
We do not condone the usage of our tools for malicious intent, including: exploits, harassment of others, or anything else that may violate EA/Bioware's EULA, TOS, DSA, Privacy Policy Copyrights, Trademarks, or anything else illegal. We will not be held accountable for your actions, and will act against you if nessesary.
- Home.
- State of Play September 2024
- Getting Help:
IMPORTING SWTOR MODELS INTO BLENDER: A BRIEF OVERVIEW.
Check this intro first. Afterwards, you can jump directly to the guides on extracting PCs, NPCs and others.
No need to read this section right now: each extracting/assembling guide explains its required tools anyway.
- Slicers GUI (Windows app).
-
Blender 3D (multiplatform app):
Which version. How to learn. Installing our Add-ons. -
SWTOR .gr2 Objects Importer Add-on.
Required by all the other add-ons. - SWTOR Character Assembler Add-on.
- SWTOR Area Assembler Add-on.
-
ZeroGravitas SWTOR Tools Add-on.
Includes the Character and Area Assemblers plus other diverse tools.
-
Jedipedia.net:
- SWTOR Database.
- File Reader.
- World Viewer.
-
TORCommunity.com:
- SWTOR Database.
- Character Designer.
- NPC viewer's Exporter.
- EasyMYP (Windows app).
- Noesis (Windows app).
READ THE BROAD STROKES FIRST: YOU'LL SEE IT'S EASIER THAN YOU THINK!
-
The steps:
- Installing Slicers GUI and extracting SWTOR's game assets.
-
Using TORCommunity's Character Designer to export Player Characters.
- IF ARMOR SELECTION SEARCH IS DOWN: workaround to manually specify Armor Sets.
- Using TORCommunity's NPCs Database to export Non Playable Characters.
- Using our Blender add-ons to auto-assemble the model.
- Rigging the character for posing and animation
- Applying SWTOR animations to the character.
-
Extra steps that require manual work and some knowledge of SWTOR's assets:
-
Making capes and hair work, manually and through Cloth Simulation.
-
Attaching weapons and other objects to a character with a SWTOR rig.
-
Attaching weapons and other objects to a character with a custom rig.
-
Baking the models' textures and exporting to other apps:
- Baking with Legacy SWTOR materials and modern ones.
- Baking the multiple materials of an object into a single one.
- Exporting to VRChat.
- Exporting to Star Wars Battlefront II.
- Exporting to Unreal Engine.
- Exporting to Garry's Mod.
- Exporting to Tabletop Simulator.
-
3D Printing:
-
- Locating armor parts' assets
- Locating weapons' assets.
- Assigning materials and textures to environmental and architectural elements, furniture, props, ships, vehicles and weapons.
- Assembling multi-part assets (Decorations, Rooms, etc).
- Generic guide to importing objects and assigning materials (Legacy Add-on-based. Needs updating).
- Snippets.
- Improving and customizing our SWTOR models and materials.
- Other Extracting Strategies (needs updating).
- SWTOR Materials recipes:
Modding isn't working at the moment due to SWTOR's change to a 64bit codebase. It's going to take a while 🙁.
- Overview.
- Tools.
- Other techniques:
- Modding SWTOR textures with Special K (CAUTION).
- Overview.
- Tools.
- File Formats
- A look at SWTOR's Materials and Texture Files.