No description
Find a file
JelleJurre 6aa886cfed
Merge pull request #15 from VRLabs/feat/freeze-to-world-fix
Fix FreezeToWorld being enabled
2026-01-19 16:33:50 +01:00
.github/workflows Add better release woorkflow 2024-11-15 15:06:08 +01:00
Instancer Add 2019 support for vcc 2024-03-06 11:41:23 +01:00
Media Loop webp 2024-02-19 18:03:19 +01:00
Resources Update world prefab 2024-12-02 21:32:29 +01:00
.gitignore Release ready 2023-09-12 19:22:03 +02:00
Instancer.meta Add Instancer 2023-12-15 21:01:22 +01:00
LICENSE Rename name in license 2023-11-27 12:43:03 +01:00
LICENSE.meta Initial commit again 2023-09-11 21:20:12 +02:00
Media.meta Add setup video 2023-09-24 02:30:30 +02:00
package.json Update package json 2024-08-23 19:01:10 +02:00
package.json.meta added package.json and new workflow 2023-12-15 20:04:20 +01:00
README.md Update Readme for Constraint beta 2024-07-30 17:16:51 +02:00
README.md.meta Initial commit again 2023-09-11 21:20:12 +02:00
Resources.meta Initial commit again 2023-09-11 21:20:12 +02:00
Selective Animation.prefab Fix FreezeToWorld being enabled 2026-01-19 15:54:36 +01:00
Selective Animation.prefab.meta Release ready 2023-09-12 19:22:03 +02:00

Selective Animation

Generic badge Generic badge Generic badge Generic badge Generic badge

Generic badge Generic badge

System for playing animations for only a single player in an instance

SelectiveAnimation

⬇️ Download Latest Version

📦 Add to VRChat Creator Companion


How it works

  • The system is built using two Raycasts.
  • The two raycasts are slightly offset from each other, and one has a contact sender on it, while the other a contact receiver on it.
  • When pointed at a player, both raycasts will collide with the player only on their screen, because the PlayerLocal collider only exists on their side. This means the Contact Sender and Receiver will only make contact for the player the system is pointing at.

Install guide

https://github.com/VRLabs/Selective-Animation/assets/76777936/3dc5d6d8-8855-4bef-9398-62fd3522a69e

  • If you dont already have Final IK installed, download and install the Final IK Stub.
    • Note: Testing in Unity is not possible when using the Final IK Stub!
  • Drag & drop the Selective Animation prefab into the base of your Hierarchy.
  • Right click and unpack the prefab, then drag & drop it onto your avatar.
  • Expand the prefab hierarchy and find Selective Animation Target
  • Move Selective Animation Target outside of Selective Animation and place it anywhere in your avatars hierarchy as needed.
  • Adjust the rotation so the laser points in the desired direction.
  • The laser can be disabled or deleted.

How to use

  • Add the bool SelectiveAnimation/IsSelected to your FX controller.
  • When the system is pointing at a player, the bool will be True only for the player it is pointing at.
  • Use the bool as a transition condition to make animations visible to only the one player.

Additional notes

  • VRChat uses Final IK v1.9. If you are using a different version you may experience differences in behavior when testing with Final IK.

Performance stats

Constraints:        3
Constraint Depth:   2
Contact Receivers:  1
Contact Senders:    1

Hierarchy layout

Selective Animation
|-Raycast Container
|  |-PlayerLocal Raycast Sender
|  |  |-LimbIK
|  |  |  |-Grounder
|  |  |  |  |-Offset
|  |  |  |  |  |-End
|  |-PlayerLocal Raycast Receiver
|  |  |-LimbIK
|  |  |  |-Grounder
|  |  |  |  |-Offset
|  |  |  |  |  |-End
|  |-Sender
|  |-Receiver
|  |-Laser
|-Selective Animation Target

Contributors

License

Selective Animation is available as-is under MIT. For more information see LICENSE