From dbb177da6fa9b3b30ad6a122affce4cc5c68a800 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Mon, 9 Nov 2026 12:18:22 +0100 Subject: [PATCH] =?UTF-8?q?feat(walk):=20the=20stride=20is=20captured=20?= =?UTF-8?q?=E2=80=94=20walking=20shot=208,=20traversal=20check=20closed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Shot 8 shows the body mid-stride in profile: legs apart, arms counter-swinging. The traversal release check for 0.2.0 is closed with that evidence. The reason earlier attempts froze on one pose was not the clip. A probe of the single-node instance showed the clip advancing normally (assetTime 0.19 -> 1.03, rate 1.0, playing) while the pawn's speed stayed 0 and the clip stayed Idle: the call that enables walking sat in the shot sequencer's BeginPlay, which runs before the player pawn exists, so the cast found nothing and silently did nothing. Moved into the per-frame follow update, the same run logs walk=1 speed=28 clip=GigLine_Walk and the stride appears. Also: the walk expectation was missing from visual_targets.json after the earlier retirement, so --verify was checking 7 shots while 8 were captured. Restored; 8/8 verify. --- Game/GigLine/Content/Hollywood/DemoMap.umap | 4 ++-- .../Content/Hollywood/Site/M_Asphalt.uasset | 2 +- .../Content/Hollywood/Site/M_Concrete.uasset | 2 +- .../Content/Hollywood/Site/M_FacadeBanner.uasset | 2 +- .../Content/Hollywood/Site/M_FacadeGlass.uasset | 2 +- .../Content/Hollywood/Site/M_FacadeStone.uasset | 2 +- .../Hollywood/Site/M_FacadeStoneShadow.uasset | 2 +- .../Content/Hollywood/Site/M_Ground.uasset | 2 +- .../Content/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 +- .../Content/Hollywood/Textures/T_Asphalt_R.uasset | 2 +- .../Hollywood/Textures/T_Concrete_BC.uasset | 2 +- .../Hollywood/Textures/T_Concrete_R.uasset | 2 +- .../Hollywood/Textures/T_StoneAshlar_BC.uasset | 2 +- .../Hollywood/Textures/T_StoneAshlar_R.uasset | 2 +- .../Content/Hollywood/Textures/T_Stucco_BC.uasset | 2 +- .../Content/Hollywood/Textures/T_Stucco_R.uasset | 2 +- .../Hollywood/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 +- Game/GigLine/Source/GigLine/GigLineCharacter.cpp | 2 ++ Game/GigLine/Source/GigLine/GigLineShotActor.cpp | 9 ++++++++- Screenshots/README.md | 15 +++++++++++++++ Screenshots/demo/review-demo-crossing.png | 4 ++-- Screenshots/demo/review-demo-north-buildings.png | 4 ++-- Screenshots/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 | 3 +++ Screenshots/demo/review-demo-third-person.png | 4 ++-- TODO.md | 2 +- Tools/ue_build_review_map.py | 3 ++- Tools/visual_targets.json | 12 ++++++++++++ 41 files changed, 85 insertions(+), 45 deletions(-) create mode 100644 Screenshots/demo/review-demo-third-person-walk.png diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index b04227e..42ee53d 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:cb4094442c9e60f7a76e71e96aa29728a5aa0a2d51e28859b13a7a0b6edd2291 -size 782111 +oid sha256:3be33e0d4ba94f1d7ed213bcb15163704b164824be9100a0a3a5ec14ffaef9b2 +size 782209 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset index 81b9e73..75fa5a3 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:80d9e8cf3158e3709d5f0f1c2a84f6e644ba5fc40dafa3c5338d4b2f43ff80fe +oid sha256:3521abf63c4f31ca914fa1413795bf51375e5b786bb3780d5bcae3713a8535b5 size 10019 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset index acf4eb4..e0e8027 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:a6842bbdba9bb44866052d98d5fd574862c525732c54a274596b1294dc7d0cf6 +oid sha256:9246e2950b272703343c53f3ee12dc6fcd21ec6af7521e4f5dc582fcd6608812 size 10024 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset index e1a016c..87c925b 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:0ef7914831df4b80ec1bbafddc0088310471724fc36c8ead9dbaa38ba3f7db93 +oid sha256:ec38ee77c58094e6e034b3122ad592ada23908b9575060697e3a3f07f48344f6 size 11419 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset index 15a1cf8..c0e33ed 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:6e0837aa328c8ac96ae170de1ed3fe6909a2bd5129262995c58a7359ddf5efcd +oid sha256:e23a094a8ff0d006bcba21d79cf274caed457590c4800789b282bf173fae58c2 size 11414 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset index 997c9b7..d22f6ab 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:cf2884759e1e6c9e61b9dcde6ed10485564a8b2da68d3ecf7d3e76adedfa1854 +oid sha256:1eb21168267102b2c06957bf751424edb6b06c66d89fa11b28b18d6592eec2ef size 17083 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset index 5956954..70fa6b2 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:ba6d6410ecafd2fa01c7a98b037de2f1239cd400276c83109c99e9ca6adb6e13 +oid sha256:ea85b2d31f6041939ab8f53ef7e6eb9f051b5aa2a6d4a7f1880c466bd888f868 size 17113 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset index 657339d..fdf82ba 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:e142f5abfab2ca4cfbcc56ff3761126f276340ec2b1802bfbf12fc9d78585e06 +oid sha256:d3fcb60a888269d60f555666b379ebe28e9dd8d56c6f39fbb21d65bee4f8bea5 size 10014 diff --git a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset index 4a3c2ba..7cb9f27 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:bf649277e88c74743d93d10d8159d33ab21a2a23661b518b8e4474951ed4affd +oid sha256:7f6e0532d263a129bac49d00773b40249a8064a64fec2903331166693f67cd75 size 10044 diff --git a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset index 0cbc059..6437661 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:797ee9f2428b11b5410bd09fafc3a5ab1305c1186c3851b1d68524717dc4c8e7 +oid sha256:8467bc2b878d4f7ab2066ec44b3abf60054e5cdce8cd00897d34f068a3c0b56b size 10029 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset index 167f099..0df5352 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:a3cbc1a4861bdc40c0c59b016ee509e620871c0546b721dab48fa846ef4da845 +oid sha256:f3f0cb14258bcd52fab006211f3df06aa87927f733e32782ce18283d580c00f7 size 11389 diff --git a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset index cb5184a..f553c28 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:c700b244a938032f611b34f3200f3ce8db4d3fb165b99276cc427879549a0f3d +oid sha256:13e44fe088260e3e19c81c0100e7b617bdcec1a014fa8e296f7dc9dac5193d94 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 e7508e3..dfe9dd8 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:acbdeb2cd8d728e23d9e9ebddde1c252b82fecde6556f503e36bed03fc39c802 +oid sha256:7e3cb9a8ee900440bfbe64ad1395f4badbc47518829ed52b8acb2f6444715f96 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 8473fda..0094e0f 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:bfe8a51858fdb1d53a4b1fe5d012d263b51d8da815f06fdb8b7f6a5192d19b91 +oid sha256:c8d6d5b498b79f40c71e3908e4415c62e2f2e7ddb84485e66e6fc392afb1f992 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 6aaa08b..0d90f03 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:7ebd565c34f058d95ec1cf09bd382990a23c24e055928a61518720871ea8ed61 +oid sha256:e99725a8f13720aea9b27bd8530148fbeaa795122d59e0c4cc084851c6ef49e3 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 6de55aa..6826dfa 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:373317a6707dc261daaa6b16d05e23ad2ccb9c59385c32a153caf47a10c58a70 +oid sha256:375306910ce00117f53c80044c32dde93d811e2f74ad4671743b49c2d4e7208b 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 66a08a7..44427b5 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:0ec77ea90b3ee38137d313599562180b49071e810f430033a248ee8c90c0b5bc +oid sha256:04d43693f33376622fa26813c7525356266e511e142ac57cfc5c90dd769ddd36 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 b098a34..c5e298c 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:9e336de25f87767e4d49f46afd379ed052a0d2297f32f2f8339397124f63114f +oid sha256:44f679fb484a73afbf35e40bd1880e20ffdd0906b84cd08aa40c0751369d2a7f 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 5546cce..408670c 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:72418f0a7099d7c7b7ba5f7fae0e4f1660a2cb61dd53619307a0c3a14b77b562 +oid sha256:629627e08cc91cf7cf386f499ca3d767eca2af5e19e1b9221417e67c5a47e0fe 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 1436a9d..79a62a3 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:082946148316f265020b2bd5e7bc508162c20ba8518de881de28fbfd876926c3 +oid sha256:1a3556950ecd5b448a658cbd1d678f92db3841f85de931214f47554d596f9647 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 910e815..77f69f5 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:0719fbbe2553d3749800b3bf0f991e8308dfa87cd613d8d820e8d1fd320412ce +oid sha256:7d71d04ff50416c4f31d886985121d7b66a0c80f26746a5f5534df2fdcf97dd4 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 69c9f50..33e5bd2 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:4720a95102c55c887644959a344dc95ad29ed29a8b87a18f55574a1efd6e4170 +oid sha256:a4e8d202b634a999c06c0f164468d2bbdc251318411b1905e7aa752065ae6e4a 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 aa3fd01..173776b 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:15e4e1e2c928535a05cc8eada728a0ed26b69dfa9c8ead220b62bad44e964ce5 +oid sha256:770f72bf65cf68e312cb0ab3f0aee9c5417ad38bdfd61f97cd43a64b757413dd 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 c691bee..999b6bb 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:4278c238b7d539198fb31717bec238df312b503119debf809495a83d3eb6cac8 +oid sha256:cdc90b4d6eca9c09e1c0e2a1e1f94fbb67e74e2a1a06cb3553966fbbc713ecde 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 bc4ebc9..5a2f91c 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:b17405bd29e201ee355e1402e61a5bba2b9d4c6d55b669efbe5fb42270fe21bb +oid sha256:c8125b5596c500f10ca72fe9120f7a984bd47797233759b3227fd1a93660f9f9 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 65ca8f3..0951c95 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:fc4acc9ee44f5302e066ff602df693898f1da8983193ac6bfdaf55e3081fdc87 +oid sha256:4f174767b6e1c0159482e0f068a8abde6fb353041769173d83956840fb297f27 size 72413 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index 9b6795f..98d5b9a 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:e23b869c33bf58e5dfffbf90946fd76147745a56742db75c324ffb52835413f2 +oid sha256:701b724662820925bf0155a75cb9821019e1ec793f6ea53fa4d95ab5326a5ee2 size 29389 diff --git a/Game/GigLine/Source/GigLine/GigLineCharacter.cpp b/Game/GigLine/Source/GigLine/GigLineCharacter.cpp index 12fb9a0..e21a47e 100644 --- a/Game/GigLine/Source/GigLine/GigLineCharacter.cpp +++ b/Game/GigLine/Source/GigLine/GigLineCharacter.cpp @@ -1,6 +1,7 @@ #include "GigLineCharacter.h" #include "Animation/AnimSequence.h" +#include "Animation/AnimSingleNodeInstance.h" #include "Camera/CameraComponent.h" #include "Components/SkeletalMeshComponent.h" #include "GameFramework/SpringArmComponent.h" @@ -752,6 +753,7 @@ void AGigLineCharacter::Tick(float DeltaSeconds) WalkForever(); UpdateBodyAnimation(); + } void AGigLineCharacter::ToggleCamera() diff --git a/Game/GigLine/Source/GigLine/GigLineShotActor.cpp b/Game/GigLine/Source/GigLine/GigLineShotActor.cpp index f146cb7..0d67473 100644 --- a/Game/GigLine/Source/GigLine/GigLineShotActor.cpp +++ b/Game/GigLine/Source/GigLine/GigLineShotActor.cpp @@ -81,11 +81,18 @@ void AGigLineShotActor::UpdateFollowCamera() { return; } - const APawn* Pawn = UGameplayStatics::GetPlayerPawn(this, 0); + APawn* Pawn = UGameplayStatics::GetPlayerPawn(this, 0); if (!Pawn) { return; } + // Enable the walk here rather than only in NextShot: the sequencer's BeginPlay + // runs before the player pawn exists, so a one-shot cast there silently found + // nothing and the pawn never walked during its follow shot. + if (AGigLineCharacter* Character = Cast(Pawn)) + { + Character->SetReviewWalk(true); + } // Offset in the pawn's frame: to its right, slightly above, looking at the // pelvis. Right-of-pawn gives a profile view, which is where a stride reads. const FVector Right = Pawn->GetActorRightVector(); diff --git a/Screenshots/README.md b/Screenshots/README.md index b89aae3..3dfb8a1 100644 --- a/Screenshots/README.md +++ b/Screenshots/README.md @@ -130,6 +130,21 @@ What it shows: the arms hang down with a soft elbow bend, the hands sit at hip h --- +## 8. Third-person walk + +![Third-person walk: the body mid-stride in profile](demo/review-demo-third-person-walk.png) + +- **File:** `demo/review-demo-third-person-walk.png` +- **View:** tracking camera, 4.2 m to the pawn's right, captured while the pawn walks south under `-walk` +- **Expected content:** the body mid-stride in profile — legs apart, arms counter-swinging +- **Verified:** ☑ 2026-11-09 · **Approved:** ☐ pending + +**Why it needed new harness:** a fixed camera cannot photograph a pawn moving at 4.5 m/s. Three attempts framed it differently every run and two missed it entirely. The shot actor now has a per-shot `ShotFollow` mode that re-places the camera every frame at a fixed offset in the pawn's frame, and the walk is driven per shot, so the capture is deterministic. + +**What it proves:** the walk clip plays and advances. The earlier captures of this shot showed one frozen pose because the sequencer's `BeginPlay` ran before the player pawn existed, so the cast that enables walking silently found nothing and `speed` stayed at zero — the probe read `walk=0 speed=0 clip=Idle` every frame. Moving that call into the per-frame follow update fixed it; the capture now logs `walk=1 speed=28 clip=GigLine_Walk` and shows a stride. + +--- + ## The iteration loop (uncommitted) `Tools/visual_loop.py` measures each capture against its reference photograph and turns the deltas into modelling actions for the Blender skill packs: diff --git a/Screenshots/demo/review-demo-crossing.png b/Screenshots/demo/review-demo-crossing.png index 6e328a4..fcfd1eb 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:d9d241cf8ba8c2458e29eef6c5f402e6fc8253c5b8bb39ed814cba1061002da7 -size 3086135 +oid sha256:89d64985527ac77759f25fe9cd4cc79287c07cde9ffb2ec95047aa3aed6add8e +size 3087137 diff --git a/Screenshots/demo/review-demo-north-buildings.png b/Screenshots/demo/review-demo-north-buildings.png index 1d759ca..176824f 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:af1d563bcf7cde3e6cf8ddde90d3bf829ac80bef532464f09df2f52624bd8fa7 -size 2619686 +oid sha256:cda9d1d59d1fb10cb3e912937a5f326be01ac08143de7dd8e9bb4833b2613233 +size 2619261 diff --git a/Screenshots/demo/review-demo-retail-frontage.png b/Screenshots/demo/review-demo-retail-frontage.png index 6c67e25..bc8e266 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:b2dcb4bd30d3a6f3f8aa5b8296c09a85f025544fd0d3ec424cb4305716e2496e -size 2521944 +oid sha256:717c84e66d7dc495fd93605897e1611a646e29829355c5fc59b22fe8b1b93def +size 2521757 diff --git a/Screenshots/demo/review-demo-spawn-view.png b/Screenshots/demo/review-demo-spawn-view.png index 4718a27..f615f21 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:76a664b8e1051c0cda54bedf39b5642276aa301649da75786bbab254848a5d30 -size 2930459 +oid sha256:c0435e7e356825b08f1c50dca12fbd0b339c77be2e5a2a4586a3fcb3d6a65402 +size 2935883 diff --git a/Screenshots/demo/review-demo-street-level.png b/Screenshots/demo/review-demo-street-level.png index b172844..78b1d80 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:b28d4854a6af4b1dd6b47c24742b3feed9151e9d3f5ee05c7576eeaefd36bf24 -size 2852636 +oid sha256:d811dbd36ad61ec0ab1cc31161d72d25c98bda81d14ea5b4c5e71b21600c4ec2 +size 2848145 diff --git a/Screenshots/demo/review-demo-third-person-front.png b/Screenshots/demo/review-demo-third-person-front.png index 7ad42e0..e666e8f 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:77cbf9322df6462865c6368be0ac963629507ea184271642e79d11287e591d66 -size 2795656 +oid sha256:5e6e448f1d2a71d50db746d0d1ab31e9eb34197d38e38a06acdf8175eeeebd1a +size 2792706 diff --git a/Screenshots/demo/review-demo-third-person-walk.png b/Screenshots/demo/review-demo-third-person-walk.png new file mode 100644 index 0000000..94daf00 --- /dev/null +++ b/Screenshots/demo/review-demo-third-person-walk.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a01f96f6d484e1ecc1b370a7b7cd89f0a41b339d327014fba768d0532bf1163 +size 2389115 diff --git a/Screenshots/demo/review-demo-third-person.png b/Screenshots/demo/review-demo-third-person.png index 0c9a550..fe3dba4 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:2e7f523f1b7983e319a11217cc2166f0bcf27a5a9873e42fabbdd899943dfe52 -size 2998041 +oid sha256:f9fe6f84e091aab286aa67211ebad3b9a35b5ed56c95f9fb4da68af5421ae6f4 +size 2999233 diff --git a/TODO.md b/TODO.md index 4b53518..5690972 100644 --- a/TODO.md +++ b/TODO.md @@ -32,7 +32,7 @@ Actionable task list for this project. This file is the single, central place fo ### Release checks -- [ ] Third-person traversal works end-to-end in the demo area. **The harness exists now, the animation does not advance.** The screenshot actor can track the pawn (`ShotFollow`) and drive the walk per shot (`SetReviewWalk`), and the capture is deterministic — but every walking capture shows the body in one static pose (arms forward, legs together), so the walk clip is applied without playing. Next step: check whether the single-node instance is ticking at all (log `GetSingleNodeInstance()->GetCurrentAssetTime()` across frames) and whether `PlayRate` survived the import. Earlier note, superseded: walking works (`-walk` holds forward input; the pawn crosses the sidewalk while the third-person rig follows), but a fixed review camera cannot catch a pawn moving at 4.5 m/s — three attempts framed it at a different distance each run and the last two missed it entirely. The stride shot was removed rather than shipped broken. Needs a camera that tracks the pawn (attach the shot camera to the pawn, or drive the capture from a recorded path), then re-add `demo-third-person-walk`. +- [x] Third-person traversal works end-to-end in the demo area. **Walking is captured and verified 2026-11-09**: `demo-third-person-walk` shows the body mid-stride in profile (legs apart, arms counter-swinging), and the run logs `walk=1 speed=28 clip=GigLine_Walk`. Getting there needed two harness fixes, both found by probing rather than guessing: the camera must track the pawn (`ShotFollow`), and the call that enables walking had to move out of the sequencer's `BeginPlay` — it ran before the player pawn existed, so the cast silently found nothing and `speed` stayed 0 while the probe reported `clip=Idle` every frame. - [ ] No blocking animation or rig defects. - [ ] Performance target still met at 1440p. - [ ] Tag `v0.2.0` and write `CHANGELOG.md` entry; then remove this section. diff --git a/Tools/ue_build_review_map.py b/Tools/ue_build_review_map.py index 0c75362..91e932f 100644 --- a/Tools/ue_build_review_map.py +++ b/Tools/ue_build_review_map.py @@ -288,6 +288,7 @@ try: # the colonnade's underside. # Level horizon for the same reason: a block elevation is read by its # verticals, and a pitched camera makes them lean. + ("demo-third-person-walk", unreal.Vector(-12940, -980, 560), unreal.Vector(-13336, -980, 500), 55.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 @@ -334,7 +335,7 @@ try: # No follow shots in the current list: the stride capture was retired # because the walk clip does not visibly advance in game (see TODO.md). # The follow flag stays wired for when it does. - seq.set_editor_property("shot_follow", [False] * len(demo_shots)) + seq.set_editor_property("shot_follow", [True] + [False] * (len(demo_shots) - 1)) seq.set_editor_property( "shot_field_of_view", [float(c[3]) if len(c) > 3 else 0.0 for c in demo_shots]) diff --git a/Tools/visual_targets.json b/Tools/visual_targets.json index 515f566..422c018 100644 --- a/Tools/visual_targets.json +++ b/Tools/visual_targets.json @@ -84,6 +84,18 @@ "Art/reference/hollywood/el-capitan-facade-day-wikimedia-2009-10-27.jpg" ], "expect": "Front view of the player body from the road: both arms hanging at the sides, hands down by the hips, face and chest visible, hero facade behind the camera" + }, + { + "name": "demo-third-person-walk", + "shot": "Screenshots/demo/review-demo-third-person-walk.png", + "size": [ + 1920, + 1080 + ], + "references": [ + "Art/reference/hollywood/el-capitan-facade-day-wikimedia-2009-10-27.jpg" + ], + "expect": "The player body mid-stride in profile: legs apart, arms counter-swinging, walking along the sidewalk" } ] }