storysplat-viewer 2.7.13 → 2.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo/embedding-guide.html +50 -2
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/storysplat-viewer.bundled.umd.js +1 -1
- package/dist/storysplat-viewer.bundled.umd.js.map +1 -1
- package/dist/storysplat-viewer.umd.js +1 -1
- package/dist/storysplat-viewer.umd.js.map +1 -1
- package/dist/types/types/index.d.ts +14 -4
- package/package.json +1 -1
|
@@ -1300,7 +1300,7 @@ viewer.<span class="hl-fn">on</span>(<span class="hl-str">'waypointChange'</span
|
|
|
1300
1300
|
<tr><td><code>viewer.play()</code></td><td>Auto-play through waypoints</td></tr>
|
|
1301
1301
|
<tr><td><code>viewer.pause()</code></td><td>Pause auto-play</td></tr>
|
|
1302
1302
|
<tr><td><code>viewer.nextWaypoint()</code></td><td>Go to the next waypoint</td></tr>
|
|
1303
|
-
<tr><td><code>viewer.
|
|
1303
|
+
<tr><td><code>viewer.prevWaypoint()</code></td><td>Go to the previous waypoint</td></tr>
|
|
1304
1304
|
<tr><td><code>viewer.goToWaypoint(n)</code></td><td>Jump to waypoint #n (0-indexed)</td></tr>
|
|
1305
1305
|
<tr><td><code>viewer.destroy()</code></td><td>Clean up the viewer (call on unmount!)</td></tr>
|
|
1306
1306
|
</table>
|
|
@@ -1382,7 +1382,12 @@ viewer.<span class="hl-fn">on</span>(<span class="hl-str">'waypointChange'</span
|
|
|
1382
1382
|
scene.json <-- Scene configuration
|
|
1383
1383
|
*.ksplat <-- 3D model file(s)
|
|
1384
1384
|
lod/ <-- Streaming data (if applicable)
|
|
1385
|
-
assets/ <-- Images, videos, audio
|
|
1385
|
+
assets/ <-- Images, videos, audio
|
|
1386
|
+
other-scene/ <-- Additional scenes (if portals are used)
|
|
1387
|
+
scene.json
|
|
1388
|
+
*.ksplat
|
|
1389
|
+
lod/
|
|
1390
|
+
assets/</pre>
|
|
1386
1391
|
</div>
|
|
1387
1392
|
</div>
|
|
1388
1393
|
|
|
@@ -1480,6 +1485,49 @@ viewer.<span class="hl-fn">play</span>();
|
|
|
1480
1485
|
viewer.<span class="hl-fn">on</span>(<span class="hl-str">'ready'</span>, () => console.log(<span class="hl-str">'Loaded from local files!'</span>));</pre>
|
|
1481
1486
|
</div>
|
|
1482
1487
|
</div>
|
|
1488
|
+
|
|
1489
|
+
<!-- portal handling sub-section -->
|
|
1490
|
+
<div class="collapsible-header" onclick="toggleCollapsible(this)">
|
|
1491
|
+
<span class="chevron">▶</span>
|
|
1492
|
+
<strong>Handling Portals in Multi-Scene Exports</strong>
|
|
1493
|
+
</div>
|
|
1494
|
+
<div class="collapsible-body">
|
|
1495
|
+
<p>If your scene uses <strong>portals</strong> (links to other scenes), the self-hosted export automatically bundles all linked scenes. Each portal-linked scene gets its own folder:</p>
|
|
1496
|
+
<div class="code-block">
|
|
1497
|
+
<div class="code-header"><span>Multi-scene folder structure</span></div>
|
|
1498
|
+
<pre>scenes/
|
|
1499
|
+
main-scene/
|
|
1500
|
+
scene.json
|
|
1501
|
+
*.ksplat
|
|
1502
|
+
linked-scene-a/
|
|
1503
|
+
scene.json
|
|
1504
|
+
*.ksplat
|
|
1505
|
+
linked-scene-b/
|
|
1506
|
+
scene.json
|
|
1507
|
+
*.ksplat</pre>
|
|
1508
|
+
</div>
|
|
1509
|
+
<p>The generated <code>index.html</code> handles portal navigation automatically. If you're building your own integration, listen for the <code>portalActivated</code> event and load the target scene:</p>
|
|
1510
|
+
<div class="code-block">
|
|
1511
|
+
<div class="code-header"><span>Portal handling</span><button class="copy-btn" onclick="copyCode(this)">Copy</button></div>
|
|
1512
|
+
<pre><span class="hl-kw">let</span> viewer = <span class="hl-fn">createViewer</span>(container, initialSceneData);
|
|
1513
|
+
|
|
1514
|
+
<span class="hl-kw">function</span> <span class="hl-fn">handlePortal</span>(data) {
|
|
1515
|
+
<span class="hl-comment">// data.targetSceneId matches a folder name under scenes/</span>
|
|
1516
|
+
<span class="hl-fn">fetch</span>(<span class="hl-str">`./scenes/${data.targetSceneId}/scene.json`</span>)
|
|
1517
|
+
.then(<span class="hl-kw">function</span>(r) { <span class="hl-kw">return</span> r.json(); })
|
|
1518
|
+
.then(<span class="hl-kw">function</span>(sceneData) {
|
|
1519
|
+
viewer.<span class="hl-fn">destroy</span>();
|
|
1520
|
+
viewer = <span class="hl-fn">createViewer</span>(container, sceneData);
|
|
1521
|
+
viewer.<span class="hl-fn">on</span>(<span class="hl-str">'portalActivated'</span>, handlePortal);
|
|
1522
|
+
});
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
viewer.<span class="hl-fn">on</span>(<span class="hl-str">'portalActivated'</span>, handlePortal);</pre>
|
|
1526
|
+
</div>
|
|
1527
|
+
<div class="callout">
|
|
1528
|
+
<strong>Tip:</strong> The exported <code>index.html</code> already includes this logic with a <code>SCENE_FOLDERS</code> mapping. You only need custom portal handling if you're building your own page.
|
|
1529
|
+
</div>
|
|
1530
|
+
</div>
|
|
1483
1531
|
</div>
|
|
1484
1532
|
|
|
1485
1533
|
<div class="pros-cons">
|