From 8a4622f34890202a3dd51830f4c79b5dcf69a764 Mon Sep 17 00:00:00 2001 From: "j.foucher" Date: Thu, 26 Feb 2026 16:42:09 +0100 Subject: [PATCH] Posture/LipSync: update default values from production tuning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HeadAnimationCompensation: 1.0 → 0.9 - EyeAnimationCompensation: 1.0 → 0.6 - BodyDriftCompensation: 0.0 → 0.8 - AmplitudeScale: 0.75 → 1.0 - EnvelopeAttackMs: 15 → 10 (range recentered to 1–50) - EnvelopeReleaseMs: 100 → 50 (range recentered to 10–200) Co-Authored-By: Claude Opus 4.6 --- .../Public/ElevenLabsLipSyncComponent.h | 14 +++++++------- .../Public/ElevenLabsPostureComponent.h | 13 +++++-------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsLipSyncComponent.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsLipSyncComponent.h index 5979a23..f8893b8 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsLipSyncComponent.h +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsLipSyncComponent.h @@ -68,7 +68,7 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ElevenLabs|LipSync", meta = (ClampMin = "0.5", ClampMax = "1.0", ToolTip = "Audio amplitude scale.\n0.5 = subtle, 0.75 = balanced, 1.0 = full.\nReduces overall mouth movement without affecting viseme shape.")) - float AmplitudeScale = 0.75f; + float AmplitudeScale = 1.0f; /** How quickly viseme weights interpolate towards new values each frame. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ElevenLabs|LipSync", @@ -95,17 +95,17 @@ public: * Controls how fast the mouth opens when speech starts or gets louder. * Lower = snappier onset, higher = gentler opening. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ElevenLabs|LipSync", - meta = (ClampMin = "5.0", ClampMax = "100.0", - ToolTip = "Envelope attack (ms).\n10 = snappy, 15 = balanced, 30 = gentle.\nHow fast the mouth opens on speech onset.")) - float EnvelopeAttackMs = 15.0f; + meta = (ClampMin = "1.0", ClampMax = "50.0", + ToolTip = "Envelope attack (ms).\n5 = snappy, 10 = balanced, 25 = gentle.\nHow fast the mouth opens on speech onset.")) + float EnvelopeAttackMs = 10.0f; /** Envelope release time in milliseconds. * Controls how slowly the mouth closes when speech gets quieter. * Higher = smoother, more natural decay. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ElevenLabs|LipSync", - meta = (ClampMin = "20.0", ClampMax = "500.0", - ToolTip = "Envelope release (ms).\n60 = responsive, 100 = balanced, 200 = smooth/cinematic.\nHow slowly the mouth closes between syllables.")) - float EnvelopeReleaseMs = 100.0f; + meta = (ClampMin = "10.0", ClampMax = "200.0", + ToolTip = "Envelope release (ms).\n25 = responsive, 50 = balanced, 120 = smooth/cinematic.\nHow slowly the mouth closes between syllables.")) + float EnvelopeReleaseMs = 50.0f; // ── Phoneme Pose Map ───────────────────────────────────────────────────── diff --git a/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsPostureComponent.h b/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsPostureComponent.h index bc8bcbe..ffdfa0e 100644 --- a/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsPostureComponent.h +++ b/Unreal/PS_AI_Agent/Plugins/PS_AI_Agent_ElevenLabs/Source/PS_AI_Agent_ElevenLabs/Public/ElevenLabsPostureComponent.h @@ -142,27 +142,24 @@ public: * Default: 1.0 for conversational AI (always look at who you talk to). */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ElevenLabs|Posture", meta = (ClampMin = "0", ClampMax = "1")) - float HeadAnimationCompensation = 1.0f; + float HeadAnimationCompensation = 0.9f; /** How much posture overrides the animation's eye gaze. * 1.0 = eyes frozen on posture target, animation's eye movement removed. * 0.0 = animation's eyes play through, posture is additive. - * Intermediate (e.g. 0.5) = smooth 50/50 blend. - * Default: 1.0 for conversational AI (always look at who you talk to). */ + * Intermediate (e.g. 0.5) = smooth 50/50 blend. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ElevenLabs|Posture", meta = (ClampMin = "0", ClampMax = "1")) - float EyeAnimationCompensation = 1.0f; + float EyeAnimationCompensation = 0.6f; /** Compensate body animation below the neck (spine bending, leaning, etc.). * When the torso bends, the head's world orientation shifts. This * counter-rotates the posture to keep the head pointing at the target. * 1.0 = full compensation — head stays locked on target even during bows. - * 0.0 = no compensation — head follows body movement (default). - * Start low (0.3–0.5) and increase as needed; full compensation can - * look unnatural on large body movements. */ + * 0.0 = no compensation — head follows body movement naturally. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ElevenLabs|Posture", meta = (ClampMin = "0", ClampMax = "1")) - float BodyDriftCompensation = 0.0f; + float BodyDriftCompensation = 0.8f; // ── Debug ────────────────────────────────────────────────────────────────