Nicht eingeloggt
Registrieren

Einen einfachen Aufzug/Lift erstellen

Einen einfachen Aufzug/Lift erstellen


In diesem Tutorial werden wir die erstellung eines einfachen Lifts/Aufzugs behandeln. Wer schon mit dem Unrealed 1.0/2.0/3.0 gearbeitet hat, der kennt sie besitmmt noch: Die Mover. Selbige gibt es im UED 4.0 immer noch, allerdings sehr viel komplexer und flexibler. Auch heißen sie nun nicht mehr Mover, sondern InterpolationActor. Seit der UE 2 sind diese „Mover“ auch keine Brushes mehr, sondern StaticMeshes.




1.Vorbereitungen

Für einen funktionierenden Lift benötigt man eigentlich nur 4 Dinge: Einen (beliebigen) StaticMesh, einen Trigger (zu finden im „Actor Classes“ Browser), eine Testmap und Kismet. Jetzt stellen sich einige sicher die Frage: Was ist Kismet?
Kismet ist das komplett neue, optische Scriptingsystem in der UE3. Mit Kismet ist viel komplexes in kurzer Zeit realisierbar, was früher noch ein riesen Aufwand war und unter Umständen Scriptingarbeit verlangt hat.


Ich habe für das Tutorial schon eine kleine Testmap vorbereitet. Du kannst natürlich gleich die Map nehmen an der du arbeitest...


Ziel des Tutorials wird es sein, einen Lift zu bauen der nach oben fährt wenn man den Trigger betätigt und, sobald er oben angekommen ist, nach einer Sekunde wieder nach unten fährt.




pic1.jpg



Die Abbildung sollte dir ungefähr verdeutlichen was wir im Laufe des Tutorials erarbeiten werden. Klingt schwierig? Ist es aber nicht



2.Der Fahrstuhl und der Trigger

Öffne den GenericBrowser und wähle Links „StaticMeshes“ aus. Jetzt suchst du dir den Mesh aus, den du für deinen Lift verwenden willst. Ich benutze „S_LT_Floors_SM_Lift_Gateway“ aus dem Package „LT_Floors“ für das Tutorial.
Markiere den gewünschten Mesh im Generic Browser (du kannst wirklich JEDEN beliebigen Mesh verwenden).
Gehe nun in deinen 3D-Viewport und mache einen Rechtsklick an die Stelle, an der du deinen Lift platzieren willst (kann hinterher auch noch verschoben werden). Im Kontextmenü wählst du „Add Actor“ → „Add InterpActor: Meshname“


pic2.jpg





Du hast nun einen Bewegungsfähigen Lift in deine Map geaddet. Nun benötigen wir noch einen Auslöser (Trigger). Mache einen Rechtsklick an der Stelle, an der den Trigger adden möchtest. Wieder öffnet sich das Kontextmenü. Wähle hier „Add Actor“ → „Add Trigger“
Nun hast du einen Aufzug und einen Trigger. Was jetzt noch fehlt ist die Animation und ein kleines bisschen Kismet Scripting, doch dazu erst am Ende.


Der Trigger hat Standardmäßig noch einen sehr kleinen Radius. Er sollte aber ungefähr die Fläche des Liftes abdecken, zumindest grob. Öffne deshalb die Properties des Triggers. Unter „Colliosion“ → „CollisionComponent“ → „CollisionRadius“ findest du die Einstellung die für den Radius des Triggers zuständig ist. Du siehst den Triggerradius in deinen Viewports nicht? Einfach den Viewport markieren und „C“ drücken.


Zum Schluss sollte deine Lift ungefähr so aussehen:


pic3.jpg



Der Trigger deckt ungefähr die Fläche des Fahrstuhls ab, und der Mesh befindet sich an seiner Grundposition.


3.Kismet und Matinee

Nun zum eigentlich interessanten und schwierigeren Teil: Kismet. Was Kismet ist habe ich im ersten Teil ja schon geklärt.


Öffne nun Kismet (grüner „K“ Button in der oberen Toolbar). Wenn du noch keine anderen Kismetelemente in deiner Map erstellt hast ist das darauf folgende Fenster fast leer und sollte in etwa so aussehen (natürlich ohne Rote Schrift):


pic4.jpg


Wozu die einzelnen Bereiche sind dürfte klar sein, wirklich gebraucht habe ich allerdings bis jetzt nur das obere und das linke Fenster.
Mache einen Rechtsklick auf das Bearbeitungsfenster und wähle im Kontextmenü „New Matinee“


pic5.jpg


Was ist Matinee? Matinee ist für vieles zuständig, hauptsächlich aber eben für InterpActors und Konsorten. Früher konnte man mit den Movern nur sehr simple Bewegungsabläufe erstellen. Matinee funktionierte zwar schon (ab UE2), allerdings war es nicht wirklich onlinefähig. Mit der UE3 wurde dieses Manko endlich beseitigt.
Markiere nun den InterpActor (deinen Fahrstuhl) in der Map und mache im Kismetfenster einen Doppelklick auf das „Matinee“ Element. Ein neues Fenster, das Matineefenster, öffnet sich. Den InterpActor haben wir markiert, damit Matinee sofort weiß welchen Mesh es handeln/steuern soll.
Mit diesem Fenster kannst du nun komplexe oder auch sehr einfache Bewegungsabläufe für deine InterpActors (in diesem Fall eben nur unser Fahrstuhl) erstellen.
Mache nun einen Rechtsklick auf das graue Feld links unten (siehe Abbildung) und wähle „Add New Empty Group“. Welchen Namen du eingibst ist im Prinzip egal, du solltest dich aber daran orientieren können. Als nächstes einen Rechtsklick auf die neu erstellte Gruppe und „Add New Movement Track“ wählen.
Nun haben wir alles nötige eingerichtet um dem InterpActor seine Animation zuzuweisen


