Chaos wheels class stops working when playing custom animation on skeleton

My intent is to implement custom animations in my chaos wheeled vehicle bp, such as opening doors, hood, trunk, rolling down windows, etc.

I figured it would be as simple as building additional bones into my vehicle’s skeleton, and then create the corresponding animations, which I then call with events using widget components (click to open trunk).

While the chaos plugin itself works in a way that the vehicle moves following the appropriate main settings, the moment the skeleton is animated with a regular skeletal animation, the wheels freeze in place and become completely unresponsive. I can still drive around but at that point I’m basically just hovering.

For context, I have about 50+ vehicles in pipeline and I’m trying to streamline production as much as I can, so for this purpose all of my vehicles settings are data table driven, which includes wheel radius, torque, and other settings relevant to each different vehicle type ranging from cars to trucks to bikes and so forth.

A rather unpleasant solution I thought of is to have a second skeleton in my bp which would handle all the animations, leaving the chaos-driven skeleton alone. There is one problem: I would have to have a second skeleton in my bp which would handle all the animations, which means additional skeletal meshes, more complexity, and poor performance in crowded areas of my map, not to mention the additional work of splitting all my vehicle skeletal meshes into “chaos-only” and “everything else”.

Any thoughts?

Thanks!

You may have altered the skeleton to a point at which the animation blueprint has dissociated itself…maybe?

Take a look at the ABP and try bypassing the control rig, if you have one. See below:

Alternatively, you could control windows, doors, and such the old-fashioned way–within the vehicle BPs as static mesh components. Or conversely, control the wheel rotation this way, worst-case.

Thanks Infant_Zero, your screenshot is pretty much how I have it.

Ultimately I have resorted to trying my luck by creating state machines in the animBP of my master vehicle bp, and assign actions like I would for my player character, the only issue is that for some reason, unlike my player animBP, the vehicle animBP seems to have trouble letting me cast to the player BP, where my “open” and “close” booleans are, as well as my animation variables. Essentially I’m trying the following:

  1. Set open/close booleans in a struct within my widget
  2. Save the booleans, as well as data table generated animation assets into a duplicate struct within the player BP
  3. From within my master vehicle animBP, cast to player so I can get the struct where all my animations and booleans are, and use them in the master vehicle’s state machines.

I hope I’m making some kind of sense… lol

Hopefully it all works out. As to the issue with the variables, I believe that to be a limitation of widgetBPs. Typically, their variables are not persistent as every time you create and/or destroy the widget, its variables are reset in the new instance. You need to store variables within an actor/BP, which is ever-present in your level.

I was able to find kind of a “hacky” solution, which is really not a long term solution, but it allows me to move forward with production of my other assets, which is to re-set animation mode to animBP from the master vehicle, upon leaving overlap, OR when boarding (possessing) the vehicle. This seems to return the Chaos wheels to their normal state. I might even set a delay so as not to make the sequence of events too jarring.

Of course, any previous animation state set by animation assets is wiped as the vehicle skeleton resets, so it’s “kinda” good, in a sense that I won’t accidentally drive off with my trunk open, but also not good if I want to have any kind of control over that for other features… overall not a loss I guess.

I’ll mark this as a solved. Thanks!

No problem; best of luck.