Hallo liebe Community!
Ich bin mit meinen Versuchen am Ende einen Vector3 Punkt zu einem anderen Vector3 Punkt in einer bestimmten Zeit zu erreichen.. Und darum frage ich euch nun um Hilfe.
Mein Vorhaben ist ganz simpel, hier habe ich für euch nochmal eine kleine Visuelle Darstellung von diesen Vorhaben:
Ich habe verschiedene Methoden versucht, doch ich habe es leider nicht hinbekommen
Hier sind einige Versuche:
Ich schätze dies war bisher mein bester Versuch:
Das sah dann so aus:
Das ganze soll so eine Art keyframe editor werden basierend anhand der momentanen Musik
Wie man im Video sah, habe ich auf Position 0 ein Keyframe gesetzt, und auf Position 15.
Die Kamera soll dann in 15 Sekunden das Ziel erreichen.
Jedoch wie man sah, war die Kamera zu schnell am Ziel.
currentSecond ist die momentane position der musik
lastNextNode.AtPosition ist die zeit in der die interpolation erreicht werden soll
NativeGame.FrameTime und IVTimer.TimeStep ist beides das selbe, ich dachte anfangs das vielleicht unterschiede bestände
Ich bin nicht der beste im erklären, also falls ihr noch Fragen habt, gerne fragen!
Danke im Vorraus!
Ich bin mit meinen Versuchen am Ende einen Vector3 Punkt zu einem anderen Vector3 Punkt in einer bestimmten Zeit zu erreichen.. Und darum frage ich euch nun um Hilfe.
Mein Vorhaben ist ganz simpel, hier habe ich für euch nochmal eine kleine Visuelle Darstellung von diesen Vorhaben:
Ich habe verschiedene Methoden versucht, doch ich habe es leider nicht hinbekommen
Hier sind einige Versuche:
C#-Quellcode
- lastNode.NewPosition = lastNode.NewPosition.MoveTowards(lastNextNode.NewPosition, ((lastNode.NewPosition - lastNextNode.NewPosition).Length() * lastNextNode.AtPosition * IVTimer.TimeStep) * Vector3.Distance(lastNode.NewPosition, lastNextNode.NewPosition));
- lastNode.NewPosition = lastNode.NewPosition.MoveTowards(lastNextNode.NewPosition, (currentSecond * (lastNode.NewPosition - lastNextNode.NewPosition).Length()) / lastNextNode.AtPosition * IVTimer.TimeStep);
- lastNode.NewPosition = lastNode.NewPosition.MoveTowards(lastNextNode.NewPosition, (lastNextNode.AtPosition / (lastNode.NewPosition - lastNextNode.NewPosition).Length()) * IVTimer.TimeStep);
- lastNode.NewPosition = lastNode.NewPosition.MoveTowards(lastNextNode.NewPosition, currentSecond / (lastNextNode.AtPosition / 10f) * IVTimer.TimeStep);
- lastNode.NewPosition = Vector3.Lerp(lastNode.NewPosition, lastNextNode.NewPosition, (lastNextNode.AtPosition / 10f) * NativeGame.FrameTime);
- lastNode.NewPosition = Vector3.Lerp(lastNode.NewPosition, lastNextNode.NewPosition, ((currentSecond / 10f) / (lastNextNode.AtPosition / 10f)) * NativeGame.FrameTime);
- // Sets the position of the camera
- freeCam.Position = lastNode.NewPosition;
Ich schätze dies war bisher mein bester Versuch:
Das sah dann so aus:
Das ganze soll so eine Art keyframe editor werden basierend anhand der momentanen Musik
Wie man im Video sah, habe ich auf Position 0 ein Keyframe gesetzt, und auf Position 15.
Die Kamera soll dann in 15 Sekunden das Ziel erreichen.
Jedoch wie man sah, war die Kamera zu schnell am Ziel.
currentSecond ist die momentane position der musik
lastNextNode.AtPosition ist die zeit in der die interpolation erreicht werden soll
NativeGame.FrameTime und IVTimer.TimeStep ist beides das selbe, ich dachte anfangs das vielleicht unterschiede bestände
Ich bin nicht der beste im erklären, also falls ihr noch Fragen habt, gerne fragen!
Danke im Vorraus!
Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button
Für VB.NET Entwickler: Option Strict On nicht vergessen!
Für VB.NET Entwickler: Option Strict On nicht vergessen!