lyuma / Av3Emulator

Emulator for VRChat's Avatars 3.0 system, built on the Unity PlayableGraph API
Other
531 stars 31 forks source link

feat: minimum support for `IsOnFriendsList` #138

Closed anatawa12 closed 9 months ago

anatawa12 commented 9 months ago

Fixes #137

Since there is no emulation for friend / non-friend, I make IsOnFriendsList always true.

I think it's not good to have some toggle to switch IsOnFriendsList because I think camera should be remoed with IsOnFriendsList = false avatars.

lyuma commented 9 months ago

Since IsOnFriendsList is defined to always be false for local players, I agree that we do not need a toggle for the local player.

That said, if we are hardcoding it for the local case, the value must be false if IsLocal, not true as in this PR.

You're right that it should incorporate the VRChat camera logic (for example, toggling off cameras for remote players, and destroying if non-friend or not shown). I can look into making this change. From what I understand, the code is mostly iterating over all Camera components.

As for the UI for non-local clones, I think the way I will do it is add a checkbox in the LyumaAv3Emulator component (and the Settings window) to control whether or not the "non-local clones" are friends.

anatawa12 commented 9 months ago

That said, if we are hardcoding it for the local case, the value must be false if IsLocal, not true as in this PR.

Yes, sorry. I'll fix soon.

I can look into making this change. From what I understand, the code is mostly iterating over all Camera components.

I think it's another feature so I want to do in another PR

jellejurre commented 9 months ago

I don't see why it should be always true for remote. Why not have a toggle which only affects the remote player?

anatawa12 commented 9 months ago

If we can make it false, I think we should remove camera components.

I think simulating non-friend remote player is another feature issue, not just a patch