No announcement yet.

Manual elevator switches of Lift and Lift Lobby

  • Filter
  • Time
  • Show
Clear All
new posts

    Manual elevator switches of Lift and Lift Lobby

    Animation involved
    Simple movement track

    Play - Lift moves to level 2
    Reverse - Lift goes back down to level 1

    Legends :
    Door1 = Door at level 1
    Door2 = Door at level 2
    Elevator Animation = movement track

    Check for elevator position before opening elevator doors

    Scene : Supposedly i am at level 2, i press the switch trigger for the lift and i want the lift to come to me
    and open it's door to allow me to enter it.

    Logic i derived at :

    If 'elevator' is at level 2 > open door2.
    Else if 'elevator' is at level 1 > play 'elevator' animation > open door2

    Closing of elevator doors before playing/reversing animation of Lift.

    Scene: Supposedly i enter the lift at level 2 , i press the switch trigger within the lift and i want the lift
    to reverse its animation to the first floor, open the door at the first level to allow me to go out of the lift.

    Check if door 2 is closed

    If 'door 2' is closed > reverse 'elevator' animation > open door1
    Else if > close 'door 2' > reverse 'elevator' animation > open door1.

    How do i actually go about doing it in UDK? Can some kind souls help me out with this?
    Likewise, what are the terms for the If/else if conditions in kismet scripting?
    Also, how can i go about checking for the positions of the lift if they are on the right floor?

    Thanks in advance,

    I'll take a crack at getting this working in kismet and post the results for you.


      Basically you'll want to create a named variable for the elevator, in my case, named "ElevatorOnLevel01" and us a bool to set that to TRUE. for the buttons outside of the elevator to call it, You basically have them do a compare bool to see which floor the elevator is on. If ElevatorOnLevel01 = True, simply play the door opening matinee for those doors and get on. If it is FALSE, then play reverse the matinee of the elevator from the second floor down to the first, then connect the "Reversed" output of that matinee to the play for the doors opening. The same type of thing is used for the outside button on the second floor.

      Now, instead of having one trigger on the inside of the elevator that follows it for the inside buttons, I just had one trigger inside on the first floor and one inside on the second floor (this way the buttons cannot be pushed while the elevator is moving either.) When the one inside on the first floor is pushed, simply reverse the matinee of the first floor doors, and connect the output of the "Reversed" to the play of the elevator matinee. Then connect the "Completed" of the elevator Matinee to a set variable which will change the ElevatorOnLevel01 variable to FALSE. (which is used for the outside buttons to check where it is). Then connect the output of that set variable node to the "Play" of the matinee for the second floor doors.

      The one issue you may have with this method is that the doors stay open when the player leaves the elevator. I've done some tweaking (Such as plugging the inside triggers directly to the "Play" or "Reverse" of the elevator instead of using the "Reversed" output of the doors and using the Completed output of the doors with an active delay of a few seconds plugged into the reverse, essentially making the doors close on their own after a few seconds of opening) but if the elevator button on the inside is pushed too quickly, it may start moving before the doors open. But this can at least get you on the right track. The biggest thing you'll have to do is use the bools, named variables, compare bools, and Set Variables to get everything working how you want it.


        Hey jessieG that is very nice of you!
        I can't wait to experiment and try out the things you've explored and explained above!


          That is really nice from you Jessie, i think i might test it too in my spare time,