VR Expansion Plugin

Its a BlueprintNativeEvent, the unreal pre-compiler auto generates virtual _Implementation versions of those functions.

You can override it in a base class by:



    virtual void OnGripRelease_Implementation(UGripMotionControllerComponent * ReleasingController, const FBPActorGripInformation & GripInformation, bool bWasSocketed = false) override
    {
        //DO SOMETHING
    }

Is intended to work with UE4 4.20?

I ask because I’m trying to build it against 4.20 on Linux, and I get warnings from the build file… and when I fix those, I get errors about redeclared UFUNCTIONs… and when I fix those, it tries to access a bunch of private members of some class whose name I forget now.

EDIT: Sorry. I think I was using the wrong version.

Now I just get error:

Error: Unrecognized type ‘UVRGripScriptBase’ - type must be a UCLASS, USTRUCT or UENUM

I added that missing include 4 days ago if it is calling from VRGripInterface.h.

The pre-compiled binaries are older than that though, download the latest from the repo for now.

Hi, Plugin Example Template Repository is for Unreal 4.21? Can’t open with Unreal 4.20.3. Is possible to download anywhere the template for 4.20?

The default branch is for 4.20.3, the 4.21 branch is a beta branch for porting.

Where is the method to drop an socketed actor?

Enable Gravity doesn’t work. And DropObject only Works if got a valid Grip. I can’t find the method to Detach an actor from a socket and enable gravity… The PhysicHandle stick the object in the air and i can’t Access it from the Blueprint.

Can’t get it, what I’m doing wrong?

Enable gravity just changes if an object is allowed to have gravity or not, if you socketed an object to another one (attached them) then you can either detach it or simulate physics on it which will detach it anyway.

“Socketing” is a moniker for “attaching” in case, its the standard AttachTo engine behavior for the most part. Its called DropAndSocket / Socketing to differentiate it a bit since the actual process of doing it differs slightly.

IE: Do what you would normally do with an attached item, it is no different, its not retaining a constraint on the object, it is un-simulating it and attaching to whatever you told it to attach to.

You have to build it in visual studio…

While tutorial is a bit out of date and I need to edit it, the basic steps are still valid:

https://bitbucket.org//vrexpansionplugin/wiki/How%20to%20add%20the%20plugin%20to%20a%20blueprint%20only%20project%20-%20Step%20by%20Step

OK, first Generate Visual Studio project files, then open the .sln file generated with Visual Studio and build it. Thanks mate.

4.21 branches in both repo’s are live and appear fully functional, I have some patch notes I will post weekend for the other engine versions.

was a very light engine update (aside from a lot of physx API changes) so it should be a pretty stable platform.

Edit I’ll note that I still have to keep some hacks that I added in 4.20 in, one for the camera to prevent the late updates from doubling up in multiplayer, and one for the physics replication to stop it projecting ahead when first gripping, if you notice the #hack tag in the code, they are there until the engine base classes are fixed.

Thanks very much for all your work. Have tried your template after long time and is really brilliant. Love the different ways to interact with the objects. Just from my point of view be against why don’t do hand animation grap if nothing to grab (for me loose little presence), the climb way like “spiderman” (both before had sorted adding some things in the character BP), and last thing the no possibility to just move the head to watch over surface (for example a table), cross the camera over a windows, etc. because the physics are the root and by BP can’t hack it. I tried some tricks but don’t get lucky at the moment like offset of the camera.

I put an example what I mean, like some guy of the community did in a guide

I am not personally concerned with hand animations as there are plenty of hand sets out there and its really game specific. The plugin is intended to fill the gap with advanced mechanics and things that are more game agnostic.

As for walking over tables, I have answered many times, you can set it up yourself, turn on the WalkingCollisionOverride mode (no collision when walking roomscale, collision when locomotion is active), or turn off collision on the table to the pawn period, I am not really interested in “faking leaning” in the general sense at time.

I’ve ran into some issues with “Get VRFoward Vector” and wanted to see if I’m missing something.

I’m following tutorial (Mitch's VR Lab Ep02 - RIft + UE4 - Look Based interaction (Part 1) - YouTube) and no matter what I try, the vector from “VRFoward Vector” is fixed on the Z axis. I’ve attempted to incorporate VRRotation with no success. If I spin around, or crouch it will follow my movement, but if I tilt my head it does not follow my gaze up or down.

What am I missing? From my understanding a forward vector/rotation should affect the Z axis but nothing is changing its values when I print string.

Thanks

VRForwardVector is the capsules forward vector, not the HMDs. You need to get the cameras forward vector if you want a gaze based direction.

Wow, just encountered !

I just got Knuckles and it seems like it’s not supported by UE4 by default. Where should i start to get finger tracking etc working?

I have a (currently private) module that implements it for them (and gesture detection), the issue is that in prior to 4.21 builds it requires a bit of hacking around to get the skeletal actions working, and in 4.21 itself there is no clean plugin method of forcing the new action into the manifest without direct source edits or manually writing out to it and reloading.

So I have been sitting on it for now cleaning things up and waiting for a better environment for release. I may put it out with the hackish instructions just for people to play with at some point though.

If you want to try and implement it yourself you’ll have to use the new OpenInput skeletal api to poll skeletal actions that you insert.

Hey , great plugin. I’ve said it before, but its worth saying again.

I’m trying to set up a grippable static mesh object that uses a different socket based upon the hand that grabbed it. Sorry if is answered already. My search didn’t provide any answers.

GetClosestSocketInRange passes in the controller that is attempting to grip the object, you can return a different socket based on the hand type of that controller by overriding that function and returning what you want.

Alternatively you can also pre-filter and pass in a different socket prefix on the character side of things.

Do you mean ClosestGripSlotInRange?