VR Expansion Plugin

Ah, there is a base AIController that I added to the plugin, just derive their controller from that and they should work just fine for you with the VRCharacter.

Apologies for my newbness… Do I just click on FlightAIController (under AIController) to do that?

The current open project is based on the VRExpPluginExample project.

I’ve one more, completely unrelated, question; possibly not even related to the plugin.

I got a Grippable Static mesh actor base, and from that I have a child weapon (sword). The static mesh for the weapon has collision built into it (I created both the collision, w/ a UCX prefix, and its accompanying mesh in Blender). Fsr, I can’t get hit events to fire on my sword.


I verified the other static mesh (the grey table in the middle of the Example map) has Simulation generates Hit Events checked and is set to block or overlap the Weapon object type.

After a couple hours of research it appears the collision has to?/ should be the root in order for hits to work right. But if that’s the case, I wouldn’t be able to use the grippable static mesh because I can’t change the root.

Should I post this question in Answer Hub?

the VRAIController is the one I made, derive your FlightAIController from it (set its parents in the class properties in editor to the VRAIController).

Then it will check the correct pawn lcoation

Hey Guys,

first of all: thank you for providing this plugin!
Second: I’m totally new to unreal.

So what I want to do is to open and close a door with a motion controller, just like in the demo application. I already copied the door from that project into my own. I’m also using a SimpleVRCharacter and my approach was to use the GripObject-Funktion, triggered by a MotionController Trigger Event. In the demo it was solved completely different and I don’t really understand if I should implement the door interaction in the VRSimpleCharacter or if I should add a Blueprint for the MotionController like it’s done in the demo.

Thank you for your help!

Gotcha, I thought I was looking for logs in the packaged folder, not about packaging the project :slight_smile:

I’ve attached the logs below and it does say “Steam API Disabled”, but it’s said that before and worked just fine.

No it didn’t, if it says

LogOnline:Display: STEAM: Loading Steam SDK 1.39
LogOnline:Warning: STEAM: Steam API disabled!
LogOnline:Display: STEAM: OnlineSubsystemSteam::Shutdown()

that means that the online subsystem didn’t load at all and it reverted back to subsystem NULL / LAN.

If you are packaging in shipping then it will fail without the appid.txt file. If you are packaging in development then it “IS” the SteamVRHome being enabled as it currently appears to conflict with the OnlineSubsystemSteam in engine and the Steam Subsystem doesn’t load anymore when it is enabled.

In the demo/template all gripping references the VRGripInterface to decide what to do with objects. The door passes back to the attempting to grip controller that it wants to be a Manipulation grip.

So yesterday I finally go around to getting your plugin installed in my game I am creating (mainly for the climbing aspect of it, but I hope to use many of it’s features). I’m very excited to start using it’s features. So I’m fairly new to Unreal engine, and game making in general (only a couple months now) so sorry if these are some very basic things I will be asking.

I’m trying to figure out how I would make the climbing feature only work on certain things, I’m making a climbing wall and would like the player to only be able to climb that rather then everything around them. I found a response you made to a similar request you said “Create a filter for climbing in the “Getoverlappingactors” function.” I’m not exactly sure what this means. What would I need to do to make climbing work with climbable only objects?

Another thing i’m having a problem with is the hand meshes. I don’t have any hand meshes in my project besides Unreal Engine default meshes. After I put the plugin into my game it will randomly be those Unreal Engine ones (robotic looking meshes) I had before, or it will randomly be vive controllers. When it is the Unreal Engine hand meshes the gripping animation doesn’t work anymore where I just squeeze the trigger and the hand does a gripping animation. Also, there is always one of these Unreal Engine hand meshes on the floor about 3 feet in front of me doing nothing but sitting there. So here are my questions:

How would I go about getting rid of the random hand on the floor?
How would I tell it to only do one or the other hand mesh?
Also when I do replace the hand mesh with on of my own what would I need to do so it would use my new hand models?

Sorry for the annoying newbie questions, I’m just totally lost on what I need to do. Also I’m doing all of this in blueprints, so if any of this needs c++ that might be why i’m lost because I don’t know c++ at all (never even looked at it before).


Sounds like you kept the external motion controllers that the template spawns? The VRCharacter comes with them built in, instead it spawns teleport controllers to manage the teleport system in the template. I don’t have the hands in the template totally seperate like in Epics template.

