Hi , I couldnt figure it out how to control camera fov,
I tried inside Vive Pawn Character, where you toggle laser beams with shoulder button, I tried with tying up node “set fied of view” but it doesnt work. I need it for sniper rifle’s zoom in option.
Hi ,
A small request. Could we have a IsInVREditorPreview node similar to IsInVREditorPreviewOrGame except that it returns false if in game please?
I have apps where desktop/VR mode is user selectable from a UI. My PlayerController decides which pawn to spawn. My default is desktop (fps) pawn. works great except that VR Preview uses the fps pawn. I use IsInVREditorPreview to fix that. Maybe other people will find it useful for that.
Cheers.
Fyi, the door component of the door actor in the template map generates a warning. Changing the gameplay tag to DropType.OnTriggerRelease fixes it.
They disable FOV with a VR enabled camera, regardless generally in VR you should be actually making functional scopes and rendering a view to the scope itself instead of altering field of view for the character.
Its still possible to force a new FOV but it would be VERY disorienting in VR and not likely to behave like you think it would.
Added replication smoothing to the camera like the controllers have
Made the first replication directly set the location instead of beginning a lerp, all other replications
after that are lerped too. prevents the initial 'tick' of lerp going from 0,0,0.
Added IsInVRPreview node to the VRExpansionFunctionLibrary
Template
Set the VivePawnCharacter to default smooth the camera replication and to a 60htz rate instead
of the 100htz default.
fixed door warning
added offset to spawn logic so that player should arrive
correctly regardless of HMD offset.
Fixed car not using driver since I remade how it handles seats
Set the VivePawnCharacter to default smooth the camera replication and to a 60htz rate instead
of the 100htz default.
Changed how out of body movement works
Now I am spawning a camera actor locally instead of having an attached child actor component
First removes a component/actor from non local characters per character, so it is a slight perf savings.
Secondly removes the damned "vivepawncharacter needs to save" regardless of changes made to it.
Child actor components are still largely bug ridden and messy.
Plugin
Changed non post teleport teleportMoveGrip commands to ignore NoTeleport
and DropOnTeleport objects and exit.** * is actually more serious than it sounds, it could cause static objects that
aren't supposed to move to be able to slightly shift on initial grip***
Added replication smoothing to the camera like the controllers have
Made the first replication directly set the location instead of beginning a lerp, all other replications
after that are lerped too. prevents the initial 'tick' of lerp going from 0,0,0.
Made some fixes to the movement merging/combining capability of the VRCharacter, should be more stable
and reliable now.
Now more appropriatley declaring Important moves so that they are sent again if not Acked
(prior to CustomInputVectors and Navigation Velocity didn't trigger as important).
Made more nuanced checks for CanCombine in the saved movements that acutally allows for combining
movements with HMD movements attached. Uses the same Dot Threshold as the acceleration combinining does.
(5 Degrees by default).
***From initial testing it appears safe now to enable MergeMovements on the movement component, if it remains stable I will default it***
Removed Control Pitch and Control Roll from being replicated AT ALL in the VRCharacter.
We never use these two values. ( saved 3 bytes per rep send)
Upped CapsuleYaw from 1 byte compressed to 1 short compressed for sends
( cost 1 byte per rep send).
(Overall saves 2 bytes per rep send and has a higher accuracy of HMD yaw).
Added alt path to restore original control roll/pitch replication if character is set to follow it
I understand that is a lot of additional code for a 2 byte per rep savings.
Massive Header file cleanup to better support Non Unity Builds and Linux.
Fixed TeleportMoveGrip teleporting NoTeleport and DropOnTeleport on initial
!IsTeleport grip teleportation check. (ie: on initial grip could teleport things that don't want it)
Motion controller is now only setting ReplicatesMovement on actor grips or when the held
component is the root component. is possible since I added the new movement replication bool
to the grippable components.
Made the new conditional replication system for saved movements more sane and extended it to
the simple character. It costs...2 bits...more than before but is far cleaner and has less functions.
I am in the process of using it with an Oculus Touch, where I mapped the controls sucessfully. One note on teleporting: Proteus template uses the controller rotation to change the orientation after teleporting, which feels great! Have you considered implemening that as well? I find it hard with the touch controllers to orient with the joystick while holding down with it, as it may trigger “button release” without me willing to do so by not pressing it hard enough during rotating.
While every movement is working as intended (I have a Vive also to verify but not setup right now), the Navigation and OutOfBodyNavigation are setup so you can’t change the orientation on teleport arrival, right?
I guess I am doing something wrong with the vehicle. I am not reseated so the car pulls of under me. You solve it by constantly reseating the passengers on every tick, but would simply attaching also work? I tried attaching the VR-Character to my custom vehicle (the bus I was talking about earlier). Position works fine, but rotation stays as it is in world space. I tried snapping loc+rot to target, but the car rotates under me. How do I have to set it up? Do you have any hints. I am not sure if I got my understanding right of coordinate frames. It should attach the whole chaperone / guarding area to the vehicle. I used AttachToActor() on the VRCharacter.
I’m not re-seating them on every tick, I am repositioning a scene component so that they stay without a boundry inside the vehicle for their seat.
The actual character itself i DO attach to the car, however is uses a new function that I added to the blueprint character that didn’t exist before so its likely not being called for you post migration. You have to re-create the function in your own character.
Initial tests having worked out for the most part with the vehicle I am considering rolling the additional functions and things into the plugin itself in the future, but for now you would have to re-create the new blueprint functions that are called.
As for teleport rotation, the stick pressed down is an implementation difference between the trackpad / joystick of the two controllers, for oculus I would likely remap to use axis values when not held down so that it works better. But I don’t have rift/touch so getting the implementations perfectly clean for them is bothersome. Controllers orientation to dictate direction would work, but you cut out positional updates while doing it then, if you like it more then feel free to change the teleportation logic to accommodate what you want I either have to build hundreds of options in or choose one as an example and tell people to modify to suite themselves.
Out of body / navigation are not set up for rotation, its possible to do with them but I didn’t feel it was necessary as you can manually turn during the movements and they are setup as roomscale implementations, if you want a standing only version you would want to add a rotation to the final teleport of the out of body.
I’m noticing that the multiplayer menu you made for the example map only connects through steam when the game is packaged for “shipping”, and the LAN buttons only seem to enable connections after I modify the settings in my DefaultEngine.ini to swap the subsystem to null rather than steam. So right now I’m using two DefaultEngine.ini files and I just swap in the appropriate one for packaging and testing with steam, and the other one I use with subsystem null for day to day MP testing without having to package.
The workflow I’ve got going is working for me for now, but thought I’d check if i’m missing something. Is there is a LAN mode within the steam subsystem that can be used to test MP stuff without packaging first? Or is there a way to keep the steam subsystem enabled, and use subsystem null for LAN testing without packaging?
Also, thanks a ton for implementing passenger mode in the Vehicle. Great stuff.
Its possible, I just didn’t account for it in the template, i’ll add the fix in later today. I generally use steam for testing because its actually faster to find the session so I didn’t specifically test with lan much, its a simple edit to the server browser though. Its one of the many subsystem notes I have piled up but don’t always read and remember to do.
[TABLE]
1
You can use the SteamNetDriver for LAN matches. When you open the map make sure you append ?bIsLanMatch=1 to the URL.
Should look like .
MapName?listen?bIsLanMatch=1
Also glad to hear you like the car, it was one of the first requests on the request trello. Its not up to the standards that I had hoped for (openable doors to drive entrance / exit, a trunk, ect) but without the correct models it will have to do. I need to get the logic for re-centering the player so that they can move to a seat or sit down after entering done though. Then I will probably end up rolling some of the code into the plugin itself instead of blueprint to clean it up some, vehicle support isn’t an unreasonable thing to have included and I already had to create an override class for the WheeledVehicle to get it working correctly anyway.
Added a NetSmoother component to the VRCharacters (a dummy root scene component), it takes advantage of the ClientSmoothPosition
data that is already calculated for standard characters SkeletalMeshes and applies it to tracked
component root instead. way there is a more smoothed lerp back to the correct position after
the server finishes replicating a character move and the client already predicted it out farther.
only takes effect on simulated proxies. The root can be re-purposed in single player or locally controlled characters to handle things like simulated lean or other effects.
I had considered adding a dummy root to the tracked devices for awhile now so people had some more flexibility without manually re-parenting but the network smoothing gave
me an actual reason to do so.
The smoothing effect can be turned off by turning off network smoothing on the character movement component, still retains the sudden jump to the last replicated position when a simulated proxy stops being sent velocities and stops predicting position though.
Added a AddDeltaAngle function to the VRDialComponent, can be used to set initial rotation / angle of the
dial or to increment it later on. Also is now used for the GripTick tracking of the dial angle.
Exposing bDenyGripping for the lever and dial components, forgot to provide a method to control for them.
Can’t figure out what I’m doing wrong with the gameplay tags, I have them set on the object, but the grab fails on validating tags because the tag is “null” even though I have it set:
I just have a BP with Grippable Static Mesh base placed in the world (physics enabled) and am using play in editor. I set the net settings, but I still can’t get it to see the tags:
Dunno…I just set up the exact same object as you, a GrippableStaticMeshActor with the same gameplay tags and placed in the level and have the correct result. Also every other object in the template is setup the same.
I’m using a copy of the Vive_PawnCharacter, and it turns out somewhere along the line all the tags got reset script-wide… Should be working once I do a few things again!
Hello!
Can somebody clarify what is current version of https://bitbucket.org//vrexppluginexample ? It says 4.16 in readme. Im tried to make by instruction - but both for 4.16 and 4.17 it says that VR plugin and Advanced Sessions are wrong version and fails. Also tied to replace both plugins with binary versions both for 4.16 and 4.17 - then one error left “VRExpPluginExample.dll” is wrong.
Sorry if question is stupid, im playing with unreal only for one week. Made own apartement in Unity, now remaking in Unreal and want to have same mirrors as in Unity.