fix(collision): terrain bbox proxy buried the whole street
The player never fell through - it stood on an invisible 8 m box. The imported Terrain_DEM carried only a bounding-box simple collision proxy, so every downward trace in the block hit Demo_Terrain_DEM at Z 819 (the mesh bbox max) and the road/sidewalk underneath were unreachable. The view from up there looked plausible, which is why it read as working. - add UGigLineAssetTools (C++): set complex-as-simple collision on a static mesh; UE 5.8 exposes ECollisionTraceFlag, not bUseComplexAsSimpleCollision, and Python cannot set it at all. - builder forces + saves the terrain asset as complex-as-simple (the flag lives on the asset, so saving only the .umap loses it). - spawn (-13336, -1150, 600): inside the carved corridor; lands on the road at Z 456 (feet 368 on road top 366). - HighResShot 1280x720, not "1280 720" (that is multiplier 1280). - keep SIM + single ground-probe diagnostics (TEMP QA).
This commit is contained in:
1 parent
2bab0fb0cd
commit
2bb1e74814
14 files changed
+157
-21
No files matched your search
@@ -6,6 +6,16 @@ Scope: facts and traps that cost time to establish. Planned work lives in [TODO.
|
||||
|
||||
---
|
||||
|
||||
## 2026-11-08 — The fall-through was an 8 m invisible box (QA branch)
|
||||
|
||||
- **Symptom:** player "spawned above ground but never fell", sat at Z 909, `fall=0`, `mode=1` (Walking), no fall-through, view looked plausible so it was mistaken for working.
|
||||
- **Cause:** `Terrain_DEM` had only a **bounding-box simple collision proxy** (Interchange default). A line trace down at *every* Y through the block hit `Demo_Terrain_DEM` at exactly **819** — the mesh bbox max Z. The whole street was under an invisible lid; the pawn stood on the box, 8 m above the road.
|
||||
- **Proof:** a debug `LineTraceSingleByChannel` profile at Y −1912…+1447 reported `top=819 actor=Demo_Terrain_DEM` for the entire street. After the fix it reports `Sidewalk_North 395`, `Road_Hollywood 366`, `Sidewalk_South 317`.
|
||||
- **Fix:** force complex-as-simple collision on the terrain. Python **cannot** set it (`StaticMesh`/`BodySetup` expose no such property; `dir()` shows only `lod_for_collision`). Added `UGigLineAssetTools::SetComplexCollisionAsSimple` in the C++ module (`BodySetup->CollisionTraceFlag = CTF_UseComplexAsSimple`, UE 5.8 no longer has `bUseComplexAsSimpleCollision`).
|
||||
- **Second gotcha:** the flag lives on the **asset**, not the map. Setting it in a builder session and saving only the `.umap` loses it — `EditorAssetLibrary.save_loaded_asset()` is required, otherwise the next run reloads the bbox proxy.
|
||||
- **Third gotcha:** `HighResShot 1280 720` means **multiplier 1280** (UE warns "the high resolution screenshot multiplier is too large for your system"). The correct form is `HighResShot 1280x720`.
|
||||
- Resulting spawn: `(-13336, -1150, 600)` — inside the carved corridor, lands on the road at Z 456 (feet 368 on road top 366).
|
||||
|
||||
## 2026-11-07 — Publication audit
|
||||
|
||||
- MPFB 2.0.18's installed `blender_manifest.toml` identifies its code as GPL-3.0-or-later; its versioned `LICENSE.md` explicitly puts bundled mesh, texture, and rig assets under CC0 1.0. The earlier CC0 claim for the add-on code was wrong.
|
||||
|
||||
Reference in new issue
Block a user