From bc98ea274b283532009de3995ff03f1f433ce518 Mon Sep 17 00:00:00 2001 From: koritsa Date: Sun, 31 May 2026 15:58:54 +0300 Subject: [PATCH] Added variable boobs physics depending on boobs support from clothing --- Content/Characters/Yumi/ABP_Yumi_PP.uasset | 4 ++-- .../Data/Casual/Bra/Casual_Bra_Black.uasset | 4 ++-- .../Data/Casual/Bra/Casual_Bra_Blue.uasset | 4 ++-- .../Data/Casual/Bra/Casual_Bra_Green.uasset | 4 ++-- .../Data/Casual/Bra/Casual_Bra_Red.uasset | 4 ++-- .../Data/Casual/Bra/Casual_Bra_Violet.uasset | 4 ++-- .../Data/Casual/Bra/Casual_Bra_White.uasset | 4 ++-- .../Casual/Panties/Casual_Panties_Blue.uasset | 2 +- .../Casual/Panties/Casual_Panties_Green.uasset | 2 +- .../Casual/Panties/Casual_Panties_Red.uasset | 2 +- .../Panties/Casual_Panties_Violet.uasset | 2 +- .../Casual/Panties/Casual_Panties_White.uasset | 2 +- Content/Test/Maps/TestLevel.umap | 4 ++-- .../Clothing/ClothingItemDefinition.h | 7 +++++++ .../NakedDesire/Clothing/ClothingManager.cpp | 18 ++++++++++++++++++ Source/NakedDesire/Clothing/ClothingManager.h | 3 +++ 16 files changed, 49 insertions(+), 21 deletions(-) diff --git a/Content/Characters/Yumi/ABP_Yumi_PP.uasset b/Content/Characters/Yumi/ABP_Yumi_PP.uasset index 0ac8fe03..1c2065e7 100644 --- a/Content/Characters/Yumi/ABP_Yumi_PP.uasset +++ b/Content/Characters/Yumi/ABP_Yumi_PP.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1fd3a6616e658bcfe683c541021e81c8ac95a754681cd6ff1421dd77cf656038 -size 164425 +oid sha256:cee3a562fa67a7f003ab4f08b7fad0db411265dff51cc31860656864a5aa1311 +size 175424 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Black.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Black.uasset index 7982d53e..b927091a 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Black.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Black.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:02fdd8972b7233f4971d1aec4eeac909b964718aecd74d7544d999bc4dd1e87c -size 3685 +oid sha256:7e8bdc597e41aa3dba5460a8d9c0829501fdf0cac73ac2035f1b3dc227444cc9 +size 3735 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Blue.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Blue.uasset index 0b82beae..a95a8cf5 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Blue.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Blue.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c9cca3def24519e3ad64847d031704e5dc52413909d25366faa581faa5f8b14 -size 3673 +oid sha256:559cdda7d48edbfe164075ef671b8e4ae3d67f82416cf5479651f67bb8e400b6 +size 3723 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Green.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Green.uasset index bf122891..655e01ca 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Green.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Green.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:056fd4512393cf73ba3ae3981e36682e2f1bd052e6c5899eb30feabc03d4d1d7 -size 3685 +oid sha256:5cac7fe0eb0353c70ea9e1f6cc3b252c345138b46cc25cc2d5fe466abd4ffb50 +size 3735 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Red.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Red.uasset index 579f8541..8593df67 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Red.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Red.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2b63f9cef5bc060e1f8c56b1f787d3296dff7603b77c9da8bbbf7d7ba017f05 -size 3661 +oid sha256:706285d128aae274df89b781c8ef0bdb2708c8143363ff25a1ba264cc1a6fed4 +size 3711 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Violet.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Violet.uasset index 5cf12996..ef6cbf19 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Violet.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_Violet.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:40b623ebedd598375a2c2550891f1a3bab4500482de99533241e3e474f68c764 -size 3697 +oid sha256:b715783118b96a85f25efc43a76a0d8a60bee59c8565118d8abd6044243810b2 +size 3747 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_White.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_White.uasset index 6d3fc1d6..f6c5f23d 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_White.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Bra/Casual_Bra_White.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c7172b6d77a7270bdd5d4cbe549d8850f35743a4a755c2b5ad574c0020abb399 -size 3685 +oid sha256:96a8176ebca387cf18042bf66df44870d717e717d3a36f093876a412fa4b6df6 +size 3735 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Blue.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Blue.uasset index d9a6818d..5e9df416 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Blue.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Blue.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3291648b2951c976918915153fe78543cac93e83aaceeb6b7141240fd6439863 +oid sha256:d89f22391279d44e2892ab4632d687c746fa647ab023c6c8d0a8820280e47b22 size 3896 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Green.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Green.uasset index ef180b88..34fc8ca1 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Green.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Green.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:49d5fc1945723a1848a74916470cffee9fdb8023bc0fae9bceec3ba460dbf479 +oid sha256:9f11e89f04189277f3bed82da97e617328afc4dafd6a24ed0bd349a75f2ceca3 size 3908 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Red.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Red.uasset index 132795b9..819484c7 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Red.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Red.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2f63f2d010f21709b5b32fca05a4fd448875616fa70f86b2f2415aff0b787d4f +oid sha256:166895fa5c66589a4ea03bdc37f39c7593d37a8a54878ede5e24683b6075c877 size 3884 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Violet.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Violet.uasset index b5c42e03..65090d73 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Violet.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_Violet.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a7b5605ba99206d5015db158d0f9c8b7698d9b9df9d4513a9c5375b8d37a040 +oid sha256:5e96a99461c1a5a0964c356fefa4efdee30e18d38bd8beec4826df204dcea22a size 3920 diff --git a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_White.uasset b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_White.uasset index 587b43ee..1faa460e 100644 --- a/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_White.uasset +++ b/Content/Characters/Yumi/Clothing/Data/Casual/Panties/Casual_Panties_White.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7078520aa9422e2299141aada48cd4bcc263e5903ce9a1feceb346dd411c946f +oid sha256:5ac048de04c7fd9360da3a831d675425847755e66287fded1732dfd8e19c88cd size 3908 diff --git a/Content/Test/Maps/TestLevel.umap b/Content/Test/Maps/TestLevel.umap index ae751a35..8c3d7cc2 100644 --- a/Content/Test/Maps/TestLevel.umap +++ b/Content/Test/Maps/TestLevel.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aa70ea4662a950a582906488e3e691a8c11c8e0e8cac7f7f5d5cd001fdab0de2 -size 149849 +oid sha256:60823d9830bf540beb243336604f8df6a4420264bba01ae44113003c2caefe98 +size 149766 diff --git a/Source/NakedDesire/Clothing/ClothingItemDefinition.h b/Source/NakedDesire/Clothing/ClothingItemDefinition.h index aaf43d11..cb1f59e1 100644 --- a/Source/NakedDesire/Clothing/ClothingItemDefinition.h +++ b/Source/NakedDesire/Clothing/ClothingItemDefinition.h @@ -111,4 +111,11 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) TArray HiddenBodyParts; + + UPROPERTY(EditDefaultsOnly, + BlueprintReadOnly, + meta = (EditCondition = "SlotType == EClothingSlotType::UnderwearTop || SlotType == EClothingSlotType::Top || SlotType == EClothingSlotType::Bodysuit", + ClampMin = 0.0f, ClampMax = 1.0f, + UIMin = 0.0f, UIMax = 1.0f)) + float BoobsSupport = 0.0f; }; diff --git a/Source/NakedDesire/Clothing/ClothingManager.cpp b/Source/NakedDesire/Clothing/ClothingManager.cpp index d757d811..1e89ee29 100644 --- a/Source/NakedDesire/Clothing/ClothingManager.cpp +++ b/Source/NakedDesire/Clothing/ClothingManager.cpp @@ -82,6 +82,24 @@ float UClothingManager::GetEffectiveCoverage(const EBodyPart BodyPart) return MaxCoverage; } +float UClothingManager::GetBoobsSupport() +{ + const UClothingItemInstance* UnderwearTop = GetSlotClothing(EClothingSlotType::UnderwearTop); + const UClothingItemInstance* Top = GetSlotClothing(EClothingSlotType::Top); + const UClothingItemInstance* Bodysuit = GetSlotClothing(EClothingSlotType::Bodysuit); + + TArray TotalSupports; + + if (UnderwearTop) + TotalSupports.Push(UnderwearTop->GetClothingItemDefinition()->BoobsSupport); + if (Top) + TotalSupports.Push(Top->GetClothingItemDefinition()->BoobsSupport); + if (Bodysuit) + TotalSupports.Push(Bodysuit->GetClothingItemDefinition()->BoobsSupport); + + return FMath::Max(TotalSupports); +} + void UClothingManager::HydrateClothing() { USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem(); diff --git a/Source/NakedDesire/Clothing/ClothingManager.h b/Source/NakedDesire/Clothing/ClothingManager.h index e8c929d2..1dbf77c3 100644 --- a/Source/NakedDesire/Clothing/ClothingManager.h +++ b/Source/NakedDesire/Clothing/ClothingManager.h @@ -47,6 +47,9 @@ public: UClothingItemInstance* GetSlotClothing(EClothingSlotType SlotType); bool IsBodyPartExposed(EBodyPart BodyPart); float GetEffectiveCoverage(EBodyPart BodyPart); + + UFUNCTION(BlueprintCallable) + float GetBoobsSupport(); void HydrateClothing();