Documentation link
Demo (windows 64 bits) link
Video: link
- The system is an elevator ready to use, drag and drop in the level, with customizable sizes width, length, doors height, floors z location, amount of floors etc
- Add as many elevators to your project and re-use already configured ones
- You can add as many levels you want to the elevator shaft using a structure, setting the distance from the start of the elevator (Level 0) to the desired one with very minimal tolerance (minimum distance from a level to the above one = 250 units)
- You can also automatically add any amount of levels with a standard distance between them to quickly create an elevator
- You can spawn the elevator during game or in construction script
- It’s based on a 50x50 unit part size but if you want you can use different part sizes and quickly change the static meshes using a data table and setting the part size to the new size of your static meshes
- All the elevator is 99% made using Hierarchically instanced static mesh instances that are much better for performances than static meshes, expecially if the number is elevated. With this system you can build a giant elevator and have a very small impact on performances due to the instancing system.
- All the different static meshes of the elevator are made to be changed quickly using a data table that can be expanded with new meshes or replacing a current static mesh from a set
- Included in the project there are 6 different sets of static meshes:
- Modern metal elevator,
- Old brass-wood elevator
- Abandoned rusted and dirt elevator
- Industrial metal-yellow elevator with grate doors
- Lab modern and orange metal elevator
- Sci-fi elevator to look like a futuristic or space elevator
- All textures and meshes are created for the project using Maya and Substance Painter
- The movement of the elevator is using timers, the event tick is only used for the “set relative location” node for the cabin because the movement is smoother than using a fast timer but all the logics of every part in the project are using timers with different frequencies.
- The mechanical system is quite realistic, with counterweights, cables animated, engine room
- The interface to use the elevator is made using a 2d widget that can accomodate any amount of buttons
- There's a 3D control panel inside the elevator cabin that is made using instanced static meshes, with numbers, symbols, all made using HISM components. The panel is not interactable but it shows the current and target floor. The 3D Panel can also show more buttons than the real amount of levels
- The elevator can be spawned on construction script, on begin play or on demand during the game and can also be despawned when needed
- It's all working in a local space so you can just move the elevator to any location and it will work the same
- The movement system is simple but effective, with smooth accelerations and decelerations, it can reach very high speed like 100 units per tick that is a lot and you can also jump with the character inside the elevator thanks to a function that avoid the character to glitch out of the cabin due to the jump mechanics on moving platforms.
- The elevator supports multiple calls and handles the calls received using the gametime passed and the distance to find the first level to be reached out of many waiting.
- There's a system to stop the elevator when moving like a "stop" button
- Doors can also work as standalone and be used for any other purpose like normal doors
- Doors have a photocell system to avoid closing if a character is blocking the door
- The shaft and cabin can have windows or not, you can disable the shaft and use only the cabin and also remove all the exteriors if needed
- The project packages correctly without warnings for Windows 64 Bits in Ue5 with RTX enabled
The elevator is equipped with:
- BP_Door: A blueprint with a movable sliding-retractable double door that can reach any size and that can also work as standalone door, with customizable meshes using the same data table of the elevator.
- BP_Cabin: the blueprint used to create the cabin that is the one that carry the passengers
- BP_Counterweight: a blueprint used for the elevator counterweight
- BP_Panel: the blueprint used for the 3D panel, using buttons and numbers (No 3D widget)
- BP_Elevator: the blueprint that regroups all the other components and also handle the logic for the elevator movement