There are different ways to build regions in space.
You can build region assets in other software packages and import into Unity.
You can use Unity's mesh shapes and terrain tools, and you can grab third party assets from the Unity Asset Store.
All of the pages linked here all refer to the Scene Export Settings/Scene Save Settings component:
If you want to upload a region quickly, click on 'File>New Sinespace Scene' in Unity to instantly create a quick-start region.
You can upload any scene you create in Unity as a region in Space.
Once your scene is assembled you have two housekeeping tasks;
When you create a new scene in Unity it will by default have a light and a camera.
You need to delete the camera (by selecting it in the Hierarchy window and clicking delete).
You need to define where users arrive when they log in to your region; and what direction they are facing. To do this, once your scene is set up, from the top menu in Unity select Game Object / Create Other / Landmark.
OR;
If your Scene Heirarchy menu does not include Create other / Landmark, then;
Create empty object, then in the Inspector, add "Landmark behaviour" component.
This will place a new landmark item in your scene. In the Inspector window, set the type to Landing Zone and tick Spawn Point.
The in scene object is a yellow edged transparent plane which you can position anywhere in your scene.
The yellow arrow points in the direction your visitors will face when they arrive.
Be careful to position the landing zone slightly above the terrain; if a tall avatar's feet arrive below the terrain they may fall through.
This does not apply if you are using Multi-Scene Mode & Multi-Scene Editing.
You can have more then one scene in your region. 1 - Create a new scene in your current Sine.Spaces project. 2 - Double click the new scene in your Assets to load it into the Hierarchy. 2 - Design your scene. Be sure to save it. 3 - When ready to upload to the server click on 'Space' Scene Settings. 4 - Fill out the needed information, map pictures, and click Automatic Submission. To teleport between one scene to another see [Teleport World]
If you want to make your region as a home type, which could be edited by the users themselves, you need to attach a component which is called "Room Floor" to one of the item in the scene, usually the terrain or the object used as a field. With at least one room floor component, the region will show "Edit Room" button when you in it. You can add several Room Floor components to different objects, each floor can be shared to another user, gives him/her the authority to edit. In your inventory, you will also find an item with same name of the region. This is a home template. You can use it in "Edit Room" -> "Design" function, to change the whole set of a region. Of course you could set a price for it when upload, so other user can buy it in the shop.
Please see our Room Floor page for more information on the Room Floor component.
Please pay attention that ALL the room edit info, like where you put some furniture is recorded in this "Room Floor" script. When you update your region, try not to remove this component in whatever situation. If you remove an old one then attach a new one to another object, the region update will cause all the users who are using your region template to find their region has gotten reset. If you must do that, try to let users of your template know this and be prepared for the overhaul updates.
If you want to add a day/night cycle to your home region/template, please do see our Day/Night Cycle page for more information.
After placing your landmark, go to 'Sinespace' at the top of Unity, and choose 'Scene Settings'.
Follow these instructions on how to set the scene/upload settings: Upload Settings or watch this video tutorial: Scene Settings
For export settings, follow these instructions: Export Settings or watch this video tutorial: Export Settings
For platform settings, follow these instructions: Platform Settings or watch this video tutorial: Platform Settings
For how to submit your region, follow these instructions: Submitting Region or watch this video tutorial: Region Submission
For region management, see this page: Region Management
For more advanced settings, you can see our post zones page here and also our lighting an interior page here.
You can also see how Navigation Bake works here, and we also have information on Occlusion Bake/Culling here.
There are also some handy lighting tips here.
In the top menu in Unity go to Space / Scene Settings.
This will add a Virtual Goods component to your scene. You will see a set of fields in the Inspector.
You can return to this component any time via Sinespace / Scene Settings.
In the Inspector set the Content Type to Region.
Add the name, description and brand identity of your region as you want it to appear in the explore and discovery panels of the Space platform.
You can add slots for as many different languages as you want to.
If you are uploading items that will be sold as virtual goods to other Space users, add the store icons and imagery here. It is not necessary if you make the region not for sale.
Tick the "Not for sale" checkbox will not put the region in the shop and you can set an amount of the maximum one player could own. 0 by default sets the amount unlimited.
Otherwise, leave it unchecked and you can set the price of the region. You can also make it enalbe for promotion, so you can offer a discount easily instead of modify the price then reupload.
If your region is going to be for sale, allowing other users to buy it as a template they can then customise as a private region for themselves, set it for sale and set your gold and silver prices.
For more infomation on gold and silver currencies;
Choose an appropriate content maturity level;
The creator information should show the details of the legal entity holding the account; whether that is an individual or a company.
Note: It is highly recommended to create a new region by Quickstart function. You can access the Region creation quickstart by accessing the menu sinespace -> About Editor Pack, then create a region. All the basic settings are include when you create a region by quickstart.
Click the Scene Export Settings in the hierarchy, and in inspector, find the Scene Save Settings(Script) component.
You can set a splash image and an icon for the loading or preview screen, and also some other settings which affect the base environment of the region.
Here is some basic function settings which you can disable, like fly, run, and value like edge of bottom ,limit of vehicle speed. You can leave it as default if you don't have specific demands.
The Region Mode defines how your region content is received by your visitors; all at once before they log in, or progressively after they arrive.
Please note that except Single scene option, all the other options are still experimental, they may have strict limits to make them working.
Single scene
Single scene delivers the entire region to the user as a single file which downloads before their avatar spawns. For regions with download sizes up to 100 mb, Single scene is likely to be an acceptable download time for your visitors. Recommended sizes are around 30-50mb.
Multi bundle
Multi bundle is a form of dynamic loading control (content streaming). It splits your scene into smaller components that are streamed to the visitor progressively.
The multi bundle algorithm examines every root object in your scene and compares each with every other root object. It then bundles objects where there is more than 40 kbytes of overlap in shared data between them. These will be delivered to the client together.
How you group into root objects has a big factor on how we create bundles; for instance grouping all vegetation or grouping one particular building where users will arrive is a good practice.
Too many bundles (i.e. hundreds) will cause brief stuttering for the user while they are unpacking after loading. A reasonable target is 20 – 30 bundles. You can control this through the number of root objects in your scene when uploading.
Note on inter-object links: Inter-object links between objects loaded at different times may break in this export mode - if objects are linked together (e.g. proximity components) make sure they have the same root object
Requiring elements before scene is entered
When you are using Multi bundle mode you need to select one item in your scene, usually the terrain, and add a component to it called Manual Loading Control or Dynamic Loading Control. Then tick Required Download. This will ensure that the item is sent to the user before their avatar spawns. Without this there is a risk users will arrive and drop through space before your scene loads above their heads.
Additive scenes
Additive scenes is a Unity utility that allows you to organise a single region into multiple scenes. You can manually split content, creating a root scene containing occlusion, lightmap and navigation data, with additional scenes loading the content progressively. You will need Unity 5 multi scene tools to manually set this up. You should have your 'Scene Save Settings' in your root scene when packaging for upload - additionally the currently active scene at time of upload, is treated as the root scene.
For more information, see;
http://docs.unity3d.com/Manual/MultiSceneEditing.html
Note: currently the Additive scenes only support 3 scenes at most.
Single Scene Streamed
Currently still under testing. Closed to public by server side.
If your guest's device has less memory (RAM) than this, they will be given a performance warning when entering the region. This mostly affects clients logging in via WebGL or Mobile.
The world map allows users to search and browse regions. The Preview Image you supply will be used as a background to preview your region in the World Map. It will also be used as the background while the region itself is loading.
Preview image
The image you provide should be a .jpeg file. A 2:1 aspect ratio is recommended. Because the image is stretched to fit different screens it will distort slightly for some users.
Loading logo
The Loading Logo Image appears on top of the Preview Image and is not stretched, allowing you to present your brand logo or a region specific title without distortion.
The image you supply should be a .png file with 512x256 dimensions. When you import the .png file, ensure the Alpha is Transparency box is ticked;
The platform settings are some performance related controls for different platforms. If you want to make your region has a better support of some low spec platform, like mobile and webGL, you may need to limit some options to improve the performance.
Check here for more info about platform settings: Regions/Platform Settings
The reports show some statistic info and script used in this region, and the tools offer some little functions to optimize or control the files needed to upload.
For more informations about these tools and reports, check this page: Regions/Submission
Attention: This is now listed under the Scene Settings in Unity
The platform settings allow you to fine tune your region for each platform you want to publish to.
Space currently supports;
Standalone - Desktop application, PC or Mac
Mobile / tablet - Android or iOS
WebGL - Chrome, Explorer, Firefox and Edge
Console - Sine Wave Entertainment is an accredited developer for Xbox and Playstation. The company is planning to release on these platforms later in 2017 after building a user interface for game controllers.
The default settings are designed to work for most regions.
Scene adjustment
Remove lightmaps / light probes / reflection probes
Removing lightmaps and probes can significantly reduce download speed but will also impact on the runtime performance.
More information;
Lightmaps Light probes Reflection probes
Static bake meshes / colliders
Ticking these boxes will prebake data before export. This improves loading performance but the region download will be bigger.
More information;
Static bake meshes Static bake colliders
Strip occlusion / navigation data
Occlusion data holds information about what areas are visible from other areas; it allows the viewer to make intelligent decisions about optimising a scene, however it can add several mb of size to both runtime memory use; and download size. Keeping it improves performance but can result in higher memory use in big scenes.
Navigation data is used for showing waypoints, and moving NPCs around in a scene; it uses a little bit of extra memory, and can be stripped out if you are under severe memory pressure.
Texture size reduction
Max texture resolution
All textures will be reduced to a maximum of the defined size for each build.
Texture reduction levels
Reduces textures all by a multiple of the original, in line with Max texture reduction above.
So; if your scene contains large textures at 1024x1024 and you set the max texture reduction to 512 those large textures will be reduced by a factor of 4.
If you then set Texture reduction levels to 1, smaller textures in your scene will also be reduced by a factor of 4; so a 512x512 texture, which otherwise would have been unchanged by the Max texture reduction, would also be reduced by 4, to 256x256.
If you set the Texture reduction level to 2 it will multiply the Max texture reduction scale by 2; so in the case above reducing the smaller 512x512 texture by a factor of 8, to 64x64.
Normal reduction levels
This will apply a further multiplicative reduction on normal maps on top of the reduction already applied by the Texture reduction level above.
Texture compression
Allow crunch / Crunch level
Allows JPEG compression to be added to all textures in addition to DXT compression. This will degrade the quality of your images as the compression is lossy; but significantly reduces download filesize. It does not improve runtime memory size except during loading. Crunch level runs from 0 (very lossy) to 100 (lossless).
Compress textures
This applies a further quality reduction, comparable to the quality slider in Photoshop when saving a jpeg file.
True color As 16
Interprets images stored as 'True Color' to 16-bit colors. This applies compression to the colors, without introducing the blurriness / artefacts that DXT compression can introduce; at the expense of being slightly larger. With this ticked, any image with 'True Color' compression, will be packed at 16 instead of 32-bit on this platform.
Audio settings
Force audio to mono
Converts stereo files to mono for that platform.
Audio bitrate
This is a percentage field. So whatever the bitrate of your original files, you can reduce by X% for each of the different platforms you publish to. For instance a set of 128 bitrate original files, left at 100% in the Standalone build can be reduced to 64 in Mobile and WebGL builds by setting this field to 50.
Submitting your region uploads it to http://preview.sine.space/ - a preview server where content can be reviewed online before going to the live servers.
A summary of the objects and scripts in your scene which will notify you of potential issues.
Info
This shows how many objects, root objects and colliders your scene has. It will flag potential performance issues.
Script List
Space currently has a white list of approximately 120 scripts you can deploy in your regions. The script list shows all the scripts in your project, flagging the ones not currently white listed, which will be stripped out when submitted.
You can submit scripts to your account manager for inclusion in the white list. When the platform's SDK is released (scheduled for September 2016) the white list will be maintained in parallel.
Click this button to apply the Region - Platform Settings to the assets in your scene.
Once the automated compression has run you can manually adjust individual files before publishing. You might, for instance, apply 512 as a maximum image size for the WebGL version of your region but then revert one or more specific important textures back to a higher resolution.
Click this button to automatically assign every asset in the scene to one of four draw distance layers, according to their size; larger objects are set to be visible at greater distances.
The draw distance for each user is determined by the quality settings they select inworld;
(Performance setting range: Fastest < Fast < Simple < Good < Beautiful < Fantastic < Ultra)
Default = 20 to 75m
Important = 80 to 320m
VImportant = 240m to 900m
NotImport = Max 30m (60m in Beautiful~Ultra)
NotImportLandmark = Max 60m (120m in Beautiful~Ultra)
If you do not apply Sort into layers button everything will be left in default layer.
After applying you can manually review and modify;
Once your scene is ready to submit, click Automatic submission. This will create a zip file containing the region and will send it to the Space servers.
Here the assets will be unpacked and compiled for each of the different platforms you have specified. You will receive three automated emails; confirming the content has been received, has started processing and has been released for you to log in and review.
When you upload a region, the region will go through the upload process. You can check on it's progress on Curator. When it's uploaded, it will be on our preview server.
Regardless of your subscription level, you can upload as many regions as you want to the preview server.
Once on the preview server you can preview your region. If you are happy with it, you can 'Send it to Review' via curator and it will be reviewed by our review team. This review is to ensure the maturity ratings are appropriate and that nothing in the scene could crash the servers or severely impair performance for other users.
If you have a Level 5 subscription you can bypass this manual review and push directly to the live servers yourself.
Your subscription level determines the number of regions you can release concurrently on the live server.
When you are logged in to any region you can click the minimap in the top right corner to open the Region info panel for that region.
If you are the region owner you can then modify the access permissions;
You can set the region to be public, limited to your friends or limited to specific individuals who you approve.
Any user can request access to one of your private regions;
You can approve or reject their application.
In the members panel you can see who currently has access to the region and you can modify their permissions on an individual basis.
Your subscription level sets the number of concurrent regions you can deploy on the live servers.
You can upload as many regions as you want to, and then enable or disable each region to set which ones are live at any time;
Sine.Spaces uses Deferred rendering. So you can use as many lights as you wish.
Space also implements dynamic environmental lighting and effects, using a custom skybox shader and day/night cycles.
Below is the Unity5 documentation for scene lighting. It's a bit long but worth the read.
Here is a video on the basics of light.
Baking your lighting will help with overall performance.
1. Make sure any objects that are not moving are set to static, you will find the tickbox upper right
corner of the inspector when you select an object.
2. If the object moves in any way leave it unchecked.
3. Go to Window > Lighting
Be sure the following are checked:
To have lights show on moving objects and avatars you will need to use Light Probes.
1. Create and empty game objects.
2. Add the Probe Drop Plane component.
3. Move this grid with globes to the top of your scene, the object is to scale it so it covers
the overall area of your scene. So over buildings, larger objects.
4. Adjust the Density Setting in the Drop Plane so the globes are evenly covering your scene.
If its darker add a bit more then if a scene is well lit.
5. Click Update and the drop plane will expand.
Note: If you have additional dark corners, you may wish to add more manually
using an empty game object attach the component Light Probe Group moving one probe into
the dark area and one nearby in the lit area to reflect off each other.
When you have everything set up click 'Build' this can take quite awhile a suggestion is run it overnight.
The space platform provides virtual world creators with lighting tools that can create a huge variety of amazing, atmospheric spaces.
Mirage Scene Download
There is no one right way to light a region. Getting the right lighting can take a few attempts. This How To looks at the combination of different light types, both realtime and baked, in the Mirage demo scene.
Each light in a scene is either baked or realtime. Most light types (with the exception of Area lights) can be either.
Realtime influences inworld performance. Baked increases upload size.
In the Mirage demo scene the creator has used a combination of real-time and baked lighting.
When you create a new scene in unity it will have two light sources by default;
Directional light
Ambient light
Directional light
A directional light which is an object in the scene you can rotate like any other object.
The directional light will cast shadows in the direction you rotate it.
For the Mirage scene in this How To the directional light has been deleted from the scene. Directional light is often used as the source of sunlight in an exterior scene. In the Mirage scene shadows are cast by the point lights in each room.
Ambient light
The Ambient light has no source in the scene and is modified via Window / Lighting from the top menu bar.
In this scene the ambient source is the skybox; the color range of the skybox informs the color range of the ambient light in the scene. You can also use either a flat colour source, or three gradient options. The skybox option works well in the Mirage region but doesn't always look good, depending on the skybox itself.
You can add lights and light probes to a scene by clicking create / light in the scene hierarchy window. Leaving light in the name of all your lights will allow you to search for them in the hierarchy.
Area lights are used in this scene to project different tinted light from a plane into each room.
Area lights are very efficient but do not cast shadows. They are baked only.
The direction of the light from the plane is indicated by the yellow line.
The hanging lights in the Mirage scene are mesh lamps, on the walls and ceilings, with point lights attached to them.
Point lights emit light in all directions at once over an area visible as a wire-frame sphere.
The point lights in this scene are set to real-time and are the source of dynamic shadows on avatars and other non-static objects in the scene.
The hanging lights also have a halo component added to give a simple visual indication of their status as light source.
The Mirage scene also contains one baked point light, called “CenterLight.”
The creator used a wide area baked point light here because an area light on ceiling would have undermined the shadows cast by the other ceiling and wall lights in the scene.
Spot lights project light from a cone point and are used in this scene to illuminate the NPCs showcasing clothing items. They are set to realtime and project the shadows of the NPCs onto the back wall.
The Light Circle in the centre of the main room has meshes where the Standard Shader is set as Emissive; the mesh radiates light.
If the emission value is between 0 and 1 the mesh surface will appear to be a light source but does not actually emit light.
If the emission value is set above 1 for one or more color channel the mesh suface will emit a faint HDR light.
This can be very good for LEDs and small light piping. It also contributes to light bounce off shiny surfaces.
Emissive surfaces are only applied to static objects, and only for baked lighting.
NOTE
Emissive surfaces may generate some artefacts on materials with detail maps when viewed in webgl.
Light probes sample the combination of light sources in the scene and allow moving objects in the scene; most obviously visiting avatars; to be well lit by the baked light sources that otherwise would only have an impact on in the static components of the scene itself, via the lightmap textures.
You can lay out as many or as few light probes as you want. You should aim to place light probes at the places in the scene where different light sources obviously overlap.
In this scene the creator has focused on light probes at head height, with a particular grouping around the intense light conditions of the fashion studio.
NOTE
You can toggle the light probes to be visible nor not via the Gizmo menu above the scene window.
Once all your light sources and light probes have been laid out and all the static objects that will form the fabric of the scene are in place, your final act before submitting the scene to the server is to bake.
This function is a once click process, triggered from the Build button at the bottom of the Lighting window.
It may take a while for the bake to complete. It will take longer the higher the baked resolution you set. Unity defaults to 50 texels per unit but this scene was run at 20 and could probably have come down to 10 without any significant change in the result.
Once the bake has completed you will have lightmaps for your scene which will automatically be uploaded when you submit to the server.
The lightmaps are then blended with the textures in the scene to give you the look and feel you have created.
Baking probes
When you bake the scene Unity will also apply the light information to the light probes and the reflection probes in the scene.
You can also bake ambient occlusion and reflection probes as part of the same process.
The NavMesh function in Unity can help you define your region where is walkable and where is not, so if you have an auto-walk function for player or NPC, it can automatically calculate the routes.
If you are interested in how to fully use the NavMesh function, please check official tutorial of Unity.
Here, we will only introduce some basic methods.
As an example, I created a region with some simple objects as obstacles.
First, Click the menu Window -> Navigation to call out the Navigation window(In Unity 2018, it's in Window -> AI -> Navigation). There are four tabs in Navigation Window: Agents, Areas, Bake and Objects.
The Agents tab is a place to record profiles for different parameters, when you attach Nav Mesh Agent component to a character, you can choose the agent profile you set in the agents tab.
The Areas tab is for define the layers of navigation. There is already 3 built-in layer: Walkable, Not Walkable and Jump. You can always add new layer if you need. The Cost defines whether the layer is hard to walk or not -- more cost, much harder. Normally, the Auto-walk will always choose a path with lower cost.
The Object tab is to set the navigation parameter for the objects in the scene. The 3 filters, All, Mesh Renderers, Terrains can help you to find the objects, and if we need to set an object walkable or not, pick the checkbox Navigation Static, then choose its layer. If you want set it jumpable, for example: jump across a gap between two platform, of jump down from somewhere high, you should also pick the Generate OffMeshLinks checkbox then choose the Jump layer for Navigation Area.
The Bake tab includes all detail settings here. The Agent Radius defines the width of character and how narrow the path it could pass. Agent Height stands for the height of character, so if there is a height limitation area, the character shall not pass. Max Slope defines the maximum angle the character can move on, and objects lower than the step height will not be considered as an obstacle. Drop Height is the maximum height which the character can jump off, and jump distance is a horizontal distance which the character can jump across.
When all the settings are done, you can click the Bake button to generate the NavMesh Map. When it's complete, the Scene window will display the Navmesh map.
The NavMesh jumpable with off-Mesh links will have an arrow and circle like this:
You will need a lua script to set an object moving through the NavMesh. Here, I'll show you a simple example.
First, create a capsule as the character we want to move in the baked scene, then add the component "Nav Mesh Agent" to it.
Choose the profile you set in the Navigation window, and set other parameters as you want or just leave it as default -- if you wonder each parameter is for, check the link of tutorial above.
Create an empty object and move it to the destination you want to set for the move. Change the object's name to something easy to find in script, like here, I name it as "dist".
Now add the lua script to the capsule. Add the "Scripting Runtime" component to it, then write the code like the image below:
The line "Space.log(agent);" isn't necessary, it's only a log to make sure the script is working.
You can add an clickable activator to active this script when click the capsule, or it will start moving automatically.
Here is a GIF which shows you the result of NavMesh move.
Occlusion Culling is a Unity function which can disable rendering of objects when they are not currently seen by the camera if they are occluded by other objects, which can save time from rendering.
You can get the details of advanced operation from the Documentation.
Here we only use a simple example to show you how to use this function in Sinespace.
This is the overview of a new created region. You can see there is a big cuboid and a small cube, where the small cube is occluded by the big cuboid from the view of camera, and the big cuboid is combined by 3 big cubes.
Now in menu, click Window -> Occlusion Culling to open the Occlusion window(In Unity 2018, it's Window -> Rendering -> Occlusion Culling).
There are 3 tabs in this window, object, bake and visualization.
In Object tab, you can set objects Occluder static and Occludee static. Occluder static means this object can occlude other smaller objects which has occludee static parameter checked.
You can also use the option "static" in the right-top of the Inspector window. Set the objects Occluder static and Occludee static here:
It's same as the operation above. Choose the method which you prefer.
When you finished setting the objects occluder or occludee, you can bake the scene to calculate the occlusion data.
The default settings here normally is enough for most situations. If you want to adjust them, check the Unity documentation(link mentioned above) for the details of each parameter.
The occlusion volume will show after bake.
Then you can test the result in Visualization tab, if every thing is correct, when you focus on the camera, the small cube behind the big one will be invisible.
A region with occlusion culling is complete. Remember delete the camera for test before uploading your region.
Does it really work in Sinespace?
Yes, the occlusion culling in your region will be the same as the result you tested in Unity. It may be hard for normal user to find it out, so here I present some images from the developper:
The image above is the game view of the client. And switch to the scene view(image below), you can see the small cube is invisible in visualization mode, proving the occulision culling does work with Sinespace.
If we move around, to the side of one big cube, where we can see the small one, like in the image below:
As you can see, the small cube can be seen now, but 2 other big cubes are invisible because of occluded by the one close to the Avatar.
As a conclusion, if you want to make your region more friendly to low-end PC or webGL, mobile platform, use occlusion culling to your region -- just set the static objects occluder and occludee, bake it with default settings, that's all.
You can use PostZone(Post Processing)Component to add/change postFX in your region. PostZone can be applied to a part of the region or the entire region.
To create a PostZone, create an empty object in your scene, then click on add component, search and select PostZone.
If you want part of a region to have different postFX, then add a box collider to the EmptyObject with PostZone and size according to the area needed.
For example you can have different postFX for interior and exterior areas of a region by adding different postZone and sizing the collider to the size of the area.
You can learn more technical Details on Post Processing here.
While making regions for Web GL, there are a few things you need to bear in mind. Web GL is specifically made for running applications in browsers, so it has a lower standard for graphics than the actual sinespace client. This means the regions you create will need to stick to a few rules to make sure it runs smoothly in the browser.
1. Regions need to be a light build. Anything up to 30MB is fine to run in a web browser.
2. Test the region to make sure it can hold 10-12 avatars without crashing.
3. Try to make objects plain, or add low resolution textures. Maximum resolution for normal textures needs to be 512x512. For billboards, this can go up to 1024x1024.
4. Use the Unity Legacy shader instead of Unity Standard shader.
5. Use baked lighting if you want to add shadows. These shadows will be static shadows, but this will stop lag in the region.
6. Special effects and animations can be used in the region, but keep the count to 4-5 of them.