Grapple Component (Synchronized Animation Between Characters)

Hey JonVD… Was wondering if you put this out anywhere or if you’re willing to opensource it if you lost interest in it? Hope you’re doing well :slight_smile:

Would also love an update. It’s been 2 years since I first posted interest and I still would definitely love to see it come out.

Hi everybody

Once again, thank you all for your continued support. I am still working on the project on a daily basis. While I realize that many of you might find it frustrating that the project takes this long to develop, I want to release the project in the most usable state possible. Especially some aspects related to networking and replication have needed a lot of fine tuning.

You can find a summary of the completed and remaining tasks below.

DONE

  • Sequence Camera
  • Input
  • BeginPlay Setup
  • Tick Events
  • Animation Matching
  • Animation
  • Blendspace Animation
  • Animation Matching
  • Movement
  • Grapple Attempt
  • Enter/Exit Grapple Seuqence
  • Damage
  • State Tags and State Tag Manager
  • ‘Change Mesh’ functionality
  • Scene Collision Actor
  • Repositioning
  • Debug Settings
  • Fede Objects
  • Object Conversion Blueprint
  • Replication

TO DO (these features are mostly done, but need some work to be sufficiently polished)

  • Finishing up the Character Push Component
  • Finishing up the sample content
  • Quick Reference (Toturial) Object
  • Finishing up Documentation
  • Publication / Marketing Material

CANCELLED

  • Creating Additional Sample Content
In the attachment of this post, you can find the current version of the Documentation for the Grapple Component ( [Documentation.pdf|attachment](upload://xIwuVKqxWkyhe7FJJT6JkCPmjQC.pdf) (4.47 MB) ). It might provide some context for the concepts i mentioned above.

The project should be done in September or October, but I cannot make any promises as to a concrete deadline. Keep in mind that the approval proccess of the Marketplace will also take the time, given the scope of the project. If anything were to go wrong and the Project does not end up on the Marketplace, it will be made available to the communityn in another way.

Kind regards

Thanks for the update Jon! Keep up the great work. All my money is ready for you when it’s released.

Sounds good, brother. Keep up the great work.

Looking forward to it! I’m in the middle of making my own system but will try and keep it easily replaceable for when you release your (undoubtedly much better) system.

Sounds great! We’ve just started working on animal AI and animation systems, so it’s amazing to hear it will come soon!

Also I have some questions. Will there be any example projects? Document seems very informative, but will you also record video tutorial about how to start? Thanks!

Hi Emrehan

The Grapple Component will indeed come with an example project containing several characters (based on the third person template), where each character has its own Grapple Sequence that can be initiated by the player.

Regarding the video tutorials: I have not made any yet, but I probably will when the project is launched, because there seems to be a demand for it.

I had a quick skim of your documentation but didn’t see anything on authoring animations. Are there any special requirements you have for this? How I’ve been doing it is having a sync bone at the root that I lock the target to when a grapple is initiated. This works fine but becomes a problem when you want to unlock and maintain momentum (such as if the target is getting thrown).

I’d ideally like to prepare my animations ahead of time for your component so do you have any advice on best practices here?

Hi PlayingKarrde

There are no real requirements when making animations that work with the Grapple Component. You can animate characters as you see fit in your animation software, and then tell the Grapple Component instructions on how te interpret these animations, such as the following:

  • The relative transformation between Participants
  • Whether one Character should be attached to another
  • If and for how long you want characters to Reposition (i.e. sliding in place to fit their animations)
  • Whether you want the Grapple Component to bring corrections to the animation poses animations made on different Skeletal Meshes look correct (See the section on Animation Matching in the documentation)

Some recommendations I would make as best practices are things you would probably expect:

  • Animate characters in a way that makes sanse gameplay-wise. For example, if you want Characters to be 100 units apart when the Grapple Sequence ends, it is a good idea to animate them with the skeletons 100 units apart in the animation software as well. What I tried to do for the sample content, i having characters stand at a 100 unit distance and facing each other. So the relative transformation between characters would be (T: 100 , 0, 0; R: 0, 0, 180; S: 1, 1, 1).
  • Make sure the timing is the same in both animation assets. While you can set a custom start time for each animation, it is easier to have

Your workflow of using a custom bone can also be used. In that case, the Scene Root of the Grapple Sequence would be the Character Mesh of the Participant with the custom bone. You can fill in the custom bone as the attach socket. If you enable Repositioning and attachment for the other Participant, that Participant will follow the custom bone for the duration of the Grapple Sequence.

I hope to have answered your question. Feel free to correct me if this is not the case or if anything else is unclear!

Kind regards

This is exactly what I would look for :open_mouth: I’m definitely interested.

hello, been stalking this forum for a bit anxiously awaiting release!

Hello everybody

Version 1.0 of the Grapple Component is being released!

It has been has been submitted to the Marketplace for approval, and is already available on Gumroad: Grapple Component. Thank you all for your patience!
A video with footage of the content examples that come with the Grapple Component can be found here.
The documentation can be found here.

In the mean time, I am very curious te hear what people think about the product. Feel free to share any questions, remarks or suggestions on this thread or to send them to [EMAIL=“support@jonvandam.com”]support@jonvandam.com.

Kind regards

Thank you!!!

Update: the Grapple Component has now been released on the Marketplace. Thank you all for your continued support!

Hello! I purchased your product, waited a long time. I wanted to ask if I can use it to synchronize animations of online players, for example, paired interactions?

Hi Chinzano83

It is indeed possible to synchronize the Grapple Sequence across different connections.

The most straightforward way to initiate a Grapple Sequence that is played on all connections, is to perform a **Grapple Attempt. **
This can be done using the Grapple Attempt (Input) node, and selecting your own Grapple Object in the input parameters. The Grapple Attempt will take care of replication by testing some conditions on the Client, then verifying them on the server, and then initiating the Grapple Sequence on all connections.
grapple attempt input.png

It is also possible to initiate the Grapple Sequence manually.
This is done using the using the Initiate Grapple Sequence (Input) node. Because we are skipping the functionality that comes with the Grapple Attempt, the parameters on this node are a bit more advanced and also require you to specify the Perticipants and Replication Mode manually.

To make the Grapple Sequence run on all connections, set the replication mode to Execute on All (if Owning Connection) or Execute on All (if Server), depending on the connection you are on. As a general rule, I would recommend initiating the Grapple Sequence from the server. The Timestamp parameter can be left at -1.
initiate grapple sequence input.png

In case you need more detailed information, the following sections in the Documentationmight be interesting for you:

  • 3.3. Grapple Attempt
  • 1.6. Input Functions
  • 6.4. Setting up a Grapple Sequence (under Tutorials)

I hope this answers your Question. Do not hesitate to let me know if this is not the case!

Kind regards
Jon Van Dam

Thanks for the answer ! I will definitely write how I start testing this part.

omg the mad man actually did it. just bought it.

any future plans for updates?

edit: might i suggest AI?

Thanks for your enthousiasm :smiley:

Plans for the future are:

  • Creating video tutorials (there seems to be a demand for those)
  • Looking into integration with other addons (e.g. Gameplay ability System, Dynamic Combat System)
  • Creating some more macros and preset Grapple Objects that can serve as templates for developers. I get the impression that people like to work with the content examples that come with the project and use it as e base for their own content.

When it comes to new content, I’m always open to suggestions from users!

What were you thinking about exactly regarding when you mention AI? The Grapple Component can already be used by your AI Characters (just have them call *Grapple Attempt (Input) *on their Grapple Component), but maybe a tutorial on that could be useful!