VR Expansion Plugin

Hi there!
I’m working on updating a project to 4.21 and running into the following:


1>  [3/10] UE4Editor-VRExpansionPlugin-5385.lib
1>     Creating library E:\Perforce\MyGame\UE4\MyGame\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\VRExpansionPlugin\UE4Editor-VRExpansionPlugin-5385.lib and object E:\Perforce\MyGame\UE4\MyGame\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\VRExpansionPlugin\UE4Editor-VRExpansionPlugin-5385.exp
1>  [6/10] UE4Editor-VRExpansionPlugin-5385.dll
1>     Creating library E:\Perforce\MyGame\UE4\MyGame\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\VRExpansionPlugin\UE4Editor-VRExpansionPlugin-5385.suppressed.lib and object E:\Perforce\MyGame\UE4\MyGame\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\VRExpansionPlugin\UE4Editor-VRExpansionPlugin-5385.suppressed.exp
1>Module.VRExpansionPlugin.1_of_3.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static struct FGameplayDebuggerShape __cdecl FGameplayDebuggerShape::MakeSegment(struct FVector const &,struct FVector const &,struct FColor const &,class FString const &)" (__imp_?MakeSegment@FGameplayDebuggerShape@@SA?AU1@AEBUFVector@@0AEBUFColor@@AEBVFString@@@Z) referenced in function "public: virtual void __cdecl UAISenseConfig_Sight_VR::DescribeSelfToGameplayDebugger(class UAIPerceptionComponent const *,class FGameplayDebuggerCategory *)const " (?DescribeSelfToGameplayDebugger@UAISenseConfig_Sight_VR@@UEBAXPEBVUAIPerceptionComponent@@PEAVFGameplayDebuggerCategory@@@Z)
1>Module.VRExpansionPlugin.1_of_3.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static struct FGameplayDebuggerShape __cdecl FGameplayDebuggerShape::MakeCylinder(struct FVector const &,float,float,struct FColor const &,class FString const &)" (__imp_?MakeCylinder@FGameplayDebuggerShape@@SA?AU1@AEBUFVector@@MMAEBUFColor@@AEBVFString@@@Z) referenced in function "public: virtual void __cdecl UAISenseConfig_Sight_VR::DescribeSelfToGameplayDebugger(class UAIPerceptionComponent const *,class FGameplayDebuggerCategory *)const " (?DescribeSelfToGameplayDebugger@UAISenseConfig_Sight_VR@@UEBAXPEBVUAIPerceptionComponent@@PEAVFGameplayDebuggerCategory@@@Z)
1>Module.VRExpansionPlugin.1_of_3.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl FGameplayDebuggerShape::~FGameplayDebuggerShape(void)" (__imp_??1FGameplayDebuggerShape@@QEAA@XZ) referenced in function "public: virtual void __cdecl UAISenseConfig_Sight_VR::DescribeSelfToGameplayDebugger(class UAIPerceptionComponent const *,class FGameplayDebuggerCategory *)const " (?DescribeSelfToGameplayDebugger@UAISenseConfig_Sight_VR@@UEBAXPEBVUAIPerceptionComponent@@PEAVFGameplayDebuggerCategory@@@Z)
1>Module.VRExpansionPlugin.1_of_3.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl FGameplayDebuggerCategory::AddTextLine(class FString const &)" (__imp_?AddTextLine@FGameplayDebuggerCategory@@QEAAXAEBVFString@@@Z) referenced in function "public: virtual void __cdecl UAISenseConfig_Sight_VR::DescribeSelfToGameplayDebugger(class UAIPerceptionComponent const *,class FGameplayDebuggerCategory *)const " (?DescribeSelfToGameplayDebugger@UAISenseConfig_Sight_VR@@UEBAXPEBVUAIPerceptionComponent@@PEAVFGameplayDebuggerCategory@@@Z)
1>Module.VRExpansionPlugin.1_of_3.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl FGameplayDebuggerCategory::AddShape(struct FGameplayDebuggerShape const &)" (__imp_?AddShape@FGameplayDebuggerCategory@@QEAAXAEBUFGameplayDebuggerShape@@@Z) referenced in function "public: virtual void __cdecl UAISenseConfig_Sight_VR::DescribeSelfToGameplayDebugger(class UAIPerceptionComponent const *,class FGameplayDebuggerCategory *)const " (?DescribeSelfToGameplayDebugger@UAISenseConfig_Sight_VR@@UEBAXPEBVUAIPerceptionComponent@@PEAVFGameplayDebuggerCategory@@@Z)
1>E:\Perforce\MyGame\UE4\MyGame\Plugins\VRExpansionPlugin\VRExpansionPlugin\Binaries\Win64\UE4Editor-VRExpansionPlugin-5385.dll : fatal error LNK1120: 5 unresolved externals
1> 

Any thoughts on what I’m running into here?

Thanks!
(And thanks for making such a wonderful plugin!)

I went trough a similar problem and the solution was to remove from your project folder :
**.vs , Binaries, Build, DerivedDataCache,Intermediate and the .sln file. **
and after right click on your .uproject and generate VS project files
and BUILD.

Is there a blueprint version I can download?

Thanks so much J_Tox!

