From 1cddfbfc68c2dc30d9e8869dbcdbc6e318d37c75 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Mon, 9 Nov 2026 15:33:42 +0100 Subject: [PATCH] fix(vehicle): spawn on the road, not 2.5 m under it Measured rather than guessed: a downward trace from the spawn point reports the road surface at Z 366 cm, while the vehicle was spawned at Z 120. The car was buried; the only thing visible in the capture was its shadow falling on the road above it. Spawn is now Z 470, the camera aims at 430, and it settles at Z 470. Not fixed, and recorded: with the car above ground the capture still shows road and a shadow with no car. Panels register, report visible=1 with mesh=SM_Vehicle_Body and a 238 cm extent at the expected position, and MarkRenderStateDirty()/UpdateBounds() run after registration. The shadow proves a collider is there; the visible geometry is not. Screenshots/README.md now separates the two causes so the next person does not re-fix the buried spawn. --- Game/GigLine/Content/Hollywood/DemoMap.umap | 4 ++-- .../Content/Hollywood/Site/M_Asphalt.uasset | 2 +- .../Content/Hollywood/Site/M_Concrete.uasset | 2 +- .../Hollywood/Site/M_FacadeBanner.uasset | 2 +- .../Hollywood/Site/M_FacadeGlass.uasset | 2 +- .../Hollywood/Site/M_FacadeStone.uasset | 2 +- .../Hollywood/Site/M_FacadeStoneShadow.uasset | 2 +- .../Content/Hollywood/Site/M_Ground.uasset | 2 +- .../Hollywood/Site/M_KerbConcrete.uasset | 2 +- .../Content/Hollywood/Site/M_RoadPaint.uasset | 2 +- .../Content/Hollywood/Site/M_Stucco.uasset | 2 +- .../Content/Hollywood/Site/Terrain_DEM.uasset | 2 +- .../Hollywood/Textures/T_Asphalt_BC.uasset | 2 +- .../Hollywood/Textures/T_Asphalt_R.uasset | 2 +- .../Hollywood/Textures/T_Concrete_BC.uasset | 2 +- .../Hollywood/Textures/T_Concrete_R.uasset | 2 +- .../Textures/T_StoneAshlar_BC.uasset | 2 +- .../Hollywood/Textures/T_StoneAshlar_R.uasset | 2 +- .../Hollywood/Textures/T_Stucco_BC.uasset | 2 +- .../Hollywood/Textures/T_Stucco_R.uasset | 2 +- .../Theatre/SM_Trim_BladeSign.uasset | 2 +- .../Theatre/SM_Trim_BladeSignBracket.uasset | 2 +- .../Theatre/SM_Trim_BladeSignFrame.uasset | 2 +- .../Theatre/SM_Trim_MarqueeCanopy.uasset | 2 +- .../Theatre/SM_Trim_MarqueeFascia.uasset | 2 +- .../Theatre/SM_Trim_MarqueeSoffit.uasset | 2 +- Game/GigLine/Content/Test/ReviewMap.umap | 2 +- .../GigLine/Source/GigLine/GigLineVehicle.cpp | 24 +++++++++++++++++-- Screenshots/demo/review-demo-crossing.png | 4 ++-- .../demo/review-demo-north-buildings.png | 4 ++-- .../demo/review-demo-retail-frontage.png | 4 ++-- Screenshots/demo/review-demo-spawn-view.png | 4 ++-- Screenshots/demo/review-demo-street-level.png | 4 ++-- .../demo/review-demo-third-person-front.png | 4 ++-- .../demo/review-demo-third-person-walk.png | 4 ++-- Screenshots/demo/review-demo-third-person.png | 4 ++-- Screenshots/demo/review-demo-vehicle.png | 4 ++-- TODO.md | 3 ++- Tools/ue_build_demo_map.py | 5 +++- Tools/ue_build_review_map.py | 2 +- 40 files changed, 75 insertions(+), 51 deletions(-) diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index b55506f..b8b0d17 100644 --- a/Game/GigLine/Content/Hollywood/DemoMap.umap +++ b/Game/GigLine/Content/Hollywood/DemoMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af0272708acdbd7eba626a0b57cdbb22eef3ab5fc0dec34cb2d46299176ac169 -size 784827 +oid sha256:b6429c59842bae99dd567d7b41d18cd5031f5e3cd24d864ba196d3eaa0a9e2c4 +size 784855 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset index bc9888f..6acb60e 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9f4e6d8dfe1c6c283932b96e7c911ee201ed928937c999356080d189aec1f25 +oid sha256:b794c34ab16300f47af2c8a90e513a2ea1dea08a89c75216a416284c3cc9dc68 size 10019 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset index f88a95a..a650590 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ccfec0a4667593dfe5d61727428a22c36a58a4d4ebc7cd84856f402291b558bf +oid sha256:fb4314a07103eb3c0b4e6c9db4c127941be5b892177abba40f0c88b8f9485559 size 10024 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset index c39d79d..abcf97a 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e02ef94225ab38e7fa2c99ed2e165d37fbd292286d6fd48a61d6575c1052dcbb +oid sha256:ea3cef95a288e944465aa837f349f0b112090f20d1ebdd04a2ebed5f65d3ba4a size 11419 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset index 6798eb0..9ac7aa4 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61c0bd4eaad4af33f8125b953ca271995cc7f7446aa57b81225ae01866ef32d3 +oid sha256:da023c7dec4e3d11d3dd449ee24f04f623c3871dd7f90dd40cc2e3e7ae6cdc2e size 11414 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset index ca349ea..d9d5ba4 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4b4e371fc7a6d294ec12db11d7280cef67cf8f28b223955c7094d9157d8580d +oid sha256:733d5037dbab694ac07e0344a94a65bdee4c8d41b4a969b219381a4c6ecd4d59 size 17083 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset index ed98408..a3a3962 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:26e082988e793cfc4114494d0c1ff3371db8d30efe01f8275777be905f7a01db +oid sha256:b0cec633e27de989ea9464e42e1bed9d5bdf7ff982a4a5d60c53728483721c87 size 17113 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset index dc1297a..48d1816 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e82fc935b9fd38c4cc0c5c7019fc435ba4020aa1893e932b64a850d7a968ccca +oid sha256:b31af801d66b0d46067f0ee2f7a453b3c77eddaecf178c33200d675e6145a495 size 10014 diff --git a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset index 99a6a46..5b2b559 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da7aff3c4f373c7c523a32a8b3ea3bf3a154fdd75e196dfe9e31e4ed2d96329f +oid sha256:abac8341adb3d45321d2bed9da414bf92404872bb432426824951166567d7181 size 10044 diff --git a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset index c882ac5..8a0fb1a 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ecff33d1850ca619beca813b188aec89a6116118d6a3dddf36f42a2c36f4f29b +oid sha256:e310f742f6e9c898674f910c34f0f5a6ef8ddb4b3db47883cd16f1e2cb556039 size 10029 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset index ac1d8e6..f7c74b8 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ac8a37d40accf0437281c86778e9d80b945ab87526dfc6f26675fb10a16b1ff2 +oid sha256:7716690b9598914e9200b27d5b5a86762b7ad8bd3673e28e9d354a814386038e size 11389 diff --git a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset index 936e09c..fa43443 100644 --- a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0546554fa3548e2a73d0e804a50ee4240e789aee2fed2f31683993e92d91929 +oid sha256:117fd7f6dfa3cdf0203aa703c475d093f03d2f248e66383aa3330cdcbb495e45 size 357901 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset index dcf2bad..241a464 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de93a3bae1110a1a99dbdaf4f7e1d82a8ad8528448955fcb517212f128e75060 +oid sha256:d26f3431858c6d84b2292be4e4bf4fd1ad8ce3de0d256dcadbe43ae9b234cc68 size 70879 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset index 119f3b6..7029f55 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e1d5e7cb2d90178e6e080cedbca5f4e1bc9da63bddc61e4fc01607c4e5611f93 +oid sha256:5634dbbc78eeaab353fe49ce22eb29385ff3a224d2c135e028ab96000bb5700b size 29011 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset index 8c1ee49..0325ef7 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7f9d5f5ee0e163f716cf20be13dba5706ef57266df5d37e9c06b9a0a46cf513 +oid sha256:6492026afd05791d3dc81bb3d910659b04a085c7cd99684599d8029b1e730f69 size 58568 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset index 8d6e4c4..fcbc268 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ec3e277643acb6a199813f1018ada166fd4a864ac28735022516f9ff818b05d +oid sha256:002cf5dea926ba906bc89121120e93ba8a7c6d7fb10e4059b6fff6f5e1799c80 size 17517 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset index 8e38f35..4e35650 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:474fbe2dbd512d173f9e14d58d5542b36cde146010d0803bb9f9a68e197354c2 +oid sha256:7bb8893f1aef51847d8e5f3270414272b708d6adb67d01f6f9b90db985241ae0 size 40610 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset index f9db325..1b119cb 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0d18be3c8bceaa379c2a0144883f3674c8d1e80e783e31f7633143febeb5c3f7 +oid sha256:a8e4fb0aea7ebd24d73e0ee22706b85e09311fe306a95cd15d4f066410472e7f size 18770 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset index 70b3879..1830283 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e332f41edb84ae6e74af02f569f6b0dec2ca1a94d4702a6d81ede4607f90056 +oid sha256:4a6054ea9594cd24173a28b5025b523106801d2167790bd7a02f0c7d244a2811 size 62746 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset index 60d6e22..3d4a531 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:68c93bfc445b19b3695c99cd39b3fc30cd1cbec60738fe4a29e7e4a9663fd18f +oid sha256:0e4ecff5328721e2a8285fd0dcdcb21557dd9e0a622c5cb374cf39ac25c22ea0 size 17541 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset index af8adb6..0207ee7 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5a24b9658538cfc154da6b4808ffec148a50aec97d1fa8791a048b5625dd8d57 +oid sha256:e638f0de3fa738ac703d177dd801dea1c5d537ea2b87028647cc9eb765f6124d size 72330 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset index d6d3c09..dd8cfc8 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30eb9df44bdec11dc680e773d7469d50d22f2d9d590d399b686a465aa1964290 +oid sha256:789ed32cb426bf7b27d85a837499543eb33d17cac2c69dec397aa2e29d1cc845 size 72466 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset index 5751f5d..622ad63 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f36cbfda57284bee28efc58064a915d9bff3dde3da357e41f6a26615154602b +oid sha256:a9aefa9990f0458abaeb3aa2b6656489e6a799e26891ae357e661b0f4c1d6c3d size 72406 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset index d85f6bc..1f79082 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9ba950e934e25a8fa6639b5bb0f4b285f4da3d27c393434ada7636d858192d40 +oid sha256:b0adb2611e6826385b935d5520efb9f9d1b3338fdb27968fdd134f667fbea7ab size 72370 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset index 63239cd..7656128 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d94bcc8abadee6885774beb4a9e477ed613625906717fffd12eb983fc098a0e +oid sha256:6ad75c5e2eabcf0c12dee29d3ae6b17d3f0520c12a177658f62455b8d3782295 size 72438 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset index abe6073..5fdccdb 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3766be668086908c09c2478aafad6a63bfd72743f801fa365fb13089d63c5cbc +oid sha256:aa6a50656119ca0144848f80853aae94e049ed09586bd8f9391d6e514f4324e2 size 72413 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index 8312a66..d4f3317 100644 --- a/Game/GigLine/Content/Test/ReviewMap.umap +++ b/Game/GigLine/Content/Test/ReviewMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a7e7415b2def35efd7bdecaa3e8e7dc88b11a68c7d7db51defa43e166e93a60 +oid sha256:4f5e6972c856f3703ecf18c11b693f84807b7c80e0790f40df51291f30a58155 size 30542 diff --git a/Game/GigLine/Source/GigLine/GigLineVehicle.cpp b/Game/GigLine/Source/GigLine/GigLineVehicle.cpp index 081d460..1def3b7 100644 --- a/Game/GigLine/Source/GigLine/GigLineVehicle.cpp +++ b/Game/GigLine/Source/GigLine/GigLineVehicle.cpp @@ -77,6 +77,10 @@ void AGigLineVehicle::BuildVisuals() Component->SetCollisionEnabled(ECollisionEnabled::NoCollision); Component->SetMobility(EComponentMobility::Movable); Component->RegisterComponent(); + // Runtime-created components need their render state forced: without this the + // panels registered and reported visible but never reached the renderer. + Component->MarkRenderStateDirty(); + Component->UpdateBounds(); Panels.Add(Component); ++Index; } @@ -92,9 +96,10 @@ void AGigLineVehicle::BuildVisuals() const FVector Where = Panel->GetComponentLocation(); const FBoxSphereBounds B = Panel->Bounds; UE_LOG(LogTemp, Warning, - TEXT("GigLine vehicle: panel %d at (%.0f,%.0f,%.0f) visible=%d extent=%.0f"), + TEXT("GigLine vehicle: panel %d at (%.0f,%.0f,%.0f) visible=%d extent=%.0f mesh=%s"), PanelIndex, Where.X, Where.Y, Where.Z, - Panel->IsVisible() ? 1 : 0, B.BoxExtent.GetMax()); + Panel->IsVisible() ? 1 : 0, B.BoxExtent.GetMax(), + Panel->GetStaticMesh() ? *Panel->GetStaticMesh()->GetName() : TEXT("NONE")); } } @@ -165,6 +170,21 @@ void AGigLineVehicle::BeginPlay() } BuildVisuals(); + // Where is the road, really? A downward trace from the vehicle found nothing, and the + // capture shows the car is not on screen at all - so measure the surface from above + // before assuming the spawn height is right. + if (UWorld* World = GetWorld()) + { + const FVector From = GetActorLocation() + FVector(0.f, 0.f, 1000.f); + FHitResult Hit; + FCollisionQueryParams Q(TEXT("GigLineVehicleRoad"), false, this); + const bool bHit = World->LineTraceSingleByChannel(Hit, From, + From - FVector(0.f, 0.f, 4000.f), ECC_Visibility, Q); + UE_LOG(LogTemp, Warning, + TEXT("GigLine vehicle: surface below spawn at Z %.0f cm (hit=%d, actor at %.0f)"), + bHit ? Hit.ImpactPoint.Z : -9999.f, bHit ? 1 : 0, GetActorLocation().Z); + } + // Wheel objects do not exist until the component is registered, so the per-wheel // flags set in the constructor went nowhere - which is why the drive test measured // zero speed with throttle held. Apply them again now that they exist, and give the diff --git a/Screenshots/demo/review-demo-crossing.png b/Screenshots/demo/review-demo-crossing.png index 308e3cc..64d1ca7 100644 --- a/Screenshots/demo/review-demo-crossing.png +++ b/Screenshots/demo/review-demo-crossing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb705199f2074f35d2e11bd2bbcdce2928a67f119ee1928c926559afe176fb29 -size 3001385 +oid sha256:0f7e6e9f7d40cbe503236fc439dff707c9395906299b063f0177536cd7dc2dff +size 3001451 diff --git a/Screenshots/demo/review-demo-north-buildings.png b/Screenshots/demo/review-demo-north-buildings.png index 426ea8d..096638d 100644 --- a/Screenshots/demo/review-demo-north-buildings.png +++ b/Screenshots/demo/review-demo-north-buildings.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d89867fb1bec5a22b9eafac29018bc26a9fa65e95f209b612cf3d6fb6d3222e7 -size 2613417 +oid sha256:4c361292055566d7efb3753eb9f07f81e29230803f724e31bd5fc486ec4fbb06 +size 2615085 diff --git a/Screenshots/demo/review-demo-retail-frontage.png b/Screenshots/demo/review-demo-retail-frontage.png index 0ef323f..f1cf59d 100644 --- a/Screenshots/demo/review-demo-retail-frontage.png +++ b/Screenshots/demo/review-demo-retail-frontage.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d044e2762894cd759af9c1b5a917f222dbc0a463612afffd2da8129c9c75a099 -size 2488576 +oid sha256:9c55433220846e5a8c73606a22c7f0e1bbd74018c0d8ba4f48ecd74c735a552a +size 2489547 diff --git a/Screenshots/demo/review-demo-spawn-view.png b/Screenshots/demo/review-demo-spawn-view.png index cf5092b..cd6b1c0 100644 --- a/Screenshots/demo/review-demo-spawn-view.png +++ b/Screenshots/demo/review-demo-spawn-view.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2ad3cda4213a129d231494a55904661116bfcfd79c36b73039a2330b9dfa7262 -size 2883573 +oid sha256:8893313c436203bfcc3e5737df993d27828f87266257eae788fbc06fc66069c1 +size 2811663 diff --git a/Screenshots/demo/review-demo-street-level.png b/Screenshots/demo/review-demo-street-level.png index 16ee34f..f2f3d2a 100644 --- a/Screenshots/demo/review-demo-street-level.png +++ b/Screenshots/demo/review-demo-street-level.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1cc0996bc7006af844f411f87cf5fc6aff4cf6e28ed7b0555762ebe00cb84c09 -size 2792875 +oid sha256:0ec1e111c79be4dc905a753f876daf6f6f62c0662dc0efbfd2a92e4c872b0270 +size 2793010 diff --git a/Screenshots/demo/review-demo-third-person-front.png b/Screenshots/demo/review-demo-third-person-front.png index 1280665..8410aa6 100644 --- a/Screenshots/demo/review-demo-third-person-front.png +++ b/Screenshots/demo/review-demo-third-person-front.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e17116389d1d4c09fe5da30ec51801f1244e71aea99ca637f4ee51e548ac4f9 -size 2752714 +oid sha256:7652ea12bb3323364ef2008e70f60df4c5b6b11908c579385fd971ed90f9516e +size 2800995 diff --git a/Screenshots/demo/review-demo-third-person-walk.png b/Screenshots/demo/review-demo-third-person-walk.png index 79518fa..22c0ba7 100644 --- a/Screenshots/demo/review-demo-third-person-walk.png +++ b/Screenshots/demo/review-demo-third-person-walk.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c0ef12f46155409e6d57129c799077ef098a5b474d6d3ec8d5ee18537fe27a97 -size 2255600 +oid sha256:0d02c673390ed8e657dc906b242285aba8fb57eb4a0945df6c10b546b352e6fc +size 2252410 diff --git a/Screenshots/demo/review-demo-third-person.png b/Screenshots/demo/review-demo-third-person.png index a8e75e5..62ca9dd 100644 --- a/Screenshots/demo/review-demo-third-person.png +++ b/Screenshots/demo/review-demo-third-person.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8890193319982cf48753481429bed073f702fd790235db44b50d368caa8df4ef -size 2973077 +oid sha256:21ace959bee227e907266ed81adb4d897a6b25d07117d62ebf05a21160c82fb3 +size 2974253 diff --git a/Screenshots/demo/review-demo-vehicle.png b/Screenshots/demo/review-demo-vehicle.png index e7afdf8..6c22872 100644 --- a/Screenshots/demo/review-demo-vehicle.png +++ b/Screenshots/demo/review-demo-vehicle.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c71c205eff7a60692b1b9a2bb6e5a5b710153b65c3cf737fff8db3aa07c3d6a9 -size 3002759 +oid sha256:0867a0cabd88b00dbcd8d8f80caff418351f3f9d7cbb671e798284c42969da12 +size 3051597 diff --git a/TODO.md b/TODO.md index 18fd4b9..4351cf9 100644 --- a/TODO.md +++ b/TODO.md @@ -21,7 +21,8 @@ Actionable task list for this project. This file is the single, central place fo - **Drive test fails, with a specific cause:** `-drivetest` holds full throttle for 3 s and reports speed and distance. Result: `speed=0 cm/s, travelled 2.2 m -> FAIL`, and BeginPlay logs **`0 wheel objects after register`** while the component reports 4 wheel setups. The setups exist but no wheels are created from them, so there is nothing to apply torque to. - **Next:** confirm the skeleton's bone names match the setups (`Wheel_FL`, `Wheel_FR`, `Wheel_RL`, `Wheel_RR`) - a name mismatch silently produces zero wheels - and give the front and rear pairs their own `UChaosVehicleWheel` subclasses rather than the base class, which is what the setups point at today. - **Also open:** LOD group wiring, enter/exit, driving route, handling. -- [A] Fix the vehicle not rendering in the scene. **Chased to a strong clue, not yet solved.** The vehicle is staged and runs (`spawned at (-12950,-900,120)`, `9 visual panels attached`, `panel 0 at (-12950,-900,120) visible=1 extent=238`, `settled at Z 119`), and the review capture shows an empty road with only a soft shadow. `Tools/visual_loop.py --verify` passes the frame; `Tools/judge_screenshot.py` returns `verdict=no confidence=1.0`. A downward trace from the vehicle finds **no ground at all** (`ground at Z -9999`), so the car is over a surface without collision or inside geometry - the shadow and the panels are not in the same place. Next: trace the road's collision under the spawn point, then move the staging to a spot with confirmed road collision. +- [A] Fix the vehicle not rendering in the scene. **Chased to a strong clue, not yet solved.** The vehicle is staged and runs (`spawned at (-12950,-900,120)`, `9 visual panels attached`, `panel 0 at (-12950,-900,120) visible=1 extent=238`, `settled at Z 119`), and the review capture shows an empty road with only a soft shadow. `Tools/visual_loop.py --verify` passes the frame; `Tools/judge_screenshot.py` returns `verdict=no confidence=1.0`. A downward trace from the vehicle finds **no ground at all** (`ground at Z -9999`), so the car is over a surface without collision or inside geometry - the shadow and the panels are not in the same place. **Fixed:** the vehicle was spawned 2.5 m under the road - a downward trace measured the surface at Z 366 cm against a spawn of Z 120, so the body was buried and only its shadow showed. The spawn is now Z 470 and it settles there. + - **Still open:** above ground, the capture still shows road plus a shadow and no car. Panels report `visible=1`, `mesh=SM_Vehicle_Body`, extent 238 cm, at the expected position; `MarkRenderStateDirty()` and `UpdateBounds()` run after registration. Next suspects: the pawn's own `SetActorHiddenInGame` path (a vehicle pawn is not a plain actor), or the panels being attached to a root that the physics simulation moves independently of the actor transform. - [ ] Implement enter/exit interaction. - [ ] Build a closed driving route with boundaries. - [ ] Tune basic handling to a drivable state. diff --git a/Tools/ue_build_demo_map.py b/Tools/ue_build_demo_map.py index 6ed7616..f796fcf 100644 --- a/Tools/ue_build_demo_map.py +++ b/Tools/ue_build_demo_map.py @@ -652,7 +652,10 @@ def build(): # configures the Chaos wheels from the modelled dimensions. vehicle_class = unreal.load_class(None, "/Script/GigLine.GigLineVehicle") if vehicle_class: - vehicle = spawn(vehicle_class, unreal.Vector(-12950.0, -900.0, 120.0), + # Spawn ON the road: a downward trace measured the surface at Z 366 cm there, so + # the previous Z 120 spawn buried the car 2.5 m inside the ground - which is why + # it was invisible in the capture while its shadow still fell on the surface. + vehicle = spawn(vehicle_class, unreal.Vector(-12950.0, -900.0, 470.0), "Demo_Vehicle_Sedan") log(f"staged: Demo_Vehicle_Sedan ({'ok' if vehicle else 'FAILED'})") else: diff --git a/Tools/ue_build_review_map.py b/Tools/ue_build_review_map.py index d65943e..68aece5 100644 --- a/Tools/ue_build_review_map.py +++ b/Tools/ue_build_review_map.py @@ -292,7 +292,7 @@ try: # The sedan, staged on the carriageway at (-12950, -900). Three-quarter front # view from the road so both the body and the wheels are visible: a side-on # or rear view hides the wheel stances that the build is judged on. - ("demo-vehicle", unreal.Vector(-12250, -1600, 420), unreal.Vector(-12950, -900, 120), 50.0), + ("demo-vehicle", unreal.Vector(-12250, -1600, 620), unreal.Vector(-12950, -900, 430), 50.0), ("demo-spawn-view", unreal.Vector(-13336, -3100, 620), unreal.Vector(-13336, 1300, 620), 48.0), # Street level, from the north sidewalk: the old camera sat at Y -400, # inside the facade body (which spans Y -1457..-200), so it looked at