Add complexionFormId to appearance payload
Introduce complexionFormId (TXST) into RemoteAppearance and the appearance protocol so complexion textures are captured and serialized. Updates: header/state, Networking JSON parse/serialize, proxy actor comparisons, main capture logic, protocol docs, fake client/player samples, changelog and dev-log. Capture reads PlayerCharacter::complexion and serializes it, but applying to proxies is intentionally a no-op because TESNPC proxies lack a complexion field (documented in comments/dev-log). Files: plugin/include/F4TRemotePlayerState.h, plugin/src/*, protocol/packets.md, server/fake_client.py, server/fake_player.py, changelog.md, docs/dev-log.md.
This commit is contained in:
@@ -9,6 +9,37 @@ failed experiments, successful tests, and next steps.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-30 - Complexion Texture Sync (Appearance v3, Phase 2.1)
|
||||
|
||||
### Summary
|
||||
Attempted to sync complexion texture (TXST) for hand/arm colour matching. Discovered that `complexion` is only on `PlayerCharacter`, not the base `TESNPC` class. Proxies are NPC bases without a complexion field, so texture swapping is not possible on proxies without lower-level material/texture manipulation (future work). Captured from the player and serialized for documentation, but apply is deferred (no-op on proxies). Hands will continue to use default proxy textures.
|
||||
|
||||
### Files Changed
|
||||
- `plugin/include/F4TRemotePlayerState.h`
|
||||
- `plugin/src/main.cpp`
|
||||
- `plugin/src/F4TNetworking.cpp`
|
||||
- `plugin/src/F4TProxyActorController.cpp`
|
||||
- `protocol/packets.md`
|
||||
- `server/fake_client.py`
|
||||
- `server/fake_player.py`
|
||||
- `changelog.md`
|
||||
- `docs/dev-log.md`
|
||||
|
||||
### Details
|
||||
- Added `complexionFormId` to `RemoteAppearance` and payload for future extensibility, capturing from `PlayerCharacter::complexion` only (not applicable to TESNPC).
|
||||
- Apply code is deferred with a comment. Texture remapping on proxies requires material/shader manipulation, out of scope for now.
|
||||
|
||||
### Testing
|
||||
- Compiled successfully. Capture/serialize/parse work; apply is a no-op.
|
||||
|
||||
### Known Issues
|
||||
- Hands continue to use the default proxy texture because TESNPC proxies cannot be assigned a complexion. This is an architecture limitation.
|
||||
|
||||
### Next Steps
|
||||
- Appearance sync is otherwise complete (morphs, tints, hair colours, head parts). Hands remain a known limitation pending material/texture remapping work.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-30 - Skin Colour / Tint Appearance Sync (Appearance v3, Phase 2)
|
||||
|
||||
### Summary
|
||||
|
||||
Reference in New Issue
Block a user