Pose detection and animator transitions for regular avatars

This commit is contained in:
SDraw 2022-09-15 00:14:12 +03:00
parent 0cab0fb7db
commit 6b67471217
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
7 changed files with 152 additions and 38 deletions

View file

@ -1,5 +1,5 @@
# Avatar Motion Tweaker
This mod adds `Upright` parameter for usage in AAS animator and allows disabling legs autostep upon reaching specific `Upright` value.
This mod adds features for AAS animator and avatar locomotion behaviour.
![](.github/img_01.png)
@ -10,17 +10,24 @@ This mod adds `Upright` parameter for usage in AAS animator and allows disabling
# Usage
Available mod's settings in `Settings - Implementation - Avatar Motion Tweaker`:
* **Legs locomotion upright limit:** defines upright limit of legs autostep. If HMD tracking goes below set limit, legs autostep is disabled. Default value - 65.
* Limit can be overrided by avatar. For this avatar has to have child gameobject with name `CrouchLimit` and its Y-axis location will be used as limit, should be in range [0.0, 1.0].
* **IK locomotion override:** disables legs locomotion/autostep upon HMD reaching height of `CrouchLimit`; default value - `true`.
* **Crouch limit:** defines first limit; default value - `65`.
* Note: Can be overrided by avatar. For this avatar has to have child gameobject with name `CrouchLimit`, its Y-axis location will be used as limit, should be in range [0.0, 1.0].
* **Detect pose (regular avatars):** forces regular avatars' animations to transit to crouching/proning animation states; default value - `true`.
* Note: Avatar is considered as regular if its animator doesn't have `Upright` parameter.
* **Prone limit (regular avatars):** defines second limit; default value - `30`.
* Note: Can be overrided by avatar. For this avatar has to have child gameobject with name `ProneLimit`, its Y-axis location will be used as limit, should be in range [0.0, 1.0].
* Note: Has no effect for mod compatible avatars.
Available additional parameters for AAS animator:
* **`Upright`:** defines linear coefficient between current viewpoint height and avatar's viewpoint height. Range - [0.0,1.0] (0.0 - floor, 1.0 - full standing).
* Note: can be set as local-only (not synced) if starts with `#` character.
* Note: Can be set as local-only (not synced) if starts with `#` character.
* Note: Defining this parameter in AAS animator will consider avatar as compatible with mod.
Additional avatars tweaks:
* If avatar has child object with name `LocomotionOffset` its local position will be used for offsetting VRIK locomotion center.
## Example of usage in AAS animator for mixed desktop and VR
## Advanced usage in AAS animator for mixed desktop and VR
* To differentiate between desktop and VR players use `CVR Parameter Stream` component on avatar's root gameobject. As example, `InVR` and `InFBT` are boolean typed animator parameters:
![](.github/img_02.png)
* Add additional transitions between standing, crouching and proning blend trees:
@ -38,5 +45,4 @@ Additional avatars tweaks:
![](.github/img_08.png)
# Notes
* Sometimes after restoring legs autostep avatar's torso shakes, currently investigating solution.
* Usage of `Upright` parameter for transition between poses (standing/crouching/proning) in desktop mode is useless, because in this case your animations are updating value of `Upright` parameter, not the other way around.