I seem to get troubles with the CookAll option again, see this one:
All was working fine in 4.9 after the resolution of this problem, but i just migrated in 4.10, tried to cook, and no cooking again.
This time, the CookAll option seems to be set to true correctly, but no cooking is done. This happens both with “file/package project” and “file/cook content”.
Is there some new option that i should be aware of, or is that a comeback of the 4.9 problem ?
We haven’t heard back from you in a few days, so we are going to mark this post as ‘Resolved’ for tracking purposes. If you follow up by providing a log file, we will continue our investigation.
I am sorry, i missed the mail telling me about MrFred’s update, and as a workaround i moved my content into specific directories that i declared manually for cooking. This works so no emergency on my side anymore.
Anyway, for this test i deleted all cooked content (actually i deleted the whole “saved” directory) and suppressed all manually added directories in the packaging options and only checked “cook all content” with nothing else.
Here is the log, it looks correct as far as i can say (which just means: CookAll is correctly set to true), but nothing is cooked. No possible mistake about that: my project when fully cooked is about 4 Go, and after this test it’s about 400 Mo.
[link text][1]
Again, apologies for the delayed answer, please let me know if you need anything else for this issue.
Hi ,
It seems as though this is unrelated to the original cookall bug. The flags are there and look like they are being respected.
It should be cooking all the things in the yag/Content/ directory.
Easiest way to see what’s going on here is to step through the
UCookOnTHeFlyServer::CollectFilesToCook function
This section should return all the files in the “content” directory.
if ((FilesInPath.Num() == 0) || bCookAll)
{
TArray<FString> Tokens;
Tokens.Empty(2);
Tokens.Add(FString("*") + FPackageName::GetAssetPackageExtension());
Tokens.Add(FString("*") + FPackageName::GetMapPackageExtension());
uint8 PackageFilter = NORMALIZE_DefaultFlags | NORMALIZE_ExcludeEnginePackages;
if ( bMapsOnly )
{
PackageFilter |= NORMALIZE_ExcludeContentPackages;
}
if ( bNoDev )
{
PackageFilter |= NORMALIZE_ExcludeDeveloperPackages;
}
// assume the first token is the map wildcard/pathname
TArray<FString> Unused;
for ( int32 TokenIndex = 0; TokenIndex < Tokens.Num(); TokenIndex++ )
{
TArray<FString> TokenFiles;
if ( !NormalizePackageNames( Unused, TokenFiles, Tokens[TokenIndex], PackageFilter) )
{
UE_LOG(LogCook, Display, TEXT("No packages found for parameter %i: '%s'"), TokenIndex, *Tokens[TokenIndex]);
continue;
}
for (int32 TokenFileIndex = 0; TokenFileIndex < TokenFiles.Num(); ++TokenFileIndex)
{
AddFileToCook( FilesInPath, TokenFiles[TokenFileIndex]);
}
}
}
I put a stop point in the section (line 3459 in CookOnTheFlyServer.cpp) but when i package or cook, the cooking/packaging process goes on until the end without stopping.
The breakpoint will not hit in this situation because when File → Package is selected it will spawn a new process to do the cooking.
Using the Launch On button will use the main UE4Editor to do the cooking.
It’s probably easier just to get the commandline from the log and put that in your UE4Editor commandline in visual studio.
It will look something like
.exe -run=cook
Copy and paste that into the commandline options of your editor in visual studio then run :).
Sorry I didn’t explain this properly the first time.
Yes, you will need to debug the Development Editor project. However, if your project is a code project, you will need to debug your code projects editor.