使用Geometry Script + Dataprep 在导入时修改网格体

科技   科技   2024-08-19 09:01   上海  

背景

Datasmith 在将 CAD 或 BIM 数据导入虚幻引擎方面做得非常出色,但这些模型通常非常基础。当您想要玻璃具有厚度,或者混凝土楼梯上的 90 度角需要圆润和柔化。也许网格体上没有足够的顶点来支持您需要的那种轮廓或材质效果。

这些常见问题可以轻松解决,通常只需在其他 DCC 应用程序中进行初始数据准备即可。您可以将 CAD 模型导入 Blender 或 3ds Max 之类的程序中,手动清理或应用修改器堆栈,然后将其重新导出到虚幻引擎。理想情况下,您不需要这个额外的软件来介于源数据和最终场景之间,一位客户曾联系我,询问是否可以在虚幻引擎中自动执行其中一些操作。UE 在其建模模式中确实拥有广泛且不断增加的网格体工具,但关键问题是自动化。我们如何在一个又一个项目中反复将这些简单的更改应用于网格体?

Dataprep 是虚幻引擎的系统,用于自动对传入的 Datasmith 模型进行常见修改。它有各种过滤器和修改器,可让您轻松更换材质、启用 Nanite、删除某些对象、合并网格体、设置 LOD 等。它允许您在模型发生变化时反复运行自定义配方,并且您可以将相同的逻辑应用于其他项目的任何其他 Datasmith 文件。我们还有Geometry Script,这是一个庞大的蓝图和 C++ 库,可让您使用自己的自定义脚本和工具来充分利用建模模式的所有功能。这两者听起来是完美的搭配,但不幸的是,在撰写本文时,它们是不兼容的。在幕后,Dataprep 正在处理瞬态临时网格,而 Geometry Script 的设计根本没有考虑到这一点。

本教程的目的是展示一种潜在的工作流程,该工作流程使用编辑器实用程序将 Dataprep 自动化与几何脚本操作相结合。对于解决上述确切问题,这实际上是一种解决方法,但如果您对编辑器实用程序不熟悉,我希望您会发现这实际上是一种为您的团队制作有用工具的非常有效的方法。

UE工程下载地址

https://epicgames.box.com/s/v3urqi4bm1maiphxyor10b0dbozlaxea


先决条件

本教程不会立即涉及高级主题,但您应该对以下主题有基本的了解,才能正确地跟进。

  • 可视化数据准备

  • 编辑器实用工具

  • 几何脚本


出于后面解释的原因,本教程使用了一些仅在 5.4 及更新版本中存在的特定功能。几乎所有功能都可以在早期版本中使用,我会在出现例外情况时指出。

您需要启用以下插件。在 Architecture 模板项目中,唯一未默认启用的插件是Geometry Script

  • Dataprep 编辑器

  • 几何脚本

  • 编辑器实用程序


我将使用 Autodesk 的 Revit “高级示例项目”来演示此工作流程。它可供所有 Revit 用户免费使用,并可轻松导出为 Datasmith 文件。您可以将任何您喜欢的 Datasmith 模型用于 Dataprep 部分,也可以在项目中的非 Datasmith 模型上使用几何脚本函数。

基本框架

以下是该管道的基本部分:

  1. 蓝图函数库将保存各种修改网格的几何脚本操作。

  2. Dataprep配方将标记我们想要修改的Actor。

  3. 编辑器实用程序小部件将按顺序执行 Dataprep 配方,然后在标记的网格上运行几何脚本函数


编辑器函数库

当我之前说我们正在使用蓝图函数库时,我部分撒了谎。BFL 是一种存储常用蓝图逻辑的绝佳方式,可以在整个项目中的任何其他蓝图之间共享,但是,它们不能包含仅限编辑器的功能,因为它们必须为最终游戏进行编译。在 5.4 中引入了一个名为编辑器函数库的新蓝图,它与编辑器功能完全相同,但仅适用于编辑器功能。我们将要做的 90% 都可以放入原始类型的 BFL 中,但我们将在这里使用新的 BFL,因为最终我们需要在项目中创建和编辑资产。

因此,您要做的第一件事就是在内容浏览器中单击鼠标右键,然后选择“编辑器实用程序”>“编辑器实用程序蓝图”。 

在选择蓝图类的时候,选择编辑器功能库,并根据需要命名。



几何脚本函数 - 倒角

打开这个蓝图,它会弹出一个空的新函数,我们可以直接进入。我们要制作的第一个脚本是可以斜切网格的脚本,所以我将函数重命名为“BevelMesh”。

经过一番深思熟虑,我知道这个函数没有直接引用网格,而是从其他地方传递网格。因此,当选择函数的主要起始节点时,我可以转到右侧的“详细信息”面板并为该函数添加一个输入,类型为“ StaticMesh ”。需要注意的是,我们将在这里处理资产(又名“StaticMesh”),而不是组件或参与者。这些选项之间的差异将很快再次出现。现在我们的图表中有一个输入引脚。


我右键单击了新的输入引脚,并选择了“提升为局部变量”,以便我们更轻松地在图表中访问。新变量不能与函数输入使用完全相同的名称。


现在开始使用 Geometry Script 本身。GeoScript 的确切代码模式一开始可能会令人困惑,但这就是要点。您无法直接在虚幻引擎中对网格进行操作,只能对称为动态网格的类进行操作。首先,我们需要为动态网格创建一个“池”。然后,每当我们想要执行网格操作时,我们都必须从该池中获取动态网格,然后将常规网格资产复制到该动态网格中。开始吧。

创建一个名为Create Dynamic Mesh Pool 的新节点。如果它没有显示,则表示您没有启用 Geometry Script 插件。从该节点的输出引脚,您可以拖出并请求网格。现在我们有一个动态网格,我们可以将其用于任何 Geometry Script 操作。

Request Mesh上的输出引脚是动态网格,但默认情况下动态网格没有三角形、没有材质,什么都没有。因此,接下来你始终要做的就是将你实际想要处理的网格资源的所有数据提供给它。根据情况,有多种“复制”节点,这里我们将使用“从静态网格复制网格”。将动态网格插入到To Dynamic Mesh输入,并使用之前的“从静态网格资源复制网格”变量。 

好的,现在我们实际上有了一个输入网格的版本,我们可以完全控制它并完全访问它的所有属性。下一步是进行倒角处理。建模模式中的倒角工具以及几何脚本主要对多边形组进行操作,这也是我在本教程中坚持使用的方法。典型的网格默认没有多边形组,所以我们必须自己设置。有几个蓝图选项可以做到这一点,在这个场景中效果最好的是从角度阈值计算多边形组。基本上,如果你将一个标准立方体传递给这个函数,它将为立方体的每一面创建一个不同的多边形组,无论它由多少个顶点组成。我将折痕角度增加到 30 度,你可以在某个时候将其变成另一个输入变量。我们上一个节点的动态网格输出将传递到目标网格中,我们将继续以这样的方式菊花链式连接几何脚本操作。

下一个部分是应用网格多边形组倒角,我们将它连接到前一个节点和动态网格。

在虚幻引擎中,您可以在蓝图节点中找到各种“选项”,通常带有深蓝色引脚。这些结构可以通过额外节点创建和连接,但我个人更喜欢通过右键单击它并选择拆分结构引脚来就地展开它们。

