When using the Panoramic Capture Plugin to render 360-degree images, it is possible to specify the output directory of the generated files. This can be any absolute path, or any relative path starting from the current working directory of the Editor, for example the folder "/Engine/Binaries/Win64" (which is not ideal, but this is not the bug being reported here).
This worked fine up to UE 4.27, but starting with UE 5.0, any attempt to use an absolute path will fail with the message "The output directory's drive doesn't exists. Plese set SP.OutputDir with a valid path. Skipping renders...".
The source of the problem can be tracked from the error message. In file [Engine\Plugins\Experimental\PanoramicCapture\Source\PanoramicCapture\Private\SceneCapturer.cpp:646], function USceneCapturer::ValidateParameters() builds a drive string such as "C:" and calls FPaths::DirectoryExists() on it to validate it. Up to UE 4.27, this ends up going through a call to FPaths::IsRelative("C:"), which correctly returns false. On the other hand, starting with UE 5.0, this ends up going through a call to FPathViews::IsRelativePath(), which incorrectly returns true (it requires absolute paths to include a slash, so it would correctly return false if the path was "C:\"). As a result, the working directory is concatenated to the given path, creating a string such as "<ENGINE_DIR>/Engine/Binaries/Win64/C:". Further operations on this path obviously fail.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-200726 in the post.
0 |
Component | Media Framework |
---|---|
Target Fix | 5.4 |
Fix Commit | 26142217 |
---|
Created | Nov 17, 2023 |
---|---|
Resolved | Nov 27, 2023 |
Updated | Nov 27, 2023 |