jetdog8808 / Avatar-Armature-Collider

Dynamicly fit colliders to avatars humanoid armature.
MIT License
30 stars 1 forks source link

runtime radius customize #6

Open Narazaka opened 2 months ago

Narazaka commented 2 months ago

The bones is avatar dependent so sometimes the colliders have very different shape from the corresponding mesh. Especially the head bone and the spine bone is often differs. So I want to provide the players runtime collider radius customize UI, that can edit the head_radius and SpineFactor etc. But head_radius etc. is private and there is no appropriate API that can _CalibrateToAvatar().

I want to do as below.

avatarArmatureColliderSystem.head_radius = headScale * initial_head_radius;
avatarArmatureColliderSystem.CalibrateToAvatar();
jetdog8808 commented 2 months ago

I can add the customization api, but syncing will have to wait. I have plans on how I want to sync it, but those features are not public at the moment.

Wait time for syncing may be measured in months.

Narazaka commented 2 months ago

I know that this library is currently not synced and general purpose sync feature is difficult. It maybe convenient to implement sync feature to this library but it may be more flexible to implement the synchronization function externally and provide only an API that can be used from external. I think it is important to do one thing well. For example, I implemented per-user collider setting sync by using CyanPlayerObjectPool but I think it would be difficult to officially implement these individualistic things. If it were to be implemented officially, I think it is a good idea to have an optional component like #4.

jetdog8808 commented 2 months ago

public information on syncing plans.

persistent world data

  • With "Player Objects." VRChat can automatically instantiate this object once for each player. Scripts on player objects can have persistent variables.

-Fax

ETA: Summer 2024