Skip to content

Godzilla (Sega 1998)

Active build covering full lifecycle: asset scanning, 3D modeling, Blender toolkit baking, scripting, VR integration, testing, and maintenance.

Build Notes

Playfield Scanning

Playfield scans should be saved as TIFF at 600 DPI for best reproduction quality. PNG at 300 DPI is acceptable but TIFF preserves more data. Insert layers should be separated (frosted vs clear).

Dimensions: 45 x 20.25 inches (confirmed via physical measurement).

3D Scanning with Polycam

Polycam app on iPhone XR (or higher) produces usable 3D scans of pinball toys. Technique: use a paint brush extender to rotate the object rather than walking around it (ensures even lighting). Lazy Susan turntable works for smaller items.

Full playfield scan via Polycam useful as reference overlay in Blender for verifying ramp heights, angles, and flasher positions.

Blender Toolkit Workflow

Batch render times:

  • 1k samples: ~1.5 hours
  • 2k samples: ~2.5 hours
  • 4k samples: ~10 hours

NoExp prefix on objects that don't need export reduces file size by ~70MB. Always bake from active camera.

Scripting

Room Brightness Control

Complete VBScript for room brightness control using SetRoomBrightness with material color modulation. Save original material base colors, then scale RGB values by brightness level (0-1). Must include all bakemap materials in array (VLM.Bake.Active, VLM.Bake.Solid). Custom materials (e.g., ramp) must be added with corresponding zero entry.

SSF Shaker Motor

Use SolCallback(6) or SolModCallback(6) to capture shaker events. Godzilla uses binary (0/1) shaker values. The shaker fires frequently (plunge, target hits, etc. - "Rumble of Godzilla" feature). SSF implementation has 3 intensity levels. For DOF: recommended adjustment S6 m50 I16 for gentle pulse.

PinMame 3.6 Physics Output

Set UseVPMModSol = 2. PWM signals from core.vbs are now float 0..1 range (not 0..255). Light fader must be set to "None" (can be done from script via Fader property). PWM solmask initializers can be kept but are deprecated.

GI relay sounds need threshold logic (play "on" when state > 0.75, play "off" when state < 0.25) to avoid excessive triggering with modulated output.

3D & Art

Insert Light Setup (Two-Light Method)

Insert setup uses two lights in Blender:

  1. Bottom light: Circular or rectangular plane depending on insert shape
  2. Top light: Spherical light for PF surface spread/bloom

Only needs to look correct from camera POV since it will be baked. Play with blackbody temperature and edge sharpness values for realistic appearance.

Insert Depth Fix for VR

Insert cups were too deep, causing visible "holes" when viewed from angles in VR. Fix: reduce cup depth to ~0.08-0.1 inches (matching real insert plastic depth, not full playfield wood depth). Additionally, add inverted camera ray in insert wood alpha for better edge appearance.

Ramp Transparency and Refraction

Transparent ramps need:

  1. Correct VPX material assignment
  2. Refraction render probe assigned
  3. NoExp prefix on ramp objects in Blender to prevent export as solid

Ramp dirt/scratches can be added as overlapping primitive with its own texture. POV-dependent projected textures look better but break from non-standard angles.

Flasher Dome Temperature Tinting

Temperature tint effect on flasher domes simulates the orange/red heating effect visible when flasher bulbs warm up and cool down. Creates longer cool-down period with warmer color shift.

Troubleshooting

VR Playfield Ghosting

Symptom: Playfield ghosting in VR (two playfields not aligned, visible during head movement).

Fix: Set playfield reflection probe roughness to 0. Only visible in VR headset, not in preview windows.

Bakemap Side Rails

Exporting, modifying, and reimporting bakemap primitives accumulates numerical vertex position errors causing z-fighting with associated lightmaps. Side rails and lockdown bars must be kept as separate objects in Blender BEFORE baking.

Ball Stuck on Ramp

When balls get stuck in ramp dimples/flat spots, add check in ball rolling sub using InRect and z-height bounds. If ball velocity below threshold within stuck zone, give gentle push: gBOT(b).velx = gBOT(b).velx + 0.1.

Game Knowledge

Wizard Mode Strategy

The "real" wizard mode is to stack all 5 multiballs BEFORE hitting the multiball start lane (uncommon strategy of deliberately avoiding a shot). Completing "Save NY" this way puts your name in a special scoreboard section. Achieving this 5 times consecutively earns "King of the Monsters" status.

ROM Options

ROM options menu includes gameplay adjustments: magnet behavior settings, skill shot configuration (auto-catch vs. pass-through). Default setting passes ball through left orbit; "always catch" setting eliminates left orbit > right ramp spam but also prevents easy extra ball access.

Resources