1.1b Update - Shader and Bone Fixes
PaperSkeleton » Devlog
The first two main changes were issues pointed out to me by Gokigenyou.
Changes:
- 3D meshes should no longer have a glaring white tint while in the forward renderer. I initially assumed that this was due to different ways lighting was processed in different renderers, but Gokigenyou helpfully pointed out to me that I was simply missing a `source_color` hint in the albedo texture property, so many thanks to Gokigenyou.
- More accurate bone position retrieval. When trying to retrieve the bone position, it would normally be offset by 100x, which would be a pain to deal with if you're trying to attach something to a 3D bone. After restructuring how the initial shrinking of the meshes work, the bone positions should now be much more accurate for scripting purposes.
- While not explicitly reported, it also occurred to me that changing the size variable would also lead to inaccurate bone positions due to it just scaling the meshes, so I've now changed it so that there's a new root bone that gets generated, and that the root bone gets scaled instead of the meshes. Shouldn't interfere with any existing bone systems, as long as you haven't given any of your Bone2Ds the extremely specific "PaperRootSizeBone3D" name.
- Due to how mesh scaling works in shader calculations, I've also had to edit the pseudo depth shader to have its default `outline_direction` multiplied by `0.01`. Additionally, due to the previously mentioned change to how the `Size` property now works on the skeletal level, I've had to add yet another shader parameter to help fix this issue in the form of `auto_mesh_size`, which, once applied, remedies the issue. If you have any existing custom vertex calculations in your own custom shaders, the changes I've done might be breaking. To fix them, I highly suggest multiplying your vertex adjustment strength by `(auto_mesh_size * 0.01)`.
- EDIT: Upon reflection, I realized that maybe the root bone implementation wasn't actually all that necessary. Still, I'm keeping the overall change in, as I'd imagine that the `auto_mesh_size` could still be useful for certain use cases, and I also don't want to cause people to revert any existing updates that they've made due to the update.
- In EulerTransform3D, I made the `set()` and `get()` functions more robust, fixed a blatant error in `update_transform()` (plus reworked its logic), and fixed rotation inaccuracies. The latter bit should unfortunately be a breaking change if you've already set up instances of PaperSkeleton that use 3D rotations in their bone overrides. Additionally, the more accurate bone positions described in the previous changes should also make it so that any existing bone overrides applied prior to this update are multiplied significantly.
I apologize for any inconvenience that these changes may cause.
Get PaperSkeleton
Buy Now$10.00 USD or more
PaperSkeleton
Renders Godot's 2D skeletal meshes into 3D skeletal meshes. Perfect for 2.5D games.
Status | Released |
Category | Tool |
Author | BunkWire2X8 |
Tags | 2D, 3D, addon, Animation, Godot, godot-addon, godot-addons, Modeling |
More posts
- 1.1a Update - Quick Patch16 days ago
- 1.1 Update - Slight Restructuring + Quality of Life Changes18 days ago
Leave a comment
Log in with itch.io to leave a comment.