Build simple or complex collisions for Alembic GeometryCache animation, and the collision can be updated when the animation is playing.
Packaged Demo:[link]
Demo Project:[link] (4.27, need the plugin installed)
Demo Video:[link]
Documentation: [link]
Tutorial: [link]
Forums Service: [link]
Features
Easy to use:
- Only need to attach the "Geometry Cache Collision" component to GeometryCacheActor.
Show collision geometry
- The collision geometry can be shown in the editor's viewport when "Show-> Collision" is checked.
- The collision geometry can be shown at runtime when the component's "Detail->Debug->ShowCollisionWireFrame" is checked, it is very useful for debugging.
Simple collision
- Auto build box or sphere shape simple collision.
- You can choose to build simple collision for every enabled track or merge all the tracks as a large one.
Complex collision
- Support returns UV info from a hit result when "PhysicsSettings->bSupportUVFromHitResults" is checked and there is UV info in your GeometryCache.
- Support returns GeometryCache's hit track info and material info from a hit result.
Multitracks GeometryCache
- Support creating collisions only for enabled tracks.
Update collision
- You can choose to update GeometryCache's collision manually or by Tick.
- When updated by tick, the collision will be updated immediately when the animation changed.
- When updated manually, the collision can be updated by calling the blueprint function "UpdateCollisionManually".
- Support binds a blueprint callback event when the collision is updated.
Collision Async Cooking
- You can choose whether to do the physics cooking in the game thread.
Precautions before buying
1. You should be very very careful when updating complex collisions by tick. As building complex collisions need large amounts of computation, it will make your program slow. Some advice for building complex collisions:
- You can update complex collisions manually in Blueprint only when needed.
- You can reduce enabled tracks for geometry cache with multi-tracks.
- You can build a special track for your GeometryCache, which is with fewer triangle numbers and is only used for creating collisions.
In my test, the triangle number for complex collisions should be less than 5000 for keeping 60fps when updating complex collisions on every frame.
2. An issue with UE5's collision system:
If the original geometry for the alembic is very small, and a very large scale has been applied to the alembic animation in the scene. UE5 may have errors for this kind of Collision. You can solve the issue by adjusting the alembic' geometry size by DCC software and reimporting it to Unreal. The issue did not exist in UE4.27.