这里有几个参数需要调整才能获得良好的倒角效果。同样,最佳做法是为每个参数创建一个变量,但对于此示例,我认为一个变量可以满足所有要求。我将倒角距离保留为 1cm,但这是一个重要的设置,请自行决定。我打开了推断材质 ID,以便它能够对每个面的材质分配做出最佳猜测,而不是将一种材质应用于整个倒角。我将细分设置为 4。这应该可以提供非常详细和平滑的边缘,但对于复杂的场景来说可能会有很多额外的几何图形。我将圆度重量保留为默认值 1.0,以获得完美平均的边缘圆度。

注意:圆形粗细和细分仅在 5.4 及以上版本中可用。如果使用旧版本,则只能使用一个倒角。


通过倒角添加新几何体不一定会改变现有边缘的法线。为了消除硬边,我们可以使用计算分割法线并将开角设置为 30。

这就是我们对动态网格的修改。要保存更改,我们需要使用“将网格复制到静态网格”将旧网格资源覆盖为新网格资源。 


现在要做的最后一件事是清理我们用于操作的临时动态网格。我们不想通过不断创建无限期停留在那里的新网格而导致任何内存泄漏或奇怪的行为。我们使用 Free All Meshes 节点来执行此操作,该节点从函数的开头连接到我们的动态网格池。完整的图表嵌入在下面。



蓝图 倒角网格

