UI Open & Close Sound

  • Hallo zusammen, ich möchte dass bei der UI (dem Inventar) ein Sound bei dem öffnen und schließen abgespielt wird.
    Leider bekomme ich das absolut nicht hin da ich ein blutiger Anfänger bin und mich mit Blueprints nicht wirklich auskenne.

    Hat jemand von euch eine Lösung ?
    Ich nutze das UltimateShooterKit
    Dieses hat bereits ein Inventar, Open & Close Curves, DataTables und und und.
    Es ist eigentlich schon alles vorhanden sodass ich Gegenstände aufheben und weg werfen kann.

    Mit dem Designen der UI kenne ich mich nicht gut aus.
    In dem Ordner UserInterface gibt es verschiedenes wie auf dem Bild zu sehen.

    Das WidgetIventoryLayout , FrameBuilder und und und.
    Leider finde ich anders wie beim ProMainMenu pack keine Funktionen im WidgetDesigner wie HoverSound, Clicksound usw.
    Das gibt es dort im UserWidget nicht. Das bedeutet ich müsste es über den EventGraphen hinzufügen richtig damit ich die Funktion habe richtig ?

    Doch welches ist der richtige Befehl / Blueprint dazu ?
    Kann mir da jemand helfen ?

    Wenn ihr Bilder oder Informationen braucht nur zu. Ich stelle gern alles bereit um das Ganze zu vereinfachen.

    Hier mal zwei kleine Bilder:



    Im Blueprint BP_ShooterHUD bin ich fündig geworden.
    Wenn ich den EventBeginPlay nutze und dazu Play2D Sound anfüge spielt er den Sound direkt beim Start des Spieles ab.
    Ich möchte aber dass die Sounds beim Öffnen (TAB) und schließen (TAB) abgespielt werden.

    Wäre super wenn mir da jemand helfen könnte.

    LG

  • Sleepy

    Hat das Thema freigeschaltet.
  • Ich Persönlich würde deinen Sound in das Event packen wo die Visibility des Inventars gewechselt wird.

    Suche mal nach der "Toggle Visibility" Node oder sogar der Toggle function. Hier kannst du am Ende der function deinen Sound hinzufügen. Andernfalls kannst du es auch so machen:


    1. TAB Event

    2. IsValid Node mit der Reference die im "Create Inventory Widget" erstellt wurde (Oder auch eine FlipFlop Node (Würde ich nicht empfehlen))

    3. Deinen Sound in IsNotValid hinzufügen


    Somit solltest du einen Sound bekommen wenn das Inventar aufgeht. Umgekehrt kannst du es auch machen mit der "IsValid". Besser wäre es wenn du deine Sound Aktion in der function des Inventars direkt einbaust.


    Hoffe ich konnte dir weiterhelfen, Viel Erfolg

  • Hey hey :)
    sorry dass ich so spät wiederkehre.
    Hatte ein wenig viel um die Ohren die letzten Tage.


    Das ToggleInventory habe ich gefunden.
    Ich habe den Sound jetzt plump einfach mal wie du gesagt hast hinten dran gehangen.
    Der Sound ertönt nun wenn ich das Inventar öffne.
    Hier mal ein Bild dazu:


    Nun ertönt logischerweise sowohl beim öffnen als auch beim schließen der Sound.
    Ich habe viel herum probiert doch ohne wirklich vorhandene Kenntnisse in diesem Bereich gestaltet sich das etwas schwierig wie du sicher gut nachvollziehen kannst ^^

    Was ich danach versucht habe, war mit der IsValid / isNotValid Funktion ein wenig herum zu spielen.
    Bitte verkneif dir das lachen beim nächsten Bild. Ich habe einfach keine Kenntnisse über diese ganzen Funktionen.



    Nun ertönt nur der untere mit IsNotValid verknüpfte Sound.
    Der Obere der bei IsValid verknüpft ist wird gar nicht erst abgespielt. Egal was ich versucht habe dazwischen zu hängen.

    Daher würde ich dich nochmal kurz bitten mir einen Tipp zu geben was ich hier in dem Fall falsch gemacht habe und was ich lieber nutzen sollte damit die Sounds unabhängig beim Öffnen und schließen voneinander abgepielt werden.



    Ich setze die nächsten Wochen definitiv eine Blueprint Tutorial Reihe auf meine ToDo Liste damit die Grundkenntnisse mal ein wenig eingespeichert werden :)

  • Ohne zu wissen wie das Event Toggle_Inventory aufgebaut ist oder aufgerufen wird:

    Versuche es mit einem Branch statt dem IsValid. Bei der Condition von dem Branch ziehst du den roten Output von deinem Toggle_Inventory Event rein, also den "open" oder du kannst es auch von der Variable "Inventory opening?" holen. Dann halt bei True spielst du den Sound für das öffnen und bei false den sound für das schließen.

  • Du hast deiner IsValid keinen Wert zum auslesen gegeben. Hier fragt er quasi ab ob das jeweilige Objekt vorhanden ist oder nicht. Das Objekt in deinem Falle wäre das Invenvory Widget wo die Ref bereits gesetzt wurde:


    Das Rot Markierte ist die Variable aus deinem Widget, hier wurde sie gesetzt. Diese Variable musst du nun bei IsValid überprüfen lassen.

    So sollte es eigentlich funktionieren.



    Ps: Hier meine Photoshop skills :D

  • Aber nur, wenn er die Reference beim schließen löscht, dafür muss er dann eben immer wieder ein neues Widget erstellen, was wie wir vor paar Wochen gelernt haben, nicht so gut ist...

    Ich mache es immer so dass das entsprechende Widget mit "Set Visibility" auf/zu gemacht wird. So funktioniert "IsValid" eigentlich ohne Probleme. Mir wäre zumindest nicht bekannt das es bei mir vorher nicht ging.

    Ansonsten einfach das machen was Bralligator bereits geschrieben hat.

    Mit der "IsValid" habe ich es bisher meist gemacht


    Edit:

    Oder auch die "IsVisible" Node mit einem Branch

  • Oh hier gabs ja inzwischen eine Menge Vorschläge :)
    Ich bin gerade das Projekt am öffnen und werde es direkt mal versuchen zu korrigieren und lese mal eure Beiträge in Ruhe durch.
    ich danke euch vielmals für die tolle Anteilnahme und Hilfestellung !
    Wirklich fantastisch zu sehen <3

  • Ich danke dir vielmals für deine auf Photoshop basierende visuelle Erklärung ^^
    Echt super !

  • So das Problem ist nun dank euch behoben.
    Ich habe einfach statt der IsValid ne Branch genommen und siehe da... Funktioniert einwandfrei.


    Das war tatsächlich das einfachste. Den Vorschlag von Smiley werde ich die Tage auch mal versuchen umzusetzen um zu verstehen und zu sehen dass man das auch auf verschiedene weisen lösen kann. Vielen dank Smiley !
    Ich danke euch allen nochmal vielmals für eure Anteilnahme.
    Das weis ich sehr zu schätzen.



    ..........................Tolles Forum ! :) .....................................
    :!: Euch allen ein schönes sonniges Wochenende. :!:
    .................................................................................................

  • Ich baue das die tage nochmal nach wenn ich zuhause bin. Habe IsValid in meinem Projekt mehr als einmal verwendet in Kombination mit meinen Widgets. Wie genau muss ich nochmals nachschauen. Zumindest klappt es ja die ganze zeit

    wahrscheinlich beim erstellen eines Widgets. Da fragst du vorher ab ob es valid ist. Falls ja dann einfach add to viewport, falls nein dann erstmal createn und dann Referenz setzen und dann add to viewport.


    So wie es bei Devsidez auch gemacht wurde.





    Nur beim Toggle geht dass dann nicht mehr an dieser Stelle mit dem IsValid, weil die Referenz vorher schon gesetzt wird beim erstellen des Widgets. Somit wird es immer valid sein. Wenn man das Widget "wegtoggled" :D also "remove from parent" dann ist die Referenz trotzdem noch da.
    Es muss dann beim erneuten Aufrufen nicht mehr erstellt werden.