Jump to content
Unity Insider Forum

Crackpot

Members
  • Content count

    6
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Crackpot

  • Rank
    Newbie

Profile Information

  • Gender
    Male
  • Location
    Grossraum Köln

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Crackpot

    Animation Transitions zu langsam?

    Sowas in der Art war es. Ich hab mit dem setzen des Parameter zu lang gewartet. Hab ihn quasi erst im letzten Frame gesetzt und da greift offenbar schon die ExitTime. Wenn ich den Parameter ein oder mehrere Frames vorher setze gehts auch in die andere Animation.
  2. Crackpot

    Animator default settings

    Oh das wär ein Träumchen!
  3. Crackpot

    Animation Transitions zu langsam?

    Nope, lag wirklich an den Transitions... Habe nochmal die Transitions gelöscht und neu aufgezogen und siehe da, es lief. Ich hab keine Ahnung was mit den alten nicht gepasst hat... Ich verstehe auch nicht, warum die grafische Darstellung der Transition nicht so passt ich wie mir das vorstellen würde. Wenn z.B. die ExitTime auf 0.9 (also 90%) steht, dann zeigt er das unten in der grafischen Darstellung auch so an, also ein Schräger Balken der vom oberen State ab 90% runter geht auf den nächsten State. Wenn ich jetzt HasExitTime auf FALSE stelle wird zwar oben die 0.9 ausgegraut, aber unten an der grafischen Darstellung ändert sich nix. Ich würde erwarten, dass dann unten in der Darstellung die ExitTime bei 100% steht... Weiss jemand welche Bedeutung die grafische Darstellung hat? Spielt die überhaupt eine Rolle??? Wie dem auch sei, ich habe jetzt der vollständigkeit Halber bei meinen Transitions immer zuerst die ExitTime auf 1 gestellt, danach HasExitTime auf false, dann noch FixedDuration auf false und Transit Duration auf 0. Mit den Parametern geht es jetzt, zumindest bekomme ich den Bug nicht mehr reproduziert, egal wie wild ich meine States wechsle... Ach ja, gleich noch eine andere Frage zum Animator bzw. zu States, dann muss ich nicht nen neuen Thread aufmachen: Ich habe gestern mal versucht einen State mit zwei Transitions in zwei andere States zu bauen. Soweit nix neues, das ist eigentlich kein Problem. Nur diesmal habe ich EINE der Transitions mit HasExitTime = true und Exit Time = 1 definiert, die andere wie gehabt mit HasExitTime = false und einem boolschen Parameter. Ich hatte vor die Animation entweder einmal durchlaufen zu lassen und dann per default in den anderen State zu wechseln, AUSSER ich bekomme einen bestimmten Input und der boolsche Parameter wird gesetzt, dann sollte in den anderen State gewechselt werden. Problem ist nur, dass er IMMER die Transition mit HasExitTime = true benutzt obwohl ich den boolschen Parameter setze (ist auch im Animato zur Laufzeit zu sehen). Irgendwie juckt ihn die andere Transition nicht... Hat jemand eine Idee was da falsch läuft oder ob ich hier was falsch verstehe? Hätt nicht gedacht dass ich doch so große Probleme mit dem Animator bekomme. Bei meinen bisherigen "einfachen" Projekten lief immer alles OK, aber diesmal sind meine Animationen und die States einfach komplexer...
  4. Crackpot

    Animation Transitions zu langsam?

    Hy und vielen Dank für die Antwort. Die Animator Parameter werden imm im OnEnter des jeweiligen States auf true gesetzt und im OnExit immer wieder auf false. Der Parameter Stopping wird auch nur im StoppingState gesetzt, das ist mit Konstanten sichergestellt, habe bereits gesucht ob der Parameter noch von wo anders verwiesen wird, aber dem ist nicht so. Ich nutze für alle States einen eigenen Parameter. Also auch Idle hat einen Parameter. Ist vielleicht nicht optimal aber mit meiner StateMachine einfach verständlich, da jeder State beim betreten (OnEnter) seinen eigenen Parameter auf true setzt und beim verlassen (OnExit) wieder auf false. Die Parameter werden auch NUR in dem jeweiligen State gesetzt. Ich setze also niemals irgendeinen fremden Parameter aus einer anderen State heraus. Wie gesagt, vielleicht nicht die beste Lösung aber für mich als Neuling noch am einfachsten nachzuvollziehen (dachte ich bis gestern zumindest ). Ansonsten macht meine State Machine genau das was du schreibst. Sie setzt ihren Boolschen Parameter bei OnEnter und lässt ihn so lange true bis sich etwas ändert was und der State merkt er muss jetzt wechseln (z.B. Jumping bleibt solange true bis ein "grounded" Event festgestellt wird, dann wird z.B. der IdleState zurück gegeben und der eigene Parameter auf false gesetzt. Wie im Pseudcode zusehen ist passiert das dann quasi in einem Frame/Update. Der alte State Parameter ist dann false und der neue true. EIGENTLICH kann da mit den Parametern nicht viel falsch laufen, also theoretisch dürften z.B. NIEMALS zwei Parameter true sein, da der alte State sich immer mit "false" verabschiedet. EIGENTLICH... Ich denke auch, dass es auf ein Timing Problem hinausläuft, ich glaub ich muss mich mit den Parametern der Transition noch besser beschäftigen, evtl. hab ich da noch was nicht richtig auf dem Schirm. Ich verstehe z.B. noch nicht so genau diese Zeitstreifen in der Transition. Wenn ich TransitionDuration auf 0 setze würde ich erwarten, dass die Zeitstreifen unten direkt aneinander grenzen, aber mir wird hier meist trotzdem ein "Übergang" (diese Schräge die von dem oberen State in den unteren übergeht) von einem State in den anderen angezeigt. Kann das sein? Danke und Gruß
  5. Hallo zusammen. Bin der Neue und hab direkt mal eine Frage. Gestern habe ich mit meinem Platformer Prototypen rumgespielt und einen Bug bei einer Animation Transition gefunden den ich nicht ganz verstehe. Zum Hintergrund: Ich benutze eine simple selbstgeschriebene Finite State Machine, die den Status meines Player Objekts überwacht (also auf User Input als auch auf äussere Einwirkungen reagiert) und zu 99% den States des Animators entspricht. Als Transition Parameter habe ich mich der Einfachheit auf bool Parameter beschränkt. In meinem Script-State setze ich beim Init den entsprechenden Animation Parameter (z.B. RUNNING = true) und beim verlassen des States setze ich ihn wieder auf false. Die Transitions sollen alle sofort passieren, also habe ich Has Exit Time als auch Fixed Duration auf False und auch die Transition Duration auf 0 gesetzt. Soweit so gut. Jetzt habe ich allerdings ein Problem und zwar habe ich den Eindruck, dass meine State Machine "zu schnell" für den Animator ist. Meine State Machine überprüft den Status in jedem Frame (also über Update) und wenn ein State sich ändert, liefert der aktive State den neuen State zurück, für den alten State wird OnExit aufgerufen (somit der alte Parameter auf false gesetzt) und für den neuen State wird OnEnter aufgerufen (somit der neue Parameter auf true gesetzt). Der nächste Frame (also beim nächsten Update) wird dann mit dem neuen State gearbeitet, bis dieser dann einen anderen / neuen State zurückliefert. Hier abgekürzt als Pseudocode: AbstractState newState = currentState.HandleUpdate(...); if (newState != null) { currentState.OnExit(...); currentState = newState; currentState.OnEnter(...); } Ich habe jetzt einen State "Stopping" der sehr kurz ist und der nur einmal abgespielt wird (kein loop) und der immer auf den State "Idle" zurück führt, "Idle" hat hingegen Transitions zu mehreren weiteren States. Meine Erwartung: Eine Eingabe führt zur Überleitung zu "Stopping", der State läuft einmal durch und leitet dann auf "Idle" weiter, durch die bestehende Eingabe leitet "Idle" direkt an eine weitere Transition (nenne wir sie mal "JUMPING") weiter. Mein Problem: Eine Eingabe führt zur Überleitung zu "Stopping", der State läuft einmal durch und leitet dann auf "Idle" weiter, "Idle" versucht an "Jumping" weiterzuleiten, bleibt jedoch im letzten Frame von "Stopping" hängen und bekommt die Transition aus "Stopping" nicht hin. Ich habe schon einiges an Debugging ausprobiert und derzeit sieht es so aus das meine State Machine soweit korrekt durch alle States durch läuft und die entsprechenden Parameter immer auf true oder false setzt. Allerdings kommt der Animator offenbar nicht ganz mit. Die Debug Ausgaben im Script verraten, dass der Parameter Stopping korrekt auf "false" gesetzt wurde, allerdings ist im Animator in Unity der Haken bei "Stopping" immer noch gesetzt. Da passt irgendwie die Anzeige in Unity im Animator nicht zu dem was die Animator Komponente im Script aussagt. Als Workaround habe ich einmal versuchsweise eine Transition zwischen "Stopping" und "Jumping" mit entpsrechendem Parameter gesetzt und siehe da es geht! Das bekräftigt mich in der Annahme, dass der Animator gar nicht wirklich im "Idle" State ankommt sondern direkt auf "Jumping" weiter will. Was mache ich falsch? Kann man bei den Transitions noch irgendwas einstellen, dass die Transitions bei jedem Update durchgeführt werden, also quasi sofort? Habe ich bei den Einstellungen was übersehen? Danke wer bis hierhin gelesen hat, ist etwas schwierig die Thematik darzustellen... :/
  6. Hallo zusammen. Ich beschäftige mich seit ca. einem Jahr mit Unity, habe mich aber bisher hauptsächlich mit Übungen, Lektionen und Tutorials (großteils über Kurse bei Udemy oder YouTube) sowie Spielereien rumgeschlagen. Seit ein paar Monaten sitz ich jetzt an meinem ersten eigenen ernstgemeinten Spieleversuch. Es soll ein 2D Pixelart - Hack&Slay - Platformer werden (oh Gott was ein Wortungetüm). Wenn ich mich traue zeig ich auch mal die ersten Gehversuche. Leider habe ich in meinem Bekanntekreis kaum jemanden der nicht direkt anfängt einzuschlafen wenn ich auf Spieleentwicklung zu sprechen komme, von daher bin ich auf der Suche nach einer Community die mir weiter helfen kann, bei der aber vielleicht auch ich etwas beisteuern kann. Also einfach ein wenig Austausch, Erfahrungen oder sich einfach mal auskotzen wenn man mal nicht weiter kommt. Ich bin bereits mehr oder weniger in internationalen Foren unterwegs, finde es aber überall ziemlich unpersönlich, von daher hoffe ich, dass ich mich vielleicht hier wohler fühlen werde. Kurz zu mir, ich komme aus dem Großraum Köln, bin 41 Jahr alt, habe Haus, Sohn, Katze und Frau (wie langweilig) und jadda-jadda war natürlich auch seit Amiga / Atari Zeiten ein Computerspiele Fan. Ich arbeite mittlerweile seit ca. 20 Jahren als Softwareentwickler für Industrie und Banken und das ganze Business-Coding hängt mir etwas zum Halse raus. Also hat mich vor ca. einem Jahr der Ehrgeiz gepackt mal ein eigenes Spiel zu programmieren und vorallem mal einen Blick hinter die Kulissen zu werfen. Wie funktioniert sowas eigentlich alles? Wie kompliziert ist das und krieg ich sowas ansatzweise in mein eingefahrenes Entwicklerhirn rein. Was mir jetzt ganz entgegen kommt, ist dass ich seit ich denken kann recht künstlerisch unterwegs bin (Acryl, Öl, Zeichnen, Airbrushen etc.) und das jetzt auch mal ins digitale zu übertragen macht enorm viel Spass. Und wenn die "Männchen" dann auch noch mit Controller über den Bildschirm tanzen ist das schon ziemlich ... geil. So und nu weiter frohes schaffen!
×