tags: [vr-ar]
Verification of object scale accuracy in VR graphics
In regular games scale is convention. Sword slightly longer or shorter — nobody notices. In VR user stands next to objects. Table 90 cm high perceived by brain as "correct" or "too low" — because humans have experience with real tables. Door opening 1.9 m makes user instinctively duck. Object "fist-sized" in game that looks head-sized in VR breaks perception.
Scale checking in VR is not "looked and seemed normal". It's measurement in Unity units against real physical dimensions.
Calibration: 1 Unity Unit = 1 meter
Basic rule for Unity VR: 1 unit = 1 meter. Not recommendation — requirement. If scene modeled in other units (centimeters, inches) and imported without recalculation, objects end up either gigantic or microscopic in VR.
Frequent problem source — 3D editor imports. Blender defaults to meters, Autodesk Maya to centimeters. FBX from Maya without explicit unit specification on export arrives in Unity with 0.01 Scale Factor on ModelImporter. Object "correctly" appears only if somewhere in transform chain this factor compensated. If not — it's either 100x smaller needed, or developer manually sets Scale (100, 100, 100) on GameObject, breaking physics and NavMesh.
Correct approach on import: in ModelImporter → Model → Scale Factor set value bringing object to real meter dimensions. For Maya FBX usually 0.01. After — verify: human character should be 1.7–1.85 m from feet to head.
Reference objects and VR Height Reference
For scale verification in VR use reference objects — reference meshes with known real dimensions:
- Average adult height: 1.75 m (floor to crown)
- Standard door opening: 2.0 m height, 0.9 m width
- Dining table: 0.75 m height
- Chair: 0.45 m seat from floor
- Vehicle (sedan): ~1.5 m height, 4.5 m length
- Brick: 25 × 12 × 6.5 cm
Create ScaleVerificationScene with these references and floor plane. Each new or modified asset placed next to references in VR and verified visually. Takes 2–3 minutes per asset, eliminates class of problems "looked correct in editor, strange in VR".
VR Height Reference — special tool in XR Interaction Toolkit Samples: virtual mannequin with standard proportions, placed in scene for quick visual scale check of interactive objects.
Hand scale and reachability zone
In VR player hands are part of game geometry. If virtual hands visually "short" compared to handles and buttons in scene — player reaches toward object but hand doesn't. Discomfort without obvious cause.
Reachability zone: adult hand extended 0.7–0.8 m from shoulder. In VR XRRig.cameraFloorOffsetObject determines camera height above floor. Interactive objects should place in comfort reachability: 0.5–1.2 m height, no farther than 0.6 m from body center horizontally.
Test: each interactive scene object gets reachability check. Method: in editor use Gizmos drawing sphere radius 0.7 m from XRRig.centerEyeAnchor — all interactive objects must intersect this sphere at least partially.
Scale checking automation
For projects with large asset count manual verification impractical. Write editor tool — EditorWindow in Unity — that:
- Gathers all
GameObjectwithInteractabletag orXRBaseInteractablecomponent - Checks their
Bounds.sizeagainst set min/max for object category (weapons: 0.15–1.5 m, furniture: 0.3–2.5 m) - Outputs list of objects exceeding norm
Thresholds set in ScriptableObject ScaleVerificationConfig. Doesn't replace visual check in VR, but filters obvious errors — accidental 0.01 or 100 scale on imported object.
Additional check: ModelImporter for all FBX in project — ensure no objects with scaleFactor != 1 after normalization. Solved by import post-processor (AssetPostprocessor.OnPreprocessModel) logging or auto-correcting wrong scale factor.
Verification process
| Stage | Content |
|---|---|
| Import settings audit | FBX Scale Factor check for all assets |
| Reference object verification | Key assets next to human mannequin in VR |
| Auto tests in editor | Script checking Bounds.size by categories |
| Reachability test | Interactive objects in 0.5–1.2 m zone |
Estimated timelines: basic audit — 2–5 days, full large project asset verification — 2–4 weeks. Cost calculated after estimating asset count and scene complexity.





