Jump to content
Unity Insider Forum

Urp Pixel Perfect und Camera follow


LonlonFarm1

Recommended Posts

Moin,

Ich bastle eigentlich an einem 2D platformer mit stationärer Kamera, allerdings hab ich mich ein wenig mit procedural generation befasst und wollte dann meinen Charakter mal ein wenig auf der erstellten Welt rumrennen lassen, also hab ich ein simples Kamera follow Skript angehangen das auch mal funktioniert hat, komischerweise flackert der Spieler jeden Frame etwas, was sehr irritiert, es liegt an der Pixel Perfect Camera Komponente, wenn ich sie ausschalte funktioniert es. 
 

hab es dann noch mit Cinemaschine und der Pixel Perfect Expansion versucht, es ändert aber nichts.

ist das ein Bug gegen den man nichts machen kann oder weiß jemand eine Lösung? Wäre ja blöd wenn man keine Camera mehr follown lassen kann nur weil mal die Pixel Perfect cam verwendet.

 

PS:Hab gesehen das weiter unten bereits eine ähnliche Frage ist. Aber die wurde ja Bis jetzt jetzt auch noch nicht wirklich gelöst

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab es jetzt mal versucht, meine orthographic size ist 5, also das macht die Pixel perfect cam auch von allein da meine reference Resolution 640x360 (1920x1080/3) ist, 1920x1080 ist mein aspect ratio, also sollte das wenn ich es richtig verstanden hab auch gut sein. Meine Pixels per unit sind bei jedem asset 32.

es ist jedenfalls sehr komisch, der Spieler flackert immernoch sehr, komischerweise scheinen die Pixel wenn ich die ppc ausschalte dennoch fehlerlos zu sein, aber trotzdem hätte ich halt gerne das Pixel snapping der ppc 

Danke schonmal für euch Hilfe :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Spieler wird über velocity bewegt, addforce war mir nicht direkt präzise genug, der Spieler ist ein 32x32 Pixel sprite, die sprites sollen in 32x32 Pixeln dargestellt werden also halt auch das 32 pixel ein unit ist. die pixel perfect cam: pixels per Unit: 32, Reference Resolution: 640x360, einziger Haken bei Pixel snapping. Danke dass du immer noch versuchst zu helfen :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich hatte ein ähnliches Problem mein Player hat die ganze Zeit geflackert und es lag auch an der Camera bzw. wie sich der Spieler bewegt hat. Ich habe mich mit rb2d.movePosition bewegt. Das Problem war das man sich dadurch oft zwischen zwei Pixeln befindet was der Camera nicht gefällt (ich hoffe es ist verständlich). Die Lösung war die Bewegung an die Pixel anzupassen.

...

Vector2 horizontalMovement = Vector2.right * inputVector * (playerStats.movementSpeed * Time.deltaTime);
Vector2 verticalMovement = Vector2.up * inputVector * (playerStats.movementSpeed * Time.deltaTime);
Vector2 currentPos = (Vector2) playerTransform.position;
horizontalMovement = PixelPerfectClamp(horizontalMovement,32);
verticalMovement = PixelPerfectClamp(verticalMovement,32);
currentPos = PixelPerfectClamp(currentPos,32);

playerRigidbody2D.MovePosition(horizontalMovement + verticalMovement + currentPos);

...


public Vector2 PixelPerfectClamp(Vector2 moveVector , float pixelPerUnit){
        Vector2 vectorInPixels = new Vector2(
            Mathf.RoundToInt(moveVector.x * pixelPerUnit),
            Mathf.RoundToInt(moveVector.y * pixelPerUnit)
        );

        return vectorInPixels / pixelPerUnit;
}

Das habe ich aus dem Video : 

 

Liebe Grüße x3

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wow Dankeschön!

ich bin dabei das auszuprobieren und es ergibt auch Sinn, hast du noch dazu die pixelperfect cam von unity an? Ich hab das Gefühl die überschreibt das einfach, zumindest hab ich die Bewegung mit dem horizontal movement ausprobiert und das Problem ist noch da, ich vermute aber dass es an der ppc liegt und die Bewegung dann auch ohne die cam Pixel Perfect ist. Die einzige Frage wäre dann halt wie ich den ganzen Rest des Spiels Pixel Perfect kriege, wenn ich die ppc ausschalte. Hoffentlich war das verständlich 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay kann sein dass es ohne die ppc doch nicht Pixel Perfect ist. Hab mich nochmal informiert und es scheint einfach ein bug in der Pixel Perfect camera der urp zu sein. Leider kann ich es nicht mit der normalen Pixel Perfect cam Ausprobieren, da echt viel in meinem Spiel auf urp aufbaut und man, um es auszuprobieren die urp deinstallieren müsste da cinemaschine ansonsten scheinbar Entscheidungs Schwierigkeiten hat

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

Ok nachdem ich mein Game genauer angeschaut habe habe ich gemerkt das das jittering doch nicht ganz weg ist. Die Lösung ist die Camerabewegung auf die Pixel zu clampen x_x . Klingt logisch . Ist es auch nur das Problem das ich hatte ist das mit der Pixel Perfect Camera die mit der USP zusammenspielt funktioniert es nicht. Nur wenn die nimmst die ohne USP funktioniert also die nicht experimentele funktioniert es. Warum weiß ich nicht . Nimm einfach die Methode "PixelPerfectClamp" wie oben beschrieben und haus auf die Bewegeung der Camera. Und vergiss nicht PixelSnapping anzumachen.

Ist zwar schlecht sichtbar aber habs mal versucht in nem Video festzuhalten .

Vorher :

 

Nachher

 

Gruß von der Nuss :3

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wow Peanut, danke dass du dir so eine Mühe machst und immer so gute Antworten gibst :) Gibt es eigentlich keine Möglichkeit deine Antworten irgendwie zu markieren damit du irgendwelche Punkte oder so bekommst? :D

 

Dein Game sieht übrigens sehr gut aus :)

 

leider basiert die komplette Grafik meines Spiels auf den 2D Lights und Normalmaps mit der URP, also muss ich es so lassen, es ist aber zum Glück eh ein Spiel mit statischer Kamera, ich hoffe einfach mal dass es gefixed ist sobald ich mein nächstes Spiel anfange, das kann locker noch ein halbes Jahr dauern, also bin ich da guter Dinge :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...