Download

4.9: SteamVRChaperone GetHardBounds is using the WorldToMeters setting from the last run

Hi,

As part of the project we are working on, we are manipulating the WorldToMeters value quite heavily. I have the following simple actor blueprint set up:

11a4143079f94492f1daa70476c2d9bbbd79c79f.png

The “GetDiagonalLength” macro looks like this:

b0459e3674c7ca73d6a47f8e50f1b76420a8fc8a.png

I run this several times, only connecting the “Set World To Meters Scale” node on the second run

Run 1, world to meters NOT CHANGED:
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Apparent world to meters: 100.0
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Diagonal in cm: 399.843903

Run 2, world to meters CHANGED TO 300000:
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Apparent world to meters: 100.0
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Diagonal in cm: 399.843903

Run 3, world to meters NOT CHANGED:
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Apparent world to meters: 100.0
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Diagonal in cm: 1199531.75

As you can see from the outputs, the first two runs give the correct values. The last run gives an incorrect value 3000 times what it should be.

A workaround for this is to add a small delay (even 0.1 seconds will do it), however this isn’t a particularly desirable fix for obvious reasons. Setting the world-to-meters scale back to 100 on End Play doesn’t seem to help at all.

Is there something I’m doing wrong here, or is this a bug?

Thanks