No announcement yet.

Object Array Blueprint

  • Filter
  • Time
  • Show
Clear All
new posts

    [RELEASED] Object Array Blueprint

    Hi Everyone,

    The object array blueprint works by adding the static meshes or blueprints you want then arraying the objects out in the XYZ directions. It has 31 features that then allow you to modify the basic array to make it unique and random.

    For example a very simple one would be to add a traffic cone static mesh and stretch out the array in the X direction. Set the offset to 100 units with a range offset of 10 in the X & Y. Then enable the random Z axis rotation. This will place the traffic cones at 1m offsets but with a ±10cm range and the rotations on the Z axis would be random making the traffic cones look like they were placed there rather that everything being perfectly square. To improve this even further you could use a spline type array with snap to ground, snap align to surface to make it sit on uneven ground and simulate physics so it can be interacted with during game play.

    List of Features:
    - Runtime support so you can modify the features during runtime
    - Array objects in the XYZ coordinates
    - Add Static Meshes or Blueprints to spawn
    - Object Array Types:
    - End Point Set
    - Manually Set
    - Spaced Evenly
    - End Point Direct Distance
    - Spline Aligned
    - Master, Rotation & Scale Seed numbers
    - Random Master Seed
    - Unique Object Only - Spawns only one of each object type
    - Offset Range - ± offset range
    - Set Rotations
    - Random Rotation in each axis
    - Rotation Range - ± rotation range
    - Keep Objects Flat - Keeps the spawned object laying flat
    - Align vertically - Keeps the object vertically aligned
    - Rotation List - Only rotates the objects using the rotations set in this list
    - Random Rotation Seed
    - Set Scale
    - Scale Range - ± scale range
    - Uniform scaling
    - Scale List - Only scales the objects using the scales set in this list
    - Random Scale Seed
    - Snap to Ground - Snaps the object to the next collision plane
    - Snap Align to Surface - Aligns the objects to the surface
    - Snap to Ground Stack - Allows objects to stack on top of one another
    - Snap to Ground Vertical Adjust - Objects can be lowered or raised from the surface
    - Actor to Ignore - Allows objects in the environment to be ignored so they don't get snapped to
    - Simulate Physics - Allows static meshes to simulate physics.
    - Save/load Physics Transform - Allows the objects to fall in simulate and to be saved in the editor
    - Do not Spawn List - Set which objects not to spawn
    - Randomise do not spawn list
    - Materials
    - Keep Constant Material Scale

    Quick overview:

    In depth look at all the features:

    Runtime Tutorial:

    Everything in this scene except the walls, roof and landscape are using the object array.

    Click image for larger version

Name:	Object_Array_Screenshot_01.jpg
Views:	1
Size:	220.4 KB
ID:	1176683
    Example level showing object array types.
    Click image for larger version

Name:	Object_Array_Screenshot_02.jpg
Views:	1
Size:	112.4 KB
ID:	1176684
    Rotation and scale modifiers
    Click image for larger version

Name:	Object_Array_Screenshot_03.jpg
Views:	1
Size:	118.2 KB
ID:	1176685
    Snap to ground, simulate physics and do not spawn list.
    Click image for larger version

Name:	Object_Array_Screenshot_04.jpg
Views:	1
Size:	117.1 KB
ID:	1176686
    Simple materials options.
    Click image for larger version

Name:	Object_Array_Screenshot_05.jpg
Views:	1
Size:	126.7 KB
ID:	1176687
    A list of all the options that the object array blueprint has.
    Click image for larger version

Name:	Object_Array_Screenshot_06.jpg
Views:	1
Size:	292.0 KB
ID:	1176688

    Last edited by Tocs; 05-16-2016, 08:56 PM. Reason: changed prefix.

    Hey gratz for all these options, it sounds really good, gg.
    I watched at your overview video, you used a staticmesh for your example, does your tool accept BP_Object? Thanks in advance for your answer
    Linkedin | ArtStation | -SCIFI 'PROPS' PACK- | -SCIFI 'POPULATE' PACK- | Shooter Game Tutorial | StarDrop


      Hey Macoll, Yes the first option is for the object type and you can select between a static mesh or a blueprint actor.


        Hey when is this going to be released? I really want to use this to handle my object spawner. Do they incorporate movement? Such as spawn and then offset location back and forth? Also does it keep track of how many are spawned in array and is notified when one is destroyed?


          The release has been scheduled for the 20th of this month so not too far away now.

          It doesn't have any movement in the offsets during runtime but could easily be modified. As most of the blueprint has been done in the construction script it can't be updated during gameplay but more script could be added to the event graph so it can manipulate the already spawned objects. As it is now you could handle a local offset movement within the blueprint for your object spawner and then add that blueprint into the object array to be arrayed out.

          Each blueprint within the object array will be listed under the main object array in the object outliner.
          Click image for larger version

Name:	WorldOutliner.PNG
Views:	1
Size:	7.6 KB
ID:	1104109

          When creating the array it will list the quantity within the array as a print to screen so you will be able to determine how many object spawners you have at the start. To be able to detect if one of the objects are destroyed it could easily be setup to have the level blueprint or character listening for the object spawner and then it can report if one is destroyed. I just quickly tested this by setting up the level blueprint to listen for all actors of class and then list the length on the screen. When one of the objects were destroyed it updated on the screen.

          I will update this post when it is released. Let me know if you want any more information?


            The Object Array Blueprint has just been released!

            Go and have a look.



              Thanks for the info
              Linkedin | ArtStation | -SCIFI 'PROPS' PACK- | -SCIFI 'POPULATE' PACK- | Shooter Game Tutorial | StarDrop


                After a few people requesting runtime support I have been able to implement it. I still need to test it some more to make sure all the features are still supported during runtime though.

                One big issue I'm currently seeing is if there are quite a few objects then when the array is updated it will lag the frame rate because it will run through the entire script each update. It needs to update the entire script as each step relies on the previous step to build the array.
                Up to 10 objects seems to have no impact on the frame rate when updated each frame. But at 100 objects on my machine it dropped 30 fps with all the objects updating every frame. Changing the update rate to 0.1 of a second however, FPS impact was minimal.

                Once I test it some more I will post a video demonstrating the new runtime update and submit it to Epic to update the files.
                In the mean time here is a quick demonstration.
                Last edited by Tocs; 04-24-2016, 08:40 AM. Reason: added video


                  This is great work? Did you implement this in C++. If so, is it included in the package? I prefer to fix programs myself or modify it to suit my preference rather than pester the original author.


                    This is blueprint only with no current c++ implementation. I'm sure you could modify the variables through c++ for the runtime modification but I'm not a programmer so I don't have much knowledge in that area.
                    I built it to be able to build levels quickly with the runtime modification support only just implemented. It isn't live yet but the files have been submitted to Epic.


                      Do the objects placed using your plugin work with static/baked lighting or can they only be dynamically lit?


                        If you aren't planning on changing any of the variables that modify the object array during runtime you can disable runtime updates so the object will only be static.
                        In this video all of the objects are static and therefore could use static/ baked lighting.


                          Awesome, thanks for the quick reply ! I'll definitely get this once I get around to building my environments, then.


                            Hi Everyone,

                            The Runtime Update is finally live!

                            You can find a tutorial below that will explain how to setup the blueprint so you can modify all the features during runtime.

                            Let me know what you think and if you have any problems.



                              How does it handle let's say 1500 objects (static meshes or blueprint actors) with simulating physics enabled ? I'm simply wondering whether this method of instantiating through array would work without dropping frame rates masively.
                              VR/AR Development [Portfolio | YouTube | LinkedIn]