
Learn to build a Zelda-like skill system in Unreal Engine 5 with C++, creating remote bombs, magnesis, stasis, and ice actor spawning, plus locomotion states and Blueprint and C++ integration.
Create a Zelda skills project in Unreal Engine 5 by converting a blueprint project to C++, configure editor startup maps, and build core C++ classes and BP assets for testing.
Add a spring arm camera boom and a follow camera, attach the camera to the boom, set length to 400, and enable pawn control rotation.
Set up the enhanced input system for a zelda-like player by adding the module, configuring a custom player controller, and creating an input mapping context in Unreal Engine 5.
Bind actions with the enhanced input component, create IA_MoveAction (axis 2d), and connect Move_Triggered and Move_Released to on-screen messages for testing in the editor.
Define and read input vectors, compute velocity, and apply movement input in Unreal Engine 5 using C++, align the character's yaw to movement, and tune input mappings and rotation settings.
Implement camera rotation with a look action, bind mouse XY axis, invert pitch, and set game focus at startup by configuring begin play and input mode in Unreal Engine 5.
Design a local motion manager to handle walking, sprinting, gliding, and exhausting, bind sprint action to input, and implement movement state transitions with an enum, then test with left shift.
Implement sprinting by updating the locomotion manager to switch MT_Walking to MT_Sprinting, adjust max speeds, set air control to 0.35, and reset to walking when velocity stops.
Implement stamina management in Unreal Engine 5 by adding stamina variables, creating drain and recover timers, and updating movement states from walking to exhausted as stamina depletes.
Create a stamina bar UI in Unreal Engine using UMG, linking a ZSLayout widget to the player stamina and updating the progress bar every tick.
Implement stamina bar UI visibility and exhaustion handling in Unreal Engine 5 by adding ShowGaugeAnim and IsCharacterExhausted, wiring green to red color changes and a gauge animation.
Expose stamina depletion rate and amount as blueprint read-write in ZSCharBase and implement SetExhaustedState. Adjust locomotion to cap walk speed at 300 and enable stamina recovery with air control 0.35.
Implement a gliding state for the player, including JumpGlide input actions, a line trace to ground distance, and switching to MT_Gliding with flying movement and stamina drain.
Implement simulated gravity for gliding in Unreal Engine 5 by adding a flying timer, binding a gravity function, and handling landing, stamina, and state transitions.
Create a C++ anim instance in Unreal Engine 5 to drive player animations, linking AZSCharBase and movement component, and computing ground speed with VSizeXY for ABP_Player.
Import gliding and parachute assets into Unreal Engine, and implement them in the animation blueprint. Modify arm bones and apply layered blend per bone for gliding transitions.
In Unreal Engine 5, learn to display a parachute skeletal mesh during gliding by adding and attaching ParachuteSKM component, toggling visibility with gliding state, and set a parachute flying animation.
Implement persistent and temporary wind tunnels in Unreal Engine 5 using spawn deferred function, a box component, and overlap events to push gliding players, visualized by a BPA_WindTunnel blueprint.
Create a Zelda-like skill selection UI in Unreal Engine 5 using a C++ user widget ZSRuneSelections and blueprint integration to display runes, handle selection, and initialize the player reference.
Create a Zelda-like rune selection panel in unreal engine 5 by building the UI_RuneSelect widget, configuring textures and brushes, and wiring an on clicked dispatcher for rune slots.
Implement rune selection logic in Unreal Engine 5 by binding clicks to UI_RuneSlots, updating rune states, and toggling the widget switcher with IA_ToggleUI to pause and display the UI.
Develop a Zelda-like skill framework in Unreal Engine 5 using C++, implementing prepare rune and cast rune actions, crosshair toggling, and camera adjustments with blueprint integration.
Implement a Zelda-like rune skill framework in Unreal Engine 5 by creating prepare and cast rune actions, wiring inputs, a crosshair UI, and camera offset animations.
Build a remote bomb in Unreal Engine 5 using C++, creating bomb base actor with a static mesh and bomb spawn VFX, and spawn the effect on begin play.
Implement remote bomb logic: detonate, toggle activation, spawn sphere or box bombs, attach to a bomb ready position, and enable throw and ignite when the skill is cast.
Enable physics-based throwing of a remote bomb in Unreal Engine 5, attach it to the character socket, compute throw direction, then detonate with explosion effects and camera shake.
Finish remote bomb logics by updating the throw and ignite bomb flow and auto deactivate all runes to cancel casting. Prepare for magnesis skill in the next lesson.
Implement magnesis runes by creating metal and foliage physical materials, applying metal surface types, and filtering magnesis targets in C++ while testing in Unreal Engine.
Implement magnesis logic in c++ by toggling and releasing the skill. Update hover highlights and switch materials like M_Metal, M_MagHover, mag normal, and mag deactivate mat to reflect states.
Activate magnesis object detection and grabbing in tick function when the skill is on. perform a line trace from the follow camera to grab a physics-simulated object with surface PM_Metal.
Configure a physics handle to grab Magnesis objects, attach them to a physics object holder following the camera, and implement a release workflow with line connection ideas for later lessons.
Implement a per-frame magnesis drag in Unreal Engine 5 using line traces to grab and move magnesis objects with the camera, and update mag hint mats.
Master the Magnesis rune in Unreal Engine 5 by implementing mag dragging visuals with particle systems, beam effects, and blueprint integration, enabling metal cube manipulation and dynamic VFX.
Implement ice rune skill in Unreal Engine 5 by creating a C++ ice actor class with a mesh and collision boxes to spawn ice columns on water and support player.
Develop ice actor skill logic in the rune framework by implementing toggle ice mode, activate and deactivate ice, water surface line trace checks, and spawning AIceActor with a visual timeline.
Spawn an ice actor on water using a Zelda-like skill, fix unreachable code, and use a water channel line trace to place and orient the ice actor.
Implement overlap checks for the ice actor against world static obstacles using a box trace and sweep by channel, and toggle placement and materials blue when placeable, red when blocked.
Spawn an AIceActor at the trace end location in Unreal Engine after checking bCanPlace, enable collision, and apply MI_Ice and MI_Water materials to test obstacle detection.
Implement ice actor collision that dynamically sizes a solid box for the player to stand on, using a timeline, curve, and lerp, and fix rune panel activation bug.
Implement ice mesh logic and preview animation for the ice actor using timelines and curves, bind update and finished handlers, and enable looping with play rate adjustments.
Implement a stasis skill in unreal engine 5 with C++, building a stasis actor and indicator arrow to compute impulse from hit counts and adjust visuals.
Implement stasis mechanics in Unreal Engine 5 by toggling stasis mode, tracing lines to target objects, applying stasis force, and highlighting stasis targets with dedicated materials.
Add a timer to trigger stasis for the selected actor, bind BreakStasis after five seconds, and spawn a stasis force actor to apply impulse and update materials.
Create interactable objects for the player to interact with by adding an input action and an interact base with a sphere to trigger player entered on overlap.
Unreal Engine 5: implement end overlap for an interactable sphere to hide the pick-up hint on exit and show a 'Press E to interact' UI hint on enter.
Implement interactable cubes in Unreal Engine 5 to enable a player character to pick up, throw, and reset interactions, including UI hints, collision toggles, and state management.
Implement throw direction and apply physics velocity to the pickable object's base mesh in Unreal Engine 5 using C++, and reset the interacting actor afterward.
Create a pressure plate actor in Unreal Engine 5 using C++, attach a box collider and button static meshes. Respond to player overlap with timeline-based animation, updating the button location.
Link a BPA_Door blueprint to a pressure plate so the door opens when the player or a rock steps on it, using a timeline for movement.
Create and test a breakable actor in Unreal Engine 5 by configuring fracture clusters and anchors, then simulate physics and use Magnesis to crash it.
Implement a breakable actor that explodes a bomb, spawns a radial force component, and applies impulse to nearby meshes using a field system actor in Unreal Engine 5.
In Unreal Engine 5, spawn a temporary wind tunnel when a bomb explodes on grass, using a sphere sweep to detect grass and spawn a timed wind tunnel actor.
Add grass as foliage using a placeholder cube, set up collision and foliage material, paint grass, and test a wind tunnel that activates on bomb explosion and lasts 10 seconds.
Please read requirement first, learners need to have basic understanding of C++.
Or I recommend you take basic level C++ course first.
UPDATES:
2024.10.12 : All auto-generated captions are corrected.
Welcome to "Create Zeldar-like skills with C++ in unreal engine 5"! You will learn how to create a skill framework which can handle various abilities including remote bomb, magnesis, stasis and ice actor, and basic locomotion states such as sprinting, gliding and exhausted states. I prepared reference projects for every lesson so when you are stuck in any lesson you can freely download them and compare your own project with them! Don't worry about making mistakes, learn from them!
In the first section, we're going to setup project and implement basic locomotion states for player character from scratch in C++. With enhanced input system and locomotion manage, these customized actions will be triggered when player character meets certain conditions. For example, once player character is falling from high place and having enough stamina, gliding action is available. If stamina is depleted, player character cannot jump, sprint or gliding anymore.
Secondly, we will design and create a powerful framework to manage various skills before any skill creation. Only one skill could be activated at one time. Thanks to the convienient communication between blueprint and c++ in unreal engine, we can easily transfer information from UI to our code base. It is the best way to take advantage of them. Blueprint is more convenient for visual design and c++ is more performant for game in general.
Thirdly, we're focus on several kinds of different skills including remote bombs, magnesis, stasis and ice actor spawning. In remote bomb skill, a bomb will be spawned and player character can throw it out. When it explodes on breakable wall, it will crash and if it explodes on grass, a tempory wind tunnel will be spawned, which might be helpful for player to solve puzzles in the game. Sure I will introduce more details in the course. Though their logics are totally different, they all in the same skill framework so developer can easily add new skill types.
At last, several useful gameplay object will be implemented for better play experience. Those objects must be compatible with skill framework. For example, interactable object such as rock will be added. When player is holding a rock but trying to activate a skill, this rock must be dropped first. Similarly, pressure plate, wind tunnel, breakable walls will be implemented.
You can also join my discord to ask question or in udemy Q&A part. With detailed reference project provided in each lecture and a step-by-step approach, what are you waiting for? Join the course and there's no better time to start your own dream project now!