資源移動
1. 在編輯器的Content中,可通過拖拽資源文件或目錄來進行移動(注:資源的移動不能在windows資源管理器中進行,否則會導致引用關系丟失)
2. 若被移動的資源被其他資源引用着,移動完后會存在一個同名的重定向文件(jump文件,大小約為2KB):用於記錄文件移動后的位置
3. 通過Fixed Up操作來更新並保存其他資源中對移動的資源的引用路徑(注:即不再通過重定向文件跳轉,而是在其他資源中直接填寫資源移動后的位置)
4. 可通過ResavePackages的Commandlet命令進行批量Fixed Up操作
注:資源的重命名、刪除都需要在編輯器中進行
移動文件或目錄
將Content\ThirdPersonCPP\Meshes目錄移動到Content\ThirdPerson中
在UE4中,移動或重命名一個資源會在其原有位置處留下一個重定向文件(jump文件)
注1:需要打開Filters -- Other Filters -- Show Redirectors過濾器,才能看到這些重定向文件(jump文件)
注2:雙擊這些重定向文件(jump文件)會跳轉到文件真正的位置
注3:如果當前已經打開了地圖A,地圖A會將對這些文件的引用調整到移動后的位置(即:不需要借助jump文件)。不過,要記得保存地圖A。
注:這些重定向文件(jump文件)很小,約為2KB,里面只記錄一個跳轉路徑,實際的數據已經存放到移動后的目錄中
注:使用右鍵菜單"Fix Up"和"Fix Up Redirectors in Folder"時,會修復所有指向重定向文件的包中的鏈接到移動后的位置。當成功完成修理后,會保存這些包,並刪除重定向文件
使用ResavePackages命令來清理重定向文件
首先需要注意的是,該命令只能處理沒有被引用的重定位文件。如果重定位文件還被其他文件引用着,則會被跳過
UE4Editor.exe "%GameDir%\MyGame.uproject" -run=ResavePackages -fixupredirects -projectonly // 只修復項目中的重定向文件
UE4Editor.exe "%GameDir%\MyGame.uproject" -run=ResavePackages -fixupredirects -packagefolder="G:/svn/MyTest1/Content/ThirdPersonCPP/Meshes" // 修復目錄G:/svn/MyTest1/Content/ThirdPersonCPP/Meshes中的重定向文件
不過需要對ContentCommandlets.cpp的UResavePackagesCommandlet::InitializeResaveParameters函數中做如下修改,才能正常執行
UE4Editor.exe "%GameDir%\MyGame.uproject" -run=ResavePackages -fixupredirects -package=/Game/ThirdPersonCPP/Meshes/Linear_Stair_StaticMesh // 修復名為ThirdPersonCPP/Meshes/Linear_Stair_StaticMesh的重定向文件
UE4Editor.exe "%GameDir%\MyGame.uproject" -run=ResavePackages -fixupredirects -file="G:/svn/MyTest1/fixfilelist.txt" // 修復G:/svn/MyTest1/fixfilelist.txt列表中的重定向文件
fixfilelist.txt中內容如下
G:/svn/MyTest1/Content/ThirdPersonCPP/Meshes/Bump_StaticMesh.uasset
G:/svn/MyTest1/Content/ThirdPersonCPP/Meshes/LeftArm_StaticMesh.uasset
跨項目遷移
遷移資源目錄到另外一個工程
注:可雙擊Asset Report面板上的資源來打開預覽
遷移某些Level到另外一個工程
具體操作步驟:在Levels面板中,選擇要遷移的Level,然后點擊面板左上角Levels按鈕,在彈出的菜單中選擇“Migrate...”
注:可雙擊Asset Report面板上的資源來打開預覽
參考