Begin Object Class=/Script/BlueprintGraph.K2Node_FunctionEntry Name="K2Node_FunctionEntry_0" ExportPath="/Script/BlueprintGraph.K2Node_FunctionEntry'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_FunctionEntry_0'"

   MetaData=(bCallInEditor=True)

   LocalVariables(0)=(VarName="StaticMesh",VarGuid=06ED8551458619EC97480D8AA865CD78,VarType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'"),FriendlyName="Static Mesh",Category=NSLOCTEXT("KismetSchema", "Default", "Default"),PropertyFlags=5)

   ExtraFlags=201465856

   FunctionReference=(MemberName="BevelMesh")

   bIsEditable=True

   NodeGuid=BC368EA349DC663DC794A4927355469E

   CustomProperties Pin (PinId=B2238D724F2A9E00073BB78A5B75ACC2,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableSet_2 A5B5E5064889D784E83861BA0FD174D4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=7609FA114F43D998C08B0CB4A39D962F,PinName="StaticMeshAsset",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableSet_2 43C477A34938DE7035091CB92153D415,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=0A11C6514F9213E194812B9AD4BBDD55,PinName="__WorldContext",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/CoreUObject.Object'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties UserDefinedPin (PinName="StaticMeshAsset",PinType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'"),DesiredPinDirection=EGPD_Output)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableSet Name="K2Node_VariableSet_2" ExportPath="/Script/BlueprintGraph.K2Node_VariableSet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_VariableSet_2'"

   VariableReference=(MemberScope="BevelMesh",MemberName="StaticMesh",MemberGuid=06ED8551458619EC97480D8AA865CD78)

   NodePosX=192

   NodePosY=16

   NodeGuid=05C4DC7B4A929E38F041DF967835153B

   CustomProperties Pin (PinId=A5B5E5064889D784E83861BA0FD174D4,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionEntry_0 B2238D724F2A9E00073BB78A5B75ACC2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=E5D06A914E604CB657ADC09C6C45ACF5,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 AA4100C646A99FD0BD31A0AF5A119B2F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=43C477A34938DE7035091CB92153D415,PinName="StaticMesh",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionEntry_0 7609FA114F43D998C08B0CB4A39D962F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=8B53C22D4ADBA2E30DEE7D976E4EFED0,PinName="Output_Get",PinToolTip="Retrieves the value of the variable, can use instead of a separate Get node",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_0" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_0'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_SceneUtilityFunctions'",MemberName="CreateDynamicMeshPool")

   NodePosX=416

   NodeGuid=4C5E013E4AD55308E45A0D88B689A68A

   CustomProperties Pin (PinId=AA4100C646A99FD0BD31A0AF5A119B2F,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableSet_2 E5D06A914E604CB657ADC09C6C45ACF5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=AC640DA14D7D9E6439F6EEA744572B37,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 85A580564AE247E7D492CF8DBA7ACDD5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=7563946948E4A9A855DE9FB0566285FD,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_SceneUtilityFunctions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_SceneUtilityFunctions",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=4062928349DCF1FB93C513BE5BF95BCA,PinName="ReturnValue",PinFriendlyName="Dynamic Mesh Pool",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 9D1754C4421E94739A2EC7A5DDF91F13,K2Node_Knot_0 BEF0B084424AAF8FBD1220B9E9641A56,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_1" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_1'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",MemberName="RequestMesh")

   NodePosX=688

   NodePosY=-16

   bCommentBubbleVisible=True

   NodeComment="new dynamic mesh for our operation"

   NodeGuid=7B425E46484CF168C86A729D007BED79

   CustomProperties Pin (PinId=85A580564AE247E7D492CF8DBA7ACDD5,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 AC640DA14D7D9E6439F6EEA744572B37,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=7688B646472FAF27B2D796A747CD9735,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_2 13C3613144A78BC9DA064CB1B3752140,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=9D1754C4421E94739A2EC7A5DDF91F13,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nDynamic Mesh Pool Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 4062928349DCF1FB93C513BE5BF95BCA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=803DB7174F8C964BEEC4709294F6E912,PinName="ReturnValue",PinToolTip="Return Value\nDynamic Mesh Object Reference\n\nan available UDynamicMesh from the pool (possibly allocating a new mesh)",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_2 6D62459B47100D4937E344A9E33A3607,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_2" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_2'"

   bWantsEnumToExecExpansion=True

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_StaticMeshFunctions'",MemberName="CopyMeshFromStaticMesh")

   NodePosX=1024

   bCommentBubbleVisible=True

   NodeComment="Have to bring mesh data into a DynamicMesh so \r\nwe can operate on it."

   NodeGuid=4C492CFF4D0260A7E9F69DB4FB94D995

   CustomProperties Pin (PinId=B3D930E2489A3E8879C4F78E97AFA43F,PinName="Failure",PinToolTip="Failure\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6C75B6744420EF63DA0BA4B6AEE7178E,PinName="Success",PinToolTip="Success\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_3 C9A19DAC479B09C0A4E8349E0D11F426,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=13C3613144A78BC9DA064CB1B3752140,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 7688B646472FAF27B2D796A747CD9735,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=F85A81134BEBCF5CF7F296911386A134,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nGeometry Script Library Static Mesh Functions Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_StaticMeshFunctions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_StaticMeshFunctions",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=E39EBC9842AB5F3EE25CEF945BE79599,PinName="FromStaticMeshAsset",PinToolTip="From Static Mesh Asset\nStatic Mesh Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_0 3E2C5DC54F627E7E91CA37BDE9447074,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6D62459B47100D4937E344A9E33A3607,PinName="ToDynamicMesh",PinToolTip="To Dynamic Mesh\nDynamic Mesh Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 803DB7174F8C964BEEC4709294F6E912,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=224762DA45FD3343BC7B2698E14612C6,PinName="AssetOptions",PinToolTip="Asset Options\nGeometry Script Copy Mesh From Asset Options Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptCopyMeshFromAssetOptions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=0E042B8547DA491F253F84BFF73CBCE7,PinName="RequestedLOD",PinToolTip="Requested LOD\nGeometry Script Mesh Read LOD Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptMeshReadLOD'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=5B6A3E8B495D7ED03F8BEB8305150208,PinName="Outcome",PinToolTip="Outcome\nEGeometryScriptOutcomePins Enum",Direction="EGPD_Output",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Enum'/Script/GeometryScriptingCore.EGeometryScriptOutcomePins'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="Failure",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=FE814E7A49AE23C7BCC5EB97C64C7821,PinName="Debug",PinToolTip="Debug\nGeometry Script Debug Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptDebug'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,AutogeneratedDefaultValue="None",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=27A821C442919F261CC2AFBCA6CA56D7,PinName="ReturnValue",PinFriendlyName="Dynamic Mesh",PinToolTip="Dynamic Mesh\nDynamic Mesh Object Reference\n\nExtracts a Dynamic Mesh from a Static Mesh Asset.\n\nNote that the LOD Index in RequestedLOD will be silently clamped to the available number of LODs (SourceModel or RenderData)",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_3 040CDA6340BAB379A6A170AAEA352B1F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_VariableGet_0'"

   VariableReference=(MemberScope="BevelMesh",MemberName="StaticMesh",MemberGuid=06ED8551458619EC97480D8AA865CD78)

   NodePosX=800

   NodePosY=144

   NodeGuid=978F52074B92FA460CE31DB56B56EE0A

   CustomProperties Pin (PinId=3E2C5DC54F627E7E91CA37BDE9447074,PinName="StaticMesh",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_2 E39EBC9842AB5F3EE25CEF945BE79599,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_3" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_3'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_MeshPolygroupFunctions'",MemberName="ComputePolygroupsFromAngleThreshold")

   NodePosX=1440

   NodePosY=32

   bCommentBubbleVisible=True

   NodeComment="POLYGROUPS for beveling"

   NodeGuid=5F3DBFF04F302DF2C16F5E9F90F4D671

   CustomProperties Pin (PinId=C9A19DAC479B09C0A4E8349E0D11F426,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_2 6C75B6744420EF63DA0BA4B6AEE7178E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=EF49D1A84644A35FB8FDBCAC5438D973,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_5 9F0F523342179696A42595B1A8F884C8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=9D75B3EC468DF5614EF9C6B065AC95AE,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nGeometry Script Library Mesh Polygroup Functions Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_MeshPolygroupFunctions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshPolygroupFunctions",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=040CDA6340BAB379A6A170AAEA352B1F,PinName="TargetMesh",PinToolTip="Target Mesh\nDynamic Mesh Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_2 27A821C442919F261CC2AFBCA6CA56D7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=F654C34845CB13D3CA8728B6F425DF95,PinName="GroupLayer",PinToolTip="Group Layer\nGeometry Script Group Layer Structure\n\nindicates the PolyGroup Layer that will be populated.",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptGroupLayer'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=2AC104F74FA7741A0DABE19376B3EA5C,PinName="CreaseAngle",PinToolTip="Crease Angle\nFloat (single-precision)\n\nmeasured in degrees and used when comparing adjacent faces.",PinType.PinCategory="real",PinType.PinSubCategory="float",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="30.000000",AutogeneratedDefaultValue="15.000000",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=CB2FD98A409220C4426CD8B5932BB019,PinName="MinGroupSize",PinToolTip="Min Group Size\nInteger\n\nthe minimum number of triangles in each PolyGroup.",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="2",AutogeneratedDefaultValue="2",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=288DBEE0443F03D23713D4B93C42755F,PinName="Debug",PinToolTip="Debug\nGeometry Script Debug Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptDebug'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,AutogeneratedDefaultValue="None",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=D4ABE8224F4EFA0BB4F76C8823F877D0,PinName="ReturnValue",PinFriendlyName="Target Mesh",PinToolTip="Target Mesh\nDynamic Mesh Object Reference",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_5 7387331345EAB9F8EA444CA66848FBAF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_5" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_5'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_MeshModelingFunctions'",MemberName="ApplyMeshPolygroupBevel")

   NodePosX=1856

   NodePosY=32

   bCommentBubbleVisible=True

   NodeComment="BEVEL"

   NodeGuid=1496221249DCD0F03290F39CBBFAD209

   CustomProperties Pin (PinId=9F0F523342179696A42595B1A8F884C8,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_3 EF49D1A84644A35FB8FDBCAC5438D973,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=FC87B9D6450081F1D85C5E93E7DE0E12,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_12 33DC12C743F371382FD57E94B442F69C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=0096BEB9482CD46645888487F0615694,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nGeometry Script Library Mesh Modeling Functions Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_MeshModelingFunctions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshModelingFunctions",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=7387331345EAB9F8EA444CA66848FBAF,PinName="TargetMesh",PinToolTip="Target Mesh\nDynamic Mesh Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_3 D4ABE8224F4EFA0BB4F76C8823F877D0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=ACE143AD482B0468B67672B8C15F4445,PinName="Options",PinToolTip="Options\nGeometry Script Mesh Bevel Options Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptMeshBevelOptions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,SubPins=(K2Node_CallFunction_5 386E65544C372E759A452C838ADACADE,K2Node_CallFunction_5 C815E04B4EEA09D785E816AA78CAC277,K2Node_CallFunction_5 B538EC504569941300274F86F4B3F9F7,K2Node_CallFunction_5 99D61156444ACE60CA55AEA8A80C6087,K2Node_CallFunction_5 5D783D0540FC7B9AD1D403AD5EE108BF,K2Node_CallFunction_5 FFF3D4994E311E15D18198B8E1F63E59,K2Node_CallFunction_5 6702BEF9464BD588752A29B1D4311521,K2Node_CallFunction_5 E3FEB5F64964F02A25C5DCB78B4185B7,K2Node_CallFunction_5 9902010A4AA20D820E1EA8A55A9C07DE,),PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=386E65544C372E759A452C838ADACADE,PinName="Options_BevelDistance",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Bevel Distance"),PinToolTip="Options Bevel Distance\nFloat (single-precision)",PinType.PinCategory="real",PinType.PinSubCategory="float",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.000000",AutogeneratedDefaultValue="1.000000",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=C815E04B4EEA09D785E816AA78CAC277,PinName="Options_bInferMaterialID",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Infer Material ID"),PinToolTip="Options Infer Material ID\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="true",AutogeneratedDefaultValue="False",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=B538EC504569941300274F86F4B3F9F7,PinName="Options_SetMaterialID",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Set Material ID"),PinToolTip="Options Set Material ID\nInteger",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0",AutogeneratedDefaultValue="0",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=99D61156444ACE60CA55AEA8A80C6087,PinName="Options_Subdivisions",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Subdivisions"),PinToolTip="Options Subdivisions\nInteger",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="4",AutogeneratedDefaultValue="0",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=5D783D0540FC7B9AD1D403AD5EE108BF,PinName="Options_RoundWeight",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Round Weight"),PinToolTip="Options Round Weight\nFloat (single-precision)",PinType.PinCategory="real",PinType.PinSubCategory="float",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.000000",AutogeneratedDefaultValue="1.000000",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=FFF3D4994E311E15D18198B8E1F63E59,PinName="Options_bApplyFilterBox",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Apply Filter Box"),PinToolTip="Options Apply Filter Box\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="False",AutogeneratedDefaultValue="False",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6702BEF9464BD588752A29B1D4311521,PinName="Options_FilterBox",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Filter Box"),PinToolTip="Options Filter Box\nBox Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/CoreUObject.Box'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=False)",AutogeneratedDefaultValue="(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=False)",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=E3FEB5F64964F02A25C5DCB78B4185B7,PinName="Options_FilterBoxTransform",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Filter Box Transform"),PinToolTip="Options Filter Box Transform\nTransform",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/CoreUObject.Transform'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.000000,0.000000,0.000000|0.000000,0.000000,-0.000000|1.000000,1.000000,1.000000",AutogeneratedDefaultValue="0.000000,0.000000,0.000000|0.000000,0.000000,-0.000000|1.000000,1.000000,1.000000",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=9902010A4AA20D820E1EA8A55A9C07DE,PinName="Options_bFullyContained",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Options", "ProtoPinDisplayName", "Fully Contained"),PinToolTip="Options Fully Contained\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="True",AutogeneratedDefaultValue="True",ParentPin=K2Node_CallFunction_5 ACE143AD482B0468B67672B8C15F4445,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=496B05A749647DC0A92FB98298FFC13B,PinName="Debug",PinToolTip="Debug\nGeometry Script Debug Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptDebug'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,AutogeneratedDefaultValue="None",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=088DAFB04C66B1FA42F6B7AE6C6020EF,PinName="ReturnValue",PinFriendlyName="Target Mesh",PinToolTip="Target Mesh\nDynamic Mesh Object Reference\n\nApply a Mesh Bevel operation to all PolyGroup Edges.",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_12 87A236CD4A165B96DEAF69AF53AB9EC7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_6" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_6'"

   bWantsEnumToExecExpansion=True

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_StaticMeshFunctions'",MemberName="CopyMeshToStaticMesh")

   NodePosX=3712

   NodePosY=32

   bCommentBubbleVisible=True

   NodeComment="We bring the modified mesh data back into the \r\nStaticMesh asset"

   NodeGuid=A1C114504870EC730CF97C9F0A7AA8EB

   CustomProperties Pin (PinId=1BD5C30D43442EAA537A769147BB4CDE,PinName="Failure",PinToolTip="Failure\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=DD556B8647A10CF9EEC018AAB1EA4D9A,PinName="Success",PinToolTip="Success\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_4 9918698049C04EA19E988C823661B1AA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=B7AA54564EBE7355FE4EED8D25F980A4,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_12 9702F2AD4D24D3BC0EDF368A25C088B8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=5476EE6748BE7C8D80EEE8A027446E54,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nGeometry Script Library Static Mesh Functions Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_StaticMeshFunctions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_StaticMeshFunctions",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=49F361B24979976868221FABF2816131,PinName="FromDynamicMesh",PinToolTip="From Dynamic Mesh\nDynamic Mesh Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_12 24B8250F48E49F7D8A3359B9B4A832EE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=8D234D984CF51464D38330822B8551CE,PinName="ToStaticMeshAsset",PinToolTip="To Static Mesh Asset\nStatic Mesh Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_3 9A154C0D44FC6AC09C5E63A9802F15EB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=E12DF9F94990AEBBE269F7A705D99142,PinName="Options",PinToolTip="Options\nGeometry Script Copy Mesh To Asset Options Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptCopyMeshToAssetOptions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=5F1A50C2486D797CFB61FCAE7FC0FDB9,PinName="TargetLOD",PinToolTip="Target LOD\nGeometry Script Mesh Write LOD Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptMeshWriteLOD'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=BBBC083D455DA3D57FC3208397262848,PinName="Outcome",PinToolTip="Outcome\nEGeometryScriptOutcomePins Enum",Direction="EGPD_Output",PinType.PinCategory="byte",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Enum'/Script/GeometryScriptingCore.EGeometryScriptOutcomePins'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="Failure",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=B900321A48A548424FC3ED833FB31522,PinName="Debug",PinToolTip="Debug\nGeometry Script Debug Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptDebug'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,AutogeneratedDefaultValue="None",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=AF3D030649AB693674F538A1D6752176,PinName="ReturnValue",PinFriendlyName="Dynamic Mesh",PinToolTip="Dynamic Mesh\nDynamic Mesh Object Reference\n\nUpdates a Static Mesh Asset with new geometry converted from a Dynamic Mesh.",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_3" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_VariableGet_3'"

   VariableReference=(MemberScope="BevelMesh",MemberName="StaticMesh",MemberGuid=06ED8551458619EC97480D8AA865CD78)

   NodePosX=3520

   NodePosY=128

   NodeGuid=A42BAAB14255C2BF1A2B8FAFABC67558

   CustomProperties Pin (PinId=9A154C0D44FC6AC09C5E63A9802F15EB,PinName="StaticMesh",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_6 8D234D984CF51464D38330822B8551CE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_4" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_4'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",MemberName="FreeAllMeshes")

   NodePosX=4144

   NodePosY=32

   NodeGuid=04F8FF4F4AE38E6DB846E88214249D77

   CustomProperties Pin (PinId=9918698049C04EA19E988C823661B1AA,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_6 DD556B8647A10CF9EEC018AAB1EA4D9A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6F2A87A144C713C95C1A349F27EEC879,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=357C22BF47AEF4389E03EBBF03B00AAF,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_1 A0668B4E44D5643CFA3564BE33FEDEA6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_Knot Name="K2Node_Knot_0" ExportPath="/Script/BlueprintGraph.K2Node_Knot'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_Knot_0'"

   NodePosX=688

   NodePosY=-112

   NodeGuid=91BC957149A4E185C5627DBA61FF76F5

   CustomProperties Pin (PinId=BEF0B084424AAF8FBD1220B9E9641A56,PinName="InputPin",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 4062928349DCF1FB93C513BE5BF95BCA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=3A5ABDA744E80F449233438932A6F96A,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_1 6F6BD279409F024055F880967B768C69,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_Knot Name="K2Node_Knot_1" ExportPath="/Script/BlueprintGraph.K2Node_Knot'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_Knot_1'"

   NodePosX=4000

   NodePosY=-112

   NodeGuid=699D88FB4B4A5C353828DEA0434F2FCE

   CustomProperties Pin (PinId=6F6BD279409F024055F880967B768C69,PinName="InputPin",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_0 3A5ABDA744E80F449233438932A6F96A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=A0668B4E44D5643CFA3564BE33FEDEA6,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMeshPool'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_4 357C22BF47AEF4389E03EBBF03B00AAF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_12" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:BevelMesh.K2Node_CallFunction_12'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_MeshNormalsFunctions'",MemberName="ComputeSplitNormals")

   NodePosX=2832

   NodePosY=32

   bCommentBubbleVisible=True

   NodeComment="Recompute NORMALS"

   NodeGuid=F82983C7409B3D59AEEDD3A94C093B00

   CustomProperties Pin (PinId=33DC12C743F371382FD57E94B442F69C,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_5 FC87B9D6450081F1D85C5E93E7DE0E12,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=9702F2AD4D24D3BC0EDF368A25C088B8,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_6 B7AA54564EBE7355FE4EED8D25F980A4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=81F24787409258B291C84488DB17ECF0,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nGeometry Script Library Mesh Normals Functions Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptLibrary_MeshNormalsFunctions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshNormalsFunctions",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=87A236CD4A165B96DEAF69AF53AB9EC7,PinName="TargetMesh",PinToolTip="Target Mesh\nDynamic Mesh Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_5 088DAFB04C66B1FA42F6B7AE6C6020EF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=3B9723924D1E51C5D1278CAAD1B63FEE,PinName="SplitOptions",PinToolTip="Split Options\nGeometry Script Split Normals Options Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptSplitNormalsOptions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,SubPins=(K2Node_CallFunction_12 06938C7B4BCA76DF24EFF18B52FE4493,K2Node_CallFunction_12 E4ED306642B074358C36D3A177B322C9,K2Node_CallFunction_12 B41FF76F40EB289B3616798D47E27D61,K2Node_CallFunction_12 A91599C249D9754E9EDE2C833117CABD,),PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=06938C7B4BCA76DF24EFF18B52FE4493,PinName="SplitOptions_bSplitByOpeningAngle",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Split Options", "ProtoPinDisplayName", "Split By Opening Angle"),PinToolTip="Split Options Split by Opening Angle\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="True",AutogeneratedDefaultValue="True",ParentPin=K2Node_CallFunction_12 3B9723924D1E51C5D1278CAAD1B63FEE,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=E4ED306642B074358C36D3A177B322C9,PinName="SplitOptions_OpeningAngleDeg",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Split Options", "ProtoPinDisplayName", "Opening Angle Deg"),PinToolTip="Split Options Opening Angle Deg\nFloat (single-precision)",PinType.PinCategory="real",PinType.PinSubCategory="float",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="30.000000",AutogeneratedDefaultValue="15.000000",ParentPin=K2Node_CallFunction_12 3B9723924D1E51C5D1278CAAD1B63FEE,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=B41FF76F40EB289B3616798D47E27D61,PinName="SplitOptions_bSplitByFaceGroup",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Split Options", "ProtoPinDisplayName", "Split By Face Group"),PinToolTip="Split Options Split by Face Group\nBoolean",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="False",AutogeneratedDefaultValue="False",ParentPin=K2Node_CallFunction_12 3B9723924D1E51C5D1278CAAD1B63FEE,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=A91599C249D9754E9EDE2C833117CABD,PinName="SplitOptions_GroupLayer",PinFriendlyName=LOCGEN_FORMAT_NAMED(NSLOCTEXT("KismetSchema", "SplitPinFriendlyNameFormat", "{PinDisplayName} {ProtoPinDisplayName}"), "PinDisplayName", "Split Options", "ProtoPinDisplayName", "Group Layer"),PinToolTip="Split Options Group Layer\nGeometry Script Group Layer Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptGroupLayer'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="(bDefaultLayer=True,ExtendedLayerIndex=0)",AutogeneratedDefaultValue="(bDefaultLayer=True,ExtendedLayerIndex=0)",ParentPin=K2Node_CallFunction_12 3B9723924D1E51C5D1278CAAD1B63FEE,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=31A64BA64355F993A0C6C89B6DF6A28D,PinName="CalculateOptions",PinToolTip="Calculate Options\nGeometry Script Calculate Normals Options Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.ScriptStruct'/Script/GeometryScriptingCore.GeometryScriptCalculateNormalsOptions'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=3BADFFB34819BB40A055CAB89880CD64,PinName="Debug",PinToolTip="Debug\nGeometry Script Debug Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryScriptingCore.GeometryScriptDebug'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,AutogeneratedDefaultValue="None",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=24B8250F48E49F7D8A3359B9B4A832EE,PinName="ReturnValue",PinFriendlyName="Target Mesh",PinToolTip="Target Mesh\nDynamic Mesh Object Reference\n\nRecompute hard edges / split-normals for TargetMesh based on the provided SplitOptions, and then\nrecompute the new shared triangle-vertex normals using the given CalculateOptions.\nThe normal recomputation is identical to calling RecomputeNormals.",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/GeometryFramework.DynamicMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_6 49F361B24979976868221FABF2816131,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Dataprep 标记

现在我们有了可以在网格上运行的操作,我们需要一个可以操作的网格。在我们的示例中,我们使用 Dataprep 来设置舞台,因此我假设您知道如何制作 Dataprep Asset 并导入您选择的模型。在这里,我加载了我之前提到的高级示例项目。



此处最简单的示例是,我将斜切建筑物上层的边桌。默认情况下,它们非常块状。为了选择它用于我们的配方,我使用了 Actor Label 过滤器,并为其赋予了通配符名称*furtniture_table*

表格已过滤,现在我们可以应用倒角操作了,对吧?别忘了,很遗憾我们不能直接在 Dataprep 内部执行几何脚本。我们可以做的是给这个Actor添加一个标签,并在它完全导入到我们的场景后重新访问它。

继续执行并提交管道,然后全部保存。

处理带标签的 Actor

我们已经标记了场景中的Actor。我们有一个想要对他们使用的函数。我们可以直接跳转到编辑器实用程序小部件来将这两件事联系在一起。但是,因为我以前必须这样做,所以我的建议是在我们的函数库中再创建一个函数来帮助我们处理网格。原因是我们已经标记了静态网格体,但我们需要对它们的静态网格资产进行操作。很多时候,传入的 Datasmith 场景将提供具有多个静态网格组件的静态网格体,因此有多个资产。所以我们需要构建一个强大的选择方法,我们可以反复重用它,而无需复制和粘贴太多节点。

再次打开编辑器函数库并创建一个新函数。我将其命名为GetAllStaticMeshesFromTaggedActors。 

此功能的完整节点图嵌入如下。逻辑如下:

  1. 我们有一个用于搜索标签的输入参数。

  2. 我们将场景中所有带有该标签的actor聚集在一起。

  3. 对于每个Actor,我们收集所有静态网格组件。

  4. 对于每个组件,我们都记录其静态网格资产的副本。

  5. 我们还记录了我们收集的所有组件的列表。(这在以后很有用)

  6. 最后,我们返回调用此函数的人员的资产和组件列表


您可以复制并粘贴下面的节点,在这种情况下,您需要右键单击变量并为其创建新的局部变量。然后编译并保存。 

如果您自己构建函数,则需要两个类型为 Static Mesh 和 Static Mesh Component 的局部变量(对象数组)。您还需要添加 Return Node并输出两个相同类型的变量。再加上标签类型 Name 的输入。

蓝图 获取标记 Actor 的所有静态网格

Begin Object Class=/Script/BlueprintGraph.K2Node_FunctionEntry Name="K2Node_FunctionEntry_0" ExportPath="/Script/BlueprintGraph.K2Node_FunctionEntry'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_FunctionEntry_0'"

   MetaData=(bCallInEditor=True)

   LocalVariables(0)=(VarName="TaggedComponents",VarGuid=4950B04341ABED2F979C199F6E77B160,VarType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",ContainerType=Array),FriendlyName="Tagged Components",Category=NSLOCTEXT("KismetSchema", "Default", "Default"),PropertyFlags=5)

   LocalVariables(1)=(VarName="TaggedMeshAssets",VarGuid=163E31644DC22FB6815572B3F2DDC0E8,VarType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",ContainerType=Array),FriendlyName="Tagged Mesh Assets",Category=NSLOCTEXT("KismetSchema", "Default", "Default"),PropertyFlags=5)

   ExtraFlags=201465856

   FunctionReference=(MemberName="GetAllStaticMeshesFromTaggedActors")

   bIsEditable=True

   NodePosX=-64

   NodeGuid=940D4B5C46535A3D58EC289CF3B36A79

   CustomProperties Pin (PinId=AC22B4B14EFC15DBCA2803A67372B379,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 6F24CB4043571DBE17F0F5AB205C7F40,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=DCA3D32E4A52DDFECF18AEAF5BB77F75,PinName="Tag",Direction="EGPD_Output",PinType.PinCategory="name",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 DA2EB3F247914D2FEE3457A558BD011B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=ADF5A5CD436EDEFCA2B6909BBD2C4944,PinName="__WorldContext",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/CoreUObject.Object'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties UserDefinedPin (PinName="Tag",PinType=(PinCategory="name"),DesiredPinDirection=EGPD_Output)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_0" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_CallFunction_0'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.GameplayStatics'",MemberName="GetAllActorsWithTag")

   NodePosX=384

   bCommentBubbleVisible=True

   NodeComment="First get all the actors tagged via Dataprep"

   NodeGuid=76FCBF174CFEFD699B1FE5A0443A3656

   CustomProperties Pin (PinId=6F24CB4043571DBE17F0F5AB205C7F40,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionEntry_0 AC22B4B14EFC15DBCA2803A67372B379,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=9AD4CD79425FCF9CF6029D97D2B51F90,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_0 770A04B8493A104DBC2E2785873C2FAC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=DE09152A4011DE5C9E3937B395DFCB9D,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.GameplayStatics'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Engine.Default__GameplayStatics",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=24F7614842990C60D78DE5B6991BEF6F,PinName="WorldContextObject",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/CoreUObject.Object'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=DA2EB3F247914D2FEE3457A558BD011B,PinName="Tag",PinType.PinCategory="name",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="None",AutogeneratedDefaultValue="None",LinkedTo=(K2Node_FunctionEntry_0 DCA3D32E4A52DDFECF18AEAF5BB77F75,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=2D06F49C417424764F49E0AEBB3C1FF9,PinName="OutActors",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_0 A784A0E54876AEB06BD4CC94D4D38793,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_MacroInstance Name="K2Node_MacroInstance_0" ExportPath="/Script/BlueprintGraph.K2Node_MacroInstance'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_MacroInstance_0'"

   MacroGraphReference=(MacroGraph="/Script/Engine.EdGraph'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ForEachLoop'",GraphBlueprint="/Script/Engine.Blueprint'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros'",GraphGuid=99DBFD5540A796041F72A5A9DA655026)

   ResolvedWildcardType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",ContainerType=Array)

   NodePosX=752

   bCommentBubbleVisible=True

   NodeComment="...check all components"

   NodeGuid=082F987B4FE11C39F417F78C155735B2

   CustomProperties Pin (PinId=770A04B8493A104DBC2E2785873C2FAC,PinName="Exec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 9AD4CD79425FCF9CF6029D97D2B51F90,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=A784A0E54876AEB06BD4CC94D4D38793,PinName="Array",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_0 2D06F49C417424764F49E0AEBB3C1FF9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=F8CCC95E4290BD7D071D65B8821BAEFC,PinName="LoopBody",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_4 816D47674FB42BB94B9232B1C4602E73,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6FACFC974A6A9644418785A550B3834E,PinName="Array Element",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 D3B51C734CF102997DCBA88476A3A61C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6EEDB6D846AC2A6C8383C1B57B3006F1,PinName="Array Index",Direction="EGPD_Output",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=1444D012400A41D574C28DA8BF891577,PinName="Completed",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_0 4A543F424F5433C0E7956FB92A81C51A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_1" ExportPath="/Script/BlueprintGraph.K2Node_CallFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_CallFunction_1'"

   bIsPureFunc=True

   bIsConstFunc=True

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.Actor'",MemberName="K2_GetComponentsByClass")

   NodePosX=1136

   NodePosY=-208

   bCommentBubbleVisible=True

   NodeComment="Only SM components can have meshes"

   NodeGuid=E6FCAC804A34E08445824A8EA5320EA4

   CustomProperties Pin (PinId=D3B51C734CF102997DCBA88476A3A61C,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nActor Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.Actor'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_0 6FACFC974A6A9644418785A550B3834E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6B616674482D31D0E6203FBA3A8D21FD,PinName="ComponentClass",PinToolTip="Component Class\nActor Component Class Reference",PinType.PinCategory="class",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.ActorComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=True,PinType.bSerializeAsSinglePrecisionFloat=False,AutogeneratedDefaultValue="/Script/Engine.ActorComponent",DefaultObject="/Script/Engine.StaticMeshComponent",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=9BA2585449DC6AAD61E2828FC20251F4,PinName="ReturnValue",PinToolTip="Return Value\nArray of Static Mesh Component Object References\n\nGets all the components that inherit from the given class.\nCurrently returns an array of UActorComponent which must be cast to the correct type.\nThis intended to only be used by blueprints. Use GetComponents() in C++.",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_1 850D8A8C4881213F83B6189769F43298,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_MacroInstance Name="K2Node_MacroInstance_1" ExportPath="/Script/BlueprintGraph.K2Node_MacroInstance'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_MacroInstance_1'"

   MacroGraphReference=(MacroGraph="/Script/Engine.EdGraph'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ForEachLoop'",GraphBlueprint="/Script/Engine.Blueprint'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros'",GraphGuid=99DBFD5540A796041F72A5A9DA655026)

   ResolvedWildcardType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",ContainerType=Array)

   NodePosX=1488

   NodePosY=-336

   bCommentBubbleVisible=True

   NodeComment="Actors can have multiple mesh \r\ncomponents. Check each one"

   NodeGuid=20AD9B7346E504B298B183ADDBEABC6A

   CustomProperties Pin (PinId=880D4F954A3E67F64EA3D4932C86DF0E,PinName="Exec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_4 B84B886640F92FFC527BE787038C6BBE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=850D8A8C4881213F83B6189769F43298,PinName="Array",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallFunction_1 9BA2585449DC6AAD61E2828FC20251F4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=2B202F3843B3F8A54086C29F024062CF,PinName="LoopBody",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallArrayFunction_1 CB14BAB1499DA2E58EDC3BB114CD36E5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=8EA4F4B84002A6403A368B9323DC8529,PinName="Array Element",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_1 6CA2AC114670D8A00A73B1B1366BC721,K2Node_Knot_2 3F4154CE4635278C12D20B8FC67B988A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=95F44F084483F9BB847BBB824233918B,PinName="Array Index",Direction="EGPD_Output",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=7A7A32D0488F4102E548F1802BA0B69E,PinName="Completed",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_0" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_VariableGet_0'"

   VariableReference=(MemberScope="GetAllStaticMeshesFromTaggedActors",MemberName="TaggedMeshAssets",MemberGuid=163E31644DC22FB6815572B3F2DDC0E8)

   NodePosX=1888

   NodePosY=-272

   NodeGuid=F94E949440F40E5D072E4B98B4D33C44

   CustomProperties Pin (PinId=7EC6F20F4926013D83EA4E8751A3ED06,PinName="TaggedMeshAssets",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallArrayFunction_1 29FB2C054564478BE4C7F4B640CB4AB3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_1" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_VariableGet_1'"

   VariableReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",MemberName="StaticMesh")

   SelfContextInfo=NotSelfContext

   NodePosX=1808

   NodePosY=-192

   NodeGuid=D994C8BD46A64A3AEC88E0A24EAF4B27

   CustomProperties Pin (PinId=93960BE442720712029500BF61CB03EF,PinName="StaticMesh",PinFriendlyName=NSLOCTEXT("UObjectDisplayNames", "StaticMeshComponent:StaticMesh", "Static Mesh"),Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=True,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallArrayFunction_1 CE55970A4750F0798A2B71B57268285E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=6CA2AC114670D8A00A73B1B1366BC721,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_1 8EA4F4B84002A6403A368B9323DC8529,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_FunctionResult Name="K2Node_FunctionResult_0" ExportPath="/Script/BlueprintGraph.K2Node_FunctionResult'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_FunctionResult_0'"

   FunctionReference=(MemberName="GetAllStaticMeshesFromTaggedActors")

   bIsEditable=True

   NodePosX=1408

   NodePosY=336

   bCommentBubbleVisible=True

   NodeComment="Now we have all referenced assets\r\nthat we pass to Geometry Script"

   NodeGuid=064754E04CF3033879AF76A0074ED132

   CustomProperties Pin (PinId=81E667A942D533F4EE1448BBD3DEDA63,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_0 1DE529244342B7DF8DB77583E8311659,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=B05F5CB74620B182AEE08DA7D4ACCBE7,PinName="TaggedStaticMeshes",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_2 B82148674D79748BD9C9D99B8F28F3EE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=21AD091E4A7EC2750B3C00B9DDF58A94,PinName="TaggedMeshComponents",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_3 1B4DCE904041CAAB23E18FA57E95594F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties UserDefinedPin (PinName="TaggedStaticMeshes",PinType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",ContainerType=Array),DesiredPinDirection=EGPD_Input)

   CustomProperties UserDefinedPin (PinName="TaggedMeshComponents",PinType=(PinCategory="object",PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",ContainerType=Array),DesiredPinDirection=EGPD_Input)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_2" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_VariableGet_2'"

   VariableReference=(MemberScope="GetAllStaticMeshesFromTaggedActors",MemberName="TaggedMeshAssets",MemberGuid=163E31644DC22FB6815572B3F2DDC0E8)

   NodePosX=1184

   NodePosY=416

   NodeGuid=B20088B6466E769A4E8A7B8DD7C1F0C5

   CustomProperties Pin (PinId=B82148674D79748BD9C9D99B8F28F3EE,PinName="TaggedMeshAssets",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionResult_0 B05F5CB74620B182AEE08DA7D4ACCBE7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_Knot Name="K2Node_Knot_0" ExportPath="/Script/BlueprintGraph.K2Node_Knot'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_Knot_0'"

   NodePosX=1136

   NodePosY=368

   NodeGuid=0CC357A9411BA47ABB7044B73929D1DD

   CustomProperties Pin (PinId=4A543F424F5433C0E7956FB92A81C51A,PinName="InputPin",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_0 1444D012400A41D574C28DA8BF891577,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=1DE529244342B7DF8DB77583E8311659,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionResult_0 81E667A942D533F4EE1448BBD3DEDA63,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallArrayFunction Name="K2Node_CallArrayFunction_1" ExportPath="/Script/BlueprintGraph.K2Node_CallArrayFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_CallArrayFunction_1'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.KismetArrayLibrary'",MemberName="Array_AddUnique")

   NodePosX=2160

   NodePosY=-320

   bCommentBubbleVisible=True

   NodeComment="Record each static mesh asset that\r\nis referenced. AddUnique prevents us\r\nfrom running operations on the same \r\nasset multiple times."

   NodeGuid=6F0DB7474E3FBE4B99574D93FF6EC929

   CustomProperties Pin (PinId=CB14BAB1499DA2E58EDC3BB114CD36E5,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_1 2B202F3843B3F8A54086C29F024062CF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=3C772B964966D832EC826E8150852A58,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallArrayFunction_2 45ABE8B84DCB0DFEBB8CC28EA2340014,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=306B8B9C486CFF7BAF08B2B0C1602AA7,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.KismetArrayLibrary'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Engine.Default__KismetArrayLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=29FB2C054564478BE4C7F4B640CB4AB3,PinName="TargetArray",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_0 7EC6F20F4926013D83EA4E8751A3ED06,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=CE55970A4750F0798A2B71B57268285E,PinName="NewItem",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMesh'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_1 93960BE442720712029500BF61CB03EF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=E167C9C041F20066591765B4CE01C2A5,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0",AutogeneratedDefaultValue="0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_3" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_VariableGet_3'"

   VariableReference=(MemberScope="GetAllStaticMeshesFromTaggedActors",MemberName="TaggedComponents",MemberGuid=4950B04341ABED2F979C199F6E77B160)

   NodePosX=1152

   NodePosY=480

   NodeGuid=E8213152459C80E23DA8D38E776D3EBB

   CustomProperties Pin (PinId=1B4DCE904041CAAB23E18FA57E95594F,PinName="TaggedComponents",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_FunctionResult_0 21AD091E4A7EC2750B3C00B9DDF58A94,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_VariableGet Name="K2Node_VariableGet_4" ExportPath="/Script/BlueprintGraph.K2Node_VariableGet'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_VariableGet_4'"

   VariableReference=(MemberScope="GetAllStaticMeshesFromTaggedActors",MemberName="TaggedComponents",MemberGuid=4950B04341ABED2F979C199F6E77B160)

   NodePosX=2352

   NodePosY=-64

   NodeGuid=17B035E04C5544D5D15DE4A4696D0408

   CustomProperties Pin (PinId=2230B6F94B60CF2CE5400E92EF7848E9,PinName="TaggedComponents",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallArrayFunction_2 3BE3884445ABA8198FB40D914675792D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_CallArrayFunction Name="K2Node_CallArrayFunction_2" ExportPath="/Script/BlueprintGraph.K2Node_CallArrayFunction'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_CallArrayFunction_2'"

   FunctionReference=(MemberParent="/Script/CoreUObject.Class'/Script/Engine.KismetArrayLibrary'",MemberName="Array_Add")

   NodePosX=2560

   NodePosY=-320

   bCommentBubbleVisible=True

   NodeComment="Record the mesh component\r\nin case we need to get its location"

   NodeGuid=ECDECB1C40612A51DEC1D7978858183D

   CustomProperties Pin (PinId=45ABE8B84DCB0DFEBB8CC28EA2340014,PinName="execute",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallArrayFunction_1 3C772B964966D832EC826E8150852A58,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=47945C08403A66E64006E780D05728DE,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=602284544C740EC19103AAA668E788A3,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.KismetArrayLibrary'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultObject="/Script/Engine.Default__KismetArrayLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=3BE3884445ABA8198FB40D914675792D,PinName="TargetArray",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=Array,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_VariableGet_4 2230B6F94B60CF2CE5400E92EF7848E9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=FFD0D4324A0D5E609EE709A713169E7B,PinName="NewItem",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_3 48BD6B904DD08F644107C2B8332D9565,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=B09A6ACB458151D229C4BDB877A2B58B,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0",AutogeneratedDefaultValue="0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_Knot Name="K2Node_Knot_2" ExportPath="/Script/BlueprintGraph.K2Node_Knot'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_Knot_2'"

   NodePosX=1776

   NodePosY=-128

   NodeGuid=EE4BA37D44ED234CDA936193AE52A367

   CustomProperties Pin (PinId=3F4154CE4635278C12D20B8FC67B988A,PinName="InputPin",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_1 8EA4F4B84002A6403A368B9323DC8529,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=03A9132F45CE7C92884EE8A0B88FD001,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_3 C7D4A7FB4C47A6BBEEBD77B87CDD91B5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_Knot Name="K2Node_Knot_3" ExportPath="/Script/BlueprintGraph.K2Node_Knot'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_Knot_3'"

   NodePosX=2288

   NodePosY=-128

   NodeGuid=83EB9B834463336A4FBB30B19E6A84B6

   CustomProperties Pin (PinId=C7D4A7FB4C47A6BBEEBD77B87CDD91B5,PinName="InputPin",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_Knot_2 03A9132F45CE7C92884EE8A0B88FD001,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=48BD6B904DD08F644107C2B8332D9565,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject="/Script/CoreUObject.Class'/Script/Engine.StaticMeshComponent'",PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_CallArrayFunction_2 FFD0D4324A0D5E609EE709A713169E7B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

Begin Object Class=/Script/BlueprintGraph.K2Node_Knot Name="K2Node_Knot_4" ExportPath="/Script/BlueprintGraph.K2Node_Knot'/Game/Utilities/BP_GeometryOperations.BP_GeometryOperations:GetAllStaticMeshesFromTaggedActors.K2Node_Knot_4'"

   NodePosX=1104

   NodePosY=-304

   NodeGuid=7CDC23B04934EF51BC944995E7CB362E

   CustomProperties Pin (PinId=816D47674FB42BB94B9232B1C4602E73,PinName="InputPin",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_0 F8CCC95E4290BD7D071D65B8821BAEFC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)

   CustomProperties Pin (PinId=B84B886640F92FFC527BE787038C6BBE,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(K2Node_MacroInstance_1 880D4F954A3E67F64EA3D4932C86DF0E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)

End Object

编辑器实用工具

现在把所有东西整合在一起。返回内容浏览器,右键单击空白处,然后转到编辑器实用程序 > 编辑器实用程序小部件。

为了简单起见(这不是 UMG 教程),使用下拉菜单并为根控件选择None

随意命名资产并打开它。它将在设计器视图中打开。在这里,我们将尽可能少地创建一个您可以根据需要使用的自定义导入器。我们最需要的是一个从调色板拖到画布中的编辑器实用程序按钮小部件。如果您将文本小部件拖到顶部并为其添加标签,则可以获得加分。

选择按钮后,向下滚动到详细信息面板的底部,然后单击 + 图标为On Clicked创建事件。这将打开图形编辑器。

当我们点击此按钮时,我们希望发生两件事:

  1. 重新导入我们最新的 Datasmith 模型(这也会清除所有网格编辑)

  2. 在标记的actor上运行几何脚本修改


从我们的点击事件中,我们将触发一个执行 Dataprep节点,该节点引用 Dataprep 资产界面下我们现有的 Dataprep 配方。

接下来要做的就是使用我们之前花费大量时间创建的两个方便的函数。我们将获取所有标记的actor,然后使用 ForEachLoop循环遍历所有actor进行编辑。不要忘记修改标签名称以匹配 Dataprep 中设置的任何内容。

注意:我们的编辑器功能库中的这些功能现在将显示在任何其他类型的编辑器实用程序中,因此您可以轻松地从小部件、资产实用程序操作、actor实用程序操作、Python 等运行这种类型的逻辑。



运行管道

是时候揭晓真相了。让我们对一些网格进行斜切!因为我们通过编辑器实用程序小部件来运行此过程,所以我们需要让该按钮真正显示出来。我们通过右键单击小部件资产并选择Run Editor Utility Widget来执行此操作。

它会弹出一个窗口,里面有我们巨大的按钮和一些超大文本。哦,好吧。这个选项卡可以像其他选项卡一样调整大小、重新定位和停靠。它是一个大按钮,所以剩下要做的就是点击它……

以下是倒角桌子的前后效果。请注意它是多么柔软和光滑。 

警告:撰写本文时,几何脚本仍处于测试阶段。我注意到,一些几何形状不规则的 CAD 模型在 5.3 中导致伪影,在 5.4 中应用倒角时导致崩溃。5.5+ 中对此进行了一些修复。如果您遇到此类问题,请检查您的日志并执行排除过程以识别问题网格。

结论

Dataprep 是一款强大的自动化工具,用于引入数据,而 Geometry Script 是一款非常有用的工具箱,用于修改网格。尽管它们尚未直接协同工作,但希望此处展示的解决方法能够以某种方式帮助您升级工作流程。本教程仅介绍了倒角作为系统的简单介绍,但您可以轻松地将其扩展到任何 Geometry Scripting 功能,如挤压、更改法线和 UV、按材质分离面、布尔运算、体素化等。我认为这是一个尚未开发的机会!

通过对上面的简单编辑器实用程序小部件进行一些调整和升级,您可以看到它如何成为您和您的团队自己的导入工具。所有蓝图都可从以下链接下载。 

我将继续使用其他有用的几何脚本函数更新此文档。祝您编写脚本愉快!

相聚 Unreal Fest Shanghai 2024

当前在售限量500张五折门票,只要648,开启你的两天干货充电之旅!除了行业前沿的技术分享和探讨,我们还在现场为大家准备了各种虚幻引擎技术演示和业内小伙伴们打造的虚幻新作试玩,还有丰富的趣味活动和虚幻特别周边等你领取!

请注意,本次活动需凭票入场,采用实名制购票,具体购票方式见购票页面,更多议程内容将陆续公开,敬请关注。



近期焦点
时隔五年,Tim再临上海,首波议题公布!
Unreal Fest Shanghai 2024 | 虚幻引擎技术开放日,开票啦!
通过游戏动画示例项目获取500多种免费动画
UOD Awards 2024 作品征集,启动!
虚幻引擎5.4现已发布
GDC 2024:来自State of Unreal的重大新闻
欢迎来到全新的虚幻引擎网站


扫描下方二维码,关注后点击菜单栏按钮“更多内容”并选择“联系我们”获得更多虚幻引擎的授权合作方式和技术支持
长按屏幕选择“识别二维码”关注虚幻引擎
“虚幻引擎”微信公众账号是Epic Games旗下Unreal Engine的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。


虚幻引擎
Epic Games 旗下 Unreal Engine 虚幻引擎官方订阅号
 最新文章