替换参考工具是通过将多个资产合并为单个资产并固定引用来删除重复资产的工具,你了解UE4中的替换参考工具吗?
替换参考工具
在Content Browser中选择至少要在合并过程中使用的一项资产,然后右键单击,然后在出现的上下文菜单中单击“替换引用”。将显示“替换引用”对话框,其中包含在召唤该工具时选择的所有资产。可以通过将其他资产从“内容浏览器”拖动到对话框的主要部分中来添加其他资产。
合并通常仅限于相同类型的选定对象,但“纹理”和“材质”除外。如果看不到“替换引用”选项,或者不允许进行拖放操作,则应确保只选择了相同类型的资产!如果您意外添加了不需要的资产,则可以通过选择该资产并按键盘上的Delete键将其从对话框中删除。
这里的纹理已经被复制了很多次!全部选中它们并单击鼠标右键将授予“替换引用”选项。
合并资产
在对话框中填充了要在合并过程中使用的所有资产之后,选择其中一项资产作为“要合并到的资产”,然后单击“合并资产”。对未从列表中选择的所有资产的引用将替换为所做资产的引用,从而删除流程中未选择的资产。
“合并资产”按钮显示为灰色(并且不可用),直到对话框中至少有两个资产并且至少选择了一个。
在“替换引用”对话框中,选择资产将其标记为“要合并到的资产”。
单击“合并资产”后,系统将提示您“删除资产”对话框,该对话框使您可以删除不再引用且因此不再需要的资产。点击删除。
所有重复项都已合并到所选资产中!
保存脏包
合并对话框在左下角提供了保存脏包的选项。如果选中此选项,则在完成合并操作时将提示你保存该过程弄脏的任何UAset。这是一种简便的方法,可以确保正确保存受合并影响的所有UA集,而不必自己在内容浏览器中找到它们。如果由于某种原因合并失败或发生错误,则不会保存UAset,并开始发出警告。
替换参考工具的工作方式
实际的合并过程分为多个步骤。首先,对于要合并的任何有效对象,该工具尝试将这些对象的所有引用替换为对已加载并在内存中的对象/ UA集中的“要合并到的对象”的引用。这意味着如果打开了一个映射或UAsset,它引用了要合并的对象之一,则该工具将尝试立即对其进行更新。
接下来,该工具尝试删除要直接合并的对象(这有可能失败,请参阅“ 限制和注意事项” )。
最后,如果删除成功,该工具将保留对象重定向器 代替已删除的对象。这些会将带有对已删除对象的引用的卸载的UAsets重定向到将它们合并到的对象。
实践
鉴于替换参考工具的功能,要适当使用。你需要始终仔细考虑他们将要做什么,并确定所产生的操作是否在其资产范围内有意义。替换参考工具会防止某些明显不正确的合并,但用户仍应始终保持谨慎,以避免破坏UA资产。将删除合并资产并将其先前的使用路由到所选对象;它不是执行“替换Actor”类型的操作的替代方法。
尽管“替换引用工具”将尝试强行替换对对象的引用以将其合并到当前加载的UAsets/映射和内存中,但最好是通过尽可能少地引用对象来进行合并,从而最大程度地提高成功合并的机会使用该工具,但不建议让子编辑器(例如“蓝图编辑器”或“静态网格物体编辑器”)打开并利用将要合并的资产。
“替换引用工具”大量使用了对象重定向器,这意味着在使用“替换引用工具”后可以偶尔使用“修正重定向”。
局限性和警告
虽然有用,但“替换引用工具”确实有一些限制和警告,概述如下:
为了防止用户意外破坏其工作,只能在共享相同类/类型的资产上调用“替换引用工具”,但如果所有对象都是“材质”类型或“纹理”类型(即“材质”即使它们不是严格相同的类型,也可以合并为贴图材料)。设置此限制是为了防止确实会导致崩溃的合并,例如将材料合并到静态网格物体中。即使在允许跨类型合并的情况下,该工具也会发出清晰可见的警告,表明已选择多种类型进行合并。
替换参考工具不能总是合并用户选择的资产。如果用户选择“合并资产”,其中包含对合并资产之一的引用,则该合并资产将不被合并。允许这样的操作会使“资产合并为”本身,这肯定会带来麻烦。在合并操作结束时,会警告用户,如果跳过了资产中的哪些资产,将被合并。
如果不是所有的参考都可以清除,或者由于某种原因而不能删除,则替换参考工具有时可能无法合并有效资产。这种类型的故障非常重要,会导致“部分合并”,其中资产的某些用途已被合并而某些资产尚未被合并。这种类型的故障应该很少发生,但是如果出现这种情况,将通过对话框警告用户,该对话框显示受影响的资产和可能受影响的UAset。用户应不保存任何受影响的UAssets否则将被接受潜在的灾难性部分合并。
在各种子编辑器(例如,角色或蓝图编辑器)中使用可能受影响的资产时,极不建议使用“替换引用工具”。最终,到目前为止,大多数子编辑器都对从其下面交换引用不满意,因此在合并时使用子编辑器可能导致子编辑器进入无效状态和/或崩溃。
替换引用工具仅替换对在操作时已加载的UAsset中的合并对象的引用。它依靠对象重定向器 来修复卸载的UAsset中的其余引用。这意味着除非特别需要,否则应注意不要执行会踩踏,覆盖,删除等重定向器的操作。否则,某些UA资产将被正确修复,而某些则不会。如前所述,使用Fixup Redirects Commandlet可以缓解此问题。
目前,一旦成功执行了合并操作,建议先保存相关的UAsset,然后再尝试将还引用了合并对象之一的所有未加载的UAsets加载到内存中。如果在保存之前加载了引用UAsset,当前未解决的内容浏览器/对象重定向器“错误”会导致合并资产重新出现在浏览器中。
,Unreal Engine技巧,Unreal Engine教程