Jump to content

CBPC - CBP Physics with Collisions for SSE and VR


Recommended Posts

13 minutes ago, Shizof said:

NEW UPDATE: https://www.nexusmods.com/skyrimspecialedition/mods/21224

 

v2 will continue in parallel, but I just wanted to fix some stuff in the mean time:

Version 1.3.0

  • Removed cell restriction from the mod. It will now work on all actors in the high process.
  • Added ActorDistance to CBPCMasterConfig.txt. Default is 2048. Actors beyond this distance are ignored.
  • Added Haptic Feedback for VR hands collision. You can adjust it by HapticStrength and HapticFrequency parameters in CBPCMasterConfig.txt. Set HapticStrength=0 to disable haptic feedback.
  • Fixed a bug that caused VR hands collision not to work in some locations.
  • Changed Belly Bulge calculations to make it smoother. There is a new BellyBulgeReturnTime parameter in CBPCollisionConfig***.txt files. It's used to make the effect smoother.
  • Exposed VaginaOpeningMultiplier and VaginaOpeningLimit to CBPCollisionConfig***.txt config file.
  • Added MalePhysicsOnlyForExtraRaces parameter to CBPCMasterConfig.txt to make it easier to enable male creature races without having to enable it for all males. Set this 1 to enable male physics for ExtraRaces.
  • Actors are reset after Race Menu is closed now. So changing cells is no longer necessary after character modification.
  • Some performance improvements.

v2? new version? is there anywhere to try?

Link to comment
9 hours ago, Kokan said:

ok, can we know what to expect?

It's a complete rewrite of the mod. Currently CBPC is just a patch on CBP. It's not really scalable, even though I added collisions and it's performance friendly, it can be done better.

So that's why I'm rewriting it from scratch, designing to be scaled as much as you want. Using the best of the old mod, and adding new stuff etc. This way it will hopefully have whatever you wish to have and more.

Link to comment

 

13 hours ago, Shizof said:

NEW UPDATE: https://www.nexusmods.com/skyrimspecialedition/mods/21224

 

v2 will continue in parallel, but I just wanted to fix some stuff in the mean time:

Version 1.3.0

  • Removed cell restriction from the mod. It will now work on all actors in the high process.
  • Added ActorDistance to CBPCMasterConfig.txt. Default is 2048. Actors beyond this distance are ignored.
  • Added Haptic Feedback for VR hands collision. You can adjust it by HapticStrength and HapticFrequency parameters in CBPCMasterConfig.txt. Set HapticStrength=0 to disable haptic feedback.
  • Fixed a bug that caused VR hands collision not to work in some locations.
  • Changed Belly Bulge calculations to make it smoother. There is a new BellyBulgeReturnTime parameter in CBPCollisionConfig***.txt files. It's used to make the effect smoother.
  • Exposed VaginaOpeningMultiplier and VaginaOpeningLimit to CBPCollisionConfig***.txt config file.
  • Added MalePhysicsOnlyForExtraRaces parameter to CBPCMasterConfig.txt to make it easier to enable male creature races without having to enable it for all males. Set this 1 to enable male physics for ExtraRaces.
  • Actors are reset after Race Menu is closed now. So changing cells is no longer necessary after character modification.
  • Some performance improvements.

 

I have a question.

 

When I first saw CBPC settings,

 

BellyBulgePosition=
This parameter disappears, and instead, 


BellyBulgePosLowest=
This was seen as a replacement.

 

However, in the in-game, it seemed that it has changed to be impact by Dick's position without any impact on the BellyBulge position.

Or, depending on the Position of Dick's node, the value of BellyBulgePosition= seemed to initialize to -3.

 

I looked at the source code and seemed could still read the BellyBulgePosition, so i added the parameters and tested them.

But the Belly Bulge position hasn't changed.

 

Is there currently a way to set up the Belly Bulge Position?

 

Link to comment
1 hour ago, Acro748 said:

 

 

I have a question.

 

When I first saw CBPC settings,

 

BellyBulgePosition=
This parameter disappears, and instead, 


BellyBulgePosLowest=
This was seen as a replacement.

 

However, in the in-game, it seemed that it has changed to be impact by Dick's position without any impact on the BellyBulge position.

Or, depending on the Position of Dick's node, the value of BellyBulgePosition= seemed to initialize to -3.

 

I looked at the source code and seemed could still read the BellyBulgePosition, so i added the parameters and tested them.

But the Belly Bulge position hasn't changed.

 

Is there currently a way to set up the Belly Bulge Position?

 

 

Yeah only the BellyBulgePosLowest parameter is used now to eliminate constant downwards movement. BellyBulgePosition was a multiplier and BellyBulgePosLowest was the clamp value. I removed movement. I set the belly bulge vertical position to BellyBulgePosLowest now and it stays there as long as it detects penetration.

 

