How to elevate the VR pawn

Hi all,

I wanted to add an elevator inside the default VR template but while my platform ( a basic cube component) moves up, it completely ignores my pawn. I already set the proper collisions to the elevator platform (block all + character can step up: yes) and even added a capsule component (collision set to block all) to my pawn to ensure it is able to collide with other objects. But when stepping up on the platform, the platform itself moves up but my pawn remains on the floor.

How is this possible? Any suggestions?

Thanks in advance!

I am using Character because it has already gravity etc. I have my VROrigin connected to the default capsule component. If you do the opposite the capsule will go up but VROrigin will stay down.

Can you provide a photo of your setup in the pawn?

303799-pawn.png

The pawn within the standard VR template has no body nor collisions, that is why it doesn’t “feel” your elevator. There are few options to solve this problem.

  1. Use a line trace to track down to the ground and have your pawn sense where the closest surface is. Then apply a vertical displacement to the pawn any time that distance is below what it supposed to be (pawn height). Your pawn will raise with the elevator (actually the elevator will push your pawn up).

  2. Use a Character based pawn. It already has the functionality described above, plus many others (including gravity fall). It has to be properly set for VR, including collisions and locomotion.

Character is heavier on CPU of course, but it shouldn’t be noticeable with just on. Character is almost the same as Pawn. When you look at it Character has the same things as Pawn just Movement component, Skeleton mesh, and Capsule collision. So the overhead comes from the collision system, some easy algebra on movement component, and skeleton mesh that you are maybe not even using.

So the conclusion is yes, but actually almost no. Character is as heavy on CPU as Pawn. If you have heavy math in OnTick you should maybe consider transfer it to C++. Also, the line trace method is heavier then Character collision.

Marco, I have been following your YT channel with great interest. Thank you for all the tutorials. I was wondering in regards to you above answer if, in your opinion, the full character class is a lot heavier on the cpu compared to the pawn class? I’ve done limited tests on the Oculus Quest, and I’ve seen some small differences. This is of course not comparing it with a full blown character mesh bound to the skeletal mesh, just the structure of the character movement class and it’s network replication components. I’m basically looking at comparing how much more it would cost me in processing power to exchange my pawn for a character class, however with no meshes bound to either setup apart from the regular VR hands I would have in the pawn class. Would be interested to hear your opinion.

If all you need is the possibility to stop against objects/walls or climb stairs, you can achieve that functionalities with some simple line traces and some associated logic. Line traces are very cheap, so that shouldn’t affect your performances at all.

Thanks wonka007 and vr_marco, I will need to do some more tests. It’s not just the collision stuff I’m after but more the quality of life stuff such as network replication, arm ik etc.

Hi Wonka, this is my pawn setup:

305185-vrpawn.png

I’ll try to see if I can do a similar setup as yours. I assumed adding a capsule with collision “block all” should be enough to be able to go up the elevator.

Thanks VR_Marco. I’ll give it a try. I assumed adding a capsule with collision (block all) would be enought to collide with the platform thus making my character go up and down but apparently it isn’t.

Your setup should work, but be careful. Both of our setups have a flaw. The capsule is placed relative to the SceneRoot (in my case the capsule is the root). This means that you can step out of the capsule when you move to the other side of the room (it stay in the same position relative to the root). In my setup, this has been done on purpose, but if you would like your capsule to follow you around you can on every tick just change its XY position so that it match the camera. Do not change Z cause this would make you unable to lay down on the floor etc. You can also change capsule’s Z scale so that it automatically match your height.