Normal

N

Normal

Join the community to ask questions about Normal and get answers from other members.

Join

🤝ask-a-question

💼jobs-and-opportunities

💾sample-code

🥂project-showcase

💭feature-request

✨normcore

💬chat

🚧wip-and-updates

syncing animations

whats the best way to sync an animation, my setup is: an AI spawner spawns multiple AIs that move to the closest block and start destroying it, and im not quite sure on the best way to sync the destroying animation. also, when the ai is spawned, i made it so if you didnt create the room, the ai script gets disabled (this way, only the server owner manages the ai)...

How to optimize normcore?

We're looking to reduce the amount of bandwidth that we use. What are some good practices to reduce the amount of bandwidth being used? What are some good practices to reduce the cost of normcore for our use case?

realtimetransform and rigidbody

im getting this when switching scenes, it seems to still be looking for a rigid body with a realtime transform maybe, MissingReferenceException: The object of type 'Rigidbody' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.Rigidbody.get_position () (at <51ffba59437e4f058f829821d2a9db18>:0) Normal.Realtime.RealtimeTransformRigidbody.SetModelFromRigidbody (Normal.Realtime.RealtimeTransformModel model) (at <1e560f460ca04c778a16074e4afc44a9>:0) Normal.Realtime.RealtimeTransformRigidbody.OnLocalModelWillWrite (Normal.Realtime.RealtimeTransformModel model) (at <1e560f460ca04c778a16074e4afc44a9>:0)...

how to sync multiple values in a model

how do i have one model script that syncs multiple values

What can I do if I have dependency between RealtimeProperty?

Lets say I have a model with two properties:
[RealtimeProperty(1, true, true)] private string _text;
[RealtimeProperty(2, true, true)] private float _duration;
[RealtimeProperty(1, true, true)] private string _text;
[RealtimeProperty(2, true, true)] private float _duration;
...

Difference between avatar.ownerIDInHierarchy, avatar.ownerIDSelf, and avatar.realtime.clientID?

I'm trying to keep track of the ID of the current client as clients leave and enter the room. I'm finding that avatar.owner.IDSelf always returns -1. avatar.ownerIDInHierachy seems to work but if someone leaves, and rejoins they get assigned to ID 0 even though the former client that had the ID of 1 also gets set to the ID of 0. This causes errors with my system that isn't expecting two clients to both have the ID of 0. avatar.realtime.clientID seems to work but never reassigns the ID's when someone leaves. For example if a room has two clients and client 0 leaves. Client 1 remains as ID 1 but once the client that left, rejoins the game. Their ID gets set to 0....

How can I get the remote ID that an avatar represents?

In the AvatarCreated function avatar.ownerIDSelf returns -1 and avatar.realtime.clientID returns the ID of the local realtime not the remote. I need the ID of the remote client that the avatar is representing.

Is there an ETA for the Room API?

Hi, I'd like to ask if there is an estimation about the release date of the Room API. Not knowing about the active rooms (or checking if a room is active, etc) is a bit making things harder 🥲 And also, is there a roadmap you can share with us (not too detailed of course)?

Is there a way to change ownership automatically when remote rigidbody is owned by another client?

I want ownership to change when an rigidbody owned by client a hits a rigidbody owned by client b. The object rigidbody by client b is automatically moving, not asleep. What is the best way to approach this?

character controller

if i have an xrorigin rig that moves with a character controller and if i disable and re-enable the controller will the avatar model lose track of it

Call DidChange event when value is the same

I basically want to trigger the ValueDidChange every time I assign model.value to something, even if that value is the same as before. For some context, I'm sending a string to all clients when a player scores and if he scores again the string is going to be the same, but I need the StringDidChange event to trigger on all clients to display who scored....

is the ReltimeView property 'preventOwnershipTakeover' synched between the clients?

Meaning, if clientA takes ownership and the sets the 'preventOwnershipTakeover' property to true - will client 'B' observe that property to be true on his end? If it is not synchronized and assuming we have a rigidbody with a RealtimeTransform component that clientA prevented ownership changes on - what would prevent client B from requesting ownership on that rigidbody (and immediately receiving it), only for it to be rolled back by the server. This process can happen again and again over multiple frames (as the rigidbody keeps colliding with clientB owned rigidbodies - creating an unnecessarily janky behavior of that rigidbody....

Security Question: Is the app key stored in the Unity APK?

Is it possible the APK could be reverse compiled and the app key stolen?

Normcore headless build

Can we create a unity headless build and deploy to one of our cloud platforms instead of using normcore private? And get all those features that normcore headless build provides? The issue is, we are not that big currently, and we do want to fix some issues regarding syncing - spawning etc which we are doing by checking the least client ID in the room. But would be more beneficial and less checking of these if we can spin-up the headless build if we can.

how to handle code server side

how do i run a timer for example on the server and get a signal sent to all the clients when that timer reaches 0

Bandwidth usage analysis

I wanted to analyze my application's bandwidth usage more thoroughly to see if I'm sending unnecessary data or how I can optimize my application's data usage as a whole. I've put the Nomcore modules into the Unity profiler, but I only have the general amount of data sent without any further details. It would also be useful to know the best practices for optimizing internet bandwidth, I didn't find this in Nomcore's documentation....

Realtime.Destroy On owned realtime prefabs.

Can I destroy a RealtimePrefab by calling Realtime.Destroy even if someone else is an owner? Or do I have to take ownership first before destroying. I know it would destroy but I am thinking more like what will happen in the datastore?

How can I distort the mic audio in RealtimeAvatarVoice to be higher or lower pitch?

Is it possible to distort the mic audio from RealtimeAvatarVoice so the player is heard with a squeaky high pitched voice or a deep low pitched voice?

Are there any best practices for syncing a large number of variables in one script?

For instance if we have a large script with many bools floats, integers etc and they all need to be synced and will all be changing at different times.