👍️[Update] Model : Overlayのフェードの処理を修正
This commit is contained in:
@@ -708,6 +708,14 @@ class Model:
|
||||
|
||||
def updateOverlaySmallLogSettings(self):
|
||||
size = "small"
|
||||
|
||||
if (self.overlay.settings[size]["x_pos"] != config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"] or
|
||||
self.overlay.settings[size]["y_pos"] != config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"] or
|
||||
self.overlay.settings[size]["z_pos"] != config.OVERLAY_SMALL_LOG_SETTINGS["z_pos"] or
|
||||
self.overlay.settings[size]["x_rotation"] != config.OVERLAY_SMALL_LOG_SETTINGS["x_rotation"] or
|
||||
self.overlay.settings[size]["y_rotation"] != config.OVERLAY_SMALL_LOG_SETTINGS["y_rotation"] or
|
||||
self.overlay.settings[size]["z_rotation"] != config.OVERLAY_SMALL_LOG_SETTINGS["z_rotation"] or
|
||||
self.overlay.settings[size]["tracker"] != config.OVERLAY_SMALL_LOG_SETTINGS["tracker"]):
|
||||
self.overlay.updatePosition(
|
||||
config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"],
|
||||
config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"],
|
||||
@@ -718,11 +726,16 @@ class Model:
|
||||
config.OVERLAY_SMALL_LOG_SETTINGS["tracker"],
|
||||
size,
|
||||
)
|
||||
if (self.overlay.settings[size]["display_duration"] != config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"]):
|
||||
self.overlay.updateDisplayDuration(config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"], size)
|
||||
if (self.overlay.settings[size]["fadeout_duration"] != config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"]):
|
||||
self.overlay.updateFadeoutDuration(config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"], size)
|
||||
if (self.overlay.settings[size]["opacity"] != config.OVERLAY_SMALL_LOG_SETTINGS["opacity"]):
|
||||
self.overlay.updateOpacity(config.OVERLAY_SMALL_LOG_SETTINGS["opacity"], size, True)
|
||||
if (self.overlay.settings[size]["ui_scaling"] != config.OVERLAY_SMALL_LOG_SETTINGS["ui_scaling"]):
|
||||
self.overlay.updateUiScaling(config.OVERLAY_SMALL_LOG_SETTINGS["ui_scaling"], size)
|
||||
|
||||
|
||||
def createOverlayImageLargeLog(self, message_type:str, message:str, translation:str):
|
||||
your_language = config.SELECTED_TARGET_LANGUAGES[config.SELECTED_TAB_NO]["primary"]["language"]
|
||||
target_language = config.SELECTED_YOUR_LANGUAGES[config.SELECTED_TAB_NO]["primary"]["language"]
|
||||
@@ -736,6 +749,13 @@ class Model:
|
||||
|
||||
def updateOverlayLargeLogSettings(self):
|
||||
size = "large"
|
||||
if (self.overlay.settings[size]["x_pos"] != config.OVERLAY_LARGE_LOG_SETTINGS["x_pos"] or
|
||||
self.overlay.settings[size]["y_pos"] != config.OVERLAY_LARGE_LOG_SETTINGS["y_pos"] or
|
||||
self.overlay.settings[size]["z_pos"] != config.OVERLAY_LARGE_LOG_SETTINGS["z_pos"] or
|
||||
self.overlay.settings[size]["x_rotation"] != config.OVERLAY_LARGE_LOG_SETTINGS["x_rotation"] or
|
||||
self.overlay.settings[size]["y_rotation"] != config.OVERLAY_LARGE_LOG_SETTINGS["y_rotation"] or
|
||||
self.overlay.settings[size]["z_rotation"] != config.OVERLAY_LARGE_LOG_SETTINGS["z_rotation"] or
|
||||
self.overlay.settings[size]["tracker"] != config.OVERLAY_LARGE_LOG_SETTINGS["tracker"]):
|
||||
self.overlay.updatePosition(
|
||||
config.OVERLAY_LARGE_LOG_SETTINGS["x_pos"],
|
||||
config.OVERLAY_LARGE_LOG_SETTINGS["y_pos"],
|
||||
@@ -746,9 +766,13 @@ class Model:
|
||||
config.OVERLAY_LARGE_LOG_SETTINGS["tracker"],
|
||||
size,
|
||||
)
|
||||
if (self.overlay.settings[size]["display_duration"] != config.OVERLAY_LARGE_LOG_SETTINGS["display_duration"]):
|
||||
self.overlay.updateDisplayDuration(config.OVERLAY_LARGE_LOG_SETTINGS["display_duration"], size)
|
||||
if (self.overlay.settings[size]["fadeout_duration"] != config.OVERLAY_LARGE_LOG_SETTINGS["fadeout_duration"]):
|
||||
self.overlay.updateFadeoutDuration(config.OVERLAY_LARGE_LOG_SETTINGS["fadeout_duration"], size)
|
||||
if (self.overlay.settings[size]["opacity"] != config.OVERLAY_LARGE_LOG_SETTINGS["opacity"]):
|
||||
self.overlay.updateOpacity(config.OVERLAY_LARGE_LOG_SETTINGS["opacity"], size, True)
|
||||
if (self.overlay.settings[size]["ui_scaling"] != config.OVERLAY_LARGE_LOG_SETTINGS["ui_scaling"]):
|
||||
self.overlay.updateUiScaling(config.OVERLAY_LARGE_LOG_SETTINGS["ui_scaling"] * 0.25, size)
|
||||
|
||||
def startOverlay(self):
|
||||
|
||||
@@ -73,7 +73,7 @@ class Overlay:
|
||||
self.handle = None
|
||||
self.init_process = False
|
||||
self.initialized = False
|
||||
self.loop = True
|
||||
self.loop = False
|
||||
self.thread_overlay = None
|
||||
|
||||
self.settings = {}
|
||||
@@ -132,6 +132,7 @@ class Overlay:
|
||||
while self.initialized is False:
|
||||
time.sleep(0.1)
|
||||
self.overlay.setOverlayRaw(self.handle[size], img, width, height, 4)
|
||||
self.fadeRatio[size] = 1
|
||||
self.updateOpacity(self.settings[size]["opacity"], size, True)
|
||||
self.lastUpdate[size] = time.monotonic()
|
||||
|
||||
@@ -221,18 +222,18 @@ class Overlay:
|
||||
printLog("error:Could not check SteamVR running", e)
|
||||
return False
|
||||
|
||||
def evaluateOpacityFade(self, lastUpdate, currentTime, size):
|
||||
if (currentTime - lastUpdate) > self.settings[size]["display_duration"]:
|
||||
timeThroughInterval = currentTime - lastUpdate - self.settings[size]["display_duration"]
|
||||
def evaluateOpacityFade(self, size):
|
||||
currentTime = time.monotonic()
|
||||
if (currentTime - self.lastUpdate[size]) > self.settings[size]["display_duration"]:
|
||||
timeThroughInterval = currentTime - self.lastUpdate[size] - self.settings[size]["display_duration"]
|
||||
self.fadeRatio[size] = 1 - timeThroughInterval / self.settings[size]["fadeout_duration"]
|
||||
if self.fadeRatio[size] < 0:
|
||||
self.fadeRatio[size] = 0
|
||||
self.overlay.setOverlayAlpha(self.handle[size], self.fadeRatio[size] * self.settings[size]["opacity"])
|
||||
|
||||
def update(self, size):
|
||||
currTime = time.monotonic()
|
||||
if self.settings[size]["fadeout_duration"] != 0:
|
||||
self.evaluateOpacityFade(self.lastUpdate[size], currTime, size)
|
||||
self.evaluateOpacityFade(size)
|
||||
else:
|
||||
self.updateOpacity(self.settings[size]["opacity"], size, True)
|
||||
|
||||
@@ -297,8 +298,8 @@ if __name__ == "__main__":
|
||||
"x_rotation": 0.0,
|
||||
"y_rotation": 0.0,
|
||||
"z_rotation": 0.0,
|
||||
"display_duration": 0,
|
||||
"fadeout_duration": 100,
|
||||
"display_duration": 5,
|
||||
"fadeout_duration": 2,
|
||||
"opacity": 1.0,
|
||||
"ui_scaling": 1.0,
|
||||
"tracker": "HMD",
|
||||
@@ -311,11 +312,11 @@ if __name__ == "__main__":
|
||||
"x_rotation": 0.0,
|
||||
"y_rotation": 0.0,
|
||||
"z_rotation": 0.0,
|
||||
"display_duration": 0,
|
||||
"fadeout_duration": 100,
|
||||
"display_duration": 5,
|
||||
"fadeout_duration": 2,
|
||||
"opacity": 1.0,
|
||||
"ui_scaling": 1.0,
|
||||
"tracker": "RightHand",
|
||||
"ui_scaling": 0.25,
|
||||
"tracker": "LeftHand",
|
||||
}
|
||||
|
||||
settings_dict = {
|
||||
@@ -341,7 +342,7 @@ if __name__ == "__main__":
|
||||
overlay.updateImage(img, "large")
|
||||
img = overlay_image.createOverlayImageSmallLog(f"こんにちは、世界!さようなら_{i}", "Japanese", "Hello,World!Goodbye", "Japanese")
|
||||
overlay.updateImage(img, "small")
|
||||
time.sleep(1)
|
||||
time.sleep(15)
|
||||
except openvr.error_code.OverlayError_InvalidParameter as e:
|
||||
logging.error(f"OverlayError_InvalidParameter: {e}")
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user