FLoating in VR (htc vive chaperone floor 1 foot higher than in game floor)

Im using the first person template and when i start my game the vr floor is about a foot higher than the one in game, so im way too tall and i cant pick things up on the floor with my motion controllers. Is there a way to lower my chaperone floor?

I have the exact same issue.
My Version is 4.12.0 Preview 1

I found the solution to this:
You need to set the attribute ‘Base Eye Height’ in your VR Pawn to 0.
This fixed it for me.

It is mentioned in this tutorial:
https://docs.unrealengine.com/latest/INT/Platforms/SteamVR/QuickStart/2/

Have a look here:

https://docs.unrealengine.com/latest/images/Platforms/SteamVR/QuickStart/2/Setting_Up_PC_Defaults.jpg

About half of those steps were missing from 4.11.2 lol but I got it to work when i put the eye level to -40. Thanks so much though!

Edit. Ugh now when i make a motion controller on my new VR_Pawn its doing all these weird things, the tracking is all off like it starts off no where near where the actual controller and the axis seem flipped. but even weirder it duplicates the motion controller and the duplicated one copies the movement but flipped. So if i move the motion controller to the right the duplicated one will go to the left.

If my hint worked for you, then please mark this thread as resolved for all those fellow travelers who may also come across this problem.

Regarding your Controller Setup. I got it working and I have a slight Idea what went wrong. If you open another thread dedicated to this problem, I think I can help you. I had also the exact same problem :slight_smile:

If you have a Capsule Component in your Player Character , just make it very tiny … so You may stick to the Floor.

I have tried this solution but it has not worked for me. I am using a Character instead of a Pawn (though I have tested this with a Pawn with the same problem) setting the base eye height does not change where the chaperone/floor for the vr space is. The only thing I have been able to do to get the chaperone bound closer to the floor is to change the capsule component to be really small. Which seems like a terrible solution as it prevents my character from colliding properly.

Do you have any other idea why my chaperone/floor is hovering off the ground? Anything I should be doing to my capsule component?

These solutions haven’t worked both in 4.11 and 4.12. The virtual floor is always lower than the real floor in new programs. The one place I’ve gotten it to work is in the Showdown Demo where lowering the base eye height to zero fixes it, so I went through and copied every setting for the character in a blank template and the floor is still low. The first person template which has now options for VR also has the VR floor low no matter how you change the height of the camera or the floor.
I’ve also put the capsule to 0 in all dimensions and it doesn’t help.
There has to be some setting that made it work in Showdown and I’ve looked for a few weeks now, please help @Wes_Bunn @Sam_Deiter @t_looman (not sure if that will actual get their attention).

This is what I had to do to get it to work but don’t just change it in the Blueprint! You have to select the placed pawn/character in the world and change its values. Since it wasn’t updating this when changing the Blueprint maybe other things weren’t being updated as well because I would like to have character collisions.

I did get the shrink the capsule solution to work (see below), but you have to edit the pawn/character if it already exists as opposed to just editing the Blueprint.

If you turn off “hidden in game” the problem should become a bit more clear. Because capsule component is your character’s root component, all child objects (ie; your hmd and motion controllers) are relative to the center of it. In order to offset correctly you will need to create a scene component that is a child of your capsule amd a parent of everything else. Set the scene’s location to (0,0,-capsule_base_height) and you should be good.

In my case I had a C++ class derived from Character and in the constructor I was adding a Scene to the RootComponent. After that, I added my Camera and Motion Controllers as children of the Scene. Changing the position of the Camera made no difference and changing the capsule half-height was not an option, since that seems like a kludge solution.

My Character Setup

202404-uecharacter.png

After making the capsule visible in the game, it became apparent that the floor was not aligned to the bottom of the capsule. While experimenting, I learned that adding a Scene as a child of a Capsule, results in the Scene being positioned in the center of the Capsule.

202405-default.png

My solution was to set the relative location of my Scene to 0,0,0 AFTER adding it as a child of the Capsule, that’s in C++. If you are going to do it in the Blueprint then set the Scene’s Z location to be -Capsule->HalfHeight (note that it’s negative).

202406-uecharacter2.png

C++ Code In RPGCharacter’s Constructor

	UCapsuleComponent *capsule = GetCapsuleComponent();

	// Add Scene component (for headset positioning)
	Scene = PCIP.CreateDefaultSubobject<USceneComponent>(this, TEXT("VRBaseScene"));
	Scene->AttachToComponent(capsule, FAttachmentTransformRules::KeepRelativeTransform);
	Scene->SetRelativeLocation(FVector(0.f, 0.f, 0.f));

	// Add camera
	Camera = PCIP.CreateDefaultSubobject<UCameraComponent>(this, TEXT("Camera"));
	Camera->AttachToComponent(Scene, FAttachmentTransformRules::KeepRelativeTransform);
	Camera->SetFieldOfView(90.f);

	// Add Motion Controllers
	MotionController_Left = PCIP.CreateDefaultSubobject<UMotionControllerComponent>(this, TEXT("MotionController_Left"));
	MotionController_Left->Hand = EControllerHand::Left;
	MotionController_Left->AttachToComponent(Scene, FAttachmentTransformRules::KeepRelativeTransform);
	MotionController_Left->SetRelativeLocation(FVector(0.f, 0.f, 0.f));

	MotionController_Right = PCIP.CreateDefaultSubobject<UMotionControllerComponent>(this, TEXT("MotionController_Right"));
	MotionController_Right->Hand = EControllerHand::Right;
	MotionController_Right->AttachToComponent(Scene, FAttachmentTransformRules::KeepRelativeTransform);
	MotionController_Right->SetRelativeLocation(FVector(0.f, 0.f, 0.f));