Lara springt nach oben an einem Vorsprung und soll dort weiter nach oben springen? Dies ist mit einem Ledge Jump möglich.
Wie das mit TEN funktioniert wird hier erklärt.
Seit der TEN Version 1.0.3 sind die Ledge Jumps nativ in TEN integriert:
Im Tomb Editor Verzeichnis unter Tomb Editor\Assets\Wads\TombEngine.wad2 findet ihr das entsprechende Lara Object. (Version 1.6.1 des TE ist erforderlich).
Alternativ hab ich euch das Wad angehängt. (TombEngine.zip).
Dieses müsst ihr in euer Wad kopieren, oder daraus manuell die Animationen 45, 565, 566, 567, 568 exportieren und in euer Wad kopieren.
Wenn ihr das Lara Objekt mit den Ledge Jump Anims in euer Wad kopiert hat könnt ihr ganz einfach in der Settings.lua bei folgendem Eintrag:
den Eintrag auf "true" setzen:
Damit sollten die Ledge Jumps in der TEN funktionieren.
Für einen Jump Up drückt ihr dazu den "Jump" Button.
Für einen Jump Back drückt ihr dazu die "Jump + Back" Buttons.
Vor der Version 1.0.3 musste man dies noch manuell mit Lua programmieren:
Ihr benötigt dazu 2 Animationen, diese sind angehängt.
Geht in das Wad Tool, klickt doppelt auf "Lara" und erstellt im Animations Editor mit dem Menü Eintrag "Animations" und "New Animation" einen neuen Animations Eintrag.
Wählt eure neue Animation aus, geht auf "Import..." und importiert die Animation "LEDGE_JUMP_1". (aus der heruntergeladenen Animation).
Das gleiche macht ihr nun nochmal und wählt "LEDGE_JUMP_2".
Schaut nach welche Zahl eure Animation hat. Dies steht bei der Animation als erste Zahl in Klammern.
Die Zahl der zweiten Animation wird nun bei der ersten Animation benötigt, nämlich bei "Next anim".
In meinem Beispiel hat die erste Anim die Nr. 565 und die zweite Anim die Nr. 566.
Ihr müsst nun sicherstellen, dass in der ersten Anim bei "Next anim" die Zahl / ID der zweiten Anim steht.
In meinem Beispiel müsste ich nun bei der ersten Anim bei "Next anim" eben 566 eintragen.
In der zweiten Anim muss bei "Next anim" die Zahl 28 stehen. Dies ist die Animation für Lara nach oben zu springen "JUMP_UP".
Dann den Animations Editor beenden und speichern.
Damit habt ihr die Anpassungen im Wad erledigt.
Kommen wir zum Spript.
Öffnet euer Level Script, zb. Mein_Level.lua
Dies sollte standardmäßig so aussehen:
---- FILE: \Mein_Level.lua
LevelFuncs.OnLoad = function() end
LevelFuncs.OnSave = function() end
LevelFuncs.OnStart = function() end
LevelFuncs.OnControlPhase = function() end
LevelFuncs.OnEnd = function() end
Ihr müsst nun die Funktion "LevelFuncs.OnControlPhase" anpassen, da dies eine Funktion ist, die jederzeit im Spiel aufgerufen wird.
Wir erstellen erst einmal darunter eine Funktion die unseren Bedürfnissen enspricht:
function LedgeJumpUp()
local ActualAnim = Lara:GetAnim()
if ActualAnim == 45 and KeyIsHit(7) then
Lara:SetAnim(565)
end
end
Was macht die Funktion?
Erstellt eine Funktion mit dem Namen "LedgeJumpUp".
Speichert die aktuelle Lara Animation in der Variable "ActualAnim" ab.
Hier ist nun eine Abfrage: Wenn Lara aktuell die Animation 45 ausführt (hängt an einer Kante) und der Spieler die "Jump / Springen" Taste drückt (7 = springen)
Info: Wenn sich jemand fragt, wieso denn 7 nun die Springen Taste ist:
Aktuell gibt es folgende Zuordnung:
Forward = 0,
Back = 1,
Left = 2,
Right = 3,
Crouch = 4,
Sprint = 5,
Walk = 6,
Jump = 7,
Action = 8,
Draw = 9,
Flare = 10,
Look = 11,
Roll = 12,
Inventory = 13,
Pause = 14,
StepLeft = 15,
StepRight = 16
Display More
Lara führt die Animation 565 - LEDGE_JUMP_1 aus.
Nun muss diese Funktion noch im Block LevelFuncs.OnControlPhase ausgeführt werden:
Es sollte dann insgesamt im Lua Script so aussehen:
---- FILE: \Mein_Level.lua
LevelFuncs.OnLoad = function() end
LevelFuncs.OnSave = function() end
LevelFuncs.OnStart = function() end
LevelFuncs.OnControlPhase = function()
LedgeJumpUp()
end
LevelFuncs.OnEnd = function() end
function LedgeJumpUp()
local ActualAnim = Lara:GetAnim()
if ActualAnim == 45 and KeyIsHit(7) then
Lara:SetAnim(565)
end
end
Display More
Hängt Lara nun an einer Kante und drückt die Springen Taste wird nun die Animation (565) ausgeführt.
Viel Spaß beim Ausprobieren!
So / bzw. so ähnlich kann man auch weitere benutzerdefinierte Animationen ausführen.