Skip to content

Scenebestand (JSON) ​

Een scenebestand bevat één scene en al haar markers in één JSON-document. Gebruik het om een scene te back-uppen, twee versies te vergelijken, inhoud tussen scenes te verplaatsen, of een AI-assistent een scene te laten bewerken en terug te geven.

Het bestand wordt gecontroleerd met een gepubliceerd JSON Schema: https://voluma.ai/schemas/voluma-scene-v1.schema.json. Editors zoals VS Code gebruiken het voor aanvulling en foutcontrole tijdens het bewerken.

Exporteren ​

  1. Open de scene in Studio en kies Geavanceerd in de menubalk.
  2. Klik onderaan de scenebrowser op Opslaan als en open het tabblad Exporteren.
  3. Klik op Downloaden. Het bestand krijgt de naam van de scene, bijvoorbeeld lobby.voluma-scene.json.

De export bevat ook niet-opgeslagen wijzigingen, dus komt overeen met wat je in Studio ziet.

Importeren ​

  1. Open in Studio de scene die je wilt wijzigen, in de modus Geavanceerd.
  2. Klik onderaan de scenebrowser op Herstellen en open het tabblad Importeren.
  3. Klik op Bestand kiezen en selecteer een .voluma-scene.json-bestand.
  4. Controleer de samenvatting: hoeveel markers worden bijgewerkt, toegevoegd en verwijderd, en of de hoofdsplat verandert.
  5. Klik op Importeren. Het resultaat opent als niet-opgeslagen wijzigingen. Klik op Opslaan om het te bewaren, of op Herstellen om het ongedaan te maken.

Importeren vervangt de inhoud van de scene door het bestand:

  • Scene-instellingen, titel en hoofdsplat komen uit het bestand. Het adres, project en de eigenaar van de scene blijven gelijk.
  • Markers van deze scene die in het bestand staan, worden bijgewerkt.
  • Nieuwe markers, of markers uit een andere scene, worden toegevoegd met nieuwe id's. Verwijzingen ernaar gaan mee.
  • Opgeslagen markers die niet in het bestand staan, worden verwijderd zodra je opslaat.
  • Bezoekersmarkers worden nooit door een import verwijderd.

Opbouw van het bestand ​

json
{
  "$schema": "https://voluma.ai/schemas/voluma-scene-v1.schema.json",
  "format": "voluma.scene",
  "version": 1,
  "exportedAt": "2026-10-16T12:00:00.000Z",
  "generator": { "name": "voluma-web-app", "version": "1.32.0" },
  "scene": {
    "title": "Lobby",
    "mainSplat": { "url": "https://assets.example.com/lobby.sog" },
    "properties": {
      "controls": { "autoRotate": true, "autoRotateSpeed": 0.5 },
      "skyDome": { "image": "https://assets.example.com/sky.jpg" }
    }
  },
  "markers": [
    {
      "id": 101,
      "parentId": null,
      "order": 0,
      "title": "Reception",
      "private": false,
      "shape": {
        "geometry": "sphere",
        "position": { "x": 0, "y": 1.2, "z": -2 },
        "rotation": { "x": 0, "y": 0, "z": 0 },
        "scale": { "x": 0.3, "y": 0.3, "z": 0.3 },
        "color": "#ffffff"
      },
      "properties": {
        "schemaVersion": 2,
        "triggers": [
          {
            "on": "click",
            "sources": { "scene": true, "menu": true },
            "responses": [{ "type": "action", "action": { "type": "overlay", "html": "<h2>Reception</h2><p>Open 9:00 to 17:00.</p>" } }]
          }
        ]
      }
    }
  ]
}
VeldInhoud
scene.propertiesInstellingen voor de hele scene: camera en besturing, first person (fpv), XR, omgeving (bgColor, skyDome, fog, lights, groundPlane), markerstijl en lay-out, minikaart.
markers[].shapeMarkertype (geometry) en plaatsing. Posities zijn in meters, y wijst omhoog, rotaties zijn in radialen.
markers[].properties.triggersWanneer de marker reageert (hover, click, approach, leave, focus, unfocus) en wat hij dan doet, in volgorde.
markers[].properties.soundHet eigen geluid van de marker. Triggers bepalen wanneer het speelt.

Het schema beschrijft elk veld met betekenis en eenheid.

Regels voor bewerken ​

Volg deze regels als je een scenebestand zelf of met een AI-assistent bewerkt:

  • Laat format en version staan. Andere formaten en versies worden geweigerd.
  • Behoud de id van een marker die je wijzigt. Dan werkt de import hem bij in plaats van een kopie toe te voegen.
  • Geef een nieuwe marker een id die geen andere marker in het bestand gebruikt, bijvoorbeeld een groot getal. De import vervangt het door een echte id.
  • Verwijs naar markers met hun id. parentId, de marker_id van een actie en mediaTargetId moeten naar een marker in het bestand wijzen.
  • Haal een marker uit het bestand om hem te verwijderen. Hij verdwijnt als je na het importeren opslaat.
  • Laat velden die je niet kent ongemoeid. De import bewaart ze.
  • Gebruik getallen voor numerieke instellingen. Sommige oudere scenes slaan getallen op als tekst. De import accepteert beide, maar Studio schrijft getallen.

Assets zoals de hoofdsplat, afbeeldingen, video en audio staan er als URL in. Een scenebestand bevat de bestanden zelf niet.