Also you can throw out all of the code in the big red box in the VRcharacter blueprint, that all has to deal with OpenVR specific features (including loading your current controller model).

There is a function in the character to GetNearestOverlappingObject that checks if the object is climbable or not, you can override that function and return false if it isn’t derived from your climbing base type.

IE: Override the function, still call the Parent version of it, check if the passed out object is one of your climbable sub types, if it isn’t then set climbable to false. Or just directly edit the original function, either way works.

A lot of these things will be a lot easier to do after this week, I am refactoring a bunch of the blueprint character in an effort to make it easier to convert to projects instead of just being a reference. My original intention was for it to be examples of how to do things but the general use appears to be just using it as is, so I felt that it needed some quality of life updates.

Edit In fact, while i’m already re-factoring I will add a “CanBeClimbed” function call to the character today, then people could just override that and pass in true or false.

Will this refactoring be a whole character overhaul, or will it be fine to just upgrade the plugin to expose those new climbing features?

It changes how the blueprint functions work that interact with objects (adds more gameplay tag integration, more robust), and simplifies things (removes a bunch of functions, combines some into a unified function).

For the template it was fairly painless to upgrade objects, I just had to add some gameplay tags, for someones personal project that all depends on how much they directly reference the character, but it shouldn’t be “too” bad.

I’ll note that i’ll be leaving the original character setup as a legacy version (renamed) for a while as well so people can keep it as a base until they upgrade.

I am considering doing a stream tomorrow around 12pm est on twitch to go over the new changes I am making as well as have a Q&A session where I can show in real time parts in the editor to answer questions. Is anyone interested in that?

If not I will just make a overview video at the end of the week, no biggie. Trying to make good use of my time off.

I would be interested in it! I’m at work at 5 the next morning though so i don’t know if i’d be able to watch much/at all, but I definitely would watch the recording of it later though!

thanks for the response! Yeah I’m not sure if I kept the external motion controllers or not. I probably did. I’ll see if I can find them when I get home from work tonight. As for the climbing explanation you gave me: I guess i’m too new to UE to understand what you are trying to explain. sorry. Not sure how I would Override the function and check if the passed object is a climbable sub type. I would love to learn what you are talking about if you can explain it to me or point me to a YouTube video of someone explaining overriding functions and having sub types. If you don’t have the time that’s totally fine. Thanks for what you have provided to me already! I’m excited for the can be climbed function call that will be added!

Yeah ok, I can go over that tomorrow, i’ll try and make a note of it.

Even if no-one shows with questions i’ll still stream it tomorrow and just make the change log / feature talk, I recorded a video for it for the people that talk to me through youtube:

Was way cool you did this, but unfortunately I wasn’t able to participate…

“I don’t have the hands in the template totally seperate like in Epics template.”

I set my hands up the same way (taking the cue from yours), and prefer it to Epic’s because now I only need to make changes to 1 hand to affect both.

Is there anything that can’t be done when you have the hands share the same mesh and AnimBP? (Hand-specific sockets could get messy, and the way you interface with the AnimBP has to be different, but other than that I can’t think of anything.)

Sweet I think I will be there and just get a few hours of sleep (i’m mountain time so you will start at my 10pm, so if i’m asleep by 11 i should get about 5.5 hours of sleep! So worth it to learn more about how I can use your plugin! Also, just so you know, in your youtube video and your description you say July 5th, when tomorrow is the 6th. Might want to fix it so people don’t think its tonight :slight_smile:

I haven’t done it yet, I just lost track of dates on my week off :eek: its tomorrow July** 6th** at 12 est.

Also no, not really, both hands should function pretty much the same, also separate hand specific sockets have an implementation in the working copy from this week that I can go over tomorrow.

Dear Mordentral

Appreciation for the live Q&A. Unfortunately i missed the live session, hope i can see the recorded version.
Currently i am facing a problem with the latest build of the plugin.

while opening your latest template it reports some vrexpansion.dll missing and do a manual build.

when i did a manual build using visual studio the following error appears. Please help


Your filenames are too long, drop the project back a folder as it has the auto generated zip title twice in there and is bloating the path length to longer than visual studio can handle.