Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HUD Anchor only works horizontally #38

Open
Dahrkael opened this issue May 13, 2018 · 3 comments
Open

HUD Anchor only works horizontally #38

Dahrkael opened this issue May 13, 2018 · 3 comments

Comments

@Dahrkael
Copy link

I think this is made on purpose, but I don't get why would you want this behavior.
I understand the idea for this anchor is for stuff that should be always visible on your face regardless of where you are looking at, isn't it?

@BastiaanOlij
Copy link
Member

If you want things to always stay in the same place within the users view then you can just make them child nodes of the ARVRCamera directly. The problem with that approach is that it can easily lead to naussia. Your brain expects things it can see to stay where they are in the world when you turn your head, it doesn't expect it to stay in the same position. You can train your brain, it knows when you wear a helmet that helmet will stay and if the UI you anchor to the ARVRCamera is presented in such a way you stand a good change of your brain accepting it.

But in many cases, especially for larger UI elements or elements that are presented further away its better to limit their movement. The HUD Anchor was added to present a panel with options (see my Sponza VR video on Youtube). You naturally want to move your head to focus on a part of that panel, if the panel moves, your brain will protest. Even the sideways movement of the panel while its horizontally locked is stretching it, if the panel was any larger it would become very uncomfortable.

Have a look at other VR games and you will often see similar approaches where the UI stays locked in place on one axis, many even have the UI follow head movement with a delay (have a look at minecraft VR), and some even only update the position of the UI and lock the rotation completely to give the player a sense of what is forward, which is important if you don't have roomscale and want the player to keep facing in the general direction of the camera(s), (Skyrim VR on the PSVR is a great example of this).

@Dahrkael
Copy link
Author

Ok I see, maybe it would be a good idea to expose the different options as a property so everyone can choose their preferred behavior.
Something along the lines:

  • Anchor: none (fixed rotation), horizontal, vertical, both
  • Delay: 0-XXXms

In my opinion adding the option to fully follow the camera allows for things like subtitles (like in Valve's The Lab). Yes that can be achieved placing stuff under the camera instead, but that would limit the extra logic like movement delay or maybe some extra movement effects (WMR rotates the widgets a bit while they move).

I offer myself to try and implement it, but I see those scene files are only in the asset repo, so not sure where should I work on them

@BastiaanOlij
Copy link
Member

Hey @Dahrkael ,

Indeed, this is just a start, those are all good ideas for enhancements and why I started the https://github.com/GodotVR/godot-vr-common project, to have an asset that combines handy scenes, scripts etc.
Hope more people will add their time in and add things, there is only so much I can do :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants