Verifying Correct Scale of VR Graphics Objects
In regular games, scale is a convention. A sword can be longer or shorter — no one notices. In VR, the user stands next to objects. A table 90 cm high is perceived by the brain as "correct" or "too low" — because the person has interacted with real tables. A door frame of 1.9 m makes you instinctively duck. An object the size of a fist that looks head-sized in VR destroys perception.
We help VR project developers eliminate scale distortions that break immersion. A typical scenario: loading a scene from Blender, putting on the headset — and feeling "something is off." The floor is at the wrong height, the door frame seems narrow, even though metrics in the editor are correct. Our verification is not a subjective assessment but a systematic test of each asset for physical size compliance. The team has over 10 years in VR development and dozens of projects for major clients.
Proper scale calibration saves up to 30% of the revision budget — timely detection of Scale Factor errors eliminates rework before the build stage. Contact us for a consultation and assessment of your project.
How Unity Determines Scale for VR
Unity's basic rule for VR: 1 unit = 1 meter. This is not a recommendation — it's a requirement. If a scene was modeled in other units (centimeters, inches) and imported without conversion, all objects will be either gigantic or microscopic in VR.
A frequent source of problems is import from 3D editors. Blender works in meters by default, Autodesk Maya in centimeters. An FBX file from Maya without explicit unit specification ends up in Unity with a Scale Factor of 0.01 on ModelImporter. The object appears "correct" only if somewhere along the transform chain this factor is compensated. If not — it's either 100 times smaller than needed, or the developer manually sets Scale (100, 100, 100) on the GameObject, breaking physics calculations and NavMesh.
The correct approach when importing: in ModelImporter → Model → Scale Factor, set the value that brings the object to real meter dimensions. For Maya FBX this is usually 0.01. After that, verify: a human character should be 1.7–1.85 m from feet to top of head.
Why Reference Objects Are Critical for VR
For scale verification in VR, we use reference objects — meshes with known real-world sizes:
- Average adult height: 1.75 m (floor to top of head)
- Standard door frame: 2.0 m height, 0.9 m width
- Dining table: 0.75 m height
- Chair: 0.45 m seat height from floor
- Car (passenger): ~1.5 m height, 4.5 m length
- Brick: 25 × 12 × 6.5 cm
We create a ScaleVerificationScene with these reference objects and a floor plane. Each new or modified asset is placed next to the references in VR and visually verified. This takes 2–3 minutes per asset and eliminates the class of problems "looked fine in the editor, looks weird in VR."
VR Height Reference — a special tool in XR Interaction Toolkit Samples: a virtual mannequin with standard proportions placed in the scene for quick visual scale checking of interactive objects.
Hand Scale and Reachable Zone
In VR, the player's hands are part of the game geometry. If virtual hands are visually "short" compared to handles and buttons in the scene — the player reaches for an object but cannot touch it. Discomfort without an obvious cause.
Reachable zone: an average adult's arm extends 0.7–0.8 m from the shoulder. In VR, XRRig.cameraFloorOffsetObject determines the camera height above the floor. Interactive objects should be placed in the comfortable reach zone: 0.5–1.2 m height, no further than 0.6 m horizontally from the body center.
Test: every interactive object in the scene undergoes a reachability check. Method: in the editor, use Gizmos to draw a sphere of radius 0.7 m from XRRig.centerEyeAnchor — all interactive objects must at least partially intersect this sphere.
How to Automate Scale Checking
For projects with a large number of assets, manual verification is inefficient. We create an editor tool — an EditorWindow in Unity that:
- Collects all GameObjects with the tag Interactable or the XRBaseInteractable component.
- Checks their Bounds.size against predefined min/max for the object category (weapon: 0.15–1.5 m, furniture: 0.3–2.5 m).
- Outputs a list of objects that fall outside the normal range.
Thresholds are set in a ScriptableObject ScaleVerificationConfig. This does not replace visual VR checks but filters out obvious errors — accidental scale 0.01 or 100 on imported objects.
Additional check: ModelImporter for all FBX in the project — ensure no objects have scaleFactor != 1 after normalization. This is handled by an import post-processor (AssetPostprocessor.OnPreprocessModel) that logs or automatically corrects incorrect scale factor.
Automated scale checking is 10 times faster than manual: 0.2–0.5 minutes per asset instead of 2–5, while catching up to 90% of gross anomalies.
| Characteristic | Manual Check | Automated Check |
|---|---|---|
| Average time per asset | 2–5 minutes | 0.2–0.5 minutes |
| Gross error detection | Depends on attentiveness | Up to 90% anomalies |
| Repeatability | Low | 100% |
| Impact on physics and NavMesh | Not checked | Accounted for |
What the Work Includes
- Report with audit results of current asset state (Scale Factor, Bounds, reachable zones).
- Correction of Scale Factor for all imported models.
- Setup of reference scene ScaleVerificationScene with reference objects.
- Development of an editor tool for automatic scale checking.
- Consultation on further integration and support.
Example Import Post-Processor Code
using UnityEditor;
using UnityEngine;
public class ScaleFactorNormalizer : AssetPostprocessor
{
private void OnPreprocessModel()
{
ModelImporter importer = (ModelImporter)assetImporter;
if (importer.scaleFactor != 1f)
{
Debug.LogWarning($"FBX {assetPath} has scale factor {importer.scaleFactor}. Consider normalizing.");
}
}
}
Verification Process
| Stage | Content |
|---|---|
| Import settings audit | Check FBX Scale Factor for all assets |
| Verification with reference objects | Key assets next to human mannequin in VR |
| Automated editor tests | Script checking Bounds.size by category |
| Reachability test | Interactive objects in zone 0.5–1.2 m |
Estimated timelines: basic audit — 2–5 days, full verification of all assets for a large project — 2–4 weeks. Cost is calculated after evaluating the number of assets and scene complexity. Get a consultation for an accurate estimate.





