🚧[WIP/TEST] Model : overlayの透過処理をsetTransparencyで実装

This commit is contained in:
misygauziya
2024-04-25 00:01:39 +09:00
parent 721ee76923
commit fc39dee2e0
3 changed files with 32 additions and 45 deletions

View File

@@ -78,11 +78,10 @@ class Model:
config.OVERLAY_SMALL_LOG_SETTINGS["depth"],
config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"],
config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"],
config.OVERLAY_SETTINGS["opacity"],
config.OVERLAY_SETTINGS["ui_scaling"],
)
self.overlay_image = OverlayImage(
config.OVERLAY_SETTINGS["opacity"],
)
self.overlay_image = OverlayImage()
self.pre_overlay_message = None
self.th_overlay = None
@@ -588,13 +587,13 @@ class Model:
# return self.overlay_image.create_overlay_image_long(message_type, message, your_language, translation, target_language)
def updateOverlay(self, img):
if self.overlay.initFlag is True:
if self.overlay.initialized is True:
self.overlay.uiManager.uiUpdate(img)
def startOverlay(self):
if self.overlay.initFlag is False:
if self.overlay.initialized is False:
self.overlay.init()
if self.overlay.initFlag is True:
if self.overlay.initialized is True:
self.th_overlay = threadFnc(self.overlay.startOverlay)
self.th_overlay.daemon = True
self.th_overlay.start()
@@ -605,7 +604,7 @@ class Model:
self.th_overlay = None
def updateOverlayPosition(self):
if self.overlay.initFlag is True:
if self.overlay.initialized is True:
pos = (config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"], config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"])
self.overlay.uiManager.setPosition(pos)
depth = config.OVERLAY_SMALL_LOG_SETTINGS["depth"]
@@ -613,7 +612,7 @@ class Model:
self.overlay.uiManager.posUpdate()
def updateOverlayTimes(self):
if self.overlay.initFlag is True:
if self.overlay.initialized is True:
display_duration = config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"]
self.overlay.uiManager.setFadeTime(display_duration)
fadeout_duration = config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"]
@@ -621,21 +620,13 @@ class Model:
self.overlay.uiManager.update()
def updateOverlayImageOpacity(self):
if self.overlay.initFlag is True:
if self.overlay.initialized is True:
opacity = config.OVERLAY_SETTINGS["opacity"]
self.overlay_image.setOpacity(opacity)
if self.pre_overlay_message is not None:
img = self.overlay_image.createOverlayImageShort(
self.pre_overlay_message["message"],
self.pre_overlay_message["your_language"],
self.pre_overlay_message["translation"],
self.pre_overlay_message["target_language"],
self.pre_overlay_message["ui_type"]
)
self.overlay.uiManager.setImage(img)
self.overlay.uiManager.setTransparency(opacity)
self.overlay.uiManager.update()
def updateOverlayImageUiScaling(self):
if self.overlay.initFlag is True:
if self.overlay.initialized is True:
ui_scaling = config.OVERLAY_SETTINGS["ui_scaling"]
self.overlay.uiManager.setUiScaling(ui_scaling)

View File

@@ -105,11 +105,8 @@ class UIManager:
if self.settings['Fade_interval'] != 0:
self.evaluateTransparencyFade(self.overlayUI, self.lastUpdate, currTime)
def setImage(self, img):
self.overlayUI.setImage(img)
def uiUpdate(self, img):
self.setImage(img)
self.overlayUI.setImage(img)
self.overlayUI.setTransparency(self.settings['Transparency'])
self.lastUpdate = time.monotonic()
@@ -140,16 +137,18 @@ class UIManager:
def setUiScaling(self, ui_scaling):
self.overlayUI.setUiScaling(ui_scaling)
def setTransparency(self, transparency):
self.settings["Transparency"] = transparency
class Overlay:
def __init__(self, x, y , depth, fade_time, fade_interval, ui_scaling):
self.initFlag = False
def __init__(self, x, y , depth, fade_time, fade_interval, transparency, ui_scaling):
self.initialized = False
settings = {
"Color": [1, 1, 1],
"Transparency": 1,
"Transparency": transparency,
"Normalized_icon_X_position": x,
"Normalized_icon_Y_position": y,
"Icon_plane_depth": depth,
"Normalized_icon_width": 1,
"Fade_time": fade_time,
"Fade_interval": fade_interval,
"Ui_scaling": ui_scaling,
@@ -160,7 +159,7 @@ class Overlay:
try:
if checkSteamvrRunning() is True:
openvr.init(openvr.VRApplication_Overlay)
self.initFlag = True
self.initialized = True
except Exception as e:
print("Could not initialise OpenVR")
@@ -204,25 +203,25 @@ if __name__ == '__main__':
overlay = Overlay()
overlay_image = OverlayImage()
if overlay.initFlag is False:
if overlay.initialized is False:
overlay.init()
if overlay.initFlag is True:
if overlay.initialized is True:
t = threadFnc(overlay.startOverlay)
t.start()
time.sleep(1)
img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", "Hello,World!Goodbye", "Japanese", ui_type="sakura")
# img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", ui_type="sakura")
if overlay.initFlag is True:
if overlay.initialized is True:
overlay.uiManager.uiUpdate(img)
time.sleep(10)
img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", "안녕하세요, 세계!안녕", "Korean")
if overlay.initFlag is True:
if overlay.initialized is True:
overlay.uiManager.uiUpdate(img)
time.sleep(10)
img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", "你好世界!再见", "Chinese Simplified")
if overlay.initFlag is True:
if overlay.initialized is True:
overlay.uiManager.uiUpdate(img)
time.sleep(10)

View File

@@ -18,8 +18,8 @@ class OverlayImage:
"Chinese Traditional": "NotoSansTC-Regular",
}
def __init__(self, opacity):
self.opacity = int(opacity*255)
def __init__(self):
pass
@staticmethod
def concatenateImagesVertically(img1: Image, img2: Image) -> Image:
@@ -138,9 +138,6 @@ class OverlayImage:
# img = Image.alpha_composite(background, img)
# return img
def setOpacity(self, opacity):
self.opacity = int(opacity*255)
def getUiSize(self):
return {
"width": 960,
@@ -151,13 +148,13 @@ class OverlayImage:
def getUiColors(self, ui_type):
match ui_type:
case "default":
background_color = (41, 42, 45, self.opacity)
background_outline_color = (41, 42, 45, self.opacity)
text_color = (223, 223, 223, self.opacity)
background_color = (41, 42, 45)
background_outline_color = (41, 42, 45)
text_color = (223, 223, 223)
case "sakura":
background_color = (225, 40, 30, self.opacity)
background_outline_color = (255, 255, 255, self.opacity)
text_color = (223, 223, 223, self.opacity)
background_color = (225, 40, 30)
background_outline_color = (255, 255, 255)
text_color = (223, 223, 223)
return {
"background_color": background_color,
"background_outline_color": background_outline_color,