PaperSkeleton
NOTICE: Upon purchasing, you agree to the PAPERSKELETON - COMMERCIAL LICENSE.
I'd advise that you read it, but, in layman's terms, it basically just states that you can't just freely give the addon away to random people.
---
PaperSkeleton is a Godot 4.4 addon that enables you to render Skeleton2D setups into a 3D environment with relative ease. Has plenty of potential applications in 2.5D games.
The PaperSkeleton node works by selecting the node that contains the Polygon2D nodes that are bound to its Skeleton2D, reconstructing it into identical skinned 3D meshes that are bound to a Skeleton3D. Doing so also converts each Polygon2D into PaperPolygon2Ds, and Bone2Ds into PaperBone2Ds. The bones of the Skeleton3D will mimic all the movements of the Skeleton2D's PaperBone2D nodes, creating a workflow that allows you to adjust the asset's animations within the 2D viewport. Furthermore, adjustments to the PaperPolygon2D's color, texture, UV offset, UV scale, and UV rotation, are also reflected in the 3D mesh. This is accomplished via specialized shaders with "auto" uniforms that are automatically applied and updated into each mesh instance's created shader material.
Additional Features:
- Shaders can be easily applied to the PaperSkeleton setup, whether it be applied to each mesh instance or tweaked individually.
- Individual mesh instance tweaks can either be done in the PaperSkeleton inspector or by selecting the relevant PaperPolygon2D node.
- Different shaders and shader includes are bundled in to help streamline the process of creating your own custom shaders that are compatible with the PaperSkeleton node.
- Next pass shader support.
- Paper Rotate Flip property that rotates the PaperSkeleton setup while reversing the order of the layers simultaneously, which results in a smoothly executed 3D flip animation. This is incredibly helpful if you want to emphasize the setup's 2.5D nature by having the model flip as if it was a piece of paper.
- Bone Modifiers that allows bones to optionally extrude into 3D if needed. Helps for special animations that are partially 3D. Can be found either on the main PaperSkeleton node or the relevant PaperBone2D.
- Cylindrical Billboarding which lets the PaperSkeleton setup automatically rotate towards the camera.
- The node it rotates towards can be overwritten with the "Camera Override" property.
- There are two modes. The default one is "Position", which has the setup face the camera's position. The other is "Rotation", which instead has the setup mimic the camera's general rotation.
- Polygon to Copy Index Of property on PaperPolygon2Ds which allows the mesh instance to copy a spacing index of another. It's best for things that would pretty much never overlap, unless if you want to deal with a lot of Z-fighting.
- Polygon to Copy Group Index Of property also on PaperPolygon2Ds is a utility that allows a "group index" to be assigned to the `auto_mesh_z_group` uniform. It's useful for next pass shader implementation, where if you'd want a border to be applied to a group of mesh instances without needing to manually tweak shader uniforms.
- Flip Texture property again on PaperPolygon2Ds, which the mesh instance automatically swaps to when the PaperSkeleton setup is flipped. Helps for asymmetrical setups without needing to manually swap textures.
- Linear Subdivision, determined by the "Subdivision Level" property on PaperPolygon2Ds. The property linearly subdivides the equivalent mesh instance up to 5 levels (for the sake of not accidentally stalling or crashing the editor). This bears little effect on appearance, and primarily exists to allow people to code special vertex shader implementations without needing to keep that in mind too much when rigging it.
- PaperBoneAttachment3D nodes that copy the position of the bones depending on the name or index of the bone. It can also copy a PaperPolygon2D's spacing index, or have your own manually typed in.
Including the base example shaders, the addon also includes two next pass shaders:
- Basic Border generates a border based off the silhouette of the texture applied to the PaperPolygon2D nodes, and places it behind the 3D rig. Because this expands from the original textures, this will require sufficient empty space around the texture in each PaperPolygon2D.
- Pseudo Depth creates a slight rim, helping the asset appear as if it were made from cut paper. You will need to use the Polygon to Copy Group Index Of property to properly utilize it.
Limitations:
Skew transformations applied to Bone2Ds are not reflected in the actual animations, due to limitation in how Skeleton3D works. Skeleton3D doesn't allow for shearing to be applied to its 3D bones, so this will likely just be a permanent limitation of the addon's capabilities.
It is also very recommended to fully create your 2D rig before assigning the Polygon Group to PaperSkeleton, due to some live-editing complications. If you need to make some minor adjustments after PaperSkeleton has been applied to the 2D rig, it's recommended to either unassign the polygon group, or to press the refresh button in the PaperSkeleton's inspector once the changes are finished.
Instructions:
When selecting the Polygon2D group node, make sure that all of these qualifications are met:
- A proper Skeleton2D is assigned to each Polygon2D/PaperPolygon2D.
- Each Polygon2D/PaperPolygon2D shares the same single Skeleton2D (setups with multiple Skeleton2Ds aren't supported, and aren't really necessary).
- Each Polygon2D/PaperPolygon2D and Bone2D/PaperBone2D node have their own unique names.
- The Skeleton2D's global transform needs to be equal to identity. (meaning that it should be at default position, scale, and rotation, and shouldn't be the child of anything that adjusts these values).
- While not a qualification, please note that it's not necessary for the Skeleton2D to be in the Polygon2D group node. Its path is already retrieved from one of the Polygon2Ds/PaperPolygon2Ds.
While I squashed every single bug that I've come across and made sure to reasonably test as many features that I could remember, please feel free to inform me in the discussion below if you come across any, or if you have any other kind of feedback. I'm open to implementing more features if needed.
Demonstration character designed by @NightFawnArt.
Updated | 13 hours ago |
Status | Released |
Category | Tool |
Platforms | HTML5 |
Rating | Rated 5.0 out of 5 stars (1 total ratings) |
Author | BunkWire2X8 |
Made with | Godot |
Tags | 2D, 3D, addon, Animation, Godot, godot-addon, godot-addons, Modeling |
Purchase
In order to download this Godot addon you must purchase it at or above the minimum price of $10 USD. You will get access to the following files:
Development log
- 1.3a Update - Important Hotfix13 hours ago
- 1.3 Update - PaperPolygon2D Property Update Overhaul + Misc. Tweaks2 days ago
- 1.2 Update - Linear Subdivision, Bone Attachments, Flip Textures, and More...14 days ago
- 1.1b Update - Shader and Bone Fixes41 days ago
- 1.1a Update - Quick Patch45 days ago
- 1.1 Update - Slight Restructuring + Quality of Life Changes47 days ago