hi , first of all many thanks for your fantastic plugin.
I’m trying to animate my full body skmesh not only when player moves using motion controller dpad (full locomotion - works fine), but also whenever player is moving on his roomscale space… camera and mesh are locked together so I can’t use add movement input to animate my mesh.
Any smart ideas?
thanks again
c.
Yes create an empty blank class, it will then give you a solution file to compile the project with.
Without pre-compiling all of the binaries and installing in the engine directory (not willing to do myself while doing lots of work on the plugin) is sadly a requirement.
Thanks for the info, got the example project up and running today and created something I have been trying to do for a while.
The issue was that I needed to create a C++ project within Visaul studio for it to ask me to install extra tools. Only after installing the extra tools it would then compile.
Took me some time to understand the actor structure using the GrippableStaticMeshActor, I used the door as a reference.
Using the physics constraints is a very nice way to work. Noticed some small issues with grabbing the mesh but nothing I can’t work round (I need to add some trigger checks).
I just tested it again, I didn’t know at first that when grabbing the object it grabs it by the mesh. I assumed it was the grabbing the collision volume of the object (like the blue UE4 vr box).
When I was grabbing the object quickly, the orb was passing through the mesh giving me the impression it was not grabbing correctly.
I can work around by adding handles to the objects, also helps indicate where to grab.
However is it possible to grab the object by its collider or volume? My first impression is that “GrippableBox Component” may be the answer?
I have it set in my trace function (blueprint) in the template to trace against complex collision as it is more accurate, if you change the trace to trace against simple collision then it will go off of that instead. The plugin itself doesn’t define where to grip an object at, it is given an offset from the hand that you want to keep something and then does its best to maintain that offset distance. I use sockets to define snap points on meshes for simplicities sake, you could also just pass in a custom relative transform instead with whatever you want.
If I’m understanding you correctly the trace function (blueprint) would be part of the controller (red lined sphere used to grab stuff), I guess that would be part of the VR Simple Character?
Im a little new to UE4 so not sure where that VRSimpleCharacter Pawn is, I guess its hidden by default?
Any way I just made my second interaction using your system, its a primitive way of setting an object in place.
For example a key in a door or in my case a keycard in a terminal :0…
Like the idea of sockets will test that out at some point time.
Hmmmmm, what to make next… You made a utility belt I think (fat belly to stick stuff to :)? I will experiment with that.
Amazing plugin!! thank you so much for sharing it, it is really good an very easy to use, I ported it to my project in just a few minutes
One question, Is it possible to make it work in slowmo? I’m developing a Gladiator game, and the physics go crazy when I activate the slowmo(I set global time dilation to 0.05). I tried to compensate the time dilation on the weapon actor with no luck.
I’m sorry to tell you that as far as I am aware is a physx issue that has persisted since UE4 came out where time dilation doesn’t work correctly with physics. I think its been reported but I’ve never seen a fix log for it. Physics runs on a seperate thread from the game thread and since it doesn’t appear to be taking up the dilation at the same time it likely would have issues since it would be running the simulation at a different speed from the game thread, or at least that is what I assume from the jumpy behavior I have seen it cause.
I wouldn’t know where to look for a fix, never had a need for slow motion physics so I have never looked at it.
I mean there might be a workaround, like I said its not VR related and I never had cause to look into it, just ran into reports of it from time to time.
Very impressive work so far and thanks for sharing it.
I have one question. Can i migrate or recreate the grabbable functionality of the gun in clear project, or i need to use the plugin?
You could certainly recreate the use of an interface and double gripping and most of the functionality in a blueprint project yourself. But it wouldn’t be totally easy and some of the things like the direct late updates control isn’t possible without really hackish workarounds like attach/detach over and over.
Mitch’s tutorials are the current closest you can get to that. I would suggest you check them out if a plugin is too technical for you or you don’t want to deal with one.
**
If you mean could you port the gun directly into another project but without the plugin and get it to work:**
Pushed a new commit to the plugin and the example template for the 4.15 alpha branches
Plugin Changes
Added IsHeld and SetHeld to VRGripInterface, the plugin automatically calls SetHeld in the NotifyGrip function to send the gripping controller and boolean IsHeld
to the interface implementing actor. is most useful when there are multiple characters to quickly check if an interface object is already gripped.
Added IsHeld and HoldingController variables to the VRGripInterfaceProperties structure.
All pre-made grippable actors / components fill out the new IsHeld and HoldingController variables.
Template Changes
Added a mirror actor that activates when you step in front of it, don't know why, sounded like fun
Added hand animations back in to the default hands, if the controller generation code is off they will function just like the Epic Template hands.
Made use of new IsHeld interface function to deny gripping on objects that other characters are already holding (for multiplayer)
Converted Epics pickup cubes so that they make use of the VRGripInterface (they are not GrippableStaticMeshActors though). not only allows for checking for holding through
the interface on them, but it also shows a brief example of how to directly add the interface to a class that doesn't already implement it. Another way would be to store
your own GripInterfaceProperties structure and pass the values in like the default grippable actors and components do, but wanted to show direct function overriding.
All objects should be multiplayer compatible now
Added a server browser into the level to check for and connect / host multiplayer sessions.