Yay pro builder being added to Unity, will it provide a realtime API?


Unity Blog Post → Unity Blog

So could this bring amazing dynamic modelling features into the API e.g. things that can grow and morph dynamically, procedural landscapes/buildings/characters and the ‘piece de resistance’ dynamic destruction?

I’m pretty sure a lot (most?) of the destruction in battlefield is pre-baked stuff.

The big stuff probably but the fun really begins with the smaller dynamic destructables, the walls/windows/doors that can be blown up dynamically and effects the gameplay.

DICE seems to call this “micro-destruction” and she saying “each piece has a health state and gets replaced when destroyed”, which sounds like it’s not dynamic (28min 50sec):

https://www.youtube.com/watch?v=QYLqh9ncIxw

A great talk about dynamic destruction is this one:

https://www.youtube.com/watch?v=SjkQxowsL0I

If you watch the 2nd video, you probably realize that providing a generic all-in-one destruction solution might be out of scope and actually seems to heavily rely on the content to apply various tricks.

if you wanted to do dynamic stuff you are better off purpose building your own solution.

In your BF examples, most of the large set piece destruction is pre made and simply replayed, and for smaller parts i would assume they pre fractured the mesh, and have each piece its own health.

for growing and morping things during gameplay, i would think if want you want is complex and driven by the user you should purpose build your own solution. The additional vertex streams feature of mesh renders would be a good place to modify this data at runtime. or in the case of morphing stuff you could look into just using joints and mesh skinning, using morph targets, or do some trickery with the vertex shader. The major challenge to any of this though is not the visuals but is the collisions.

Though having this out of the box now is pretty nice, makes it much easier to play with and quickly iterate on level layouts, and even if what you wanted to ultimately do is more complex then what pro builder can do, you can simply use the new fbx exporter to send the pro builder mesh to your 3d package of choice to add geo overtop or refine the shapes, or simply to use as a good scale reference.

For multiplayer I found dynamic destruction to be problematic, and off the shelf stuff basically unusable. Having as much as possible be deterministic just solves a lot of nagging problems. Like seeing the same thing in all clients, or being able to serialize the data much more efficiently. I persist fragments in the world so determinism there was actually a really big deal. Just the space efficiency was like 10x better with the right things being deterministic.

Plus what if you just want very specific dimensions for fragments on different structure types. Algorithmic approaches don’t lend themselves well to arbitrary customization.

1 Like

Sweet. I’m a long time ProBuilder user, it’s handy that I can now just expect everyone I work with to have the same tools by default!

If it’s being brought in-house I hope that means it’s going to get a) improved performance and b) features it’s missing compared to other tools. The improved performance thing, to be honest, is more to do with PolyBrush than ProBuilder itself. With ProBuilder alone it’s not a big deal, but last time I used it (quite some time ago now) PolyBrush had some pretty long pauses on certain actions once I’d subdivided a large structure for brushing.

While those features are definitely possible things that could one day come along, as it stands ProBuilder is a specific tool for a specific job that doesn’t cover them. I strongly suggest checking out Archimatix for some of those things, the various terrain/landscape solutions around for others, and UMA or Mixamo (if it’s still around) for characters. Destruction has been covered pretty well above, though it’s worth note that more dynamic solutions are also available if the costs and downsides are acceptable.

1 Like

Pro Builder does have an API and in Beta CSG Boolean Operations, so in theory you could build random damage planes/tris/shapes and break/damage existing models.

Just got around to reading the reddit thread covering the news article and one of the developers linked to the level editor they had developed as an example of the ProBuilder runtime API.

https://github.com/Unity-Technologies/giles