Avatar Dynamics have definitely made things simple for interactions between avatars. We've gotten alot more freedom like back in 1.0 where we could just make our own scripts. Not a direct replacement but I'm still satisfied with the progress and the path we're moving towards with VRC. I've used acid particles to "melt" another mesh using poiyomi dissolve and sender and receiver contacts. We used to have to rely on world layers to have these interactions so its nice having it contained between avatars now
I honestly wasn't on VRChat or really too aware of it until late 2020, so I missed a lot of the cool things that could be done in the earlier days. I've been super excited about avatar dynamics and I am extremely excited for future things that are planned in development as well! I really love seeing interactive systems between avatars and people as it makes things more fun in my opinion. I think seeing the avatar dynamics system implemented into the world SDK in the future will really add a fun layer of interactions between world and avatar creators, so I am looking forward to seeing that as well! One of the reasons I even make tutorials at this point is so that the barrier of entry for newer avatar creators is lower and easier so we can see more custom and well-made avatars out in the wild!
Do you know if it's possible to make a Forcefield that is toggled when something touches it? I'm wanting to make an effect where something hits the forcefield, and the sphere looks in the direction of the collision and the dissolve would happen, showing whatever texture is on the sphere at the point of collision But I wouldn't even know where to begin Edit: Nevermind I found a way! A simple method, but I used 3 receivers for left right and back, and gave the main forcefield a Look at Constraint, So now when something passes through the first receiver, the forcefield looks in the direction of that receiver!
I actually was looking into this for quite some time because I wanted to make locational hits that were very direct (more that just left/right etc. but like down to a hand size location on the sphere) but it would be extremely complex in a shader to do it, so unfortunately that isn't something I will end up doing. A Look At/Aim Constraint would work fine for general directional hits (similar to what I'm considering doing) or you could also use masking and dissolved so that if a front receiver is hit on it, it triggers a dissolve that is masked to the front of the shield etc. This would give you great directional control as you could have it take multiple hits from different directions before dissipating/destroying. One issue you might run into with the look at constraint is that if multiple people are hitting it at the same time, it might move the shield around in an odd way potentially. It would depend on how you have it set up!
I was wondering how you did the toggle for the forcefield to be turned on when you touch the contact and then turned off when you touch it again. been trying to figure it out for a while lol. i get close but i cant get my toggle to turn off once touched again.
Basically what I did was used 2 "constant" contact receivers to look for my hands and when my hands enter it while i'm also doing the "open hands" gesture, it transitions to an "on buffer" state that turns the shield on, but waits for my hands to leave the receiver before transitioning to another "on" animation. This way the animation is caught until you pull your hands out of the receivers, so that when you go to put them in again, you can then have it go to an "off buffer" animation, that waits until you pull your hands out again to go to the "off" animation that is your default state. It sounds more complicated that it really is, but it's basically an "on" animation twice and an off animation twice, with the conditions between them being different. I.e. Off --> On Buffer --> On --> Off Buffer --> loops back to Off With the transition from Off --> On Buffer and On --> Off Buffer being both of your hands being in the contact receivers, whereas the On Buffer --> On and Off Buffer --> Off conditions being your hands are not in the receivers. Hopefully this kind of makes sense, but there are quite a few ways you could actually do this, but I think this is the easiest way to explain it over text.
I'm trying to figure out how to make a force field animation like this. Would you be willing to make a tutorial on how to make that or give me a general idea of how you made it?
How I made this particular version of the shield was by using Poiyomi Pro (paid version of Poiyomi's shader) and using a dissolve from front to back for spawning the shield in and then the bulge option for its displacement when interacting with an object. For the glow I have an emission turned on for the shield and it's animated so that when a sender collides with the shield, then the sound plays and the emission is turned up momentarily to give an impact effect. I am however looking into making a much more complex and interactive system for this in the future, and I will definitely make a video about it when I get to it!
@@Wolfy527 Thank you for responding. I would love to try and recreate this and look forward to seeing a video on when you discover how to go about doing that more interactive system as well. So my question is back in reference to the shield. Did you use a sphere then and used poiyomi on this then did everything you explained above?
i cant seem to get the information i need: contacts work, i see the value change from 0 to 1, sender to reciever, but nothing changes, i have the menu parameter set up correctly, and the "change if greater than" thing set up too, FX layers and all. just a simple "fire" word im using for the parameters, but nothing changes. im trying to make it so when the contact takes place, it changes the material and start a particle loop, then stay that way until i manually reset it with a button.
If you're testing in unity, do you have your FX controller in your animator component in the inspector? The component should show up in the inspector on the right when you click on the base of your avatar in the hierarchy.
@@nexal6928 No problem! Glad that fixed it for ya! You'll only need that in there for testing in unity, just make sure you put your FX in your FX layer on your avatar descriptor to make sure it works in game as well!
Amazing videos you have wolf, ty for sharing your knowledge! I have a couple of questions. When another player uses for example a 'bat' on the shield, do they also need to have their 'bat' configured with the same params as you in their unity config so your side knows which objects are what? If that makes sense.. And are these avatar dynamics related to physbones? Will these dynamics work correctly if I'm still using dynamic bones? Also, if there's old avatars in-game that were uploaded months ago with the old SDK, will avatar dynamics still work, i.e. their hands have senders enabled etc?
Thank you, I love sharing things that I learn with people! And in regards to your questions. If another player is using a bat on their avatar and I want them to be able to interact with it (and they want it to be able to interact with other peoples' receivers) then I need to put "Bat" in my receiver as a tag, and they need to put a sender on their bat that has the tag "Bat" in order for the bat to play the sound clip that I have set up. If they put a receiver in their bat and that receiver has "Head" and "Torso" and "Hands" in it, then when they hit someone in those areas it will play the animations they have set up. The Physbones and Contacts system are not directly related to one another, but they can interact with each other depending on what you're doing. But everyone has standard colliders put in their avatars that people can interact with, no matter when the avatar was made, so you don't have to worry about an old avatar not being able to interact with others' contact systems!
I've been looking into a feasible way to put something like this on booth and gumroad, the only problem is that if it were just like the one in the video, anyone who gets it would have to have poiyomi pro as well, or I could make a version that doesn't do quite as much as this one but would be usable with the free version of poiyomi. I do have a newer version of this I've been working on, but I have been debating on how to go about putting it out!
@@Wolfy527 If people are willing to buy your prefab, they will more than likely have paid for poiyomi pro (as I have). I would hate to have to use the "take my money" meme here... but yea :)
@@sneaky4158 That is true! I will talk to Poiyomi and ask them what they think the best method of distributing a prefab like this would be as I don't want to accidentally give out Poiyomi Pro for free and I want to make sure I credit them for their shader and such properly! The prefab will definitely be on Booth/Gumroad if I do end up making the force field into a prefab and I will also have a video of it on my channel for setting it up on an avatar too!
@@sneaky4158 I believe so, but a lot of the features of the force field would include things occurring in the shader, so I want to make sure that if someone imports it into their project without the actual full shader in there, that they could then import it later and everything would work fine. I also want to check with Poiyomi that doing so is fine and see if there is anything in particular they would want me to do for crediting them besides linking to the shader and such.
I made a clothes locker with "VRC Contact Receiver", but the setting is initialized every time I change the world. I don't think I can use the SAVE function in the parameters, is there any way I can't initialize it?
@@Wolfy527 Yes, that's right. I'm sorry for using a translator to speak strangely. If I change "World", I can't save the tools in the locker that I changed to "VRC Contact Receiver", is there a solution?
@@anaaa6333 No problem! You are going to have to network synchronize your contact values so that they will persist across worlds and when people show your avatar. I made a video going through network synchronizing contacts like this so that they will work across worlds and for people that join the world late.
@@Wolfy527 Is there a way to sync to the network? I wonder how you can do it in the avatar's "fx layer". I really want to use the VRC Contact Receiver function, but I'm sad that it's always initialized.
I would double check that you have the newest SDK in your project since the Avatar Dynamics update is relatively recent and a lot of people haven't downloaded it yet.
Unfortunately, to my knowledge at the moment, there isn't any way to put something on your avatar that would allow you to move another player around unless they interacted with a chair that you placed on your avatar. I.e. they would have to sit on it for you to be able to move them around, so creating a pushing/flinging effect isn't possible at the moment unless you did some kind of scripted moment where they acted it out while in a chair you have.
So I've kinda followed this in an attempt to give myself something similar; an invisible receiver on a toggle that when hit by my open hand, activates an animation, and vice versa when it's hit again. However no matter what I do, the animation itself refuses to loop. Any thoughts?
If you select your animation in your project folder there should be an option in the inspector to turn on loop time. That should make your animation loop.
@@Noctis2525 Hmm, make sure it has two keyframes as well. One at the start and then one more right after that keyframe. You'd also want to make sure it isn't playing your animation and then automatically transitioning out of it.
@@Wolfy527 I'm not in a position to do testing right now since my computer won't be accessible for another day, but it has lots of properties and keyframes; an activation for the parent object and various rotation and movement points for the shown objects. When I can look at it again I'll add a keyframe to the very end of the "is active" line, see if that helps.
I hadn't thought about it to be honest! I do want to revisit making the shield and design a custom sphere for it so that I can make it more interactive and fun to use, but it's been a while since I've actually worked on the force field. I definitely could sell it in the future by working on a prefab for it though, never considered people being interested in buying it!
Avatar Dynamics have definitely made things simple for interactions between avatars. We've gotten alot more freedom like back in 1.0 where we could just make our own scripts. Not a direct replacement but I'm still satisfied with the progress and the path we're moving towards with VRC. I've used acid particles to "melt" another mesh using poiyomi dissolve and sender and receiver contacts. We used to have to rely on world layers to have these interactions so its nice having it contained between avatars now
I honestly wasn't on VRChat or really too aware of it until late 2020, so I missed a lot of the cool things that could be done in the earlier days. I've been super excited about avatar dynamics and I am extremely excited for future things that are planned in development as well! I really love seeing interactive systems between avatars and people as it makes things more fun in my opinion. I think seeing the avatar dynamics system implemented into the world SDK in the future will really add a fun layer of interactions between world and avatar creators, so I am looking forward to seeing that as well! One of the reasons I even make tutorials at this point is so that the barrier of entry for newer avatar creators is lower and easier so we can see more custom and well-made avatars out in the wild!
Oh my the possibilities are endless. I’m so ready.
I know, avatar dynamics are extremely exciting! I'm looking forward to this going live to everyone!
Do you know if it's possible to make a Forcefield that is toggled when something touches it?
I'm wanting to make an effect where something hits the forcefield, and the sphere looks in the direction of the collision and the dissolve would happen, showing whatever texture is on the sphere at the point of collision
But I wouldn't even know where to begin
Edit: Nevermind I found a way!
A simple method, but I used 3 receivers for left right and back, and gave the main forcefield a Look at Constraint,
So now when something passes through the first receiver, the forcefield looks in the direction of that receiver!
I actually was looking into this for quite some time because I wanted to make locational hits that were very direct (more that just left/right etc. but like down to a hand size location on the sphere) but it would be extremely complex in a shader to do it, so unfortunately that isn't something I will end up doing.
A Look At/Aim Constraint would work fine for general directional hits (similar to what I'm considering doing) or you could also use masking and dissolved so that if a front receiver is hit on it, it triggers a dissolve that is masked to the front of the shield etc. This would give you great directional control as you could have it take multiple hits from different directions before dissipating/destroying.
One issue you might run into with the look at constraint is that if multiple people are hitting it at the same time, it might move the shield around in an odd way potentially. It would depend on how you have it set up!
I was wondering how you did the toggle for the forcefield to be turned on when you touch the contact and then turned off when you touch it again. been trying to figure it out for a while lol. i get close but i cant get my toggle to turn off once touched again.
Basically what I did was used 2 "constant" contact receivers to look for my hands and when my hands enter it while i'm also doing the "open hands" gesture, it transitions to an "on buffer" state that turns the shield on, but waits for my hands to leave the receiver before transitioning to another "on" animation. This way the animation is caught until you pull your hands out of the receivers, so that when you go to put them in again, you can then have it go to an "off buffer" animation, that waits until you pull your hands out again to go to the "off" animation that is your default state.
It sounds more complicated that it really is, but it's basically an "on" animation twice and an off animation twice, with the conditions between them being different. I.e. Off --> On Buffer --> On --> Off Buffer --> loops back to Off
With the transition from Off --> On Buffer and On --> Off Buffer being both of your hands being in the contact receivers, whereas the On Buffer --> On and Off Buffer --> Off conditions being your hands are not in the receivers. Hopefully this kind of makes sense, but there are quite a few ways you could actually do this, but I think this is the easiest way to explain it over text.
I'm trying to figure out how to make a force field animation like this. Would you be willing to make a tutorial on how to make that or give me a general idea of how you made it?
How I made this particular version of the shield was by using Poiyomi Pro (paid version of Poiyomi's shader) and using a dissolve from front to back for spawning the shield in and then the bulge option for its displacement when interacting with an object.
For the glow I have an emission turned on for the shield and it's animated so that when a sender collides with the shield, then the sound plays and the emission is turned up momentarily to give an impact effect.
I am however looking into making a much more complex and interactive system for this in the future, and I will definitely make a video about it when I get to it!
@@Wolfy527 Thank you for responding. I would love to try and recreate this and look forward to seeing a video on when you discover how to go about doing that more interactive system as well.
So my question is back in reference to the shield. Did you use a sphere then and used poiyomi on this then did everything you explained above?
@@YoruichiZ Yep! Just a sphere mesh using the things mentioned above!
You are so talented! Great job!
Thank ya! Love making cool stuff for VRC!
i cant seem to get the information i need:
contacts work, i see the value change from 0 to 1, sender to reciever, but nothing changes, i have the menu parameter set up correctly, and the "change if greater than" thing set up too, FX layers and all. just a simple "fire" word im using for the parameters, but nothing changes.
im trying to make it so when the contact takes place, it changes the material and start a particle loop, then stay that way until i manually reset it with a button.
If you're testing in unity, do you have your FX controller in your animator component in the inspector? The component should show up in the inspector on the right when you click on the base of your avatar in the hierarchy.
@@Wolfy527 Yeah, it works when the FX is in the animator, thank you!
@@nexal6928 No problem! Glad that fixed it for ya! You'll only need that in there for testing in unity, just make sure you put your FX in your FX layer on your avatar descriptor to make sure it works in game as well!
Amazing videos you have wolf, ty for sharing your knowledge! I have a couple of questions.
When another player uses for example a 'bat' on the shield, do they also need to have their 'bat' configured with the same params as you in their unity config so your side knows which objects are what? If that makes sense..
And are these avatar dynamics related to physbones? Will these dynamics work correctly if I'm still using dynamic bones?
Also, if there's old avatars in-game that were uploaded months ago with the old SDK, will avatar dynamics still work, i.e. their hands have senders enabled etc?
Thank you, I love sharing things that I learn with people!
And in regards to your questions. If another player is using a bat on their avatar and I want them to be able to interact with it (and they want it to be able to interact with other peoples' receivers) then I need to put "Bat" in my receiver as a tag, and they need to put a sender on their bat that has the tag "Bat" in order for the bat to play the sound clip that I have set up.
If they put a receiver in their bat and that receiver has "Head" and "Torso" and "Hands" in it, then when they hit someone in those areas it will play the animations they have set up.
The Physbones and Contacts system are not directly related to one another, but they can interact with each other depending on what you're doing. But everyone has standard colliders put in their avatars that people can interact with, no matter when the avatar was made, so you don't have to worry about an old avatar not being able to interact with others' contact systems!
@@Wolfy527 Thank you very much for the detailed reply, that's amazing!
It is a shame this is not on Booth or something, Its an amazing asset!
I've been looking into a feasible way to put something like this on booth and gumroad, the only problem is that if it were just like the one in the video, anyone who gets it would have to have poiyomi pro as well, or I could make a version that doesn't do quite as much as this one but would be usable with the free version of poiyomi. I do have a newer version of this I've been working on, but I have been debating on how to go about putting it out!
@@Wolfy527 If people are willing to buy your prefab, they will more than likely have paid for poiyomi pro (as I have). I would hate to have to use the "take my money" meme here... but yea :)
@@sneaky4158 That is true! I will talk to Poiyomi and ask them what they think the best method of distributing a prefab like this would be as I don't want to accidentally give out Poiyomi Pro for free and I want to make sure I credit them for their shader and such properly! The prefab will definitely be on Booth/Gumroad if I do end up making the force field into a prefab and I will also have a video of it on my channel for setting it up on an avatar too!
@@Wolfy527 when exporting it, uncheck poiyomi? I would assume. I also sent you a request for discord when you have a chance.
@@sneaky4158 I believe so, but a lot of the features of the force field would include things occurring in the shader, so I want to make sure that if someone imports it into their project without the actual full shader in there, that they could then import it later and everything would work fine.
I also want to check with Poiyomi that doing so is fine and see if there is anything in particular they would want me to do for crediting them besides linking to the shader and such.
I made a clothes locker with "VRC Contact Receiver", but the setting is initialized every time I change the world. I don't think I can use the SAVE function in the parameters, is there any way I can't initialize it?
Sorry, trying to understand the question a bit better. Are you saying that when you change worlds the toggles from your locker aren't getting saved?
@@Wolfy527 Yes, that's right. I'm sorry for using a translator to speak strangely. If I change "World", I can't save the tools in the locker that I changed to "VRC Contact Receiver", is there a solution?
@@anaaa6333 No problem! You are going to have to network synchronize your contact values so that they will persist across worlds and when people show your avatar. I made a video going through network synchronizing contacts like this so that they will work across worlds and for people that join the world late.
@@Wolfy527 Is there a way to sync to the network? I wonder how you can do it in the avatar's "fx layer". I really want to use the VRC Contact Receiver function, but I'm sad that it's always initialized.
@@anaaa6333 There is, I made a video going over how to network sync contacts.
for some reason i cant seem to find the vrc contact receiver script anywhere, any ideas .
I would double check that you have the newest SDK in your project since the Avatar Dynamics update is relatively recent and a lot of people haven't downloaded it yet.
is there a way to add force field that makes people gets pushed away or fly up when doing something
Unfortunately, to my knowledge at the moment, there isn't any way to put something on your avatar that would allow you to move another player around unless they interacted with a chair that you placed on your avatar. I.e. they would have to sit on it for you to be able to move them around, so creating a pushing/flinging effect isn't possible at the moment unless you did some kind of scripted moment where they acted it out while in a chair you have.
@@Wolfy527 ty for the info i appreciate it , its so sad to see that would have been cool to implement such a cool feature tho
@@xbboyn9977 Yeah that would be a cool feature to have. Might be something we'll get in the future though, never know!
So I've kinda followed this in an attempt to give myself something similar; an invisible receiver on a toggle that when hit by my open hand, activates an animation, and vice versa when it's hit again. However no matter what I do, the animation itself refuses to loop. Any thoughts?
If you select your animation in your project folder there should be an option in the inspector to turn on loop time. That should make your animation loop.
Wolfy_527 Loop time had been checked by default, it was the first thing I checked
@@Noctis2525 Hmm, make sure it has two keyframes as well. One at the start and then one more right after that keyframe. You'd also want to make sure it isn't playing your animation and then automatically transitioning out of it.
@@Wolfy527 I'm not in a position to do testing right now since my computer won't be accessible for another day, but it has lots of properties and keyframes; an activation for the parent object and various rotation and movement points for the shown objects. When I can look at it again I'll add a keyframe to the very end of the "is active" line, see if that helps.
@@Noctis2525 Okay, if ya need more help with it just let me know and I'll try and help if I can!
Are you going’s to be selling this ?
I hadn't thought about it to be honest! I do want to revisit making the shield and design a custom sphere for it so that I can make it more interactive and fun to use, but it's been a while since I've actually worked on the force field. I definitely could sell it in the future by working on a prefab for it though, never considered people being interested in buying it!
I am definitely interested
How do I learn this?
What in particular are ya having a hard time with?
😱💀
The contact system is super easy and fun to mess with!!
@Wolfy527 hey can we get in contact? I may or may not want the ability to use this asset.