Skip to content

[FR] Bone Features #388

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
milomach opened this issue Feb 25, 2025 · 2 comments
Open

[FR] Bone Features #388

milomach opened this issue Feb 25, 2025 · 2 comments
Assignees
Labels
✨ Enhancement New feature or request

Comments

@milomach
Copy link

Description of Features:

Hiding and Showing Bones:

  • Hiding and showing bones would be a way to have a ton of customization of models that is simply not possible currently or that requires janky workarounds.
  • As the name suggests, this refers to the ability to hide and show different bones of a model, which would ideally be done by actually removing and adding back bone item displays from the root entity.
  • In-game, there would be a way to target rigs that are summoned and show or hide individual bones or bone configurations.

Alternative for Hiding and Showing Bones:

  • Alternatively, hiding and showing bones could be done by changing the specified model for the item displays to and from a model without a texture, but this would not be ideal, since it would be worse for performance.

Bone Configurations:

  • Bone configurations are a way of organizing any bones separately from their folder structure in Blockbench.
  • In Blockbench, bones could be added to bone configurations in a menu that would work similarly to the one for specifying which bones are included in animations.
  • The same bones could be included in different bone configurations.
  • It would also be convenient if bone configurations themselves could be included in other bone configurations, in addition to any individual bones.

Bone Configuration Uses:

  • Bone configurations would mainly be used so that the bones that they consist of can be hidden and shown together in-game, which would be a huge convenience in many cases.
  • Bone configurations could also potentially be used in the menu for specifying which bones are included in animations.

Default Shown Bone Configuration:

  • This refers to a bone configuration that determines which bones are shown by default when a rig is summoned with no shown/hidden summoning options.
  • Any bones that are not included in the default bone configuration would be hidden by default when a rig is summoned with no shown/hidden summoning options.

Shown/Hidden Summoning Options:

  • Shown/hidden summoning options are a way of summoning a rig with whichever bones and bone configurations shown or hidden that you want.
  • When summoning a rig, there could be options for specifying any bones or bone configurations that should be shown, as well as any bones or bone configurations that should be hidden.
  • The reason for being able to specify bones or bone configurations to be hidden in the summoning options is because, in certain cases, you might want all of the bones of a bone configuration to be shown except for certain specific bones or bone configurations within it.
  • Being able to specify the bones or bone configurations to be hidden could be faster than listing all of the bones or bone configurations you want to be shown.

Use-Cases:

For Hiding and Showing Bones:

  • There are infinite different use cases for incredibly different things, but here are just a few very random specific things I quickly thought of.
  • Different things held by the model.
  • Different things worn by the model.
  • VFX components that could be properly shown when needed and hidden when not.
  • Entire changes to models, such as things like changing body shape, different styles of wings, etc. with more clean changes compared to switching out to an entirely different rig.
  • Performance benefits for hiding bones when they are not able to be viewed, such as with a chest model full of detailed treasures that can only be seen when the chest is opened.

Considerations:

Variants Related:

  • Being able to hide and show bones, especially with features like bone configurations, would essentially act as a much more capable system compared to the current variants system.
  • The variants system would likely need to be changed if this is implement, although I don’t know in what ways.
  • It is possible that the variants system would be entirely not necessary anymore if this is implemented.

Error Handling Related:

  • There would need to be error handling for when users try to play animations that include bones that are hidden.
  • There would need to be error handling for when users try to summon a rig with shown/hidden summoning options without actually specifying anything, which should just cause the default shown bone configuration to be shown.

Random Things:

  • The phrasing and terminology of everything in this suggestion might not be the best, but hopefully you get what I’m referring to.
@SnaveSutit SnaveSutit added the ✨ Enhancement New feature or request label Feb 25, 2025
@SnaveSutit
Copy link
Contributor

A few notes:

"Hiding and showing bones would be a way to have a ton of customization of models that is simply not possible currently or that requires janky workarounds."

Hiding and Showing bones is already quite possible, using a variety of methods.

  • You can use Variants to show/hide bones by applying an invisible texture to the bone's model. Almost everything you described in this issue is already possible with Variants and the existing Bone Config system.

  • You can use animations to hide/show bones by scaling them. I've seen this used to great effect.

  • Bone configs already exist in the current release, although not as "globally" as you've described. They have an "invisible" option. It uses the "change the model to be hidden" solution, which is not ideal but it's also not a "jank workaround".

Alternatively, hiding and showing bones could be done by changing the specified model for the item displays to and from a model without a texture, but this would not be ideal, since it would be worse for performance.

This is exactly what Variants do right now.

Bone configurations are a way of organizing any bones separately from their folder structure in Blockbench.

Have you looked into Blockbench Collections?

Image

Being able to show and hide bones, especially with features like bone configurations, would essentially act as a much more capable system compared to the current variants system.

Variants are not just a way to show and hide bones. They let you swap out any textures on the rig, not just apply transparent ones. Variants are much more complex internally than "show this bone and hide this one", so this feature would not make them obsolete.

Future Versions

Bone configs, Variants, and many other systems are getting completely re-worked in v2.0.0. I will take this feature request into consideration for that version, as the new configuration system I'm developing is similar, but much more powerful than the one described here.

@milomach
Copy link
Author

I realize that hiding and showing bones can be achieved already. I probably should not have gone into such detail with features for convenience and distracted from my main point that being able to truly remove and add back bones would enable so much that just isn’t practical with only visibly hiding bones (for performance reasons).

Thanks for reading everything I said and giving such detailed feedback. I look forward to v2.0.0!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants