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. I just don't want people to post it freely online for people to download or anything.


PaperSkeleton is a Godot 4.5 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/Sprite2D nodes that are bound to its Skeleton2D, automatically converting each Polygon2D into PaperPolygon2Ds, and Sprite2Ds into PaperSprite2Ds, and reconstructing them into identical skinned 3D meshes that are bound to the PaperSkeleton. The bones of the Skeleton3D will mimic all the movements of the Skeleton2D, and adjustments to the PaperPolygon2D's/PaperSprite2D's visual properties, are also reflected in the 3D mesh. This creates a workflow that allows you to adjust the asset's animations within the 2D viewport.

Additional Features:

  • PaperMaterial resources closely mimic ShaderMaterials in terms of inspector accessibility. The PaperSkeleton rig responds to PaperMaterials and adjusts each 3D mesh instance's generated ShaderMaterial to match.
    • Individual overrides for 3D mesh instances can be set in their associated PaperPolygon2D/PaperSprite2D.
    • ShaderMaterials can also optionally be set as individual overrides for advanced usage.
  • Material Parameter Overrides allow you to modify any shader uniform without assigning a new material override, providing flexible customization for each mesh.
  • Display Entries can be instantiated to swap between visual properties alongside Material Parameter Overrides, streamlining texture-swapping animations by requiring only the display entry name to be keyframed.
  • Border & Group Material Slots instantiate auxiliary 3D mesh instances when set. This addon includes two built-in examples:
    • When applied to the Border Material slot, the "border" shader generates a border based off the silhouette of the texture applied to the PaperPolygon2D/PaperSprite2D 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/PaperSprite2D to function.
    • When applied to the Group Material slot, the "pseudo depth" shader creates a slight rim, helping the asset appear as if it were made from cut paper. You will need to use the "Group Index Target" property on the PaperPolygon2Ds/PaperSprite2Ds to properly utilize it.
  • PaperSkeletonModifier3D nodes provide isolated bone modification logic, with SimplePaperBoneModifier3D offering an interface for simple bone adjustments, including optional 3D extrusion. These modifiers are useful for special animations that are partially 3D.
  • Cylindrical Billboarding lets the PaperSkeleton setup automatically rotate towards the camera with reduced frame-delay.
    • The Camera3D/Node3D it rotates towards can be overwritten with the "Camera Override" property.
    • Includes axis selection to determine rotation axis.
    • Optional toggle to poll changes to a Camera3D's horizontal and vertical offsets.
    • Viewport camera polling automatically updates billboarding orientation when Camera3Ds are switched.
    • Two modes available: "Position" (faces the camera's position) and "Rotation" (mimics the camera's general rotation).
  • Flip Rotate property gradually rotates the PaperSkeleton setup while paying respect to billboarding. When past the 90° angle, the rig's meshes are arranged to match how it would look like when flipped, being fully flipped at the 180° angle. This feature was made with billboarding in mind, as there's some Z-fighting when the sides are viewed exactly at 90°.
    • If you'd prefer a more straightforward approach, simply checking the Flip property will more instantaneously flip the model in the same manner.
  • Flip Texture property for PaperPolygon2Ds/PaperSprite2Ds, which the equivalent mesh instance uses on its opposite face. Helps for asymmetrical setups without needing to manually swap textures.
  • Linear Subdivision, determined by the "Subdivision Level" property on PaperPolygon2Ds/PaperSprite2Ds. The property linearly subdivides the equivalent mesh instance. This primarily exists to allow special vertex shader implementations without requiring manual consideration during rigging.
  • PaperBoneAttachment3D nodes copy the position of bones, depending on the name or index of the bone. Properly changes orientation in response to the PaperSkeleton's built-in flipping.
  • Scene Cache Configurability with toggleable mesh caches (default is on), alongside Z index and NodePath caching for faster instantiation.

Limitations:

Skew transformations applied to Bone2Ds are not reflected in the actual animations, due to limitations in how the Skeleton3D node 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.

Due to engine limitations, there is no optimized way to get and update Modulate values from a CanvasItem's parents. For this reason, it's better practice to use "Self Modulate" (or "Color" if using a PaperPolygon2D).

While technically supported in some aspects, attempting major structural edits to the original 2D rig might result in certain errors if it's currently already being projected by PaperSkeleton. If you need to make some minor adjustments after PaperSkeleton has been applied to the 2D rig, it's recommended to either unassign the Skeleton2D and "Polygon Group", or to press the refresh button in the PaperSkeleton's inspector once errors start popping up.

This addon unfortunately does not work when exporting to the web, due to a bug involving instance uniforms not being able to update properly.

(If you're wondering how there could be a web demo on this page if web export is not supported, that's due to said demo being made with an older version of the addon without instance uniform implementation.)


While I've tested as many features that I could within reason, please feel free to inform me in the discussion below if you come across any bugs. If you have any other kind of feedback, I'm open to implementing more features if needed.

Demonstration character drawn & designed by @NightFawnArt.

Updated 9 days ago
StatusReleased
CategoryTool
PlatformsHTML5
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorBunkWire2X8
Made withGodot
Tags2D, 3D, addon, Animation, Godot, godot-addon, godot-addons, Modeling

Purchase

Buy Now$10.00 USD or more

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:

PaperSkeleton 2.0 (Download this one) 820 kB
PaperSkeleton 1.5a 5.3 MB
PaperSkeleton 1.5 5.3 MB
PaperSkeleton 1.4a 5.3 MB
PaperSkeleton 1.4 5.3 MB
PaperSkeleton 1.3b 5.3 MB
PaperSkeleton 1.3a 5.3 MB
PaperSkeleton 1.3 5.3 MB
PaperSkeleton 1.2 5.3 MB
PaperSkeleton 1.1b 4.8 MB
PaperSkeleton 1.1a 4.8 MB
PaperSkeleton 1.1 4.8 MB
PaperSkeleton 1.0 4.1 MB

Development log

View all posts