thanks a lot for the detailed tutorial! It’s a perfect starting point for the MassEntity Plugins.
One bug (?) I come across is that the Mass Spawner seems to have a max entity count. The EntityConfig currently only holds stationary, simple actors. As soon as I set the Spawn|Count Property of the MassSpawner to anything over 100, no entities are spawned at all. With a Count of 100 it is all fine.
With a DebugVisualization Trait instead of a Visualization the Count can be higher - so I fear that the reserved memory is at maximum here. If so, can I tweak that? (My machine does not use all available memory by far here.)
I am checking on this. We do not have a way to host files on the Epic Dev Community, but it may be possible to host on another file sharing site.
I am working on a part 2 of this guide with more content added to the project, so I do not currently have a clean copy of the project that only has elements found in this guide.
wow what a nice and good news - thanks for your effort - we need more about this topic since its been long time since its revealed but not much tutorials about it - im looking forward in some topics - like replication - and transition between VAT (ISM ) and the full character (bc right now the transition is very bad when changing from high res to low res and ISM ) , and how to interact with the player character (is C++ required for it ? )
ps: i followed again ur tutorial and i have succeed to do the same as you
I do not have an ETA for this. I would imagine several releases before this is ready. The Mass plugins will likely be worked in the order of MassGameplay->MassAI->MassCrowd.
ZoneGraph has not seen much development outside of some bug fixes since 5.0. I do not know when it will be production ready as efforts have largely been focused on other areas. I imagine it will start to see more development once we have moved onto the MassAI plugin as that is the primary user of ZoneGraph currently.
There was an issue in 5.3 where if you duplicated a mass entity config, it would also duplicate the GUID instead of creating a new one. Are you trying to use a duplicated entity config? Can you re-create one of them from scratch by adding all of the traits and/or fragments manually and try this again?
Mass does not have a direct link with the physics system, so it will not just “know” about an obstacle such as a mesh placed into a lane. If you wish for the crowd to avoid it, you can give the obstacle a mass component and config marking it as an avoidance obstacle. If it fully spans the lane, the crowd may not wander outside of the lane, but I do not fully recall how that works for finding a way around it.
I may be able to give some better guidance if you can explain what you are trying to do along with some screenshots of what you are seeing in PIE.
Hello!
I need help with a MassCrowd level in the “AI/Map” of “City Sample” where multiple cars and crowds appear.
The cars are managed by MassTraffic and the people by MassCrowed.
What are the differences between these?
I want multiple BP_humans to appear randomly, is it not a good idea to use them like cars in MassTraffic?
Mass currently only has minimal support for replication/multiplayer. Movement is the only thing that has any replication, but you could use the code for replicating movement and apply it to other areas for yourself. While that is possible, I would advise to wait if you can because…
We have plans on adding more serialization and replication support for Mass that will need to leverage the new networking tech in the engine which is called Iris. Another issue of built-in replication for various engine classes is that the data that needs replicating will be different for every project.
Depending on what you are using Mass to do, it is possible to have it work in multiplayer settings. As an example, the resources (rocks, tress, etc.) in Lego Fortnite are being run by Mass on the server. This makes use of a new plugin called Instanced Actors that will be experimental in 5.4, but we are actively working on the plugin to have most, if not all, of the functionality we made for Lego FN.
So the MassTraffic is a very complicated setup of rules and managers for ONLY the vehicles so they can merge, change lanes, avoid, react to traffic signals, and manage the parked cars. It is not an official plugin for the engine or supported outside of the City Sample project.
MassCrowd is a collection of common behaviors we had for simulating the pedestrians in the CitySample, and it is an official engine plugin that is experimental. It builds on top of our other Mass plugins for Gameplay and AI. It contains some of the StateTree tasks used in this tutorial such as the Find ZoneGraph Wander Location task and some navigation code directly made for the pedestrians. The plugin also has support for waiting for lane closures e.g. waiting for the crosswalks to be open at the traffic signals.
For your desire to have multiple humans appearing randomly, I would think to use the Crowd instead of the traffic plugin. You can have multiple entity configs created that have different classes for the visualization/representation and add them to the MassSpawner with the ratios you want them to be used. Alternately, you can use randomization either inside the BP for changing the mesh. We use a setup similar to this in CitySample where one entity config and BP class is used, but there are several different MetaHuman meshes used for the crowd.
Are these changes to support Iris targeted for 5.4.0 or later?
Also are there plans to push much more for the 5.4.0 release for Instanced Actors compared to what’s in the GitHub 5.4 branch? i.e. is it worth waiting days/weeks or can I get started with what’s on GitHub?
We are actively working on the Instance Actors plugin. I think the majority of the work will be going into 5.5 now. So I believe the 5.4 version will not see much more work outside of bugfixes or changes in the .cpp files so they can be a part of hotfixes.
So start using the 5.4 version if you want to investigate the plugin. However, it is still experimental (but we are dedicated to getting it finished) and is subject to having API or header changes that can break code/assets in future major release versions.
James. I write navmesh navigation for mass. I separate Build path and Follow path to two tasks. I create some move styles - Slow. Standart, Fast, and Run. For each styles I add two speed variations. When I try to run task then actors always use Max Speed but not desired speed from selected style. Then I force set Max Speed to desired. It right way?
And next - it right way to force call movement_params.Update()? I search calling this method and nothhing found (in examples too).
And next - is any plan to make smooth vertical interpolation from start point to end point for low LOD of static mesh? Now it change vertical position over time from params.