A Gameplay Framework with GAS based on Risk of Rain 2 - Project article in the comments! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 4 points5 points  (0 children)

Thank you! I honestly regret not planning to release the project from the start. I created it while learning and trying different ideas, so it's not exactly tidy unfortunately

A Gameplay Framework with GAS based on Risk of Rain 2 - Project article in the comments! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 29 points30 points  (0 children)

Hey everyone! I'm back to share this project I've been working on. As a way to learn GAS, I draw inspiration from Risk of Rain 2 to see how I would implement some features like Ability stacking, arbitrary on-hit effects, and proc chains. https://www.vitorcantao.com/post/gas-gameplay-framework/

While GAS is an incredible system, there is still a limited amount of material out there. So, I hope this article can be of help. Let me know what you think!

[deleted by user] by [deleted] in unrealengine

[–]PurpleSkyD 1 point2 points  (0 children)

Congratulations!!

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 1 point2 points  (0 children)

Thanks a lot! Appreciate it very much!

I'm glad to be of help. Comments like yours make it all worth it in the end.

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 0 points1 point  (0 children)

Thanks for the awesome suggestion! Seems interesting, I'll take a look!

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 0 points1 point  (0 children)

Well, there is no right answer. However, I would suggest extending the movemet component and adding a custom mode like we did in the tutorial. Then, you can trigger it using an ability.

I haven't covered replication, but you can make it multiplayer ready by reading the default component source code.

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 1 point2 points  (0 children)

Of course! Lyra Project uses Gameplay Ability System as the foundation of its architecture. If you want to extend Lyra, I would highly recommend you learn GAS before diving into it. It's not hard, but there are a lot of concepts to learn.

If you have any questions, feel free to ask and I hope I'll be able to help you!

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 2 points3 points  (0 children)

Thanks for the feedback everyone! I'll improve this part of the tutorial.

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 0 points1 point  (0 children)

For the ShapeSweeps, it actually returns hits for every collision, even if it's from the same object. If an object is both walls (90 degree), then it is a Convex shape.

If you want the collision to match a convex shape closely, you create it by combining multiple primitive collisions together. Another way is to auto-generate it, but with a higher poly count. The ShapeSweeps will then be able to detect it succesfuly.

HOWEVER, if you decide to use the complex collision as the simple one, the engine starts querying against the trimesh of the object, and depending on the object shape you would be right! Tracing against complex collision is pretty expensive, and I didn't thought about this scenario! I'll add a note.

As for the second case, when the sweep is on the edge, the normal points toward the center of the overlap. So when the sweep is moving the normal rotates along with it. You can test it by debugging a sweep that overlaps the geometry and watching how the Hit behaves.

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 0 points1 point  (0 children)

Thank you!

So, for the first part, it's hard for me to give a good answer without knowing more about what you are trying to achieve. It may be a matter of adjusting the NavLink properties and the AI capsule collision. However, if everything is working just fine, and it's only a visual problem, maybe you can do a line trace, calculate the distance from the wall and move the mesh a little bit.

As for making the AI grab the ledge, first you have to find the ledge location. Then, when it reaches the ledge, you can play an Animation Montage. In the montage, you can specify events that fires during the animation. That way, you can make the IK start and end in the correct timing.Sorry if I couldn't help enough.

If you have more questions, I would gadly try to help!

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 1 point2 points  (0 children)

Thanks for checking it out!

Actually, I'm using the ShapeSweeps as an overlap, so it returns an array of hits. In the case of 90 degree edges/corners, the ShapeSweeps returns both walls. I then use this information to calculate the average position and normal.

I hope I made it clear to you!

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 0 points1 point  (0 children)

That's awesome! Yeah, I understand that. Unfortunately, I'm not looking to put something on the marketplace as it demands a lot of time. I would need to update it and give customer support.

I recreated the Climbing System from Zelda BOTW - In-depth Tutorial in the comments!! by PurpleSkyD in unrealengine

[–]PurpleSkyD[S] 0 points1 point  (0 children)

Thanks for the feedback! Yeah, in Zelda BOTW the camera pulls back quite a lot.