cryptomax
cryptomax7mo ago

rigidbody realtime transform vs just realtime transform

I am aware that realtime transform has two modes one for rigibodies and one for non, are you able to tell me the number of properties that are syncing in either case? I'm curious to know the sheer number of extra properties rigidbody transform syncs
20 Replies
kapa.ai
kapa.ai7mo ago
Hi @cryptomax. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- The RealtimeTransform component in NormalVR operates differently depending on whether a Rigidbody component is present on the GameObject or not. When operating in Transform mode (i.e., when there is no Rigidbody component), RealtimeTransform synchronizes the localPosition, localRotation, and localScale of a GameObject. So, in this case, it syncs 3 properties. On the other hand, when operating in Rigidbody mode (i.e., when a Rigidbody component is present), RealtimeTransform synchronizes the world position and rotation values in addition to all Rigidbody settings. The exact number of properties that are synchronized in Rigidbody mode can vary depending on the Rigidbody settings, but at a minimum, it includes the world position and rotation. In addition to these, the RealtimeTransform component has several properties that control its behavior, such as syncTransform, syncPosition, syncRotation, syncScale, syncVelocity, syncAngularVelocity, maintainOwnershipWhileSleeping, isPhysicsOwnershipAvailable, and isInterpolationWarmedUp. These properties can be set to control which aspects of the transform or rigidbody are synchronized. For more detailed information, you can refer to the RealtimeTransform documentation (https://normcore.io/documentation/realtime/realtimetransform) and the Networked Physics guide (https://normcore.io/documentation/realtime/networked-physics). ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai7mo ago
<@401986039964631060> kapa.ai is still learning and improving, please let us know how it did by reacting below
cryptomax
cryptomaxOP7mo ago
@Normcore Assistant is syncs ALL rigidbody properties?
kapa.ai
kapa.ai7mo ago
Let me check the knowledge base for you. One moment! :books: ---------------------- The RealtimeTransform component in Rigidbody mode synchronizes the world position and rotation values of the Rigidbody. However, it's not explicitly stated in the provided sources that it synchronizes all Rigidbody properties. In Rigidbody mode, RealtimeTransform also handles ownership differently. When a Rigidbody RealtimeTransform collides with a second Rigidbody RealtimeTransform, it will attempt to request ownership of this second object as well, so the same client can simulate both of the objects in the collision. Additionally, RealtimeTransform has properties like syncVelocity and syncAngularVelocity that control whether the velocity and angular velocity of the Rigidbody are synchronized. For more detailed information, you can refer to the RealtimeTransform documentation (https://normcore.io/documentation/realtime/realtimetransform) and the Networked Physics guide (https://normcore.io/documentation/realtime/networked-physics). ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai7mo ago
<@401986039964631060> kapa.ai is still learning and improving, please let us know how it did by reacting below
maxweisel
maxweisel7mo ago
it’s syncing a few other properties like useGravity, isKinematic and it explicitly sends velocity if Send Velocity is checked but most of the additional properties don’t change each frame so it only uses extra bandwidth on that velocity value
cryptomax
cryptomaxOP7mo ago
Is kinematic syncs? I have multiple cases where I’m manually syncing it in addition to the transform, I thought that it acts odd otherwise
maxweisel
maxweisel7mo ago
No description
maxweisel
maxweisel7mo ago
yeah this is everything we sync
cryptomax
cryptomaxOP7mo ago
thanks for this, dang... I just set up a new creature with manual kinemetic syncing as i'm pulling it in and out of kinematic constantly and i'm almost positive it doesnt' work right unless I do, is it possible reliable unrealiable would have anything to do with it? I geuss i can pull out all the kinematic sync logic and see if the creature still does what it supposed to do lol incidentally this creature was also what I observed parralel sync was not syncing properly. Editor to editor with parrelel it would sporatically jump positions like it owuld only update position sporatically, but build to editor it worked fine. If kinematic is already syncing that might have something to do with that I guess
maxweisel
maxweisel7mo ago
let me know if you’ve found a bug! it’s definitely possible if you can repro, I’d love to get it fixed
Mechabit
Mechabit7mo ago
would it be possible to post the code for all the realtime files? would be useful to know what all the backend is doing
cryptomax
cryptomaxOP7mo ago
I thought perhaps the bot would have the source in its knowledge base
maxweisel
maxweisel7mo ago
it’s something I’ve been thinking about it’s tough because they’re always changing and our internal scripts have pieces and future features and pieces that get compiled out before we publish it’s not quite 1:1 with what ends up in Normcore Public
cryptomax
cryptomaxOP7mo ago
ok I pulled out the kinematic sync logic and it appears to work fine and also parralel sync now no longer does that behavoir! so apprently it was the fact that I was double syncing it
maxweisel
maxweisel7mo ago
sweet! glad it’s working now
cryptomax
cryptomaxOP7mo ago
maybe it is in the documentation but it seems like an important detail that RT transform syncs kinematic property or I should have assumed it did
Mechabit
Mechabit7mo ago
could you do it in like github with the caveat that it's constantly changing just for us deep dive nerds? maybe even let us do pull requests
maxweisel
maxweisel7mo ago
I think what we may do is switch it to a UPM package where the source is included we’re doing that for all new packages and slowly moving the existing stuff over to that that way it’s easier to fork too
Camobiwon
Camobiwon7mo ago
That'd be awesome, so I don't have to purely decompile for reference haha, the comments could also give insight for my own questions lol