VRChat - Parent Constraints Part 1 (Avatars 3.0)
HTML-код
- Опубликовано: 17 дек 2024
- This video is the first of two parts of parent constraint videos I will be making, explaining how to set them up on your avatar.
This setup will work with Write Defaults on or Write Defaults off.
In this video, we are setting up a normal parent constraint and the foundation for using a world transform to drop our object in world space. In the next video, I will be integrating the contact system on top of our parent constraint system so that we can leave our props out without accidentally grabbing them with a gesture when doing face expressions.
If you have any questions, please leave a comment below and I will respond to you as soon as I can to help out!
Love or hate the new video format? Let me know in the comments below so I know what kind of videos you all would like for me to make!
Music from freetousemusic...
‘Donut’ by ‘Lukrembo’
• lukrembo - donut (roya...
'Biscuit' by 'Lukrembo'
• (no copyright music) l...
'Sunset' by 'Lukrembo'
• (no copyright music) j... - Игры
You are a godsend for anyone wanting to learn Unity right now. Thank you so much.
Makes me super happy to hear that! I am honestly just happy I can make tutorials for things I wish I had tutorials for when I started out with avatar creation. No one in the community seemed to make videos like this back then, or the methods / explanations were outdated or could have been explained better. I've learned a lot from really experienced individuals and wanted to share the methods and stuff I have learned with the community. More experienced avatar creators means more cool content on the platform, which I would love to see!
I love hearing suggestions for tutorials from people so I can have an idea of what new or experienced creators want to understand or learn about!
@@Wolfy527 If you teach personally or wouldn't mind being dm'd for help I'd like to pick your brain sometime!
@@xixyas I help people out if they need it ^.^ I don't mind being DM'd questions and such!
Im having a bit of trouble finding "GestureRight" in the Conditions dropdown menu at 4:26
i am sure ive done everything in the video to a T but idk what is wrong tho
If you don't have a "GestureRight" in your parameters list then you'll just want to make an int parameter with that name. "GestureRight" and "GestureLeft" use int parameters and "GestureRightWeight" and "GestureLeftWeight" use floats.
@@Wolfy527 can you elaborate more?
thanks for making the video i suggested
Absolutely, thanks for the suggestion! I've had a lot of people ask about parent constraints so I thought it would be good to cover! I'll be going over modifying this setup to work easily with the contacts system and using the worldtransform so that it can be dropped in world space! The next video will be out soon!
I know this is not related to the video and im sorry, but i would love to know where you got the beautifull chest fluff for the hobkin from.
This hobkin model is one that I commissioned a 3d modeler to decimate (in order to optimize it) as well as attach custom chest fluff to it and whiskers! I plan on releasing public avatars in the future that use this model! I am glad that you like it, I was super excited to have chest fluff made for the hobkin that I actually liked!
what if it's an item i want too big for the hands and the holster and i want to drop it on the floor infront of me? do i make a constraint on and infront of the armature and ignore the holster and hand constraints?
Yeah! If you want to have an object spawn next to your avatar, you can have it parented to your "Spawn Location" constraint (or something of that sort) and it will be attached to that whenever it is toggled off (so that it follows you again when turned off) and then when you toggle it on you set the source weight to 0 and toggle off that constraint so that it is then using the world constraint and is placed in world space!
Hopefully that makes enough sense, but if you have more questions just let me know!
@@Wolfy527 oh cool! thank you very much! i'll see if i can translate it into action and will let you know later if it worked or not!
thank you very much for taking time to respond and explain
@@The666VampireGirl No problem! If ya do have any other questions just let me know!
How do you make sure that bread will appear on the desired location in hand? Thank you
Hi, really sorry about the late response! The parent constraint component is what you will want to use for shifting your game object from one location to another. You'll place your desired location in the sources for the parent constraint and then move those sources around as desired and shown in the video!
What do I do if my avatar has no Animator Controller applied?
You can add the component to your avatar's base in the inspector by clicking "Add Component" and searching for the "Animator Controller" and adding that to the avatar.
Hey! I already have animated objects but when I create a world constraint and try to drag/drop the objects under the constraints, the animations no longer play.
Is there an easy way to fix the animations not working when I drag/drop them under the constraints in hierarchy? Thanks!
You'll want to create the animations while they are already under the objects with the constraints on them. When you record an animation it essentially creates a "file path" where it goes through the hierarchy and looks for that item. I.e. if you have a sword on your hand (literally in the hierarchy on your hand) and record and on / off toggle, but then move it to the parent constraint gameobject as a child object, then you'll have to either change the file path (it's looking for "avatarname/armature/spine/..." to do the animation, but you've moved it elsewhere, so the animation will no long work unless you update it.
I think this sounds like the issue you're having, but if not just let me know and I can try and help ya out some more!
hey wolfy i know this is a bit late but is it in any way possible to make this work for quest avatars?
If we are ever allowed to use parent constraints on quest in the future, then these videos should work perfectly fine for them! Unfortunately, right now parent constraints are not supported in Quest, so the only thing that can be done is having multiple of the same item toggle on and off in different locations. I.e. Hat toggles off on head and then on in your hand to "grab" it.
@@Wolfy527 would there be a way to make it look like you actually grabbed it using contact points and gesture controls?
@@x1xriptide Yeah! Instead of having it do things with a parent constraint, you could just make it toggle off the item on your hip and toggle on the item in your hand when you do fist gesture on the object. Then you could go in reverse and make it toggle off the item in your hand and toggle on the item on your hip when you do open hand on your holster location. Same premise, just no parent constraints and it is technically less optimized since you'll have two of the same object on your avatar.
@@Wolfy527 thank you so much
I have been trying to find a solution to this problem for two days lol
Kinda late to the party with this, but i can't seem to get the holster to hand down. My on/off toggle works, but i can't get the gesture to switch to my hand so i can move on to video # two. What could i be doing wrong? :"}
Hmm, there are a few different things that could be going wrong. I would double check that your animation (in play mode) is going from the empty clip to the "BreadHolster" animation, if it is, then make sure that when you do the gesture to swap to "BreadHand" that it is properly switching to that animation. If it is switching to the "BreadHand" animation then you'll want to check your animation itself and make sure that it was recorded properly.
One other thing you can check is the base layer at the top of your FX. If you recorded your animations in there, you'll want to make sure that you delete them out of the base layer as that could prevent these other layers from working properly.
@@Wolfy527 I had my values switched around like a dunce in the animation for my Holster. Big RIP. THANKKK YOUUU!!
@@ChaoticBunx No problem! Glad ya got it figured out!
When I’m putting the object into each container it dosent place the correct way it uses the same rotation and X,Y,Z
In the top left corner next to all of the different navigation tools you'll see "center" and "global" next to each other and you'll want to change "global" to "local" by either clicking on it or pressing "x" on your keyboard. This changes the reference point for objects when you click them so that it either rotates and moves them in reference to the global axis (which is always the same) or the local axis (which will rotate and move with your game object's orientation).
Hopefully this sorts out your problem, but if not just let me know and I can try and help ya out more!
@@Wolfy527 it Said it was already in Local?
@@ninakemmerer4210 Wanted to make sure that wasn't what was causing the issue since it was the easiest fix!
You'll also want to make sure that you are placing the object you're wanting to move around in the container and then changing the values of the constraint locations and adjusting those, not the gameobject itself. I.e. you place a plushie in your container and you have a holster and hand location for your parent constraint. You change the weight to 0 on the holster and 1 for the hand and then adjust the hand constraint so that the plushie looks like its it your hand properly, don't adjust the plushie gameobject itself.
The plushie essentially inherits the "constraint locations" transform settings when you change the weights in the "parent constraint" on the container game object, so you'll want to adjust the constraint locations themselves, not the gameobject (plushie in my example here) in the container itself.
You are a godsend, Ive been tearing out my hair for what feels like forever, Im coming to your channel For Everything from now on
@@ninakemmerer4210 Glad I was able to help ya out! Love to make things easy to understand since they can be pretty tricky or not very intuitive at first glance!
Yo thanks
No problem! Glad to help!