diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index b4d0002..6273f0a 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:bd5ce81994dceab0d0d53a34086cc8a38f90c044b8be0ef199dda9ac35fd53ce -size 781960 +oid sha256:c4ddddc66056046926b80a289af082a65a6c67074c4952da456a1317adbe2c05 +size 782068 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset index df02059..9037587 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:bbe722b3f217de9bb5418c7756d0d267db345f30b513baac6d8d0eb58b2d30a9 +oid sha256:a48db9747ff8f8623cd3445609b2b4daa70c55d1a51687d5efba7166f77a60e0 size 10019 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset index ad201f1..499c173 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:e988e4fbfd8e70e1299639802d7545a6285c9ae83a18ad365b357a923bfbaf81 +oid sha256:661d59352ffc056d2ccec82ebb003d9f285f039652be74885cef955077f518dc size 10024 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset index 1721e23..0f145e3 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:cc344d87142e61c32690b9c539540804c9197b0ad3d46ddce8ec217ad51eb733 +oid sha256:ad014c9992f9e06e33029fe8c909db4c0999d3b833f10fcd36517ed83ea8a93b size 11419 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset index 6e35ebb..0bb499e 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:52206ebbef1dc94e3c23a4aa7f100859e9ae084781e226d78a809cdb3e235b89 +oid sha256:14c6320f0da9ee41a3b6dcb7aebbb1ca0815b63a91f6fa6912b029bc0602bf0d size 11414 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset index b033084..2b7fa3c 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:58912f4e53835576a6be2fe271d76bb03b085227c8f4f68cd09f313cc07df82c +oid sha256:e4234f10cb662f75315bbfde96db4b27b3c130ce7c6faddec72cd3bba2a6523d size 17083 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset index 58f2424..331c2fa 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:d700eefb4ca7388ed7f8b993df5ccd96755d676da517b469e54cfa4fcab0365d +oid sha256:ec5a6a4b2c638086c6637a7a4d1500d180225f7e7e05c78617877f3624e34587 size 17113 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset index 773259d..4731bc8 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:1ad5c097bbe648098164f928cd3f65c25d4e19d27ef977dd6fddc5700e5ecb9e +oid sha256:0f7ab95b9116532739740b63953c7eec5947ea8787dd6634a8c1a607d54177a2 size 10014 diff --git a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset index 2fd45e6..dccad1d 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:ed9a6ff5803cb88f437f0d501b657ad67dd94ef9b106ab9f146f78fb40b5515b +oid sha256:e7f728241b4ff940cf3bd8e81826bfaeaa19c2ab2a63776d643bb8e336b0221c size 10044 diff --git a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset index 74c50e3..5db3e81 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:074e023941b72b9389cff4d79d550e0537c100c82ca199f223ea725fae09f34e +oid sha256:4ab820b8a11cc9d5e351bd924b1eb08a239c3c5069d8a70f8b2d7e755d2dff41 size 10029 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset index e22d380..a96f8ac 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:e78b99b1160dd2e2def0d0a3639f180cd1e05eb9a9ebbc416a20c72edb42a6c7 +oid sha256:65506bdc512c9ade2c5ee0e8d27dedc712f3f77d6dc333065041bca678d43f93 size 11389 diff --git a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset index 73eddfc..78546a0 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:07197b7a3f41927c1b79448ee864e1dcee92efb6e61c7faf60b7ec9663b9248a +oid sha256:85b00cc349305f51833e5e9f3574ed8be4da8fcf51652b90b955297e9d501ce1 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 94a7914..15cec11 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:681be23cedf0dfc3078954f0e10e2ce44bc95ce836a38ab7afdcc505ba4cec61 +oid sha256:11d4f58d4594bea76a41656ecb92d381fbb832d384d9df2fa5229291e171f2c9 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 274108f..0498988 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:e00a2893aee8bb896647a57424c5192ee4b72004ac59bda9d59c5f2e9210ac24 +oid sha256:81279a2cfd5b3a092fefa894a8a041f56203026b5e209bf59fce18fcf9e206d4 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 0543682..ab239a1 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:b2de801b2140f67783f8080f9cdb378e002ae718db87841c22846c17dba378d1 +oid sha256:8561b0b7f27770815b40adfed0ae126224b206f8b6a806b17ad2c3cd833440d3 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 fc67794..c6f533e 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:c9cffdbfe0986ca06244288c56d9470683483e057b79ab5817fdf319ecf1cfaa +oid sha256:10bddc4f90ddf26b8d8294065ffac6e4c132f58887a4f5f644c6bea88f7ee19e 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 ebf0ec5..4aa1a46 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:0afb4a71fac5ca243c15788f8489f7feee300023b9df0e28b23d88cc76c37076 +oid sha256:a44c33ed6aabc876ec56ccf749c0fd78012fbfac8f1f535fba34fea014d047c0 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 7ea7e4b..b116cde 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:2f04b0118383c665f348f58e2444748e94eb7ea3838911d49c474da2586d35e5 +oid sha256:8630e6680c868f6ffaa50908939310f3a8fdca2558d71a35cf9bfa002f5001f6 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 e3a1f6e..9cf5db1 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:444178c78a14b79842f2082839f9210809bf72d3c4e17ba257b3faa09401e16e +oid sha256:014cc00695ca9a0f39f50d5e0e296a6436141b825de92b39053a762e7eb4ed4d 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 2a014d8..418a6d4 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:001fb4d9af44228b20e12875afabd4535c2de170f3ed3afcf8df893af8245b1a +oid sha256:38774ac04e527a0152ab5deb27a8d7b8bc0d1bed588327db360d6e926af4dd17 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 873a096..beb8aba 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:42ec14ea323dc5e8653f6da1ca9a908c428b2eb2a2e60e29e2b4be6bf33f6f11 +oid sha256:5bb28c79d810a0c02011062ffb058b4926483036be6626c544954672d83b4244 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 d338999..000fed9 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:8b141dccd86ec7c0b6e44020d508745dbd728168b031e38616d778796bb8bdc0 +oid sha256:ad376ade63f9affe4190ebe15bdb4d3352347ee8747afddfae3e449f9e0626fb 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 8feb0c9..e441699 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:0bfaddfc11d2bd9ab6833412aa6c4e04e64838d1d7348420fe1c18df7db60773 +oid sha256:1b5d97c580a0075bc27b0a550a9e92c81cfdbe3efab5652cb22efa2a80163446 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 99aa089..c12a554 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:4dde3c4394b1173d3c51384e700857991c80ea51a693eab879f49c80acda89f1 +oid sha256:8caa81742a96e086f46a04059798f3088c82959f5fb54f138a782d0c7d1b641c 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 dc26e64..1a02b92 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:1f2c9eb2dde27f35b7c577b217731b89eaa47bea5d0e1681c54ffdd1dc587f6a +oid sha256:0f03b1ca2c4db8061583d027597c70345c24488a5bfd9a06e9d33de9a5f0545f 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 9fd285b..782a86a 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:509dac96c9c9ef76e441a53fb10935fdff6eed25dd12673e1e057b9e685587c3 +oid sha256:03ec62edb4119d75a7939881b57fad997643ca6a1783fb3177e00fe831905d46 size 72413 diff --git a/Game/GigLine/Content/Test/Character/Character_Anim.uasset b/Game/GigLine/Content/Test/Character/Character_Anim.uasset index a85a658..562b3cc 100644 --- a/Game/GigLine/Content/Test/Character/Character_Anim.uasset +++ b/Game/GigLine/Content/Test/Character/Character_Anim.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9527ef1720ce27a219eab92f3a9fa12feccdfa8173977cd75b9aa9eb92bf0a7c +oid sha256:8a9c0b11c76d788ca97cc72c5ad9f0392fe0d2feed0f3154c1106f1ab7f8f186 size 3756743 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index 32be8b8..02c7785 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:4d44eb29a592ca2c7ce809ae860d1c259a373cfec5841b088c876278a33d3ff1 +oid sha256:a5f2b6f20ca9ec7ac3126d695a45beca33819efd09d6a2ea0b9f15a25224a7d2 size 29389 diff --git a/Screenshots/README.md b/Screenshots/README.md index c4be440..6619f1b 100644 --- a/Screenshots/README.md +++ b/Screenshots/README.md @@ -106,13 +106,27 @@ Known gaps in this first pass, recorded rather than hidden: What this shot is evidence for: - The pawn carries a visible skeletal body with the warm skin material, and a spring-arm camera with collision testing. The **V** toggle swaps first and third person; the shipped default stays first person and the review passes `-thirdperson`. -- **The idle clip now drives the body.** The arms hang at the sides rather than standing out in a bind A-pose, which is what the first three captures of this shot showed. +- **The idle clip drives the body and the arms hang at the sides.** Earlier captures of this shot showed a bind A-pose. -What is still not right, and is tracked: +Still open, tracked in `TODO.md`: -- **The arms hang too far forward and the hands splay outward**, so the pose reads as a person standing awkwardly rather than at rest. The base pose is applied to the rest pose with inverted signs (the FBX axis mapping flips it); the elbow and hand orientation still need work, and that belongs to the `0.2.2` skin/animation tuning pass rather than to this rig. -- **The walk clip has no shot of its own.** It imports and its curves carry a ±18° arm swing and a 0.45 rad hip swing, but nothing has captured it in motion; a walking shot needs a camera that follows a moving pawn. -- **Camera collision is implemented but unproven:** the spawn point has open space behind it, so no shot exercises the arm shortening. +- The arms hang close enough to clip into the torso at the shoulder, and the fingers splay slightly. That is the `0.2.2` pose-and-skin tuning pass, not this rig. +- **Camera collision is implemented but unproven:** the spawn has open space behind it, so no shot exercises the arm shortening. + +--- + +## 7. Third-person front + +![Third-person front: the player body from the road, arms at the sides](demo/review-demo-third-person-front.png) + +- **File:** `demo/review-demo-third-person-front.png` +- **View:** from the road, ~6 m in front of the pawn, looking back north. The pawn spawns facing +Y, so this is its front +- **Expected content:** both arms hanging at the sides with the hands by the hips, face and chest visible +- **Verified:** ☑ 2026-11-09 · **Approved:** ☐ pending + +**Why the shot exists:** the third-person shot only ever shows the pawn's back, so a pose defect on the front — arms out, hands splayed, a face pointing the wrong way — was invisible in review. This angle is the check for it. + +What it shows: the arms hang down with a soft elbow bend and the hands sit at hip height. What it still shows wrong: the upper arms sit close enough to the torso to clip at the shoulder, and the fingers point outward-forward rather than hanging relaxed. --- diff --git a/Screenshots/demo/review-demo-crossing.png b/Screenshots/demo/review-demo-crossing.png index ecaf303..c68d87c 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:84519c584c1a6e47b88d116c18143e0872aeac290f1d5e9db3778072d36823e2 -size 3088862 +oid sha256:19f7c00d9b30af9ef4539f638fb1c96a12d4a355d169f959c9cc59072783d0b0 +size 3086883 diff --git a/Screenshots/demo/review-demo-north-buildings.png b/Screenshots/demo/review-demo-north-buildings.png index 00104eb..cbe60e2 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:a6175ecc2071d6f44424fb23ecf6680721b14f0c2b9984f5d3dee68df94b9431 -size 2620166 +oid sha256:144f62521425d7fb9756a8cf79c7f0d8e536bf32366cc2a9554d910155dfac41 +size 2619656 diff --git a/Screenshots/demo/review-demo-retail-frontage.png b/Screenshots/demo/review-demo-retail-frontage.png index b60b5e9..f1408ec 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:ac8c902c8726185db34e71d86f96ef88d5b218f85de0fcdc1b76eb6cad02064e -size 2521184 +oid sha256:ddd349d13ce8152bef5003b0a42352f7a060f78d8ea8da041927ad3cc110f029 +size 2522524 diff --git a/Screenshots/demo/review-demo-spawn-view.png b/Screenshots/demo/review-demo-spawn-view.png index f6dc9fb..6cdfeb0 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:20b159462049b45c91c89d98f4ea69ae4f98a3ea64b16e9cecb8bb1959052543 -size 2987440 +oid sha256:d9071c0b119f2566752323ea72902a67fa8978ca7f27ca7a90b1880535d27599 +size 2925302 diff --git a/Screenshots/demo/review-demo-street-level.png b/Screenshots/demo/review-demo-street-level.png index 65f3751..94120db 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:2e72776ae4e4f296307a4af29362c9dc7a317c172f403730714fc4a2b279f8cc -size 2848073 +oid sha256:0e188da8c43e639228507c37cd92134acd14fddcf7401336525070fd4f16ffc0 +size 2852563 diff --git a/Screenshots/demo/review-demo-third-person-front.png b/Screenshots/demo/review-demo-third-person-front.png new file mode 100644 index 0000000..b939337 --- /dev/null +++ b/Screenshots/demo/review-demo-third-person-front.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:828b07c0ed1e1e815638fb9a42c9c693b5da6c2a6f6ceaa23f86444ceb507298 +size 2793217 diff --git a/Screenshots/demo/review-demo-third-person.png b/Screenshots/demo/review-demo-third-person.png index e708f8a..a02536b 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:2fa077a010e0468c4b83eebc0213c8245713517d0ce8d2155c2bc798b190fa63 -size 2998339 +oid sha256:548f35c3fe31addd328f69e426aa83c43aa4b08a245389a3e3791593940b1e23 +size 2996592 diff --git a/TODO.md b/TODO.md index 92a075f..cc3bc73 100644 --- a/TODO.md +++ b/TODO.md @@ -17,7 +17,8 @@ Actionable task list for this project. This file is the single, central place fo - [x] Import character into Unreal; validate skeleton, scale, and materials. Done: `/Game/Test/Character` — `SkeletalMesh` (138 bones), `Skeleton`, warm `M_Character_Export` material with baked `T_Character_Diffuse`. - [x] Promote the character asset into a reusable NPC prefab (visible body, collision capsule, idle pose) ready for pedestrians (`0.5.0`) once the third-person body lands. Done 2026-11-07: `AGigLineNPCPerson` (see the 0.1.0 Character-development item); `0.5.0` reuses it as the pedestrian base. - [x] Create basic idle/walk animation set. Done 2026-11-09: `Tools/character_anim_build.py` authors `GigLine_Idle` (60 f) and `GigLine_Walk` (30 f) at 30 fps from parametric cycles, and `Tools/ue_character_anim_import.py` imports them. Both AnimSequences verified in `/Game/Test/Character`: Idle 1.967 s, Walk 0.967 s. Limb axes were **measured** on the rig, not assumed — the probe rotated `upperleg01.L` 0.5 rad per axis and read `foot.L`, which showed X is the fore/aft swing (Y twists, Z abducts). -- [~] Verify animation plays correctly on the imported rig. **Fixed 2026-11-09**: the clip now drives the body — shot 6 shows the arms hanging at the sides instead of an A-pose. Two causes, both proven by measurement rather than guessed: (1) `PlayAnimation` needs the component in `AnimationSingleNode` with a live single-node instance, and the body is hidden at construction, so the first call could land before the component was ready and never retry; the code now sets the mode, calls `SetAnimation` + `Play`, and re-asserts while the instance is missing. (2) the arms-down offsets were carried only in the clip keys, which the exporter writes relative to the rest pose — so they arrived as a ±20° swing around an A-posed bind; they are now baked into the rest pose before the clips are authored (`apply_base_pose`). **Still open:** the idle pose reads awkwardly (arms hang forward, hands splay) because the base is applied with inverted signs to compensate for the FBX axis flip, and the walk clip has never been captured in motion. Earlier evidence: the pawn's mesh is bound, both clips resolve, and the run logs `GigLine: playing body clip Character_AnimHuman_rig_GigLine_Idle`, but shot 5 still renders the body in bind pose (arms out). So `PlayAnimation` is called and the pose is not applied — next step is to check whether the imported clip carries bone curves at all (the FBX bake may be sampling only keyed bones) or whether the component needs `SetAnimationMode(AnimationSingleNode)` before `SetAnimation`/`Play`. +- [~] Verify animation plays correctly on the imported rig. **Playback works since 2026-11-09**: the clip drives the body and the arms hang at the sides (shots 6 and 7). Three defects were found and fixed, each by measuring rather than guessing: (1) `PlayAnimation` on a hidden component never took effect, so the code now sets `AnimationSingleNode`, calls `SetAnimation` + `Play`, and re-asserts while the single-node instance is missing; (2) the arms-down offsets lived only in the clip keys and the exporter writes clip data relative to the rest pose, so they arrived as a ±20° swing around an A-posed bind — they are baked into the rest pose before the clips are authored; (3) a rest-pose bake alone does **not** move the mesh, because the MPFB mesh carries shape keys, the armature modifier cannot be applied while they exist, and the vertices stayed in the A shape (measured: X span unchanged at 1.051 m) — baking the deformation into the vertices, clearing the shape keys and re-binding is what made the bind match the clips. **Still open — the pose is not settled:** the base pose is applied with inverted signs to compensate for the FBX axis mapping, the upper arms clip into the torso, and the fingers splay. An aim-based pose module (`Tools/character_pose.py`) was attempted and removed: applied without the vertex bake it produced arms raised in a V, and a half-working shared module is worse than none. The proper solve belongs to `0.2.2`: build the character with the standing pose applied at creation (the `mpfb_character_export.py --pose idle` path), then author clips against that bind. +- [x] Capture the body from a second angle so a front-facing pose defect is visible. `demo-third-person-front` added to the shot list and to `Screenshots/README.md`; the third-person shot alone only showed the pawn's back. ### Camera and controls diff --git a/Tools/ue_build_review_map.py b/Tools/ue_build_review_map.py index 6be4252..be71576 100644 --- a/Tools/ue_build_review_map.py +++ b/Tools/ue_build_review_map.py @@ -319,6 +319,10 @@ try: # the visible body and its idle clip are what the shot is for. # Demo_PlayerStart is at (-13336, -1150, 600), yaw 90 (facing +Y). ("demo-third-person", unreal.Vector(-13336, -1750, 780), unreal.Vector(-13336, -1150, 560), 58.0), + # Front view of the same pawn: the third-person shot only ever shows its + # back, so a pose defect there is invisible. The pawn spawns facing +Y + # (yaw 90), so the camera stands on the road side and looks back north. + ("demo-third-person-front", unreal.Vector(-13336, -520, 700), unreal.Vector(-13336, -1150, 540), 55.0), ] seq = spawn(unreal.GigLineShotActor, unreal.Vector(0, 0, 300), "ShotSequencer") if seq: diff --git a/Tools/visual_targets.json b/Tools/visual_targets.json index 88f2fba..515f566 100644 --- a/Tools/visual_targets.json +++ b/Tools/visual_targets.json @@ -72,6 +72,18 @@ "Art/reference/hollywood/el-capitan-facade-day-wikimedia-2009-10-27.jpg" ], "expect": "Third-person view of the player body standing on the north sidewalk, full figure visible from behind, the hero facade across the street, daylight" + }, + { + "name": "demo-third-person-front", + "shot": "Screenshots/demo/review-demo-third-person-front.png", + "size": [ + 1920, + 1080 + ], + "references": [ + "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" } ] }