BellyBulgePosition parameter is not used anymore.

 

BellyBulgePosLowest is the vertical position(Vertical when she is standing) of the bulge and it doesn't change.

 

So just set BellyBulgePosLowest to where you want the bulge to appear vertically relative to the belly node.

Link to comment
44 minutes ago, Shizof said:

 

Yeah only the BellyBulgePosLowest parameter is used now to eliminate constant downwards movement. BellyBulgePosition was a multiplier and BellyBulgePosLowest was the clamp value. I removed movement. I set the belly bulge vertical position to BellyBulgePosLowest now and it stays there as long as it detects penetration.

 

BellyBulgePosition parameter is not used anymore.

 

BellyBulgePosLowest is the vertical position(Vertical when she is standing) of the bulge and it doesn't change.

 

So just set BellyBulgePosLowest to where you want the bulge to appear vertically relative to the belly node.

Thanks I finally clear understand  vertical direction  of the parameter. So when  Pelvis collision sphere hit with  Gens collision sphere 

belly buldge occur on the BellyBuldgePosLowest (vertical postion relative from "Belly" node) ? 

 

And for SInful + CBBE specail  user,

may need to separate  gravity parameters of CBPConfig.txt , because  Synful will remove  these 2 paramete for Breast .(I suppose so)

about Acro3 3bbb , 3 breasts nodes,  gravity parameters are discribed in CBPConfig_3b.txt, so it is not matter.

 

eg,,   make new CBPConfig_gravity.txt and discribe these 2 parameter, and edit them as we need)

Breast.gravityBias 0.005
Breast.gravityCorrection 0.33

Link to comment

Uploaded 1.3.1-BETA version which has performance improvements. A few users in mod page say they encounter ctd with it. But I cannot replicate that issue no matter what I try.

 

If anyone wants to test and see if it works for them, it would be great. Unfortunately if I can't replicate some problem, it's hard to solve it for someone.

Link to comment

Mod is updated to 1.3.3

 

Version 1.3.3

  • Added CBPCSystem.ini config file which will hold performance related settings. Removed those settings from CBPCMasterConfig.txt file. Other mod authors shouldn't have CBPCSystem.ini file in their mods.
  • Added UseParallelProcessing setting to CBPCSystem.ini. This setting is for users with fast, multiple core CPUs. It is set 0 by default which is off. If you want to use it, set it 1 or 2 (Explained in the config comments).
  • Fixed a bug that caused ctd when racemenu is opened with parallel processing on.
  • Some additional performance improvements.
Link to comment
1 hour ago, Shizof said:

Added UseParallelProcessing setting to CBPCSystem.ini. This setting is for users with fast, multiple core CPUs.

Would you care to venture an estimate of what constitutes Fast™ in this context? I'm running an older i5 3570K OC to 4.2GHz- that's a multicore CPU, but is it Fast™ in the Brave New CBPC World?

Link to comment
35 minutes ago, Vyxenne said:

Would you care to venture an estimate of what constitutes Fast™ in this context? I'm running an older i5 3570K OC to 4.2GHz- that's a multicore CPU, but is it Fast™ in the Brave New CBPC World?

I think you're gonna have to test and see. I think making it parallel processed caused some ctds on some people. So I made it optional. I'll be using 2.

Link to comment

Thanks many up-date, then if you can change the way about setting of races?

 

At current CBPC use each Race "Name", not  each Race EditorID. Then  non English version user, (or use translated esp) set Race name as different from english.  

 

If CBPC could use EditorID of race, , I think it not happen. (so need not add patch, just change race name as english)

Though I do not know much abotu script things, then I know some mod use Race name, and needed to change, but hope if you change it.. 

=========

 

sorry now I could understand, it is not easy to get  Editor ID.  And eventhough SKSE still not offer

getEditorID I feel.  and EditorID tend to use more letter.. then forget this request please ^^;

 

 

Link to comment

Though I removed these parameters from current  my CBPCMasterConfig.txt  (for 1.3.2)

 

SkipFrames = 0       

SkipFramesPelvis = 1 

GridSize = 25      

AdjacencyValue = 5   

ActorDistance = 2048

Logging = 0

 

 

but they will be just  ignored if I remain those?  

 

That means, remain CBPCMasterConfig.txt as same as before (un usable parameter  about performance are ignored)

 

but edit CBPCSystem.ini (which never be overwritten by another mod) ? 

 

Link to comment

@Shizof

1.3.0, 1.3.2 and 1.3.3 are experiencing significant performance improvements.

V2 also has high expectations.

 

 

But there's a problem I'd like to address first.
I would like to discuss the node search of CBP/C.

 

 

The current CBPC probably inherited the CBP(by Polygonhell) node search.

It has not yet been confirmed how it changed from v1.3, but it has been done at v1.2.

 

(CBP and CBPC)node search method:

