Charakter inaktiv schalten

  • #1, by MachtnixSunday, 31. January 2016, 18:04 8 years ago
    Hi,

    ich möchte meinen Spielcharakter für kurze Zeit inaktiv schalten. Das heißt, er soll sich nicht bewegen können (er steckt im Sumpf fest).
    Nun dachte ich eigentlich, dass das mit "Person stoppen" funktioniert, tut es aber nicht. Es gibt auch keinen anderen Befehl für "inaktiv schalten" (nur zwei ähnliche Befehle für die Sichtbarkeit). Der Charakter läuft weiterhin zum Zielpunkt.

    Nun habe ich versucht, im Outfit die Geh-Animationen zu löschen, er hat also nur zwei Standanimationen. Aber er "schwebt" dann in seiner Standpose trotzdem zum Zielort. Wie kann das sein?

    Kann ich den Charakter irgendwie "einfrieren"?

    Machtnix

    Thread Captain

    1097 Posts


  • #2, by sebastianSunday, 31. January 2016, 21:35 8 years ago
    Soll man währenddessen rum klicken können und irgendwie anders interagieren?

    Thread Captain

    2346 Posts

  • #3, by MachtnixSunday, 31. January 2016, 22:00 8 years ago
    Ja. Der Charakter soll sich nur nicht fortbewegen können. Er muss sein Inventar öffnen können und Objekte um ihn herum anklicken dürfen.

    Es geht auch, nämlich wenn es nur Standoutfits gibt. Ich befürchte, es hat wieder einmal etwas mit "vor- und entladen" zu tun. Mein Charakter hat sich alle anderen Posen "gemerkt" und wechselt zu einem anderen Outfit, was im Speicher noch geladen ist. Das dürfte er nach der Logik her zwar nicht, er tut es aber trotzdem. Ich habe die"nicht entladen-Option" jedoch gewählt, damit der Wechsel schneller geht. Der Charakter wechselt extrem häufig sein Outfit.

    Es gibt eine Lösung, die ist aber komplett irrsinnig: ich habe einen neuen Charakter angelegt, der nur diese zwei Standposen (zwei, weil es nur rechts und links gibt) beinhaltet. Ich wechsle also den Charakter. Er heißt im Spiel zwar gleich, hat aber natürlich eine andere Vis-ID. Dann klappt es! Warum auch immer!!
    Aber das bedeutet auch, dass ich sämtliche Bedingungen, sämtliche Werte, sämtliche Items, sämtliche Dialogentscheidungen 1:1 rüberkopieren muss. Ich glaube nicht, dass es ergonomisch und sinnvoll ist, deswegen hätte ich gerne eine elegantere Lösung...

    Machtnix

    Thread Captain

    1097 Posts

  • #4, by sebastianSunday, 31. January 2016, 22:06 8 years ago
    Hmm ich hätte jetzt gesagt, dass es sinnvoll wäre einfach auf einen unsichtbaren zweiten char zu wechseln, aber wenn du das Inventar noch brauchst ist dies schwierig. Was passiert, wenn du für diese Zeit einfach das Wegesystem änderst und der char steht quasi außerhalb der begehbaren bereiche?

    Thread Captain

    2346 Posts

  • #5, by MachtnixSunday, 31. January 2016, 22:15 8 years ago
    Hab noch eine Lösung: ich lege ein neues Outfit an (Kopie) und setze die Gehgeschwindigkeit auf Null. Kann es hier jetzt nicht testen, aber wenn die Engine die Null nicht akzeptiert, tut es vielleicht eine 1...
    Hm, das mit den Wegesystemen hört sich nicht schlecht an. Ist das tatsächlich so, dass der Charakter "erstarrt", wenn er außerhalb steht...? Also, eine Idle-Animation sollte er aber schon beibehalten und die anderen Personen-Animationen... ;-)

    Machtnix

    Thread Captain

    1097 Posts

  • #6, by MachtnixTuesday, 02. February 2016, 17:15 8 years ago
    @Sebastian.204: Das war's! Ich habe ein winzig kleines Wegesystem, gerade mal 30x30 Pixel, angelegt, mit nur einem Wegpunkt in der Mitte. Wird der Charakter exakt auf diesen Punkt gesetzt und das Wegesystem dahin gewechselt, steht die Figur fest auf diesem Fleck, kann aber sämtliche anderen Aktionen machen. Genau, was ich wollte. Man muss nur die Größe der Figur anpassen, denn ein neues Wegesystem bedeutet auch neue Skalierung.
    Alle anderen Dinge haben nicht funktioniert. Sogar eine Schleife "setze Figur auf Position x,y und gehe wieder einen Schritt zurück" hat nicht funktioniert. Mir ist absolut nicht klar, wieso nicht - das erschüttert meinen Glauben an Programmierlogik ;-)

    Machtnix

    Thread Captain

    1097 Posts

  • #7, by sebastianTuesday, 02. February 2016, 17:47 8 years ago
    Die frage ist, was von visionaire priorisiert wird. Aber schön, dass das mit dem wegsystem gejkappt hat

    Thread Captain

    2346 Posts

  • #8, by MachtnixTuesday, 02. February 2016, 18:01 8 years ago
    Ich mag auch nicht glauben, dass es "egal" ist, an welcher Stelle eine Aktion oder eine Bedingung definiert und abgefragt wird. Offensichtlich geht Visionaire ähnlich wie andere Programme vor: die "am nächsten" liegende Aktion wird in der Hierarchie zuerst abgearbeitet, dann folgen vielleicht Stufe für Stufe nach oben hin die immer "allgemeineren" Abfragen. Ganz wie HTML oder CSS. Aber sicher bin ich mir nicht; es entsteht tatsächlich der Eindruck, ich kann meine Werte oder Bedingungen deklarieren, wo ich will. Um die Übersicht zu behalten, bin ich aber dazu übergegangen, meine Aktionen nicht wild zu verstreuen, sondern sie 1. komplett in die Kulissenaktionen zu legen und 2. in die Charakteraktionen, die es betrifft. Sonst findet man ja gar nichts mehr wieder... ;-)

    Machtnix

    Thread Captain

    1097 Posts

  • #9, by sebastianWednesday, 03. February 2016, 08:51 8 years ago
    Wo du eine value, condition, aktion, etc aleegst ist glaub ich egal. Im grunde stehen die intern in der selben Tabelle. Visionaire verlinkt quasi nur auf die entsprechenden sachen.

    "CharacterValues" im Charakterobjekt ist ein Link (bzw mehrere links) auf alle Values die der charakter hat.
    Der Link führt zu einer Value in der Value Tabelle.
    Ganz gut sieht man das, wenn du den explorer in VS öffnest (strg+e)

    Es geht also nicht darum was "am nächsten" ist, sondern wahrscheinlich was zuerst definiert wurde von der Reihenfolge (ungleich wie bei css, wo alles addiert wird bzw. das letzte gilt)

    Solltest du also eine action per lua starten wollen, die "test" heißt (ohne genauere definition in welchem objekt du sie verlinkt hast) und es gibt im projekt verteilt mehrere aktionen, die so heißen, wird meines wissens nach nur die erste gefundene (id) abgefeuert und das wars...

    @devs korrigiert mich falls ich falsch liege :p

    Thread Captain

    2346 Posts

  • #10, by CrossWednesday, 03. February 2016, 12:55 8 years ago
    Wie oben schon gesagt wurde, kann man auch eine Kopie des Outfits mit Bewegungsgeschwindigkeit 0 erstellen. Das funktioniert tadellos und lässt Zugriff auf alle Aktionen, Inventar und Animationen des normalen Outfits.

    Newbie

    92 Posts

  • #11, by MachtnixWednesday, 03. February 2016, 20:04 8 years ago
    @Cross: hab ich so gemacht. Nein, es funktioniert nicht. Ich kenne den Grund dafür nicht, aber mein Charakter hat sich trotz Geschwindigkeit 0 in seiner Outfit-Standpose (es gab ja nicht mal Gehposen, sondern nur zwei Standposen und sonst nichts) weiterbewegt. Deswegen hatte ich den Verdacht, dass irgendwo noch eine Aktion verborgen war (deshalb die Hierarchie-Diskussion), die den Charakter zum Laufen gezwungen hat, wahrscheinlich wurde irgendwo irgendwas nicht entladen.

    Ich könnte jetzt Gehanimationen mit Geschwindigkeit 0 extra anlegen, um das auszuprobieren. Aber ehrlich: ist es nicht absurd, für einen Charakter, der nicht gehen soll, Gehposen anzulegen? Und so, wie es jetzt ist, klappt es reibungslos.

    Kurz: selbst wenn ich den Fehler ausfindig gemacht hätte, bedeutet das ja zwangsläufig, dass viele Aktionen aufeinander aufbauen, voneinander abhängig sind und die Situation beeinflussen, so dass nicht immer gewährleistet ist, dass die einfachste Lösung auch wirklich funktioniert... Irgendwo schlummerten also unbestimmte Daten, die den Charakter zum Gehen zwangen.

    Machtnix

    Thread Captain

    1097 Posts