Fix venue-gallery viz pins that show no viz
Ride + corridor showed no corridor: with a room present the viz plays on its screens (radio/window/wall), so a dark model viz on the Ride's dash radio is invisible, and the shared rig was filming it through the room camera grammar meant for another world (directCamera rooms now keep the subject grammar + viz framing). Battery pins switched to combos that visibly read (Chamber + Kaleido, Stage + Assembly); scenario text states the visibility rule so a dead pin can't hide again.
This commit is contained in:
@@ -127,6 +127,11 @@ Actors and objects change only at camera cuts:
|
||||
- Model layers share one `Compositor` perspective/depth rig; shader depth
|
||||
stays faked. Venue rooms are furnished with the track's monolith body
|
||||
so the room reads as this track's place.
|
||||
- With a room present the viz plays ON its screens (window/wall/radio),
|
||||
never composited over it; model viz additionally stand in the shared
|
||||
world for shared-rig rooms. A `directCamera` room (ride) owns only its
|
||||
own rig — the shared rig keeps the subject grammar, or the viz is filmed
|
||||
through a room camera meant for another world and vanishes.
|
||||
|
||||
## 8. 3D on the same terms
|
||||
|
||||
|
||||
+11
-2
@@ -245,14 +245,23 @@ export class Show {
|
||||
// relocates only on story jumps and otherwise holds, while the viz
|
||||
// framing cuts at every shot. Feeding the viz framing to the room
|
||||
// is what threw it around at every section. See _venueFramingAt.
|
||||
const framing = hasVenue && this.look.venue
|
||||
// A venue that drives its own rig (directCamera) owns only its own
|
||||
// camera: the shared rig keeps filming the viz subjects with the
|
||||
// subject grammar and the viz's own framing. Sending a directCamera
|
||||
// room down the venue path films the viz through a room camera
|
||||
// grammar meant for another world — the subject vanishes. See
|
||||
// Compositor._updateVenueCamera.
|
||||
const venueForCamera = hasVenue && this.look.venue &&
|
||||
!(this.look.venue.module && this.look.venue.module.directCamera)
|
||||
? this.look.venue : null;
|
||||
const framing = venueForCamera
|
||||
? this.arc.venueFramingForFrame(timeline.frame)
|
||||
: this.arc.framingForFrame(timeline.frame);
|
||||
this.engine.compositor.updateSharedCamera({
|
||||
framing,
|
||||
personality: pers,
|
||||
time: timeline.time,
|
||||
venue: hasVenue && this.look.venue ? this.look.venue : null,
|
||||
venue: venueForCamera,
|
||||
journey: this.arc.state ? this.arc.state.journey : 0,
|
||||
// Continuous 0→1 across the video. The story journey travels in
|
||||
// held stages (right for narrative, wrong for a camera dolly —
|
||||
|
||||
@@ -109,11 +109,10 @@ export const SCENARIOS = [
|
||||
},
|
||||
{
|
||||
title: 'venue × viz pins',
|
||||
desc: 'One room, chosen viz behind it. The fastest way to review a venue change.',
|
||||
desc: 'One room, chosen viz in it: fragment viz play on the room\u2019s screen, model viz stand in the shared world. Combos picked so the viz actually reads — a dark or sparse viz on a small screen is invisible, which is how a dead pin hides. (Ride is excluded: its viz lives on the dash radio, too small to review here.)',
|
||||
links: [
|
||||
['Ride + corridor', `/venue-gallery.html${q({ venueSel: 'Ride', viz: 'Synthwave Corridor', rows: 2, cols: 3 })}`],
|
||||
['Chamber + swarm', `/venue-gallery.html${q({ venueSel: 'Chamber', viz: 'Swarm', rows: 2, cols: 3 })}`],
|
||||
['Stage + pylons', `/venue-gallery.html${q({ venueSel: 'Stage', viz: 'Pylon Field 3D', rows: 2, cols: 3 })}`],
|
||||
['Chamber + Kaleido', `/venue-gallery.html${q({ venueSel: 'Chamber', viz: 'Kaleido Tunnel', rows: 2, cols: 3 })}`],
|
||||
['Stage + Assembly', `/venue-gallery.html${q({ venueSel: 'Stage', viz: 'Assembly', rows: 2, cols: 3 })}`],
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user