Jump to content
Unity Insider Forum

SkipToPlay

Members
  • Posts

    84
  • Joined

  • Last visited

  • Days Won

    22

SkipToPlay last won the day on January 4

SkipToPlay had the most liked content!

Profile Information

  • Gender
    Male
  • Location
    Deutschland

Recent Profile Visitors

4,258 profile views

SkipToPlay's Achievements

Advanced Member

Advanced Member (3/3)

44

Reputation

  1. Wenn ich mir die Skripte kurz anschaue sehe ich beim zweiten direkt, dass dieses Skript die FixedUpdate-Methode verwendet. Diese wird unabhängig zur Framerate (Standardm. 50x pro Sek.) ausgeführt, weshalb diese für eine wirklich flüssige Bewegung für Animationen nicht verwendet werden sollte. Stattdessen sollte Update verwendet werden. Jedoch muss darauf geachtet werden, dass die Bewegungsgeschwindigkeit dann nicht an der Framerate gekoppelt ist. Das erste Skript macht es da schon grundsätzlich richtig, denn mit Time.deltaTime erhält man die Zeitspanne seit dem letzten Frame und man kann dementsprechend den richtigen frame unabhängigen Zielpunkt bestimmen. Ohne den Code aufs Detail zu analysieren bin ich mir aber nicht sicher, dass die gewählte mathematische Funktion für die Berechnung der Zielposition für dein Vorhaben geeignet ist. Außerdem verwendest du einmal Slerp und beim anderen Lerp. Wenn es darum geht, dass eine Kamera ein Objekt folgen soll, empfehle ich, dass du dir Cinemachine anschaust, dann musst du dir mit der Implementierung nicht den Kopf zerbrechen und alles andere ist Einstellungssache.
  2. Es gibt sicher mehrere Wege wie das implementiert werden kann. Die guten dürften alle wahrscheinlich immer mehr oder weniger etwas mit Shadern zu tun haben. Dazu gibt es auch bereits mehrere Tutorials. Hier ein das ich auf die Schnelle gefunden habe: Ist zwar für ein anderen Einsatzzweck, die Technologie dürfte sich aber übertragen lassen. Im Grunde geht es darum, dass du mithilfe eines Scripts eine Maske zeichnest, die du nutzt um im Shader zwischen Materialien/Texturen zu wechseln.
  3. Das Problem liegt offenbar an dem 3D Modell. 3D Modelle beinhalten Datenstrukturen, die definieren, welche Teile einer Textur an den jeweiligen Polygonen angezeigt werden sollen. Diese nennt man UV-Koordinaten und müssen vom Modellierer erstellt werden. Es gibt Tools, die diesen Prozess automatisieren, jedoch erhält man dann keine Kontrolle über die Texturpositionen. Ich empfehle dir dich in diesem Bereich weiter zu informieren. Google beispielsweise mal nach "uv unwrapping blender".
  4. Für mich sieht das Skript in Ordnung aus. Prüfe ob alle Rahmenbedingungen eingehalten werden. Das z.B. nur der Player in deiner Szene das Skript "playercontroller" zugewiesen hat, die Tags alle korrekt gesetzt sind, die Collider der anderen Objekten gesetzt und richtig konfiguriert sind. Wenn das alles nicht hilft, versuch in deinem Code zusätzliche Debug-Befehle einzubauen, um nach und nach weitere Ursachen auszuschließen. z.B: ein Debug.Log(Time.frameCount + " " + name + " keycollect#: " + keycollect ); in einer Zeile hinter "transform.position" um zu prüfen, ob dieser Code überhaupt ausgeführt wird.
  5. Die Fehlermeldung sieht für mich nach einem Schreibfehler aus. "positon" -> "position". Ich habe das Skript überflogen und sehe hier keine Fehler die das versursachen können. Gibt es noch andere Skripte, die die Position von Gameobjekten setzen möchten? Eventuell mal in der IDE im Projekt nach "positon" suchen um die fehlerhafte Zeile zu finden.
  6. Ich kenne mich mit diesem PUN nicht aus. Angenommen, du musstest in deiner Tutorial-Reihe das Skript "MonoBehaviourPunCallbacks" schreiben. In diesem Fall würde ich dir raten, dir die Teile dieser Reihe worum es um diese Teilkomponente geht nochmal anzuschauen und zu prüfen, ob du irgendwo vergessen hast Methoden mit den Namen "OnPlayerEnteredRoom" oder "OnPlayerLeftRoom" anzulegen. Sofern dieses Skript mit dem PUN-Paket mitgeliefert wird, empfehle ich dir die Videos nochmal anzuschauen, in dem die "OnPlayerEnteredRoom" und "OnPlayerLeftRoom" Methoden im LobbyManager-Skript implementiert werden. Hier darauf achten, ob tatsächlich das "override" Schlüsselwort erforderlich war. Falls das der Fall war, sollte man eventuell prüfen, ob man wirklich die selbe PUN Version wie im Video verwendet. Hier kann es helfen, das override Schlüsselwort in den letzten beiden Methoden deines Codes zu entfernen. btw. in der Regel reicht es aus, eine Frage nur einmal in einem Forum zu stellen
  7. Nach meinem Verständnis sucht das Skript durch das "override" Schlüsselwort nach einer "virtual" Methode in der Basis-Klasse. Wurden die Implementation dieser beiden Methoden möglicherweise in der MonoBehaviourPunCallbacks Klasse vergessen? Falls dessen Existenz nicht gewünscht ist, sollte sich das Problem lösen, wenn du in deinem Code das "override" schlüsselwort entfernst
  8. "Schöner" ist immer eine Betrachtungssache. In der Computergrafik wird an vielen Stellen getrickst. Es hängt glaube ich auch von dem aktuellen Setup ab. Einfach um noch weitere Möglichkeiten in den Raum zu werfen: - Verwendung eines schwarzen Unlit-Shaders, welcher ggf. mit überlagender Geometrie via Transparenz in ein anderen Shader überblendet. - Verwendung von post processing volumen - Andere Shader-Tricks
  9. Nur ein kleiner Hinweis von mir: Ich glaube Collision Avoidance ist hier das Buzzword wonach man suchen könnte. Sobald man weiß wonach man suchen muss, findet man nach meiner Erfahrung immer eine Lösung. Es gibt dazu verschiedene Arten von Implementierungen die alle eine eigene Kunst zu sein scheinen - je nach dem was man erreichen möchte. Einige davon setzen eine andere Pathfinding-Technologie voraus. Aber viel Ahnung in diesem Bereich habe ich auch nicht.
  10. Vielen Dank! das ganze Video war auf jeden Fall extrem Aufwändig und ich musste für solche Effekte einige Tricks nutzen. Es handelt sich bei den Animationen aus einer Mischung von Unity 3D und Cinema 4D. Für den Übergang von 3:11 bis 3:15 wurden beispielsweise 8 verschiedene Renderpässe / Rendervorgänge benötigt: - Zwei dieser Pässe bestehen aus ein in Unity gerendertes statisches Bild, welches in Cinema 4D auf Geometrie projiziert wurde - Zwei weitere für eine beleuchtete Geometrie - Zwei Wireframe-Versionen - Und zuletzt zwei Masken, die in After Effects dabei helfen, alles zu dem gewollten Effekt zusammen zu mischen. Hier mal ein Beispiel mit dem Frame 139 dieser Animation: Die anschließende Welle war dabei relativ einfach, hier wurde die Szene ein weiteres Mal gerendert. Das rote Netz war hier während der gesamten Animation sichtbar, so konnte ich während der Videobearbeitung entscheiden, wann ich es ein oder ausblende. Die verformende Animation wurde ebenfalls in Cinema 4D erstellt. Insgesamt wurde diese Szene mit allen Effekten 13-mal mit verschiedenen Einstellungen gerendert. So ähnlich hat es sich während des ganzen Videos durchgezogen.
  11. Moin Lukas, was mich verwundert ist, dass du das Problem seit dem Absturz hast. Was ich in diesem Fall zuerst prüfen würde, ob der RAM soweit Intakt ist. Arbeitsspeicher gehen gerne mal kaputt, hatte schon mehrere Fälle. Windows hat ein integriertes Tool namens "Windows-Speicherdiagnose". Ich würde dieses Tool mal durchlaufen lassen. Da dein Rechner wohl genug RAM zu haben scheint kann man auch mal probieren, ein RAM-Riegel temporär zu entfernen. Wenn das Problem weiterhin besteht, den Test mit dem anderen Riegel wiederholen. Weitere Dinge die man prüfen kann: - Das Spiel mit dem Parameter -force-d3d9 starten - Grafikeinstellungen des Spiels über eine Config-Datei auf's Minimum setzen und versuchen Anti-Aliasing zu deaktivieren - Eine alternative Grafikkarte ausprobieren - Grafiktreiber komplett neuinstallieren - Ein Blick in den Betriebssystem-Eventlogs schauen, nachdem das Spiel abstürzt. - Über eine administrative CMD Scan & Reparatur-Tools ausführen: sfc /scannow DISM /Online /Cleanup-Image /ScanHealth - Ein PC-Stresstest durchführen - Betriebssystem aktualisieren
  12. Leider kann ich in diesem Bild nicht ganz bestimmen, was falsch läuft. Dazu wären weitere Perspektiven und am besten der Shadergraph hilfreich. Ja, eine Möglichkeit z.B: wären Keywords. Wenn ich mich nicht irre, sind diese Keywords dafür da mehrere Varianten desselben Shader zu kompilieren, die dann zur Laufzeit ausgetauscht werden. Wenn ich im Shadergraph ein "Boolean" Keyword erstelle, habe ich 2x Input und 1x Output. Je nachdem ob das Keyword gesetzt ist, wird die Quelle ausgetauscht. Wenn man den Keyword auf Exposed im Local Scope setzt, sollte man darauf via Skript einfach drauf zugreifen können. Beispiel: materialObject.EnableKeyword("Boolean"); materialObject.DisableKeyword("Boolean"); Alternativ (wenn auf global gesetzt) können die Shadervarianten global durch z.B. diesen Code aktiviert/deaktiviert werden: Shader.EnableKeyword("Boolean"); Shader.DisableKeyword("Boolean"); Disclamer: Einige Dinge sind Interpretationen von mir, die ich nicht alle nochmal mit der Dokumentation abgeglichen habe.
  13. Moin, hier mal ein neues Video von mir. Ich stelle hier die Funktionsweise verschiedener Reflexionstechniken anhand der Unity-Engine, in Verbindung mit gerenderten Szenen vor und zeige einen direkten grafischen Vergleich der einzelnen Techniken. Verglichen & erklärt wird das Ray-Traced Reflection, Screen-Space Reflection, Planar Reflection und die klassischen Cubemaps. In diesem Video habe ich versucht, soviele Details wie möglich einfließen zu lassen, ohne Zuschauer, die nicht mit der Spieleentwicklung vertraut sind "abzuschrecken". Jedoch denk ich, dass die Informationen meiner Recherche, die auch auf der Analyse des Sourcecodes einiger Renderer/Renderpipelines basiert, in dieser Form auch für den ein und anderen Entwickler interessant ist. Ich wünsche mal viel Spaß mit dem aufwendigsten Video, das ich bisher gemacht habe:
  14. @Zer0Cool Videowünsche nehme ich gern entgegen. Nur die Sache ist... Ich nutze selbst noch kein Blender. ¯\_(ツ)_/¯ Steht aber auf meiner ToDo-Liste, da Blender meiner Meinung inzwischen besser ist als die kommerziellen Anwendungen. Ich habe bisher tatsächlich mehr mit Blender's Python Schnittstelle gearbeite als mit der UI. Wenn ich mich mit Blender besser auskenne, ziehe ich in Betracht, soetwas mal zu machen. Ich kann hier aber ein Geheimtipp geben: https://www.youtube.com/user/mrdodobird ( IanHubert ) https://www.youtube.com/c/CGMatter/ Die beiden machen kurze und sehr unterhaltsame Blender-Tutorial. Hier lernt man wirklich ausversehen etwas! @chrische5 Danke für dein Feedback, ich habe tatsächlich nur noch drauf gewartet bis sich noch einer wegen des Titels meldet. Habe den jetzt umbenannt. Die Intention war eher meine persönliche Auffassung von den ganzen optimierungs Funktionen zu vermitteln anstelle es "reißerisch" aussehen zu lassen.
  15. Moin zusammen, ich habe mal auf die Schnelle ein kleines 6-minütiges Tutorial aufgenommen und ein paar stündchen bearbeitet, wie ich bisher mit Simplygon LOD's erstellt habe. Obwohl die Software die beste für das generieren von LOD's ist, die ich kenne, hatte mir diese die ersten Stunden ziemliche Kopfschmerzen bereitet - was der Grund ist wieso ich zu diesem Video gekommen bin. Vielleicht hilft es ja dem einen oder anderen
×
×
  • Create New...