pic6.jpg


Interessant ist für uns jetzt nur noch der untere Teil des Fensters, denn dort setzen wir unsere Keys die die Bewegung und die Dauer selbiger definieren.
Jeder Key steht für eine Position in der Animation, dh wenn wir einen Key bei 2 Sekunden legen und den InterpActor dann zu seiner gewünschten Position bewegen wird dieser genau 2 Sekunden benötigen um die eingestellte Position zu erreichen. Auf diese Weise kann man (theoretisch) unbegrenzt viele Bewegungen hintereinander ausführen lassen. Ob die Engine dabei ein Limit setzt weiß ich nicht, aber ich denke nicht dass man es jemals erreichen würde falls denn eins existiert Dein Matineewindow sollte jetzt in etwa so aussehen:

pic7.jpg

Der Key1 ist der Standardkey der bei jeder Matineesequenz vorhanden ist. Mit dem Timeslider kann man die Position bestimmen auf der ein neuer Key erstellt werden soll. Mit dem Endslider kannst du das Ende einer Animation bestimmen. In diesem Fall musst du den Slider auf die 1.00 Position verschieben. Damit hast du das Ende der Animation auf eine Sekunde festgelegt.
Schiebe jetzt den Timeslider auf die 1.00 Position und klicke oben links im Fenster auf den „Add Key“ (achtung der „Movement“ Track muss markiert sein!).

pic8.jpg

Damit wird ein neuer Key auf der 1.00 Position erstellt, welchen wir jetzt direkt konfigurieren werden. Stelle sicher dass der Key markiert ist (Orange umrandet) und wechsle wieder zu deiner Map. Markiere nun wieder den Lift (falls er nicht mehr markiert ist) und schiebe ihn an seine Zielposition, also an die obere Kante des Vorsprungs. Der Fahrstuhl sollte nun eine gelbe „Linie“ hinter sicher her ziehen. Diese Linie symbolisiert einfach die Bewegung des InterpActors.
Herzlichen Glückwunsch! Dein InterpActor ist nun korrekt animiert. Du kannst jetzt das Matineefenster schliessen.


Als nächstes konfigurieren wir den Trigger und zum Schluss dann Kismet.


Markiere nun den Trigger und öffne wieder das Kismetfenster. Mache einen Rechtsklick und klicke auf „New Event using Trigger_0“ → „Touch“ Damit erstellt Kismet einen neuen Trigger (in Kismet, nicht in der Map) der auf eine Berührung reagiert.


pic9.jpg

Verbinde nun den „Touched“ Ausgang des Triggers mit dem „Play“ Befehl der Matinee Sequenz (einfaches drag n drop. Die Ein-/Ausgänge sind die kleinen Vierecke). Wenn du deine Map jetzt testest fährt der Fahrstuhl nach oben, sobald du den Trigger berührst. Allerdings nur ein mal. Der Grund: Der Trigger lässt sich nur ein mal auslösen und die Matineesequenz erhält keinen Befehl die Animation zurück zu setzen. Das lässt sich aber durch ein paar kleine Schritte lösen.


Markiere das Triggerelement in Kismet. Du siehst links unten nun die Properties dieses Elements. Stelle dort die Propertie „MaxTriggerCount“ auf 0. 0 Bedeutet eine unbegrenzte Anzahl an möglichen Auslösungen.


Jetzt müssen wir noch dafür sorgen dass der Fahrstuhl auch wieder zurück fährt. Man könnte einfach den „Completed“ Ausgang der Matineesequenz mit dem „Reverse“ Eingang verbinden, dann würde unser Fahrstuhl aber sofort nach dem Ende der Animation wieder nach unten fahren und eben nicht die gewünschte Sekunde oben verweilen.
Um dies zu lösen, adden wir einfach ein „Delay“ Element, zu finden unter „New Action“ → „Misc“ → „Delay“. Also wieder Rechtsklick ins Kismetfenster und das Element adden. Dieses tut nichts anderes als das Signal aufzufangen, den eingestellten Wert abzuwarten und das Signal dann weiter zu geben. Da unser Fahrstuhl genau eine Sekunde oben verweilen soll, lassen wir den „Duration“ Wert genau wie er ist... auf 1.0 .


Jetzt müssen wir nur noch den Ausgang „Completed“ (Matinee) mit dem Eingang „Start“ (Delay) verbinden und den Ausgang „Finished“ (Delay) mit dem Eingang „Reverse“ (Matinee).
Wenn du alles richtig gemacht hast sollte der Lift jetzt bei Berührung des Triggers nach oben fahren, dort eine Sekunde verweilen und dann wieder nach unten auf seine Ursprungsposition zurück kehren. Die ganze Animation dauert dann 3 Sekunden (1 Sekunde hoch, 1 Sekunde warten, 1 Sekunde runter).


Dein Kismetfenster sollte jetzt in etwa so aussehen:


pic10.jpg


Herzlichen Glückwunsch! Du hast einen voll funktionsfähigen Aufzug erstellt!

Ich hoffe das Tutorial war einigermaßen hilfreich und klar verständlich. Bei Kritik bitte eine PM an mich, bei Fragen oder Problemen im Forum melden!


Frohes Mappen!

FrozenDozer