benaclejames / benaclejames/VRCFaceTracking
[FeatureRequest] Implement mapping params to multiple addresses, and/or, always send an official param in addition to whatever is found
- Dominant language
- C#
- Stars
- 907
- Forks
- 135
- Avg merge
- 11h 28m
- Merged PRs (30d)
- 7
Description
Currently BaseParam grabs the `FirstOrDefault` param that matches: https://github.com/benaclejames/VRCFaceTracking/blob/master/VRCFaceTracking.Core/OSC/DataTypes/BaseParameter.cs#L97
[In our docs](https://docs.vrcft.io/docs/tutorial-avatars/tutorial-avatars-extras/parameters) we specify that an avatar creator can use any prefix; the most popular is likely `FT`, used in Jerry's templates, but others that creators have chosen are `EchoFT`, `KIT`, or just the raw parameter names (legacy), e.g., `JawOpen`.
This means that for someone creating a Unity project that leverages face-tracking to drive behavior based on the received param names, they have to either choose the estimated most popular option, the one they personally use on their avatars, or create Unity logic to handle the options they're aware of (which is likely to be a non-exhaustive list and can complicate animator logic).
Thus it'd be nice if we:
1. Modify the code to create a mapping not just of the first param that matches, but multiple
2. And/or always send `FT` prefixed params as well as the first one that's found that matches
This would remove the burden from asset creators and maintain backwards compatibility.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with VRCFaceTracking.Core/OSC/DataTypes/BaseParameter.cs at the FirstOrDefault lookup referenced in the issue, then compare the parameter-prefix behavior described in the linked documentation. Decide how multiple matching addresses or an official FT-prefixed parameter should preserve existing behavior, and verify that the resulting mappings cover the listed prefixes without breaking backwards compatibility.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100