Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

malzbie

Moderators
  • Content count

    4,536
  • Joined

  • Last visited

  • Days Won

    275

malzbie last won the day on February 4

malzbie had the most liked content!

Community Reputation

1,399 Excellent

1 Follower

About malzbie

  • Rank
    Moderator
  • Birthday 10/30/1968

Profile Information

  • Gender
    Male
  • Location
    Kassel, Hessen, Deutschland

Recent Profile Visitors

14,851 profile views
  1. Ne, du brauchst den Kopf nicht vom Rumpf trennen, denn mit dem Animator ist es ganz leicht Layer zu erzeugen und eben Animationen zu mischen. Da dein Hund jetzt kein menschlisches Rig hat, also nicht als Humanoid Animation importiert werden kann, kann ich jetzt nicht genau sagen, wie man dem Animator sagt, dass nur gewisse Bones überblendet werden sollen. Aber das krieg ich raus. Wenn du wissen willst, wie das mit Humanoiden und vor allem mit dem Animator funktioniert, dann findest du auf meinem Kanal auch noch ne Videoreihe dazu. Wie gesagt, ich schau mir morgen mal an, wie man Boneanimationen mit nicht Humanoiden Rigs überblenden kann. Das iteressiert mich jetzt selbst.
  2. Welche Software du nutzt um die Animationen zu erstellen ist egal. Ich persönlich nutze Cinema4D aber Blender kann auch alles, was nötig ist. Wenn du mehrere Tiere mit der gleichen Animation bestücken willst, dann muss dein Rig bei all diesen Tieren gleich sein. Also achte darauf, dass die Anzahl der Bones gleich sind und die Lage der Bones auch ähnlich ist. Sind die Unterschiede in der Lage zu groß, wirst du wahrscheinlich schlechtere Ergebnisse bekommen. Du rigst jedes einzelne Tier und wichtest es. Danach speicherst du das fertige gewichtete Modell mit den Bones als FBX ab. Die Animationen erzeugst du dann mit irgendeinem dieser Tiere. Es ist ja egal welches du nimmst, wenn sie, wie du sagst, ähnlich sind. Sind deine Animationen fertig, dann speicherst du jetzt nur, die Bones mit den Animationen ab. Also ohne Mesh. Ob du alle Animationen in einer Spur abspeicherst oder jede Animation einzeln, ist deine Sache. Der Vorteil bei der einzelnen Abspeicherung ist, dass du bei einer Änderung oder Erweiterung einfach die andere Animation abspeichern kannst. Ist es nur eine Spur, kann es sein, dass sich alle deine Animationen verschieben und du in Unity alle neu vereinzeln musst. Ich habe vor vielen Jahren mal eine Tutorialreihe zum Riggen und Animieren gemacht und auch erklärt, wie man das nach Unity rein bringt. Das war natürlich eine alte Unityversion, wo es noch keinen Animator gab. Aber das ist relativ egal, hauptsache du siehst, wie man das macht. Hier ist der Letzte Teil meiner Reihe, wo alles nach Unity rein kommt. Vielleicht hilft es dir. Es sind insgesamt 9 Teile und wenn du die Muse dazu hast und etwas über die Vorgänge beim Animieren wissen willst, dann kannst du dir ja alle anschauen.
  3. Lucy Lamplight

    Sehr schöner Fortschritt! Weiter machen und öfters mal was posten, wenns Recht ist.
  4. 3D Model Schatten Probleme

    Und Haken rein bei Generate Lightmap UV's. Da sich die Verdunkelung ständig wiederholen, glaube ich, dass die UVMap für Licht und Schatten nicht gut ist.
  5. Auto KI und Straßennetz

    Ja, das Ding ist, dass du die Wegfindung und die Eigenschaften der Straße voneinander trennen musst. Beispiel: Hast du jetzt ein System wie in deinem 2 Bild (Option B ) gebaut, dann hast du an jederT-Kreuzung 6 Punkte, weil du ja mit deinem Auto immer auf die rechte Fahrspur willst, egal von wo du kommst. Alle Punkte an dieser Kreuzung sind aber für die Wegfindung insgesamt nur 1 Punkt, denn es ist ja die Kreuzung an sich, die erreicht werden will und da ist die Spur erstmal egal. Fährt dein Auto jetzt von A nach C und kommt an so eine Kreuzung B, muss das Auto dann eben auswerten, auf welcher Spur es weiter geht. Dafür muss es z.B. die Kreuzungsumgebung einmal irgendwie scannen um alle diese Punkte zu erfassen. Jeder Punkt müsste dann Informationen bereit stellen, zu welchem Wegpunkt er im Bezug steht. Also: Dein Auto kommt von links (A) und ist jetzt an der ersten Kreuzung (B ), die nach oben geht (Richtung C). Also müsste jetzt der Spurpunkt, den du da an der oberen Straße eingezeichnet hast, einfach nur wissen, welcher Wegpunkt in Fahrtrichtung liegt. Schon wüsste dein Auto dass es an dieser Kreuzung nach oben fahren muss und dabei auf die rechte Fahrbahn kommen soll. Also da wo der von dir eingezeichnete Punkt ist. Siehe Bild. Du solltest also ein Wegfindungssystem aufbauen, welches wirklich nur die möglichen Ziele und Kreuzungen beinhaltet, um überhaupt eine Route aufzubauen. Dafür wäre der A* Algorythmus ganz gut. Jetzt weiß dein Auto, wie es von A nach C kommt. Nämlich über die Kreuzung B. B ist also das erste Ziel, das angesteuert werden muss. Innerhalb dieser Route können durchaus weitere Wegpunkte liegen, die für dein Auto wichtig sind. Damit es z.B. an Kreuzungen immer auf die richtige Straßenseite kommt, oder damit es weiß wie der Straßenverlauf ist. Gerade an den Kreuzungen ist das ja echt sinnvoll. Ist dein Auto nämlich an der Kreuzung und berührt den Wegpunkt B, wird kurz gescannt, wo sich der "kleine" Wegpunkt Richtung C befindet, und schon weiß es in welche Richtung es fahren muss. Du hast jetzt das Große, also die Berechnung der Route. Dann hast du das kleinere, also die Info in welche Richtung es an Kreuzungen geht um den Nächsten Wegpunkt zu erreichen. Ob jetzt hinter den Kreuzungen ganz viele kleine Wegpunkte sind, die dein Auto abarbeitet, oder ob dein Auto so intelligent ist, dass es von sich aus den Straßenverlauf folgen kann, ist eine Designfrage. Einfacher wäre es auf einspurigen Fahrbahnen, wenn man ganz viele Punkte setzt und das auto immer in Richtung des nächsten fahren lässt. Bei mehrspurigen Fahrbahnen wird das aber nicht ausreichen. Jedenfalls könntest du als nächsten Schritt weitere Verfeinerungen einbauen, wie z.B. Ampeln oder Vorfahrtsregeln. Oder aber das Reagieren auf andere Verkehrsteilnehmer. Jeder weitere Schritt wird schwieriger und aufwendiger werden. Ist aber alles machbar.
  6. Auto KI und Straßennetz

    Willkommen bei uns! Wie bei all solchen Systemen ist es immer auch eine Frage, was alles möglich sein soll und wie groß dein Szenario wird. Mit Waypoints zu arbeiten ist eigentlich keine so schlechte Idee. Du kannst das automatisieren, indem du z.B. bei jeder Kreuzung automatisch einen Waypoint setzt. Als Pathfindingsystem würde sich dann A* (A-Star) anbieten, wenn die Waypoints immer eine ähnliche Entfernung zueinander haben. Wenn das nicht so ist, musst du dir etwas anderes überlegen, denn dann reichen automatisierte Waypoints an Kreuzungen nicht aus. A* kannst du natürlich weiterhin nutzen, nur das Automatisieren würde schwer werden, weil die Nodes/Waypoints jetzt nicht mehr nur über die Entfernung zueinander verknüpft werden können. Jetzt müsstest du jeder Verbindung manuell noch "Kosten" vergeben. Eine Schnellstraßenverbindung würde wenier kosten, obwohl der Weg vielleicht etwas weiter wäre. Hättest du also vor eine dynamische Spielwelt zu erzeugen, in denen neue Verbindungen entstehen und auch alte Verbindungen verschwinden können, musst du auch deine Nodes ständig anpassen lassen. Wie du dir das mit A* vorstellen kannst, zeigt das angehangene Video sehr gut. Auf dem Kanal sind auch andere Algorythmen erklärt, die alle Vor- und auch Nachteile haben. Die Bewegung und automatische Reaktion der Autos ist eine Sache für sich. Das Auto muss erkennen können, welche Straßenseite benutzt werden darf. Also muss der Straßenabschnitt selber informationen dazu haben, in welcher Richtung welche Spuren erlaubt sind. Es könnte ja z.B. mehrspurige Einbahnstraßen geben. Es muss dem Verlauf der Straße folgen und auf Hindernisse reagieren, braucht also Sensoren in Form von Triggern oder Raycasts. Ampeln oder Vorfahrtsschilder müssen auch rechtzeitig erkannt und ausgewertet werden können. Ja und dann muss ein Auto auch die anderen Auto erkennen und sich z.B. deren Geschwindigkeit anpassen. Das alles ist schon recht aufwendig, aber auch interessant. Ich würde das Verhalten der Autos und der Verkehrssituation erstmal vernachlässigen und einfach mit nem Würfel ein Auto simulieren. Die Wegfindung und Bewegung auf der Straße ist schon Herausforderung genug. Alle anderen Dinge lassen sich danach einbauen.
  7. Terrain

    Dann beschattet es sich also selbst? Das ist aber trotzdem putzig...
  8. Terrain

    Für mich sieht das so aus, als hättest du 2 mal die gleichen Meshes übereinander liegen. Kann das sein?
  9. Speicherleak

    Hihi. Ich glaube du machst echt zu viele Dinge auf einmal. Du bist recht ungeduldig, oder?
  10. Layer wird "durchgereicht"?

    Du hast vorher aber vom Layer gesprochen, nicht vom Tag... Aber natürlich kann ja alles in deiner Szene einen Tag oder Layer haben. Also auch Objekte, die nicht der Player sind. Genauso können auch andere Objekte ein Script haben um einen Tag beim Triggern auszuwerten, was eigentlich nur dem Player oder der Todeszone zugewisesn sein sollte. Und genau so einen Verdacht habe ich. ^^
  11. Layer wird "durchgereicht"?

    Also normalerweise sollte sich der Tot nur auf den Auswirken, der in die Zone gekommen ist. Beim Triggern kannst du ja erkennen, welcher Collider in die Zone gekommen ist, oder aber es funktioniert andersherum, dass die Spielfigur erkennt, dass sie in die Zone gekommen ist und dann eben einfach das macht, was zu machen ist. OnTriggerEnter(Collider other){ //Todeszone wertet aus if other.CompareTag("Player"){ //jetzt einfach was an diesen Player senden oder in eine Funktion des Players rein springen other.irgendwas... } } oder aber OnTriggerEnter(Collider other){ // player prüft selbst if(other.CompareTag("Todeszone"){ //ich selber springe jetzt in eine Methode und führe meine Animation aus Sterbe(); // oder tot=true; } } Du musst dir das halt immer so vorstellen, dass die Player selber empfinden können. Sie selber reagieren auf irgendetwas von außen und dann ist es egal wer außerdem noch auf irgendetwas reagiert. Und in diesem Falle wäre es die Todeszone. Ob jetzt der Player das Ereignis abfragt, oder die Todeszone dem Player sagt, dass etwas passiert ist, ist eine reine Designfrage. Aber: Wenn die Todeszone die Info weiter gibt, dann darf sie dass natürlich nur an den weitergeben, der auch betroffen ist. In diesem Falle erkennt man das ja über "other". Selbst wenn mehrere Player nahezu zeitgleich die Zone berühren, wird doch für jeden Player einzeln das Triggerevent ausgeführt. Evtl. müsstest du dir ein Array bilden, welches alle die Player aufnimmt. Ich persönlich würde der Todeszone keine Logic verpassen, sondern den Player triggern lassen und dann auch selber entscheiden lassen was passiert. Aber wie gesagt, es ist egal, wie rum es läuft. Es sollte aber wirklich nur die Info weiter gegeben werden, sodass der, der davon betroffen ist alles Weitere selber macht. Die Todeszone darf nichts, was den Player betrifft, ausführen, wie es z.B. ein Masterscript machen würde, denn das würde das Ganze Objektsystem versauen.
  12. 3D Objekte ausrichten

    Wo ist denn das Bild? Welche 3D SW nutzt du denn und wie ist denn der Maßstabsunterschied? Eigentlich kann jede SW in einem Maßstab exportieren, der in Unity gut zu nutzen ist. In Cinema sind z.B. 100 cm genau 1m in Unity. Und selbst wenn du echt nur in Zoll oder Inch moddeln bzw. exportieren kannst, so kannst du doch beim Meshimport in Unity einen Faktor angeben, der dir das Modell auf die richtige Größe bringen sollte. Du schreibst, dass du eh Prefabs nutzt. Warum skalierst du dein Prefab nicht so, dass es genau einer Rastereinheit entspricht? Oder aber du veränderst die Snapsettings so, dass es passt ( falls du das per Hand machen willst). Ansonsten musst du mit Bounds arbeiten. https://docs.unity3d.com/ScriptReference/Bounds.html
  13. Layer wird "durchgereicht"?

    Ich habe das eben mal durchgetestet und verschiedenen Konstellationen ausprobiert (mit oder ohne Parenting, mit oder ohne RB). Layer werden nicht durchgereicht. Deswegen gehe ich davon aus, dass du entweder die Layer falsch abfragst oder eben doch irgendwo Kontakt hast. Aber egal wie, ich würde sowas echt nicht über Layer machen. Spann einfach einen Trigger über die Todeszone und nutze das Triggerevent für deine Sterbeevent.
  14. Charakter fliegt

    Warum vermischst du Transformbewegungen und Rigidbody-Kräfte? Das ist niemals gut, weil sie sich schlecht verbinden lassen. Entweder alles über die Physik machen, also mit Velocity oder Force, oder alles ohne Physik machen. Und wenn du ohne Physik arbeitest, dann musst du eben erst einen Vector2 oder Vector3 bilden in dem dann die Lauf- und Sprungbewegung addiert werden und dann der Transformkomponente übergeben werden. In beiden Szenarien hast du deine Laufbewegung und deine Sprungbewegung wird einfach dazu addiert. Der Sprung bezieht sich ja auch nur auf die Y Achse. Würdest du also über Force bewegen, dann addierst du eine die Sprung-Force (Nur Y Achse) hinzu. Machst du das über Velocity, dann liest du erst die momentane Velocity aus, übergibst sie einer Vector3 Variable, addierst dieser Variable einen Y Wert hinzu und übergibts das Ganze als mit rb.velocity auf deinen Rigidbody zurück. Machste das nur über Transformbewegungen, dann musst du dir einfach eine kleine Routine bauen, die die Schwerkraft simuliert also die 9,81m/s immer dazu addiert, solang er in der Luft ist. (Da y nach unten hin größer wird, musst du also ins Negative gehen. yRichtung-=9.81*Time.deltaTime; Das machste aber eben nur, wenn die Figur in der Luft ist. Sobald er den Boden berührt, ziehst du nichts mehr ab sondern setzt yRichtung auf 0, damit er nicht nach unten durch fällt. Und um zu springen, gibst du yRichtug einfach einmalig einen positiven Wert. Das ist ja nichts anderes als hättest du einmalig eine Force gegeben. Ja und das Ganze addierst du einfach: Erst Vector3 MoveToward errechnen, das einer Vector3 Variable übergeben, dann den Wert der yAchse dieser V3 Variable dazuaddieren, und erst jetzt alles der Transformkomponente übergeben.
  15. Kamera Steuerung

    Deutsche Variablen haben den großen Vorteil, dass sie nicht in Konflikt mit irgendwelchen schon vorhandenen Variablen oder Funktionen kommen. Von daher ist das für jemanden, der für sich entwickelt gar nicht schlecht. Klar, standard ist es nicht, aber muss ja auch nicht.
×