Originally posted by mordentral
View Post
Announcement
Collapse
No announcement yet.
VR Expansion Plugin
Collapse
X
-
When working with secondary grips, is it possible to not have the event Secondary Grip Released not fire when the main grip is released? I'm attempting to create a tape measure where you can drop the body of the device on a surface while maintaining the secondary grip to allow for the rendering of the tape. Currently the road-block I've hit is that when releasing the tape body the Secondary Grip Released event is triggered, causing the tape to self-destruct. Any thoughts?
Comment
-
Originally posted by Smiddsy View PostWhen working with secondary grips, is it possible to not have the event Secondary Grip Released not fire when the main grip is released? I'm attempting to create a tape measure where you can drop the body of the device on a surface while maintaining the secondary grip to allow for the rendering of the tape. Currently the road-block I've hit is that when releasing the tape body the Secondary Grip Released event is triggered, causing the tape to self-destruct. Any thoughts?
Trying to do it with a secondary grip seems like the wrong approach there, two seperate grips (one of the body and one of the tape end as a component) seems more suitable?
You could also store the secondary hand and not implement a secondary grip at all if you wanted to avoid the extra component, the secondary attachment itself really doesn't have much use with what you are trying to make there.
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
I just want to thank you so much for giving us this amazing public, you have saved me so much time with doing my own research and now I can get straight to work and making my ideas come to life. One of my ideas were to have weighted physics objects that you can grab as seen in games live Blade and Sorcery or the unreleased Boneworks. Is there a way to do that through your implimentation of the grabbing mechanics?
- 1 like
Comment
-
Originally posted by Simply Clueless View PostI just want to thank you so much for giving us this amazing public, you have saved me so much time with doing my own research and now I can get straight to work and making my ideas come to life. One of my ideas were to have weighted physics objects that you can grab as seen in games live Blade and Sorcery or the unreleased Boneworks. Is there a way to do that through your implimentation of the grabbing mechanics?
These are the physics settings that you would likely want to use for that kind of thing:
You then have to play with the grip stiffness (and/or the custom angular values) until you get a force amount that works well for you.
It sets the physics grip location to stop setting the center of mass since you want the object to be weighted correctly and turns the constraint type into a force based one. Keep in mind that Angular stiffness and damping will likely have to be a very high values as its units are different than the linear stiffness ones.
You may want to actually turn on setting the COM again if you are gripping something like a sword as it would make the pivot work better.
You can grip the same object multiple times with physics grips since they are force applicators, I actually have it on my TODO list for today to make it easier to manage multiple main grips on a single object, been pushing it off because its going to require people to re-factor a bit.Last edited by mordentral; 04-18-2019, 11:47 AM.
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Originally posted by mordentral View Post
Not really, SecondaryGrip is a grip modifier, when you drop the grip itself then the secondary grip modifier is removed. Normally for that tape setup I would have a seperate component on the tape end of the tape measure that the other hand grips, not a secondary grip. That way you can pull out the other end of the tape seperate from the main body.
Trying to do it with a secondary grip seems like the wrong approach there, two seperate grips (one of the body and one of the tape end as a component) seems more suitable?
You could also store the secondary hand and not implement a secondary grip at all if you wanted to avoid the extra component, the secondary attachment itself really doesn't have much use with what you are trying to make there.
As a follow-up question, how would I go about differentiating between grips on the separate grippable components? At the moment I have one parent GrippableSphere component with a GrippableBox component where the tape end of the tape measure is. I've implemented the VRGrip interface to get access to the On Grip event, but how do I know which component was gripped?Last edited by Smiddsy; 04-18-2019, 10:29 AM.
Comment
-
Originally posted by Smiddsy View Post
I had a suspicion that I was misunderstanding the purpose of the secondary grip, thank you for clearing that up for me!
As a follow-up question, how would I go about differentiating between grips on the separate grippable components? At the moment I have one parent GrippableSphere component with a GrippableBox component where the tape end of the tape measure is. I've implemented the VRGrip interface to get access to the On Grip event, but how do I know which component was gripped?
There is also the OnChildGripped event that is part of the interface as a quick way of doing this, but it requires checking against the sub components. It would do if you only have one child that is grippable though as you can just cast to it and use it.
Generally by the way I would have used as grippable static mesh actor for the base, and then the end of the tape could be your grippable box. Also if you are only doing linear measuring you could use a VRSlider component to extend the tape.Last edited by mordentral; 04-18-2019, 10:57 AM.
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Originally posted by mordentral View Post
Generally the best method is to have your sub component have a method of notifying the parent, like an event that you throw from it OnGrip that the parent binds too. I don't have default ones because generally sub objects parent containers don't care if their children are gripped or not.
There is also the OnChildGripped event that is part of the interface as a quick way of doing this, but it requires checking against the sub components. It would do if you only have one child that is grippable though as you can just cast to it and use it.
Generally by the way I would have used as grippable static mesh actor for the base, and then the end of the tape could be your grippable box. Also if you are only doing linear measuring you could use a VRSlider component to extend the tape.
Comment
-
Pushed a new update to both Repositories, keep in mind that this one will require some actual node changes.
I usually try and keep that kind of update to between engine versions, but it is early on in 4.22 and I really wanted to work with this over the course of this engine version.
Code:Changed the IsHeld Implementation and added AllowsMultiGrip to the VRGripInterface to prepare for some future features. See Patch Notes: https://vreue4.com/patch-notes?secti...anges-04-18-19
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Originally posted by mordentral View Post
None of the Valve SteamVR plugin is setup for replication currently, in fact the layout of it is somewhat against replication being easily added. I'm waiting for a solid stable version of it (hopefully with some suggested changes) before I decide where to take my module that implements the same thing and how best to merge the two. Currently it doesn't look very good for me being able to avoid a lot of custom implementation.
The reason your hand animations are duplicated is because their animation node is directly querying SteamInput for the current hand poses, this means it will always take the local players hand poses. I will likely need to create an alternative node that takes an optional transform input to work off of instead of the hard coded query.
Also though, in most cases you will likely want to replicate and use finger curls / splays for your hand animations, it is more friendly to pose blending and has far less overhead for replication, in that case it would just be replicating the curl values and applying them in the animation graph to blend between a fully closed and fully open hand pose depending on the grip.
Its really only when nothing is held that you would want to fall back on the full transform list.
I've gotten replication to work except that my client seems to be taking input from the server every other frame resulting in flickering. Not sure what I'm doing wrong, but will keep working at it and post here with the solution for others.
Attaching my code in case anyone can provide an answer.
Comment
-
Originally posted by Kilargo View Post
Ok so I have an update!
I've gotten replication to work except that my client seems to be taking input from the server every other frame resulting in flickering. Not sure what I'm doing wrong, but will keep working at it and post here with the solution for others.
Attaching my code in case anyone can provide an answer.
When I eventually make my hard coded replication i'll be replicating them as a 0-1 scaler since it takes significantly less bandwidth.
As for your "flickering" issue, you need to ignore the "tell client" part on the owning client as its re-setting the client by not ignoring it. Also this should all be on a replicated struct or something and not multicast RPCs.Last edited by mordentral; 04-19-2019, 06:21 PM.
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Originally posted by mordentral View Post
Ug.....those really should be passing / returning an array of values. I wasn't very happy about them breaking them out per finger like that when an index map would work just as well.
When I eventually make my hard coded replication i'll be replicating them as a 0-1 scaler since it takes significantly less bandwidth.
As for your "flickering" issue, you need to ignore the "tell client" part on the owning client as its re-setting the client by not ignoring it. Also this should all be on a replicated struct or something and not multicast RPCs.
As for the flickering. I'll try to figure out how to get the owning client to not fire the "Tell Client" event. I figured I could do something the attached picture, but depending on whether I choose "true" or "false" it either has no effect (keeps flickering between server and client input), or the server takes over input completely and I get full mimic instead of flickering.
Sorry for taking up so much of your time. You've been amazingly helpful.
edit: I also tried: get reference to self -> get controller -> is Local Controller
Last edited by Kilargo; 04-19-2019, 10:50 PM.
Comment
-
Originally posted by Kilargo View Post
Ok. I don't know how to work with structs yet but I'll research those when I solve this. Thank you for your help.
As for the flickering. I'll try to figure out how to get the owning client to not fire the "Tell Client" event. I figured I could do something the attached picture, but depending on whether I choose "true" or "false" it either has no effect (keeps flickering between server and client input), or the server takes over input completely and I get full mimic instead of flickering.
Sorry for taking up so much of your time. You've been amazingly helpful.
edit: I also tried: get reference to self -> get controller -> is Local Controller
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
-
Originally posted by juggajugs View PostHey,
I used this plugin on my project but my characters head can still go through objects? How do you properly set up the VR Character so that it collides with all objects?
Thanks
Consider supporting me on patreon
My Open source tools and plugins
Advanced Sessions Plugin
VR Expansion Plugin
Comment
Comment