There would be no point to VRCharacter moving the root, it would be the same as SimpleVRCharacter then (and lose a couple of features like bWalkingCollisionOverride and the capsule head offset).
I will note that most VR setups in engine (including epics) have that same Actor location limitation that VRCharacter does, Simple character, while it solves that can’t use those two specific extra features.
Also the Simple character doesn’t rotate the actor anyway, you would still need to use the VRForwardVector.
Edit I may look into an optional camera to actor rotation for the simple character, however it will break some things like epics teleport system and their chaperone component.
Is there a way to disable the step up on feature? I love the climbing and grip systems but would like to disable stepping up on the stuff you are climbing and make the player do it the old fashioned way ;D
You mean like have to throw themselves up onto stuff?
Set the climbing step up height to 0.0f. That should make it impossible to actually be able to step up while climbing, that value is " height for step up" so at 0.0f you can never actually step up unless its a flat plane with you.
96.0f or so would let them step up from waist height on the other hand.
Awesome Plugin. I’ve watched all of your videos, huge fan, but I cant for the life of me figure out how to get it to work. I’ve downloaded the files and I’ve updated everything on my UE4.14. Anyone have a video tutorial about the download process?
Side Note: I’m a 3D designer that’s just starting in UE4 so my coding background is not as robust as many of the people on the forums; I’m thinking that’s why I’m having such a hard time just launching the project. A Video or Screenshots would be super helpful to get me started.
Awesome! Thanks for the video, and the update looks super helpful. Is that already released? Capsule movement off of pelvis would be amazing. Then I can remove my hacks altogether.
One thing I was wondering… I’m finding that with 5 trackers per player, plus controllers, it’s starting to be quite a bit to replicate, and I was wondering if it would be possible to add an option to the components to quantize the transforms for the trackers/controllers to reduce the replicated data. Before switching to your plugin, I was quantizing the transforms for replication and it made a pretty big impact, but even with that, I find your plugin replication (w/o quantizing) faster than the blueprint replication.
The plugin already quantizes the vectors and compresses the rotations to shorts prior to replication. However I did go in yesterday to clean it up a bit and set it up so the quantization level could be configurable instead of just whatever default I use. I have it defaulted to 100/2 decimals of accuracy and 10/1 should be enough for mm level accuracy. Technically with only replicating the relative pos within the tracked space I can also provide an extreme mode that reduces it even farther.
Also there is a replication speed setting on all of the plugin replicated objects that you can reduce below the default 100 htz (at 90 fps will trigger every frame) there is naive smoothing that you can turn on that will lerp in between updates at lower htz settings. The smoothing needs rate balancing and some additional checks but since you are working with so much data I guess now would be a good time to take a look at that again.
Thanks for the update and appreciate your hard work. Need a small help with opening drawers. Since i am not a blue print expert i am using your template and replacing the mesh in your blueprint class the achieve the same effect. but when i run in HTC as soon as i grab the drawer it updates to the previous position of the drawer. How can i change .
In the interaction settings for the drawer component you need to change the Initial location and min / location values. That is how the non physics drawers know when and where to start / stop movement.
If you changed the mesh and location it will have the wrong settings for those.
WalkingOverride on the table and handle how much depth you want before pushing them back out or however you want to deal with it.
Inset player collision on tables
Don’t run player collision at all on tables, there really isn’t a point to it, if you want to stand on them then the floor finding still works with the walking collision override.
Waist tracker…least useful method as it depends on additional hardware (but has best results obviously)
Tables aren’t exactly a “solvable” issue collision wise with HMD + Hands, a lot of people are letting freewalk though things like tables and then teleporting the player out if the overlap goes over a set distance (with warning), but that only works for leaning if the player chooses to lean, they are free to just walk into the object to the extent you set anyway, so at that point why even bother with the faked lean mechanic and not just turn off table collision with the player?
Just like all gamedev, VR is currently a series of hacks and tradeoffs to get what you want.
Thanks for the idea’s, yeah it’s all about finding the right way to fake the desired effect. I think I’ll just disable the collision for the player on the table.
Hi again ! I have been trying to switch a pawn from being a child of VRCharacter to being a child of VRSimpleCharacter.
The one issue I have is the components (VRSceneComponent, VRReplicatedCamera, etc) are not parented to each other correctly after the switch. it is not possible to reorder them.
Would be fixed if I tried to specify attachments in the VRSimpleCharacter class? I saw a thread with a similar issue: https://answers.unrealengine.com/questions/244955/reordering-inherited-components.html
Appreciate any pointers!
Mmmm, I went in and based the two characters on the same BaseVRCharacter awhile back to make it easier to do just (so I could make BP for VRCharacter and just copy as Simple to save me time). However it does throw an assert in code (about parent relationships) that I just ignore since I run from Visual Studio that may be blocking you attempting to do the same thing in just the editor.
Open visual studio, change the top from Development With Editor to Debug With Editor, press f5, wait for the editor to load, re-parent the BP class again and when it asserts hit continue in the popup box. The conversion should work fine, its just being overzealous about it.
I’ll note though, that if you are doing to save time with AI dealing with player location (I assume that is the problem?) that its probably not actually worth it. Simple character is missing the walking override that you may want and the neck offset, it also isn’t currently rotating the base character only translating it. There are ways around AI by using an aim location offset by the capsule for instance.
Even RoboRecall is checking if the aimed target is a VR character and if so is using the camera location instead of actor location, some times casting is fairly necessary.
Edit I will also note that the VRCharacter “Should” be returning the correct location for pathing too, its target point is overridden in the code.
Edit2 Should I make a custom AI Controller to handle the VRCharacters? It would be really easy to do and could just be set as the controller for AI then and it would handle my VRCharacters and SimpleVRCharacters natively then.
Edit3 Don’t want more posts - Already made a custom AI Controller that checks for VR characters and adjusts facing rotation and line of sight to checks. Can’t find anything else in there that really needs an override.
An option to toggle the quantization level would be great to have. Thanks for pointing me to the replication speed setting and smoothing. I hadn’t seen those. I switched to 50 hz plus smoothing and that was enough to fix the network hitching I was seeing client side with my testing setup of just two players with 3 trackers each. Smoothing wasn’t noticeable. The extreme mode sounds interesting. Curious what you would plan on using there?