Skip to content
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

Hierarchical FBX Importer #2553

Open
Aggror opened this issue Dec 9, 2024 · 5 comments
Open

Hierarchical FBX Importer #2553

Aggror opened this issue Dec 9, 2024 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@Aggror
Copy link
Member

Aggror commented Dec 9, 2024

Summary

Our community has voiced concerns about the current handling of FBX files within our engine. The main issue is that FBX files are imported as a single model instead of being split into multiple entities, respecting the original hierarchy as structured in their 3D package. This discrepancy hinders workflow efficiency and limits creative flexibility, impacting both game developers and artists.

Proposal

We aim to develop an enhancement for our engine that introduces a much-needed feature: the option to split an FBX file into multiple model assets based on its internal hierarchy. When this toggle is activated, our engine will not only split the model but also automatically generate a prefab that mirrors the original hierarchy found in the FBX file. This approach will significantly streamline the asset integration process, fostering a more efficient and intuitive workflow for our users.

Objectives

  • Develop a Toggle Feature: Users can choose how FBX files are imported—either as a single model or split into hierarchical entities.
  • Automatic Prefab Creation: To further automate the process, the engine will generate a prefab that preserves the original hierarchy of the FBX file.
  • Documentation: Provide updated documentation to ensure users can easily adapt to and leverage the new feature.

Funding: $700,- USD

https://opencollective.com/stride3d/projects/hierarchical-fbx-importer

@Aggror Aggror added the enhancement New feature or request label Dec 9, 2024
@Aggror Aggror added this to Roadmap Dec 9, 2024
@Aggror Aggror moved this to Feature Requests in Roadmap Dec 9, 2024
@Aggror Aggror moved this from Feature Requests to Todo in Roadmap Dec 9, 2024
@Noah7071
Copy link
Contributor

Noah7071 commented Jan 4, 2025

Hi @Aggror. can this issue be assigned to me to take care of!

@noa7
Copy link
Contributor

noa7 commented Jan 15, 2025

Can I suggest against the toggle feature to combine or not combine mesh at import. Instead always import hierarchy as replica of source file. It will help prevent bifurcation in pipeline, and user point of view do it once in modeling tool wether to export fbx as merged or single. From what I see thats how usually it in other game engines as well. Please suggest!

@Eideren
Copy link
Collaborator

Eideren commented Jan 15, 2025

What do you mean, Unreal doesn't build blueprints or scenes out of the imported file so hard to compare, and unity can discard the skeleton depending on the import settings. Changing this would be a major breaking change anyway.

@noa7
Copy link
Contributor

noa7 commented Jan 15, 2025

In Unity for instance(AFAIK) the imported asset hierarchy is same that of source file. If to merge all, thats done by chaning the source file(fbx) in modelling tool or through scripts at runtime?

P.S. I'm strictly talking of mesh hierarchy, not the skeleton, material or other referenced in fbx

@Eideren
Copy link
Collaborator

Eideren commented Jan 15, 2025

So, every individual mesh contained in that file would be split into its own file ?
Right, so there are conflicting issues here

  • either they are always split into individual files that way they can all be added as individual entity to the prefab, but then you have the issue were the model import settings does not have the concept of a specific model source at the path set, just the source path.
  • or you import it as one model file and then you can't really split them into individual entities in the prefab you want to make

It kind of sounds like we're creating something truly awful here, let's take a step back and have a concrete proposal as to how this should be designed instead.

  • Should this be a new type of asset ? Were it hosts multiple assets within itself, that way the asset could just point at the fbx and create asset children which map to the different objects the fbx contains
  • Should we merge it into a single model but then have a submodel component, that way the user can use the model as a whole or as individual pieces ? We would still import a full model, but the prefab would be made out of those submodel components
  • Have all of this as a skinned mesh instead, were each bone is an individual model, the skinned mesh would need some way to read back from the hierarchy to move the bones since Stride's bones are internal to the skinned mesh component
  • Something else ... ?

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
Status: Todo
Development

No branches or pull requests

4 participants