Check out buddy:
Run it from a shortcut with -log after the target (I assume you are doing from a packaged build). Tell me what the log says then as far as errors.
I was trying it out in the UE4 Editor… I built the project and it’s working. Thanks !
Sorry to trouble you again, since I’m new to Unreal (coming from Unity), learning curve is hitting hard. About disallowing climb, is right section?
I was trying to look into “Getoverlappingactors” but was unable to find it, is it function already done or should I be creating it?
Thanks for the tip, will look into that!
Yeah tie in a check to the object in there, just add a new function and call it there.
I too have noticed the client has problems with the gun in the template level. How do you ensure the client (no player controller) pawn collision is set correctly?
Apols in advance if is a noob question.
When did you get your copy? I believe that I noticed the gun colliding with the capsule only on client side awhile back and fixed it (don’t remember how). It was just a bad collision setting.
Ahh, I’m recalling the bug from maybe a few weeks ago. I’ve not checked with the latest example level. I’ll take a look and let you know. You’ve probably fixed it…
Thanks
Hi Everyone,
I am trying to get the AI from another project into project. However I am running into an issue with the AI. They go towards the center of the map instead of the player pawn like the other project had set up. The AI Move To a blackboard key ‘Enemy’ which is an Object/Actor.
Since project is set up for multiplayer, how do I get reference to the player controlled pawn? It is no longer Player Pawn 0 due to the multiplayer set up correct?
That isn’t really a question about the plugin, but you want to figure out a way to decide who you want to target (proximity, set player, ect) and on the server side move them there. You can get the current player list from game state or by iterating through player controllers.
I love the plugin.
While extending your vr character classes I found there are a number of headers that are only referenced in the relevant .cpp files which I had to include to successfully compile. Also, in keeping with Epic’s conventions, perhaps you could add static variables to store their names for overriding purposes?
I’m also seeing the strange GenerateOffSetToWorld error when I compile a shipping build, same as the guy a couple pages back. It compiles fine though when compiling for editor, and I have compiled it previously in a shipping build (though that may have been in an earlier version). Makes me think there is something linker or configuration related though I haven’t found the culprit yet.
[2017.03.19-06.54.05:977] 72]UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool: UE4-VRExpansionPlugin-Win64-Shipping.lib(VRCharacterMovementComponent.cpp.obj) : error LNK2019: unresolved external symbol "public: void __cdecl UVRRootComponent::GenerateOffsetToWorld(bool)" (?GenerateOffsetToWorld@UVRRootComponent@@QEAAX_N@Z) referenced in function "public: virtual void __cdecl UVRCharacterMovementComponent::ServerMoveVR_Implementation(float,struct FVector_NetQuantize10,struct FVector_NetQuantize100,struct FVector_NetQuantize100,struct FVector_NetQuantize100,struct FVector_NetQuantize100,struct FVector_NetQuantize100,unsigned char,unsigned char,unsigned char,unsigned int,class UPrimitiveComponent *,class FName,unsigned char)" (?ServerMoveVR_Implementation@UVRCharacterMovementComponent@@UEAAXMUFVector_NetQuantize10@@UFVector_NetQuantize100@@1111EEEIPEAVUPrimitiveComponent@@VFName@@E@Z)
[2017.03.19-06.54.05:979] 72]UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool: UE4-VRExpansionPlugin-Win64-Shipping.lib(VRCharacter.cpp.obj) : error LNK2001: unresolved external symbol "public: void __cdecl UVRRootComponent::GenerateOffsetToWorld(bool)" (?GenerateOffsetToWorld@UVRRootComponent@@QEAAX_N@Z)
[2017.03.19-06.54.05:979] 72]UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool: UE4-VRExpansionPlugin-Win64-Shipping.lib(VRSimpleCharacterMovementComponent.cpp.obj) : error LNK2019: unresolved external symbol "public: void __cdecl UVRBaseCharacterMovementComponent::ApplyVRMotionToVelocity(float)" (?ApplyVRMotionToVelocity@UVRBaseCharacterMovementComponent@@QEAAXM@Z) referenced in function "public: virtual void __cdecl UVRSimpleCharacterMovementComponent::PhysFalling(float,int)" (?PhysFalling@UVRSimpleCharacterMovementComponent@@UEAAXMH@Z)
[2017.03.19-06.54.05:981] 72]UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool: UE4-VRExpansionPlugin-Win64-Shipping.lib(VRSimpleCharacterMovementComponent.cpp.obj) : error LNK2019: unresolved external symbol "public: void __cdecl UVRBaseCharacterMovementComponent::RestorePreAdditiveVRMotionVelocity(void)" (?RestorePreAdditiveVRMotionVelocity@UVRBaseCharacterMovementComponent@@QEAAXXZ) referenced in function "public: virtual void __cdecl UVRSimpleCharacterMovementComponent::PhysFalling(float,int)" (?PhysFalling@UVRSimpleCharacterMovementComponent@@UEAAXMH@Z)
[2017.03.19-06.54.05:981] 72]UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool: UE4-VRExpansionPlugin-Win64-Shipping.lib(VRSimpleCharacterMovementComponent.cpp.obj) : error LNK2019: unresolved external symbol "public: void __cdecl AVRSimpleCharacter::GenerateOffsetToWorld(void)" (?GenerateOffsetToWorld@AVRSimpleCharacter@@QEAAXXZ) referenced in function "public: virtual void __cdecl UVRSimpleCharacterMovementComponent::TickComponent(float,enum ELevelTick,struct FActorComponentTickFunction *)" (?TickComponent@UVRSimpleCharacterMovementComponent@@UEAAXMW4ELevelTick@@PEAUFActorComponentTickFunction@@@Z)
If anyone has come across and knows the fix please let me know. Otherwise once I figure it out I’ll post what was the culprit. Tried cleaning, rebuilding all, no dice but I’m sure it’s something simple.
Hi . I’ve been playing around with the scale of the VRRootReference component or the Vive_PawnCharacter, setting it to 0.1 for example.
I would like to give the effect of a mini-me in the vr. It sort of works but the tracked positions are not scaled by value I think, amongst I suspect other issues…
A usage example. In multiplayer I cast a spell on my friend in a shared vr that shrinks him to 10% size. He runs on to a grippable object (For big me) and I pick up the object to carry him into the air whilst staring menacingly… It’d open up great gameplay possibilities!!! I use RIP locomotion exclusively for …
It’s a very interesting and very desirable feature to have working in your plugin (along with grippable destructibles fragments!) in my humble opinion
Could you see yourself looking into these features please?
I hope that it will be simple for you with your in-depth knowledge of all things UE4 and VR with relation to your superb plugins.
Thanks in advance.
You will have to change the VR world scale to allow for , XR Best Practices in Unreal Engine | Unreal Engine 5.3 Documentation world to meters.
I played around with a movement mode for a while where you grew really big and took steps and then shrunk back down to normal, it was pretty fun. There might be some specific things I would have to account for as well for misscaled height, I will look into it more.
Also guys i’ve been collecting new ideas for the plugin over the past few days (was at 3 weeks of 3-4 hours of sleep a day and am recovering). I have a few interesting ideas I look to implement over the next week hopefully.
Looking forward to hearing about your new ideas!
I’m aware of the VR world scale and plan to play with it, thanks for reminding me, but will that work multiplayer?
What I’d like is the ability to set the scale of the pawn character so that each client can have a different size and hence VR world scale and ‘everything works’. I think its an interesting problem. Cheers for giving it some thought.
Your advice about the late update setting for grips was spot-on. We have a whole new class of grippable objects that now work perfectly. Thank you again.
Hi guys, desperately need some help here.
About the teleport mechanic, I’m trying to make the player (VRCharacter) rotate by applying Thumbstick input into it (…similar to HMD+Gamepad setup from the VR Template or the Robo-Recall, I think.) So the player press Teleport button (let’s say, on Left Hand) and use the Right Thumbstick to control the final rotation. Because I’m using Oculus 180 degrees setup, not the 360 room-scale one.
My guess is to do something with the ‘TeleportRotation’ variable in the ‘GetTeleportDestination’ and ‘UpdateArcEndPoint’ function in the BP_TeleportController ?
However, I’m rather mathematically disabled myself, been trying to add for a few days now, with no success.
The non motion controller pawn from epic is still in the template and implements functionality. You should take a look at it.
I’ll link it from a clean c++ project and check out what headers need to be in the modules header for auto inclusion.
Edit Actually just including it in the source file for the template so it will auto check after revisions, should help keep the headers clean. Looks like the basecharacter overhaul had some unlinked headers.
Also you mean like config file overriding static class names? IE: Engine.ini [VRExpansionPlugin] VRRootComponentClass = newClass?
Or just literally predeclared static names for the classes? Because as far as I am aware that is not a style convention for the engine and doesn’t really do anything as you have to edit the header to begin with to change that.
Delete intermediate files and regenerate the project files, not just clean in the IDE. Sometimes the generated files get stuck on older versions and I made some changes in those areas going from 4.14 to 4.15.
I realise I can simply type them manually as an argument for FObjectInitializer, but as an example in the .cpp for a class deriving from AVRBaseCharacter that would use a subclass of UGripMotionControllerComponent:
AMyCustomVRCharacter::AMyCustomVRCharacter(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer
.SetDefaultSubobjectClass<UMyCustomMotionControllerComponent>(TEXT("Left Grip Motion Controller"))
.SetDefaultSubobjectClass<UMyCustomMotionControllerComponent>(TEXT("Right Grip Motion Controller")))
would be more robust as:
AMyCustomVRCharacter::AMyCustomVRCharacter(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer
.SetDefaultSubobjectClass<UMyCustomMotionControllerComponent>(AVRBaseCharacter::LeftMotionControllerComponentName)
.SetDefaultSubobjectClass<UMyCustomMotionControllerComponent>(AVRBaseCharacter::RightMotionControllerComponentName))
which would require a declaration in ABaseVRCharacter like:
.h
public:
/** Name of the LeftMotionControllerComponent. Use name if you want to use a different class (with ObjectInitializer.SetDefaultSubobjectClass). */
static FName LeftMotionControllerComponentName;
/** Name of the RightMotionControllerComponent. Use name if you want to use a different class (with ObjectInitializer.SetDefaultSubobjectClass). */
static FName RightMotionControllerComponentName;
.cpp
FName AVRBaseCharacter::LeftMotionControllerComponentName(TEXT("Left Grip Motion Controller"));
FName AVRBaseCharacter::RightMotionControllerComponentName(TEXT("Right Grip Motion Controller"));
is a very minor issue and I now feel silly for bringing it up because I’d much rather you spent time adding more functionality to the plugin and fixing bugs. Maybe there’s another way to override these components I’m not aware of.
Ah I see what you are saying, I’ll agree that the names are nice to have as a quick method of overriding, I will note though that I found multiple instances of Epic not actually defining them when overriding them myself
I’ll add it in as it was rather convenient when using ones that had it themselves.
Made the requested changes, have some testing to do on a new feature tonight before committing to main though. Should have it pushed later.