1.If specify a node in the txt file, search in skeleton for it.

 

2.Check if the Translation value of the found node is all zero.

 

3-1.If the all-zero is correct, use the same location as the node. And end

3-2.If the all-zero is not, move from that node to nearest parent node. And go to number 4.

 

4.Check that the node's Translation value is all zero.

 

5-1.If the all-zero is correct, use the same location as the node. And end

5-2If the all-zero is not, move from that node to nearest parent node. And go to number 4 again.

 

Thus, if skeleton was not modified, the position of the Breast03 node at 3BB was used to the CME R PreBreast node position.

So, if i did not use PreBreast00, 01, 02, and 03 in the skeleton when using 3BB, our breasts would be flat.

 

And also it turns out that collisions are the same way.

What was fortunate was that Rotation was recognized correctly.

 

 

I can be added with sufficient request to XP32, but it is too limited.

In the case of 3BB, this was irrelevant because we had added a completely new Bone.

But in the case of TBBP or Pussy, It is difficult to correct it since it has already been used before.

 

Recently in a CBPC comment, you said you would improve the collision check algorithm.

So can please this be fixed as well?

Previously, I did not ask because it seemed to maintain the current CBPC and focus on V2.

But now I want to ask about this because it seems to be in the improvement of CBPC at the same time as the development of V2.

 

 

I know well it very difficult to fix someone else's code that has already been completed.

So that may be why you plan v2.

So I can understand if it is very difficult, even if it is not impossible.

Link to comment
24 minutes ago, Acro748 said:

@Shizof

(CBP and CBPC)node search method:

1.If specify a node in the txt file, search in skeleton for it.

 

2.Check if the Translation value of the found node is all zero.

 

3-1.If the all-zero is correct, use the same location as the node. And end

3-2.If the all-zero is not, move from that node to nearest parent node. And go to number 4.

 

4.Check that the node's Translation value is all zero.

 

5-1.If the all-zero is correct, use the same location as the node. And end

5-2If the all-zero is not, move from that node to nearest parent node. And go to number 4 again.

 

I don't know how you came to this conclusion. It's not like this at all. It uses whatever node is entered in the config. There is no translation value check. There is no "go to nearest parent node" etc. It uses only the node name entered in the config.

Link to comment
29 minutes ago, Shizof said:

 

I don't know how you came to this conclusion. It's not like this at all. It uses whatever node is entered in the config. There is no translation value check. There is no "go to nearest parent node" etc. It uses only the node name entered in the config.

 

But when I used CBPC for 3BB before, I had experienced being a flat breast and after several tests of it, I concluded that this is how nodes are perceived.

 

If this is not intended to be There are cases that are most similar to this. which is why the ECE uses the CME bones.

I understand that the reason for using the CME bone in ECE was because it did not recognize the Translation of the node, and that this is why the CME bone was used.

 

CBPC seems to have a similar problem.

 

 

EDIT:

The reason that Breasts and Butt and Belly were fine before was because the node's Translation was all zero.

However, 3BB did not, so it became flat breasts, and thus added PreBreast00, 01, 02, and 03 to modify the nodes so that Translation can have all the zero.

Link to comment

@Shizof

 

 

The reason why I am asking this time is because of the issue related to Pussy.
Fortunately, SMP can be forced to position the bone in the settings, so it is fine, but it is problematic when it only work on CBPC.

 

The skeleton fix file I uploaded was modified by adding "NPC L PrePussy02" and "NPC R PrePussy02" so that the Translation value of the nodes "NPC L Pussy02" and "NPC R Pussy02" could have all the zero.

 

Clearly, when searching for a node in the CBPC, can see that the value of Translation is not recognized.

Link to comment

@Acro748 As I said, there is no issue for searching or not detecting the node. When in doubt, you can check and see from the log about local translations applied.

 

If I understand correctly, the issue is probably caused by CBPC assuming the default local position of the node as 0, 0, 0. This was how it is designed in CBP too. By default, the local positions are recognized as 0 and they are reset to zero too when there is no bounce, collision, or movement at all.

 

This can be fixed very easily of course if this is the reason. I'll see what I can do.

Link to comment
12 minutes ago, Shizof said:

@Acro748 As I said, there is no issue for searching or not detecting the node. When in doubt, you can check and see from the log about local translations applied.

 

If I understand correctly, the issue is probably caused by CBPC assuming the default local position of the node as 0, 0, 0. This was how it is designed in CBP too. By default, the local positions are recognized as 0 and they are reset to zero too when there is no bounce, collision, or movement at all.

 

This can be fixed very easily of course if this is the reason. I'll see what I can do.

 

Thanks!

I'm aware that this is the cause of the CBP by polygonhell.

I just wondered if you were aware of the issue on this and if there were any difficulties in amending it.

 

I always cheer!

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use