Tower Unite

Tower Unite

Not enough ratings
2D/Static Playermodel Tutorial (Possibly Outdated)
By CarbonCopyCat
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.
2
   
Award
Favorite
Favorited
Unfavorite
Corrections and Amendments
Edit 9/19/24: A new version of the armature has been released, making this guide potentially outdated. As I'm no longer interested in this game, I won't be checking to see if this method still works, but if the root bone exists in the new armature, things should probably work fine, though.

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.

6/26/22: Added screenshots from Blender 2.8+ (even though the two interfaces are extremely similar)
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's .blend file 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)
Requirements:
  • A model you want to use
  • If using Blender 2.79 or lower: The Tower Unite workshop rig .blend (found in steamapps\common\Tower Unite\Tower\Workshop\SDK)
  • If using Blender 2.8 or higher: Either the Tower Unite Blender Tools addon[forums.pixeltailgames.com] (recommended), or the Tower Unite workshop rig .blend. Due to changes in .dae export in newer versions of blender, the addon is required if your model uses normal maps.
  • Some basic knowledge of Blender (how to navigate and use the interface, select objects, apply materials, etc.)

Importing your model
If using the .blend file: To ensure no scaling issues occur, import your model into the Workshop Rig .blend file, not the other way around. This is necessary to avoid deformations due to unit scale discrepancies.

If using the addon: Add the "Tower Unite Armature" to the .blend file containing your model. The armature's scale should match your model automatically.


In either case, make sure you only scale/transform/rotate the model, not the armature, or else you may run into errors during the import process.

If your model has multiple parts, make sure their UV map names are all the same (rename if needed), select them all, and join them all into one object before continuing (via menu or Ctrl+J).


2.79:


2.8+:


Adjusting your model
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.

2.79:


2.8+:


Adding the plane

Next, add in a plane from the "Create" (2.79)/"Add" (2.8+) tab. Either add it while in Edit mode (with the model selected), or add it in Object mode and join it to the model. If doing the latter, make sure to Apply Location again if the origin changes.

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 part of your model is already fully transparent, you can simply duplicate one of the faces with transparency (and cut out the transparent area with the knife tool if needed) instead of adding a new plane via the menu.

If using a transparent texture, create a new material and assign a fully transparent .png to the new material (in 2.8+, set Base Color to Image Texture, then open the .png). Then, while in edit mode with the model selected, select the plane and assign the new material to it.

2.8+:




Preparing your model
In Object Mode, take your model and rotate it forward 90 degrees on the X axis, then Apply Location + Rotation and Scale (2.79) or Apply All Transforms (2.8+):



2.79:



2.8+:


At this point, you should only have two objects in your scene. One is the model + plane, and the other is the armature (skeleton).

Rigging the model
First, ensure the armature is in Object mode. To do this, select the armature, then click Object mode in the dropdown.

2.79:


2.8+:


Next, select the model first, then select the armature second (via shift+click), so both objects are selected (order is important!).

Then, parent the armature to the model with Empty Groups (not Automatic Weights) via menu or Ctrl+P:

2.79:


2.8+:


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:

2.79:


2.8+:


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.

If using a non-transparent plane, using a bone with minimal movement (like the pelvis or lower spine) is recommended.

2.79:


2.8+:


Once the plane is weighted, invert the selection to select the rest of the model (via menu or Ctrl+I):

2.79:


2.8+:


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).

Exporting the model
Now that the model is complete, you can export it. Before exporting, you may want to Apply Location + Rotation and Scale/Apply All Transforms again just in case.

2.79: Export as .dae using the standard .dae exporter. If you run into issues with materials not exporting properly, enable/disable "Copy" under the material export options.


2.8+: If you're using the addon, export as .dae using the Tower Unite .dae exporter. Using the standard .dae exporter will work as well, but it will not properly export any normal maps, if used. If you run into issues with materials not exporting properly, enable/disable "Copy textures" under the material export options.
2D Playermodel (I want to use an image)
Important Notes
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.

2.79:


2.8+:

Preparing your image
Import in your image, and align it as desired with your model. Once finished, apply Location + Rotation and Scale/All Transforms.

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 (Ctrl+D or via menu), then right-click to cancel out of the movement.

2.79:


2.8+:


While still having the duplicated face (and only the duplicated face) selected, flip its normals. This will make the image visible from both sides.

2.79:


2.8+:


Adding the plane
With 2D playermodels like this, added plane has to be transparent.

Add a Plane via the "Create" (2.79) or "Add" (2.8+) menu while in Edit Mode with the image plane selected, or add it in Object mode and join the new plane to the image plane. Then, assign the plane a transparent texture.

If your selected image is fully transparent in one part, instead of creating a new plane, you can duplicate the plane again, cut out the transparent area with the knife tool, and delete the non-transparent area.

Then, in object mode, rotate your model 90 degrees forward on the X-axis and apply Rotation and Scale.



You should have two objects in your scene at this point (your image + plane, armature).

Rigging the model, exporting
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:
https://forums.pixeltailgames.com/t/chat-with-us-on-discord/2522
5 Comments
Ghost Kat 3 May, 2023 @ 9:33pm 
*golf clap* ty vm
klementine 24 Apr, 2023 @ 4:05pm 
number 1 tutorial
ccraftyguy 9 Jul, 2020 @ 2:10pm 
can you give us a blender download link
Thlormby 20 Jun, 2020 @ 5:28am 
Is there a video form of this
merkerel🐟 11 May, 2020 @ 3:44am 
oh god, just wait until someone makes a sunkist playermodel