Overview
A guide for making really basic static/2D playermodels (e.g. the Initial D car, those models that are just a floating image, etc.). Requires really basic Blender knowledge. Guide uses Blender 2.79, use that if you have absolutely no clue what you’re doing.
Corrections and Amendments
12/7/20: The previous method of weighting the model to two different bones has been confirmed to no longer function (likely due to compiler changes in a recent update). Models are now required to be weighted to at least three bones, and the guide text has been changed to reflect this. If you’re getting a compiler error on importing without any error text in the compile output, this is likely why.
The Basic Rundown
For a playermodel to function properly in Tower Unite, the model must have at least one face (per bone) weighted to at least three bones. In addition, vertexes weighted to the root bone are rotated -90 degrees back on the X-axis, so they must be rotated 90 degrees forward on the X-axis in Blender to be displayed properly, like so:
Basically, we will be weighting the model used to the root bone (not visible by default, use the Vertex Groups menu), and will also be creating a small plane that will weighted to two other bones (for proper compiling).
If you want a 2D playermodel with multiple components (e.g. a sprite for the main body, but a gun in the hand) rigged to three or more bones, you can ignore the parts stating to add the extra plane, and just rig the model normally. An extra plane may be required if your model is only rigged to two bones.
Notes:
- By default, the Tower Unite rig does not have its 3D Cursor location set to 0,0,0 (x,y,z). Ensure it is set to that before continuing, or make sure your object’s origin is set to 0,0,0.
Static Playermodels (I already have a model to use)
- A model you want to use
- The Tower Unite workshop rig .blend (found in steamappscommonTower UniteTowerWorkshopSDK)
- Some basic knowledge of Blender (how to navigate and use the interface, select objects, apply materials, etc.)
To ensure no scaling issues occur, import your model into the Workshop Rig .blend file. Otherwise, the scale for the skeleton’s going to be off, and everything’s going to look weird and deformed.
If your model has multiple parts, join them all into one object before continuing.
After importing, move and scale your model around so it’s in the position you want it to be relative to your player’s location.
Once that’s finished, set the object’s origin to 0/0/0, which is most easily done by applying the object’s location.
Next, add in a plane from the “Create” tab.
Here, you have two options:
1. Hide it somewhere in the model so it isn’t visible. Note: even if it isn’t visible, it may become visible while crouching, depending on the bone it’s weighted to.
2. Give the plane a transparent texture. This makes it completely invisible, but will generally add one more material to your model.
If you move or scale the plane at all (outside of edit mode), make sure to apply its Location, Rotation, and Scale.
If using a transparent texture, ensure the UV names of the plane and the original model are the same, or else the UVs will break.
Take your model and rotate it forward 90 degrees on the X axis, then apply Rotation and Scale.
Next, select both your model and the plane, and join them together.
If you are opting to make your plane transparent, create a new material with the transparent texture and assign it to the plane at this stage.
At this point, you should only have two objects in your scene. One is the model + plane, and the other is the armature (skeleton).
First, ensure the armature is in Object mode. To do this, select the armature, then click Object mode in the dropdown.
Next, select the model first, then select the armature second, so both objects are selected (order is important!).
Then, parent the armature to the model with Empty Groups (not Automatic Weights)
Once the parenting is complete, moving the armature in Object mode should move the model as well. (Just make sure you undo any movements.)
Now, for the final steps, we will be rigging/weighting the model (which, for a simple playermodel like this, only takes a few clicks).
Select your model and enter Edit mode.
Navigate to the Vertex Groups menu:
First, select only the plane. Under the Vertex Group menu, select a bone other than root, and Assign the weights. Make sure the weight is set to 1.
It is recommended to weight bones to the Pelvis (although I weighted to Spine_03 in this example).
Once the plane is weighted, invert the selection to select the rest of the model:
Then, follow the same directions, but weight to the Root instead.
Lastly, select one vertex of the plane, remove the weighting for the original bone (e.g. for Pelvis, click the vertex, click the Pelvis vertex group, and click “Remove”), and assign the weighting to a bone that has not yet been used (for example, spine_01).
Now that the model is complete, you can export it. Export as .dae, and to ensure materials export properly, make sure “Copy” is not checked under the material export options.
For safety, it’s also a good idea to Apply Rotation, Location, and Scale before exporting.
2D Playermodel (I want to use an image)
Before continuing, make sure to read the previous section, as this section won’t explain them.
It’s a good idea to enable the Import Images as Planes addon when doing this, as it automatically generates a properly-scaled plane from an image, with the material already assigned.
Also, if you want to have multiple transparent images in your model, you may notice some issues with the images “overlapping”. This is a general issue with transparent materials in games in general, and can only be fixed once a “Masked[docs.unrealengine.com]” material mode is implemented into Tower Unite’s workshop.
To bypass this, for less complex models, you can cut out and delete the transparent areas with the Knife tool (Left click to add a vertex, enter to complete). Usage of this will not be covered in this guide.
Edit (01-13-21): A masked material mode has been added to the workshop features.
Import in your image, and align it as desired with your model. Once finished, apply Location, Rotation, and Scale.
Note: depending on the resolution of the image you use, it may load in at an extremely small size. Scaling the image up will fix the issue.
Select your image plane in Edit mode. Duplicate the face, then right-click to cancel out of the movement.
While still having the duplicated face (and only the duplicated face) selected, flip its normals. This will make the image visible from both sides.
With 2D playermodels like this, added plane has to be transparent.
Rotate your model 90 degrees forward on the X-axis and apply Rotation and Scale.
Then, add in a Plane via the “Create” Menu and join it to your model. After joining, assign the plane a transparent texture.
You should have two objects in your scene at this point (your image + plane, armature).
As stated in the previous section, parent the armature to the model with Empty Weights, making sure to select the model first and the armature second.
Weight the plane to two bones other than root, and weight the image plane to root.
Once this is done, you can export the model as .dae.
Conclusion/Troubleshooting
All in all, this isn’t a hard process to do with some knowledge of Blender, and I hope you use your experience with this to make some more complex items for the Tower Unite workshop as well.
If you’re having issues, make sure these points are being followed:
- Have you applied Rotation and Scale?
- Is your model and armature’s origins set to 0,0,0?
- Have you imported your model into the workshop rig .blend, and not the other way around?
If you’re still having issues, feel free to hit up the #workshop channel of the Tower Unite Discord:
[link]