Implementing
How to implement RPG AIO into your own Character Blueprint
Last updated
How to implement RPG AIO into your own Character Blueprint
Last updated
Now open your Character Blueprint (ThirdPersonCharacter in this case) and add the BPC_RPGSystem to your Character, for AI use BPC_RPGSystemAI. (I changed the Collision Object Type to PhysicsBody on my SkeletalMesh)
Go to the Class Settings and implement the BPI_RPGSystem and BPI_RPGAnimation Interface into your CharacterBP.
Let’s start with the most important ones: GetMovementSpeed, GetRPGSystem(Use GetRPGSystemAI if you want to implement it into an AI), GetMeshRadius, and SetMovementSpeed.
For the Animation Handling, you also need to set up the GetAnimationState function.
You need to create the Falling variable by yourself.
Open your Animation Blueprint and add the BPI_RPGAnimation Interface. Add the StopSkillAnimation and PlaySkillAnimation Events.
Please take a look at the ABP_CharacterExample to get a feeling of how you can use the PlaySkillAnimation event for your needs.
Open the BP_ThirdPersonCharacter or BP_CharacterDemo and copy the following events into your Character Blueprint:
(Optional) If you want to use the Visual Equipment mechanic you also need to set up the VisualEquipmentAddSkeletalMesh, VisualEquipmentAddStaticMesh, VisualEquipmentDestroyComponent, VisualEquipmentDestroyComponents, and GetPlayerSkeletalMesh.
Add the BP_HUD_RPG as the HUD Class in your GameMode.
Now go back to your Character Blueprint and add the InitRPGSystem and the InitHUD to BeginPlay. Also, add a Dispatcher for OnDeath to handle your ragdoll and the respawn.
Check out the Third-Person and Top-Down Example to learn more about the ToolTip Collision, Pickup Collision, Range Indicator, Ragdoll, and Visual Equipment! (You can copy & paste everything into your own Character)
BE SURE YOU USE BP_Gameinstance_RPG AS YOU GAMEINSTANCE AND YOUR GAMEMODE NEEDS TO BE A CHILD OF BP_Gamemode_RPG_Base.
Done! Now you have full access to the framework, enjoy it, and thank you for buying! (If you have any questions or need help implementing it into your project, don't hesitate to join our Discord)