Skip to content

Explode a model from a chosen center point (instead of just using storeys) #660

@Rocha442

Description

@Rocha442

Description 📝

I created a thread detailing my thoughts on a possible Exploder tool (you can check it here) and as suggested there, i'm creating this feature request.

In previous versions of Open Engine we had the ability to explode a model using its storeys as dividers (although that is one of the features that haven't been moved to the current version yet).
I think a useful variant of this tool could be one where the user could choose a point to server as the center of the explosion, with the model opening itself up from there. From there, the user could control the explosion factor using a UI element like a slider, for example. This would mean that items that were originally closer to the chosen center would need a higher explosion factor to be moved away from it, while further away items would be more sensitive to changes in this explosion factor.

Image

Suggested solution 💡

Given that the current version of Open Engine doesn't support the direct manipulation of a model's meshes, this tool would require us to add to the scene a copy of the entire model's meshes, so that we could then reposition them, in accordance with the user chosen explosion factor.
After adding a copy of the model to the scene (and hiding the original model), the user would move a 3D point around the scene, in order to determine the center point of the explosion.
Finally, the distance and direction vector between each item of the model and the center point would be calculated, in order to then use them to calculate the translation needed to be performed on each item, in order to "explode/open up" the entire model.
With the model now exploded, the user can continuously update its explosion factor by using an UI element (ie, control the degree of the explosion in real time), with a higher explosion factor resulting in a more "visually opened up model", while an explosion factor of 0 would visually result in a model identical to its default/starting state ("un-exploded").

Alternative ⛕

I have been trying to find a way to circumvent having to add an entire copy of the model to the scene, in order to lower the performance impact of the tool, but it seems that with the current version of Fragments, it is inevitable.
I also thought about adding these meshes copies to the Open Engine's culler, but again, it seems the newer versions have made that less straightforward.
Any suggestions on how to combat the performance hit this tool creates are greatly appreciated! :)

Additional context ☝️

My current implementation has this nasty bug where after a user moves the explosion factor slider, some meshes get all mangled and end taking up the entire screen. However, if the user keeps updating the explosion factor, the meshes eventually "fix themselves" and then assume their correct sizes and positions again. Sadly, i haven't been able to determine the cause of this issue.
Image

Validations ✅

  • Read the docs.
  • Check that there isn't already an issue that requests the same feature to avoid creating a duplicate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureSomething new that we could do

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions