求助:用Composure打包出来运行不了,有大佬见过吗
I ran into this and it wasn’t a crash—just a black output. The root cause in my case was “Cook maps only”: with that enabled, the cooker only follows hard references serialized in the map. Many Composure materials live under the plugin content, and if they’re only default values on a component (not explicitly overridden in the level), those references don’t get serialized → they never get cooked → black screen.
Fixes (pick one or combine):
- Packaging settings
- Project Settings → Packaging
- Enable Include plugin content in packaged build (if available).
- Add to Directories to Always Cook (adjust to your actual paths):
/Engine/Plugins/Composure/Content
- or
/Plugins/Composure/Content
- Asset Manager (robust)
- Create a Primary Asset Label (e.g.,
Cook_Composure
) - Set Cook Rule = Always Cook, enable Cook recursively
- Add the Composure content directories to that label.
- Make hard references
- Duplicate the Composure base materials into your project as Material Instances and explicitly assign them on your Composure actors/elements in the level (so they’re different from CDO defaults). This forces a hard reference the cooker can see.
- Soft-reference bootstrap (last resort)
- In a persistent BP (e.g., GameInstance/Level BP), keep a Soft Object Reference array of the needed materials/MIs/RTs and call Load Asset on BeginPlay.
Quick sanity check
- Temporarily disable “Cook maps only” and package—if the black screen disappears, you’re definitely missing cooked assets.
- Use Reference Viewer from your map to verify those materials are actually reachable.
1 Like