I had blown out my Intermediates, but hadn’t thought to clear the .vs, Binaries, Build, and the DDC - that fixed it.

I have tried adding the grapple gun BP to the Vive Pawn Character > Event Graph and added the variables needed… Also I added Grapple text for the MovementModes menu and updated a link to the node for the Cycle Movement Modes function… Also on the Cycle Movement Modes function I did try on the grapple node to link to the SET node for the others movement modes and also as its set there now on the SET node which Climbing Mode is linked too… But when I try to cycle through the movement modes using the grip on the vive motion controller it does not show the Grapple text for the Grapple mode. So cant use the Grapple gun function I have add to the character BP. I have attached 3 screenshots to help you understand what I have done… Took a while doing screenshots into photoshop and piecing together for the Vive Pawn Character > Event Graph LOL… I had to split the Vive Pawn Character > Event Graph into 2 parts cause the file size was two big… Wish they would have a save out to image command in UE4 hehehehe… If you could help me with that would be great… I still learning stuff and have just started vr dev UE4…

Ok been working at it again and starting to understand what you meant… In the image below of the VivePawnCharacter > EventGraph, I have now used the existing Event tick to call the Grapple Function I have created. Then in the newly created Grapple Function within the VivePawnCharacter BP I have copied the code, events and variables… Then added the Switch on movementMode for left and right and also in the Cycle Movement Modes set the Movement Mode Left/Right Enum to be set to Grapple as default… So when the game starts the movement mode above the controller say Grapple but I can still not use the grapple… Hope I am making some kinda progress LOL… Am I on the right track? Any help would be thankful…

It would likely be easier for you to package everything into an actor component and keep it out of the main character.

Oh, Now I am lost… LOL… Originally you said “No its pretty easy, you can throw pretty much the entire set of BPs in the grapple gun into the character inside of a function that you call on tick (when the movement mode is active) and it would just work.” So I have done that… Its within a function in the character blueprint… But if the actor component is best I am willing to try… But I am very new to VR stuff and have done a bit of UE4 stuff so have a basic understand… I’ll work out how to package everything into an actor component… Step by step I think I’ll have to do … Really would love to get working…:slight_smile:

There maybe some confusion, my original post was as follows… “I have been playing around with the GrappleGun and its great! I have been trying to set it up in the MovementMode to switch to it using the grip on the motion controller rather than by picking it up and dropping it… But I am haven no luck… Is a lot of work to achieve? Any help would be appreciated”… So would the actor component be the same as the GrappleGun an object you can pickup? I have been trying to get it so you do not pick it up as an item, but selected it through the Movement Mode Grip on the controller… Sorry about , I do appreciate you must be busy…

Yeah I was just mentioning that moving it to an actor component gets all of those nodes out of there, it also would be mostly intact to how it was while in the grapple gun, either way works.

im so lost with . i was able to install it but are there no example projects that show you how everything is setup? reaching in the dark right now it seems.

That would be what the template project is for…

I’ll warn you though that its intended to be an advanced plugin, if you are newer you may want to stay away from it for now.

Hello! just a question here im new to vr expansion
im trying to access a sphere collision that i put on Vive_PawnCharacter

from a Button Actor that i Made

but my cast always fails am i doing the casting wrong?
i want to react to the sphere collision component, overlapping my buttons box collision
Im doing it wrong?

Thanks , Best way to learn is to dabble… LOL… I’ll keep playing around with it until I get it right… I am a newby at and I’ll just leave it to time and practice till I understand more… I’ll let you know when I have worked it out… I like a good challenge and it be a good bit of learning to move forward with VR stuff… Thanks for given your time :slight_smile:

Hi,I’m new for leaning it, I just want to realize the function of grabbing objects. I read your example template. Sorry, I’m just a novice. In my opinion, there are many irrelevant contents that make it difficult for me to understand part of the code. I also read the function introduction in your plug-in, but it doesn’t give an example, which makes it difficult for me to understand. I want to ask you what advice you have for achieving just grabbing objects. Thank you.

The Template implements multiplayer and a bunch of framework for testing, so yes, it is more bloated than simple gripping.

https://bitbucket.org//vrexpansionplugin/wiki/Gripping%20System%20Tutorials

Has the start of a basics overview

No, that should technically work, unsure about how your class is setup though since you made a custom button actor and the “box” component could be anything.

Did you try using the plugins built in button class component? It should handle pretty much everything for you already, since you are new I am unsure if you knew that the class exists?

I looking at dagger stabbing. With grippable skeletal mesh no issue grasping dagger with ‘interacts with physics’. When dagger stabs target want it to penetrate target up to the hilt and then allowed to be drawn out (with some level of fiction). I tried using a physics actor to join the hit target to tip of the dagger and allows me to restrict the flow of the dagger along the blade but really not a complete solution. I see we could implement a custom grip. Would is the best approach or am I missing something?

Dagger stabbing: Maybe I need to implement a grip script? extending class UGS_Default

You can do it with a custom grip OR a grip script. If it is a one off effect only for a one base class type of weapon it would probably be faster to make it a custom grip.

If you wanted it to be re-useable logic across multiple base classes then a grip script would be better.

You can also live change the type of grip, IE: when it starts penetrating turn it into a custom grip and run the pull out logic, when it is fully free again then go back to another grip type, ect.