Scene Heatmaps: View user position and gaze data back over your scene(s).
Available for All Tiers
Heatmaps allow you to visualize virtual world position and FOV events directly over each scene. This analysis tool allows you to quickly identify where in the scene most of your users spend time and areas that get overlooked or undiscovered. This type of analysis is often utilized by level designers to validate or invalidate design decisions based on player path, field of view, and duration. You can view this data in the aggregate, or as a time-lapse based on the average session length.
1a. Getting Started - Exporting Scene(s) from Unity
In your Unity editor (plugin version 1.3.0 or later), go to Window -->Observer Analytics-->Scene Exporter and select the object(s) in your scene hierarchy that you'd like to export.
Note: When uploading a scene, your scene name has to match the scene name that's in your production build. This is because the scene name is attached to each virtual position event, so if the names do not match, the query will return no data.
Note: If you load scenes additively, you must open the scenes additively in the editor before exporting. In your build, because the scenes get loaded additively during runtime, recorded data is tagged with the scene name of the main scene that the other scenes get added to. For example, if you have a scene called "MasterScene" in which you additively load "Level1", "Level2", and "Level3", all positional data will get associated with "MasterScene". So if you upload "Level1", "Level2", or "Level3" by itself, no data will appear. This is because the query is looking for those names instead of "MasterScene" in which the data is actually associated with. To export properly, open the main scene in the editor, then add the other scenes to the main scene as well. When you open the export window, you can select objects in any of the open scenes.
1b. Getting Started - Exporting Level(s) from Unreal
Open the Project Settings window, on the left-hand side of the Project Settings window, under "Plugins", click "Observer Analytics". Scroll down to find the section titled "Level Exporter".
To export your level, simply select the objects in your level that you want to export, and click "Export Selected Objects".
Note: When uploading a level, your level name has to match the level name that's in your production build. This is because the level name is attached to each virtual position event, so if the names do not match, the query will return no data.
If you have both a Prod and Dev ApplicationID set in your Observer Project Settings, you will be prompted to select which database you want to upload your level to.
Select "Yes" to upload the objects to the Prod database or select "No" to upload the objects to the Dev database.
If you are prompted to export the materials as images, select "Yes".
Once you've exported your level, the export will be placed in a folder called "Observer Level Exports/YOUR LEVEL NAME" in your project's Content folder. There will also be a JSON file called "properties.json". This file contains the necessary info needed when uploading the level.
The last step is to download this Python script, place it in the "YOUR PROJECT NAME/Content/Observer Level Exports/YOUR LEVEL NAME" folder, and run the script.
For more info, check out the documentation.
2. Analyzing Data On Your Dashboard
Step 1: Navigate to the Heatmaps section on the dashboard and select either the "Position" or "Field of View" page. Select the scene you'd like to analyze from the dropdown menu located in the upper left of the viewing window.
Step 2: Once you've selected your scene, data will appear over the scene based on the filters you've applied (e.g. date range & segmentation)
Step 3: You can then alter the dashboard filters (e.g. date range, user segment, Aggregate vs. time-lapse) or edit the data visualization using the options menu.
- Aggregate - When looking at aggregate data you are analyzing the top 50k events recorded within that time period. Aggregate view will allow you to identify the most prominent positions and gaze points in your scene, visualized as large clusters of cubes and heat.
- Time-lapse - Viewing data over time allows you to visualize how players move and look around your scene in relation to the average session length. You can scrub through time to see how players move through the environment. Note: this is not based on time in a specific scene, it is mapping events over their entire session time.
Step 4. This options menu gives you more granular control to change cube size and spacing. Each option described as follows:
- Rounding - The rounding function divides up your scene as a grid, grouping data into quadrants. The rounding value changes the size of each square in this grid over your scene. The smaller you round, the more granular this grid will become. Rounding is used to cluster points that are in the same relative area so you can identify frequently visited areas via the number of squares in a particular area and the "heat" (i.e. the color) of each square. (Tip: try rounding down to 0.25 and change your cube size to 0.20. This should identify clusters of users in your scene.)
- Cube Size (Position only) - Altering cube size is purely visual, this doesn't change the query, heat (color of the cubes), or aggregation of data in a particular area. If your cube size value is equal to our rounding value, cubes next to each other will touch perfectly. If cube size is smaller than the rounding value, there will be some space between cubes so you can see between varying layers of cubes. If your cube size is larger than your rounding number, cubes will overlap.
- Scale (Field of View only) - Heat scale is a scalar that will move all points collectively up or down the heat range color spectrum (green <--> red). You can use this to help interpret your data as necessary. For example, increasing this value will move all the points towards the red end of the color spectrum, making the heatmap more pronounced.
- Radius (Field of View only) - The radius value changes the radius size of each individual point that is populated over your scene. The radius value can be used to blend the heatmap, in order to visualize larger clusters of heat. For example, a small radius value will show individual points with gaps between the heat and as you increase this value, points will start to overlap and cluster.
- Time Interval (time-lapse only) - By changing the interval you are shortening or elongating how we are querying data. For example, if your interval is set to 5 seconds, we are analyzing where people are located every five seconds. The shorter the time interval, the smoother you will see people move throughout the scene. If you set the interval to 1 second, you would be watching how a user moves each second, oftentimes seeing where they pause before moving again.
3. Tips, Tricks, and FAQs (positional heatmaps)
- Are you visualizing all virtual position events captured? No, we are showing you the 50,000 most visited points in each scene. After internally testing a variety of values, we discovered that 50k points show an accurate depiction of your user's movement, while still being performant on most computers.
- What does the color mean? On the bottom left of the viewer, you will see the color spectrum we are using. The value to the left of the color spectrum identifies the number of position events represented by blue cubes. The value to the right of the color spectrum identifies the number of position events recorded at the most viewed area in the scene, represented as red in the heatmap.
- I am having trouble identifying clusters, data is all over the place, help? Try rounding down to 0.2 and change your cube size to 0.1. This should help identify clusters of users in your scene. Depending on your computer, this might take a little longer to render.
- All of my cubes are the same color, how can I change this? If your cubes are the same color, it is because there is most likely one or a few outlier points that heavily weigh the gradient towards one end of the color spectrum. These outlier points are usually in the form of a user's starting point when the scene loads. Try decreasing cube size so it is slightly less than your rounding value so you can better see each individual cube in the scene. With this new spacing, you may find cubes that were once hidden behind or below other cubes.
- What are you tracking to get a user's position? Each cube is a representation of HMD height at that given position.
4. Deleting Scenes From Your Dashboard
To delete uploaded scenes from your dashboard, go to the Settings page, then click on the "Scenes" tab, and click "Delete Scene" next to the scene you wish to delete.