5.0 KiB
5.0 KiB
FLESH, Fully Locational Evisceration System for Humanoids, 在UE5.5肢解系统插件
目标功能:
实时布尔切割引擎编辑器;
多层实时布尔切割编辑器;
多层系统: 骨骼,内脏;
多层物理系统:内脏物理,骨骼物理;
血液系统:Niagara,BloodPool, Decal;
物理交互;
以及肢解系统相关的其他交互;
引擎版本:UE5.5
Key stages:
- Core Function Modules
- Real-time Editor Architecture
- Visual Tool Chain
- Physical Simulation Subsystem
- Data Serialization Module
- Anatomical Structure Brush
- Damage Type Preset
- Real-time Effect Preview
- Soft Body Physics Parameters
- Fracture Threshold Curve
- Binary Asset Packaging
- Version Control Integration
- Key Technology Implementation
Performance Optimization Strategy
- Asynchronous Physical Calculation: Assigning Non-critical Physical Simulation Tasks to Task Graph Thread Pool
- Incremental Resource Loading: Using Streamable Manager to Dynamically Load High-precision Anatomical Resources
资源参考:
-《死亡岛2》的肢解系统:https://www.youtube.com/watch?v=d3VrPOm-KDE
- Dead Island 2 的 FLESH 系统如何程序性地破坏皮肤和骨骼:https://www.youtube.com/watch?v=GW7N83E1NqY&t=542s
- Dead Island 2 - F.L.E.S.H. Gore System (Melee): https://www.youtube.com/watch?v=LQEVydDlFuk
- Full analysis of the gore effects: https://www.youtube.com/watch?v=Y23zTuc2drk Hey there and welcome to Random Madness! This channel is about showcasing and discussing response mechanics in video games. Blood and gore effects, destruction, vehicle damage and so on. Here's an overarching video on this theme: https://www.youtube.com/watch?v=U4-lOPreM0U You can find the discussion videos of character responses in this playlist: https://www.youtube.com/playlist?list=PLE8BZenM9K-AH6yrlnnWkhXmvhlQCsMIj You can find videos on the topic of destruction and vehicle damage here: https://www.youtube.com/playlist?list=PLE8BZenM9K-AExTsE9779PQjZ-CcCIh3g If you like the music you hear on the channel, you can find it here. It mostly leans towards heavy metal, with elements of thrash, prog and other influences as well: https://www.youtube.com/playlist?list=PLE8BZenM9K-ApYtWLdwAZhJoM44mLfLnQ https://open.spotify.com/playlist/4C2tqInaRi8gxg7TI7gYDI That was showcased in the 3rd demonstration, it will be mentioned in the full commentary too https://www.youtube.com/watch?v=CjC6SAomB6E
参考资源
UE5 Bult-in
- Geometry Script: https://dev.epicgames.com/documentation/en-us/unreal-engine/geometry-scripting-users-guide-in-unreal-engine
- Procedural Mesh components: https://forums.unrealengine.com/t/converting-skeletal-mesh-to-procedural-mesh/1718443 https://zhuanlan.zhihu.com/p/358074568
ThirdPart
- Gore and Dismemberment Plugin (BlueprintExposed): SourceCode: Games\Lyra\Plugins\FLESH\Reference\UEGoreSystem Doc: https://github.com/Klian326/-Public-UEGoreSystem/wiki/4.-Procedural-Control-Rig#lyra Setup process: https://github.com/Klian326/-Public-UEGoreSystem/wiki/4.-Procedural-Control-Rig#lyra
- Skinned Decal Component: SourceCode: Games\Lyra\Plugins\FLESH\Reference\SkinnedDecalComponent Fab link: https://www.fab.com/listings/7491af07-f541-493d-a78f-d7fa5d466a0d Docs:https://ac.virtuosgames.com:8443/display/TSZO/Skinned+Decal+Component+Documentation
- EnGore Procedural Dismemberment: SourceCode: Games\Lyra\Plugins\FLESH\Reference\EnGoreProceduralDismemberment Fab: EnGore: https://www.fab.com/listings/cb680946-6bde-445f-9ebe-3cecf4bec21e Demo: EnGore: https://www.youtube.com/watch?v=MN31jCDQ5zY Doc: https://app.milanote.com/1MQHr51cI5RJ2H/dismemberment-system?p=XmVzKYwdfSs
- Dismemberment: Github: Thyke/Dismemberment: Advanced dismemberment system for Unreal Engine, featuring dynamic limb separation, weapon dropping, and customizable body part data.
- Fake Flesh System TechArt: Github: https://github.com/Vincent-Devine/Fake_Flesh_System_TechArt
- Slice Skeletal Mesh Now: Github: https://drive.google.com/open?id=12VlbtXGcpTXCVoVphhX3ZawnmmvD_AfM
Hierarchical modeling of anatomical structures
Use multi-layered materials (4-6 layers) to simulate skin/muscle/bone, and control visibility through material masks Add secondary collision bodies (such as muscle expansion bodies) to the skeletal system to achieve force deformation Sample code:
// Add physical constraints to the bone modifier
FConstraintInstance* Constraint = SkeletalMesh->AddConstraint(
EConstraintType::Physics,
BoneName,
ParentBoneName,
FTransform::Identity
);
Constraint->SetLinearXMotion(ELinearConstraintMotion::LCM_Limited);
Real-time cutting algorithm
Plane cutting: Use UE5's APEX Destruction module and combine it with Signed Distance Field to calculate the cutting surface Dynamic topology reconstruction: Use Procedural Mesh Component to generate a new mesh. Note:
- Vertex cache reuse (to avoid GC jamming)
- Dynamic calculation of normal smoothing groups (to prevent jagged sections)