• Showcase
  • A Short Clip For My Own UE4 Spine Plugin Extention

Related Discussions
...

I wanted to create a game that has very interactive and realistic animation with spine, but sadly I needed a lot more functions than what spine's official plugin for UE4 provides, so I decided to make my own version of Spine plugin.

It contains a various features :

Physical Animation
Rigging System With Unique Editor ( Physics Bodies, Constraints, etc)
Root Motion System
Terrain IK Adjust System
Ragdoll Simulation
Level Sequencer Animation ( You can create an animation in editor with level sequencer )
Improved Animation Track System And Auto Empty Animation Handling System

It still has some minor problems, but most of them are something related with editor functions, and runtime features are quite solid for now.
So finally I started to work on the animation and gameplay system for my project last month. Hope I can do it well...

Wow, awesome!! 😃 I am looking forward to seeing what the final game will look like.

Thank you for your kind words! I'm working hard on this to make it able to show off the first demo in public until September ( Even though there will be a ton of things to do further ), I will update my progress at then!

Wow, that's awesome! Do you plan on making this available for others? We'd be happy to integrate it.

Thank you for your interest!

Actually I didn't have a plan for making it available to public when I started to develop this. Some parts or designs in my code are quite nasty (It works well, but it is inconvenient to use) because the goal of the development was not about making or organizing perfect code and design, but it was about making it work as I intended anyway, So I thought I will not publish it in public but only use in my personal work.

But if you are interested in my work, I can polish it up to meet the production level, and also we can talk about the intergration.
But sadly I'm afraid to publish it just free, Because it took almost 6 months to build this system, and if I decide to publish it, then I will spend more time to polish it. Maybe we can also talk about the pay if you are interested in this.

No worries, focus on getting your game done! I wonder, are you using ProceduralMesh, and if so, how did you approach creating the collision meshes? I also see you are creating a mirror hierarchy of bones inside your actors which you can freely modify while also applying the animation. Did you manage to get shear working through this mechanism?

It's using procedural mesh to render skeleton, and also the collision is generated with procedural meshes.
It supports scaling, but it doesn't support shearing, due to PhysX's limitation on small physical bodies.


I might share more information about how it works, but some of the logic in this plugin has a direct relation with my own game because my game has something to do with physics and ragdoll, So it might be a spoiler to my game because it is really easy to guess what the final contents of the game will look like if you know how it works... So I decided to keep it as a minimal information until I release more information about my game. Sorry for the short explanation about how it works.

Ah, totally understand! I've been banging my head against a PhysX related issue for almost 2 years now, namely that in the editor, the PhysiX backend would create a gazillion files on disk if the viewport is set to real-time. That's because we generate a new mesh every frame, and I do not see any way to fix this on our end without modifying the Unreal Engine. Did you find a solution to that? (I hope an answer won't spoil your game 🙂)

Unfortunately I haven't experienced such issues on my system, and I also have no idea about that issue.

Can you share more information about this? I'll check out what is going on your plugin and share my information after trying to figure out what is going on. It is also important to me because It may be also happening to me, but I'm not just realizing it (maybe because my project's spine skeletons don't have that much complex shapes and meshes so it is well handled...)

Is it only happening in editor? does it also happen in the PIE or packaged version of a game?
what are those files and where are those being stored? are those being removed automatically?

Wah, neither I don't have clear idea about the exact reason of this bug.

but I fixed it by simply not creating any collision when the world is not the gameworld (only generate collision when it is running on PIE, Packaged game).

in USpineSkeletonRendererComponent::Flush() :

void USpineSkeletonRendererComponent::Flush (int &Idx, TArray<FVector> &Vertices, TArray<int32> &Indices, TArray<FVector> &Normals, TArray<FVector2D> &Uvs, TArray<FColor> &Colors, TArray<FVector>& Colors2, UMaterialInstanceDynamic* Material) {
   if (Vertices.Num() == 0) return;
   SetMaterial(Idx, Material);

   bool bShouldCreateCollision = false;

   if (bCreateCollision) {

  UWorld* World = GetWorld();

  if (World) {

     if (World->IsGameWorld()) {
        bShouldCreateCollision = true;
     }
  }
   }

   CreateMeshSection(Idx, Vertices, Indices, Normals, Uvs, Colors, TArray<FProcMeshTangent>(), bShouldCreateCollision);

   Vertices.SetNum(0);
   Indices.SetNum(0);
   Normals.SetNum(0);
   Uvs.SetNum(0);
   Colors.SetNum(0);
   Colors2.SetNum(0);
   Idx++;
}

OMG, thank you! That's a great idea.