Dialogtexte etc. werden immer nur oben links angezeigt

  • #1, by michael-schuetz-29877Saturday, 16. August, 17:05 A month ago
    Hallo,

    ich bin am verzweifeln, seit Stunden versuche ich einen Dialog zu erstellen. Das erstellen klappt auch ohne Probleme. Nur wird der Text egal was ich versuche immer nur oben links angezeigt.

    Auch eine Narration Box integration war erfolglos.
    Ich vermute ich muss irgendwo einen Einstellung machen die ich nicht finde.

    Habe auch schon eineige Tutorial Videos angeschaut, erfolglos.

    Hat jemand eine Idee.
    Welche Screenshot helfen das Problem zu lösen.
    Weiß nicht mehr wo ich noch suchen soll.

    Beste Grüße
    Michael

    Newbie

    16 Posts


  • #2, by esmeraldaSaturday, 16. August, 18:35 A month ago
    Ein bisschen mehr Infos wären schon gut, um zu helfen.

    Meinst du die Dialogauswahl (also die Textoptionen, die für den Dialog ausgewählt werden können), oder den Text, den die Charaktere sprechen?
    Falls Charaktertext- ist es 1st-Person oder ist der Charakter sichtbar auf der Kulisse?

    Charaktertext:
    wenn der Charakter auf der Kulisse ist: Der Text wird automatisch oberhalb des transparenten Bereiches deines Charakterbildes angezeigt. Ist der transparente Bereich viel größer als der Character und darum evtuell außerhalb des Bildschirms, schiebt die Engine den Text irgendwo in den Bildschrimbereich. D.h. dann solltest du deine Bilder zurechtschneiden.

    1st-Person-Ansicht: 
    Der Charakter ist zwar auf der Kulisse, aber es ist ein leerer Character, ohne Bild. Dann springt der Charakter automatisch oben links ins Eck, selbst wenn man ihn an eine bestimmte stelle setzt. Da empfiehlt es sich, den Text mit einem kleinen Skript an die richtige Stelle zu schieben oder Narration Text zu nehmen.
    Info dazu in der Wiki: https://wiki.visionaire-tracker.net/wiki/Change_Text_Position

    Ist es die Dialogauswahl:
    Hast du in den Einstellungen des spielbaren Charakters einen Dialogbereich gesetzt, d.h. eine Grafik für die Dialogauswahl eingefügt (das ist optional) und eine Textbox für die Dialogauswahl eingezeichnet?

    Ich weiß jetzt nicht, was du mit Narration Box meinst? Ein Interface das eingeblendet wird, wenn ein Charktertext gezeigt wird? Die Box allein tut's nicht, du musst schon dem Text die Position zuweisen. (per Skript oder als Narration Text, da gibst du im Actionpart selbst die Position an.

    Übrigens ist hier im Forum wenig los, wenn dein Englisch das hergibt, schau doch auf dem Discord-Server von Visionaire vorbei. (Link ist unten auf der Seite)

    Key Killer

    560 Posts

  • #3, by michael-schuetz-29877Saturday, 16. August, 19:15 A month ago
    Hallo,

    ich habe mal 2 Bilder hochgeladen.
    Der Dialog wird ausgelöst über das benutzen des roten Telefones. Das funktioniert auch soweit.

    Der blaue Text meines Charakters ist an der richtigen Stellen.
    Der rote Text des Gesprächspartners erscheint immer nur oben links.

    Alle versuche diesen nach unten zu bekommen scheitern aktuell.
    Der Dialogbereicht des spielbaren Charakters ist gesetzt.
    Die Naration Box ist ein Interface welches ich auch versucht habe. 

    Mein Englisch reicht leider nicht für den Discord

    Danke für die Unterstützung

    Newbie

    16 Posts

  • #4, by esmeraldaSaturday, 16. August, 20:38 A month ago
    ok, das heißt, der Gesprächspartner ist ein Charakter ohne Bild? Oder ist das Telefon ein Charakter?

    Key Killer

    560 Posts

  • #5, by michael-schuetz-29877Saturday, 16. August, 21:09 A month ago
    Aktuell ist es ein Charakter ohne Bild. Das Telefon ist ein Item.
    Ich habe dem Charakter jetzt ein durchsichtiges Bild gegeben und seine POS in der Szene gesetzt.
    Jetzt erscheint der Text schonmal woanders.

    Aber wirklich beeinflussen kann ich die Position noch nicht.

    Aber Danke, ich bin auf jeden Fall schonmal weitergekommen

    Newbie

    16 Posts

  • #6, by philip-schoenmetzSunday, 17. August, 00:12 A month ago
    Texte an festen Stellen/in einer festen Textbox geht auf jeden Fall nur mit einem Skript, finde das ziemlich enttäuschend, dass das kein fester Bestandteil der Engine ist. Dabei benutzen ein paar Adventure die ich kenne Textboxen.

    Newbie

    15 Posts

  • #7, by esmeraldaSunday, 17. August, 08:42 A month ago
    Für eine feste Position eines Textes kann man Narration Text (Sprechertext anzeigen) verwenden. Da kann man die genaue Position eingeben. Dafür braucht man kein Skript.

    Das Skript ist aber auch kein Hexenwerk:
    function txtPos(text)
    
      if text.Owner.name == "Gespraechspartner" then
    
      
    
        -- Define the new text position on the screen
    
        text.Position = {x = 640, y = 100}
    
     
    
        return true
    
       
    
      end
    
      return false
    
     
    
    end
    
    registerHookFunction("setTextPosition", "txtPos")


    Dieses Skript im Skriptingbereich als neues Skript einfügen und als "definition" Skript (Häkchen gesetzt) verwenden.
    Im Skript noch den Namen "Gespraechspartner" zu dem Namen des gewünschten Charakters ändern. Dabei auf Groß-und-Kleinschreibung achten. Der Name muss genauso sein, wie du den Character benannt hast. Dabei dürfen keine Umlaute im Namen sein. (notfalls musst du deinen Character umbenennen)
    Dann noch die Werte für x und y auf die gewünschte Position ändern. Fertig.

    Key Killer

    560 Posts

  • #8, by michael-schuetz-29877Monday, 18. August, 14:56 A month ago
    Dank das hat jetzt gut funktioniert.

    Newbie

    16 Posts

  • #9, by michael-schuetz-29877Wednesday, 20. August, 00:10 A month ago
    wie kann ich die Funktion den anpassen damit auch andere/alle Gesprächspartner die Textposition nutzen können.

    Danke und Gruß

    Newbie

    16 Posts

  • #10, by esmeraldaWednesday, 20. August, 11:54 A month ago
    es gibt verschiedene Möglichkeiten.
    Sind es denn viele Gesprächspartner? Man kann die Namen der anderen in die Abfrage über ein "oder" einfügen:

    if text.Owner.name == "Gespraechspartner" or "Telefondummy" or "AmEndeDerLeitung" then

    Sind vielleicht alle Charaktere außer dem Hauptcharakter am Telefon?
    Dann könnte man auch folgendes fragen:

    if text.Owner.tableId == eCharacters and text.Owner.name ~= "hero" then


    Da wird gefragt, ob der Sprecher ein Charakter ist (es gibt ja auch Sprechertext (narration text) und Objekttexte) und ob dieser Charakter nicht der Hauptcharakter ist (ungleich). "hero" müsste man mit dem Namen des Hauptcharakters ersetzen.
    Da werden dann alle Charaktertexte außer denen des Hauptcharakters an die neue Stelle gesetzt.

    Key Killer

    560 Posts

  • #11, by michael-schuetz-29877Wednesday, 20. August, 22:27 A month ago
    Wenn ich diese Befehlszeile nutze

    if text.Owner.name == "rotes_Telefon" or "Taxifahrt" then

    setzt er mir auch den Hauptcharakter Text an die angegeben Position. Diese ist dann nicht mehr über den Charakter. Entferne ich den Teil -- or "Taxifahrt" wird es richtig angezeigt.

    der code folgt noch nach if...

       -- Define the new text position on the screen
        text.Position = {x = 1280, y = 1300}
        return true
      end
      return false
    end
    registerHookFunction("setTextPosition", "txtPos")

    Was mache ich noch falsch?

    Danke und Gruß

    Newbie

    16 Posts

Write post