I fully converted the plugin over to being UObject based today instead of Actor/Component. It was a long time coming after I made the generic uobject grip nodes.
I will need to test it for awhile due to how much was changed for it, hopefully I will have a new build out tomorrow with some improvements, that change, and the local only sided gripping.
When I push it live it WILL require some node changes, I held back on change for so long because it will require revisions to already working functions, but the plugin is better off with the change made.
Is it even attempting to grip it? the likely cause is in the gripping nodes for your character. You can pull a true/false out of the GripObject node and if it fails it will also print to the log why it failed.
First things first I would break on grip object if the passed in object to grip is a component and see if it ever triggers.
I used your example room ( whit the desk and gun and pot )
Wen i add streaming levels ( and stream in a level that has a gun )
If i then unload that streaming level ( while holding the gun from that streaming level in my hand )
The game crashes
Added the local only grips as well morning, I don’t want to push anything live until it is tested fully due to how much has been altered at point so I am not sure when I will merge the changes to the template / the main repository but it will be soon.
Initial local grip is a little messy so I need to clean it up a bit.
I have put together holsters, but I’m having a bug client side I can’t nail down. Occasionally when one weapon is grabbed, it will “grip” from 0,0,0 in the map, colliding on the way and such. The server sees the proper location from holster straight to gripped hand, but client side the weapon acts as if it was grabbed with the force from far away. I can repeatedly do it and sometimes it works as intented.
Using “Force Server Side Movement” instead of Client gives the proper behavior but obviously not a playable one. Attaching to holster/detaching/gripping is all done server side, as well as spawning the weapons. I have gone through my setup countless of times, looking for a point where I could have manipulated the weapons location on client, and not been able to find one.
Update: Changing to “Physics Only” as Grip Type makes it fluid and I can then conclude that it’s a collision related issue. My observation is that a larger mesh seems to lag more often than a small one. Although with the small mesh, I occasionally grab it sideways (client, still shooting straight). I can continue to work now but collision would be lovely as it’s a great means for cheat prevention (instead of disabling weapon).
Its removing the held item when you unload the level which will trigger a check with physics items as the count of physics constrained items is then larger than the held items, should be an assert not a hard crash but I wouldn’t know without the log. When you unload a streamed level it deletes all of the actors that came with it, you should drop held items from that streamed level before unloading it or re-work how you handle your actors spawning (move them into the persistent world when gripped).
I haven’t had that issue, would you mind posting your gripping blueprint nodes in PM or in here? Is the gripped actor set to replicated and replicated movement?
I’m trying to set the “Min Linear Translation” and “Min Angular Translation” in the “vrgripinterface settings” with a tick
but because you have to set the whole “InteractionSettings” it also sets both the Initial Translations.
I think causes the object I want to dynamically change the translations of to start going crazy (it’s keeps changing between initial position and position I move the object to as fast as every tick)
It would be great if you could just set every translation in the “Interactionsettings” separately.
You don’t have to set the entire struct, there is a blueprint method of only setting specific members of blueprintable structs (set members on context menu).
Hi, thank you very much that you give us asset for free, I played with vive and easily migrate my project, it works great…
The only thing I couldnt figure it out how inventory works? I see an inventory blueprint inside potion actor, but I dont understand how to use… Beside for that, Is it possible to track motion of component movement, such as putting object in our back(a gesture) will add the object to inventory?
And my last question; I am trying to mixing items together, standart adventure basics, combining two objects together and create new one… Can you or anyone who read , recommend me a way to do ? just I need a way, I will look the further details. I imagine standart unreal packages or tutorial doesnt work with VR setup, since grabbing and dropping object use different collision methods(Right?). Because I try with event hit - actor has tag(branch) - destroy actor and it doesnt work. Maybe its my fault I couldnt understand, I came from unity.
The player has a Mesh component named “Body”. There is no functionality to it, but the BP_Potion will fire a check when the “OnGripRelease” is fired and if it does overlap a mesh called “body” then it’ll attach. There are many ways to do . I myself do a trace “OnRequestHolster” and check if there are any capsules/sphere’s with object type “holster” within radius, if so, then Drop Grip and Attach.
I am receiving error and a crash: <ErrorMessage>Assertion failed: Grip.GripMovementReplicationSetting != EGripMovementReplicationSettings::KeepOriginalMovement [File:…\Plugins\VRExpansionPlugin\Source\VRExpansionPlugin\Private\GripMotionControllerComponent.cpp] [Line: 1232] &nl;&nl;</ErrorMessage>
It occurs at different points during gameplay, so it’s hard to replicate.
Hmmm, are you manually setting the grip replication type? It doesn’t allow it to be OriginalMovement as it overrides it during gripping to what it was originally. That assert checks to make sure that it is correctly set up.
I need to know by the way, I am finishing up the changes tomorrow and if that is a plugin bug I would like to fix it before releasing the revisions to the public.
I am only filling out the interface properties on begin play as per the content example, setting replication settings to Force Client Side Movement. It stays that way through the entire game loop.
I’ll need you to try and find what process you have causing if possible, spent a while trying to replicate and looking over that section of code but an object should never be able to make it past the initial grip call with KeepOriginalMovement still set to true.
Ran with multiple objects set to that in multiplayer and none made it to the assert.
Also cannot replicate your issue with objects moving to 0,0,0 (null transform) on client side pickup at times, have tested with multiple ping times across client and server setups. I would probably need a copy of your project to debug it.