Goal
I wanted some special seating poses for world stations for desktop players (maybye for VR 3pt tracking users too). Goal would be that a user can switch between poses, while he is in the station (using VelocityY as parameter to trigger the pose id).
Steps
1st) I created some seating or lying poses. I created and tested all of them with the same rig (Merino).
2nd) I created a controller and assigned it to my station (seated). The controller sets "Tracking Control" to animation, then enters "Temporary Pose Space" (to have the camera aligned with the head), then sets "Tracking Control" to tracking for the upper body (head and hands). Basically the same as done in vrc_AvatarV3SittingLayer (but without transitions and different timings - see below why the default timings doesn't work).
Detected Issues
Issue 1) Grab a Merino somewhere and enter the station while you are crouching or crawling. Use your camera to check the pose. The spine is bent as the created pose, the hip is rotated correctly and is on the right height, the legs and arms are posed correctly too (see the images without remarks).
Now enter the station again while you are standing. Now, every pose breaks as soon "Tracking Control" sets head back to tracking. Some poses work better, others look totally wrong. The spine is not bent as created, the hip is not rotated correctly, legs and arms are not posed correctly (see the images with remarks).
Issue 2) The pose can end up in a different result, depending on which direction you watch, when you enter a station. That means that the hip can be twisted differently and the legs misaligned. The direction from which you enter a station, or in which you look, should not affect the result.
Issue 3) While you are in a station, look 90° right to interact and enter into a second station. Now, when you are in the new station, you look forwards. But it acts as your head is still rotated to right. You can't turn more to right (locked). Instead, you can turn your head 180° to left (last image - hello Mrs. Owl!).
Contact me if you need a scene example with station/controller/poses.
Lack of Documentation
There is no documentation for many related points (at least I didn't find in the official docs).
1) It's unclear how a pose has to be built. I cannot recognize any rule, when I analyze the default poses proxy_stand_still, proxy_crouch_still, proxy_low_crawl_still or other ones. Has the head to be on a certain height? Has hips or head to be aligned with the origin? Or does it simply not matter?
2) I was not able to find any documentation about how a controller assigned to a station has to look. My guess was that this controller is sort of "injected" into the avatars controller at runtime. My understanding is also that it replaces the default sitting controller (vrc_AvatarV3SittingLayer) in such a case - but I am not sure.
3) Can we "officialy" use "Tracking Control" and "Temporary Pose Space" state behavior for controllers assigned to a world station? Currently, I have to build my controller in an avatar project, because this state behaviors are not available in world projects (at least not with some inofficial hacks).
4) Assuming that we can use "Tracking Control" and "Temporary Pose Space" state behaviors in controllers used for stations: How timing of these state behaviors has to be? Using timings like in vrc_AvatarV3SittingLayer produces strange results.
When entering into a station, you want to set your "Tracking Control" to animation and your "Temporary Pose Space" to enter, so the camera is aligned with the poses head. When this is done, you want to set your "Tracking Control" back to tracking for the upper body. Currently, it's not clear when this state behaviors have to run. I observed, that set tracking back to "Upper Body" happens automatically after some time. That interferes with state behaviors I triggered before in my controller. My guess is, that the default vrc_AvatarV3SittingLayer is still firing its state behaviors somewhere.
5) There is no documentation about IK 2.0 and how it works for desktop players. Why is there spine IK for desktop players at all? It makes sense in VR, because a user can move away his head from the pose or because the user has not the same proportions as the avatar. But in desktop, that is never the case. Also, what does the "Seated" IK different than the normal IK? I was not able to see a difference (in desktop mode).