diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 7a3cdda3..31b9f478 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -324,3 +324,4 @@ MaxAgentRadius=100.000000 +ActiveGameNameRedirects=(OldGameName="/Script/TP_VehicleAdv",NewGameName="/Script/LuckyWorldV2") +ActiveGameNameRedirects=(OldGameName="Luckyrobots",NewGameName="/Script/LuckyWorldV2") +ActiveGameNameRedirects=(OldGameName="/Script/Luckyrobots",NewGameName="/Script/LuckyWorldV2") + diff --git a/Content/Blueprint/Mujoco/BP_MujocoSettingsStretchV1.uasset b/Content/Blueprint/Mujoco/BP_MujocoSettingsStretchV1.uasset index d811508f..6b658a08 100644 Binary files a/Content/Blueprint/Mujoco/BP_MujocoSettingsStretchV1.uasset and b/Content/Blueprint/Mujoco/BP_MujocoSettingsStretchV1.uasset differ diff --git a/Content/Developers/Wdev/Robots/BP_Stretch.uasset b/Content/Developers/Wdev/Robots/BP_Stretch.uasset index c41b2498..f42564c1 100644 Binary files a/Content/Developers/Wdev/Robots/BP_Stretch.uasset and b/Content/Developers/Wdev/Robots/BP_Stretch.uasset differ diff --git a/Content/Map/EmptyTestLevel.umap b/Content/Map/EmptyTestLevel.umap index 8a058e39..71f1d32a 100644 Binary files a/Content/Map/EmptyTestLevel.umap and b/Content/Map/EmptyTestLevel.umap differ diff --git a/Source/LuckyWorldV2/Private/Gameplay/Robot/Data/RobotSettings.cpp b/Source/LuckyWorldV2/Private/Gameplay/Robot/Data/RobotSettings.cpp index 6b326472..669c8086 100644 --- a/Source/LuckyWorldV2/Private/Gameplay/Robot/Data/RobotSettings.cpp +++ b/Source/LuckyWorldV2/Private/Gameplay/Robot/Data/RobotSettings.cpp @@ -59,6 +59,8 @@ void FRobotSplinePath::RegenerateSplinePathValues() constexpr float SplinePredictionTime = 1.f; constexpr float SplinePredictionDistanceMin = 64.f; const float SpeedLimit = GetRobot()->RobotSettings.SpeedLimit; + const float TurnSpeedLimit = GetRobot()->RobotSettings.TurnSpeedLimit; + const float TurnSpeedMod = UKismetMathLibrary::SafeDivide(TurnSpeedLimit, SpeedLimit); const float TargetSpeed = FMath::Min(GetRobot()->GetTargetSpeed(), SpeedLimit); const float SplinePredictionDistance = FMath::Max(SplinePredictionTime * TargetSpeed, SplinePredictionDistanceMin); constexpr float TangentClamp = 128.f; @@ -103,13 +105,12 @@ void FRobotSplinePath::RegenerateSplinePathValues() GetSplinePath()->UpdateSpline(); const float SplineLength = GetSplinePath()->GetSplineLength(); SplinePathSpeedModifier.EditorCurveData.Reset(); - constexpr float MinSpeedMod = 0.2f; + constexpr float MinSpeedMod = 0.4f; constexpr float SplinePrecision = 10.f; if (bSingleInput) { - constexpr float SectionSpeedMod = 0.4f; - const float SectionSpeedClamp = FMath::Min(SpeedLimit * SectionSpeedMod, TargetSpeed); + const float SectionSpeedClamp = FMath::Min(SpeedLimit * MinSpeedMod, TargetSpeed); const float DecelerationStep = SplinePredictionDistance + SplinePrecision; SplinePathSpeedModifier.EditorCurveData.AddKey(0.f, SectionSpeedClamp); SplinePathSpeedModifier.EditorCurveData.AddKey(SplineLength, TargetSpeed * MinSpeedMod); @@ -170,10 +171,11 @@ void FRobotSplinePath::RegenerateSplinePathValues() const float DistanceToPathEnd = SplineLength - SplineDistance; const float PathEndMod = DistanceToPathEnd <= SplinePredictionDistance ? FMath::Max(UKismetMathLibrary::SafeDivide(DistanceToPathEnd, SplinePredictionDistance), 0.f) : 1.f; const FVector IntervalTangent = GetSplinePath()->GetTangentAtDistanceAlongSpline(SplineDistance, ESplineCoordinateSpace::Local); - const float IntervalCurve = FMath::Min(IntervalTangent.Length(), TangentClamp); + const float IntervalCurve = FMath::Min(TangentClamp, IntervalTangent.Length()); const float IntervalAlpha = FMath::Max(1.f - UKismetMathLibrary::SafeDivide(IntervalCurve, TangentClamp), 0.f); const float SpeedMod = (MaxSpeedMod - IntervalAlpha) * PathEndMod; - const float ClampedSpeed = FMath::Max(SpeedLimit * SpeedMod, SpeedLimit * MinSpeedMod); + const float ClampedSpeed = FMath::Max(SpeedLimit * SpeedMod, SpeedLimit * TurnSpeedMod); + UE_LOG(LogTemp, Warning, TEXT("SpeedMod :: (%f - %f) * %f = %f"), MaxSpeedMod, IntervalAlpha, PathEndMod, SpeedMod); SplinePathSpeedModifier.EditorCurveData.AddKey(SplineDistance, ClampedSpeed); } } diff --git a/Source/LuckyWorldV2/Public/Gameplay/Robot/Data/RobotSettings.h b/Source/LuckyWorldV2/Public/Gameplay/Robot/Data/RobotSettings.h index 02419421..7d396f05 100644 --- a/Source/LuckyWorldV2/Public/Gameplay/Robot/Data/RobotSettings.h +++ b/Source/LuckyWorldV2/Public/Gameplay/Robot/Data/RobotSettings.h @@ -35,6 +35,9 @@ struct FRobotSettings UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Robot Settings") float SpeedLimit = 15.f; + + UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Robot Settings") + float TurnSpeedLimit = 10.f; UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Robot Settings") TSubclassOf MujocoSettings;