修改了不少

This commit is contained in:
Sch 2023-08-05 10:02:48 +08:00
parent 0b5c87e4e2
commit dc6765c015
30 changed files with 954 additions and 4473 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ Intermediate
.vs
Binaries
DefaultProject
Build

View File

@ -1,567 +0,0 @@
"../../../Engine/Content/EditorResources/S_Actor.ubulk" 0
"../../../Engine/Content/EditorResources/S_Actor.uasset" 1
"../../../Engine/Content/EditorResources/S_Actor.uexp" 2
"../../../Engine/Content/EditorResources/S_BoxReflectionCapture.uasset" 3
"../../../Engine/Content/EditorResources/S_BoxReflectionCapture.uexp" 4
"../../../Engine/Content/EngineResources/DefaultTexture.ubulk" 5
"../../../Engine/Content/EngineResources/DefaultTexture.uasset" 6
"../../../Engine/Content/EngineResources/DefaultTexture.uexp" 7
"../../../Engine/Content/EngineResources/DefaultTextureCube.uasset" 8
"../../../Engine/Content/EngineResources/DefaultTextureCube.uexp" 9
"../../../Engine/Content/EngineResources/DefaultVolumeTexture2D.uasset" 10
"../../../Engine/Content/EngineResources/DefaultVolumeTexture2D.uexp" 11
"../../../Engine/Content/EngineResources/DefaultVolumeTexture.uasset" 12
"../../../Engine/Content/EngineResources/DefaultVolumeTexture.uexp" 13
"../../../Engine/Content/EditorResources/S_Trigger.ubulk" 14
"../../../Engine/Content/EditorResources/S_Trigger.uasset" 15
"../../../Engine/Content/EditorResources/S_Trigger.uexp" 16
"../../../Engine/Content/EditorResources/S_TriggerBox.uasset" 17
"../../../Engine/Content/EditorResources/S_TriggerBox.uexp" 18
"../../../Engine/Content/EditorResources/S_TriggerCapsule.uasset" 19
"../../../Engine/Content/EditorResources/S_TriggerCapsule.uexp" 20
"../../../Engine/Content/EditorResources/S_TriggerSphere.uasset" 21
"../../../Engine/Content/EditorResources/S_TriggerSphere.uexp" 22
"../../../Engine/Content/EngineMeshes/Sphere.ubulk" 23
"../../../Engine/Content/EngineMeshes/Sphere.uasset" 24
"../../../Engine/Content/EngineMeshes/Sphere.uexp" 25
"../../../Engine/Content/EngineResources/GradientTexture0.uasset" 26
"../../../Engine/Content/EngineResources/GradientTexture0.uexp" 27
"../../../Engine/Content/EngineResources/Black.uasset" 28
"../../../Engine/Content/EngineResources/Black.uexp" 29
"../../../Engine/Content/VREditor/LaserPointer/VR_LaserPower_01.ubulk" 30
"../../../Engine/Content/VREditor/LaserPointer/VR_LaserPower_01.uasset" 31
"../../../Engine/Content/VREditor/LaserPointer/VR_LaserPower_01.uexp" 32
"../../../Engine/Content/VREditor/TransformGizmo/TransformGizmoMaterial.uasset" 33
"../../../Engine/Content/VREditor/TransformGizmo/TransformGizmoMaterial.uexp" 34
"../../../Engine/Content/VREditor/TransformGizmo/TranslucentTransformGizmoMaterial.uasset" 35
"../../../Engine/Content/VREditor/TransformGizmo/TranslucentTransformGizmoMaterial.uexp" 36
"../../../Engine/Content/VREditor/TransformGizmo/PlaneTranslationHandle.ubulk" 37
"../../../Engine/Content/VREditor/TransformGizmo/PlaneTranslationHandle.uasset" 38
"../../../Engine/Content/VREditor/TransformGizmo/PlaneTranslationHandle.uexp" 39
"../../../Engine/Content/VREditor/TransformGizmo/BoundingBoxCorner.ubulk" 40
"../../../Engine/Content/VREditor/TransformGizmo/BoundingBoxCorner.uasset" 41
"../../../Engine/Content/VREditor/TransformGizmo/BoundingBoxCorner.uexp" 42
"../../../Engine/Content/VREditor/TransformGizmo/BoundingBoxEdge.ubulk" 43
"../../../Engine/Content/VREditor/TransformGizmo/BoundingBoxEdge.uasset" 44
"../../../Engine/Content/VREditor/TransformGizmo/BoundingBoxEdge.uexp" 45
"../../../Engine/Content/VREditor/TransformGizmo/Main.uasset" 46
"../../../Engine/Content/VREditor/TransformGizmo/Main.uexp" 47
"../../../Engine/Content/VREditor/TransformGizmo/Xray.uasset" 48
"../../../Engine/Content/VREditor/TransformGizmo/Xray.uexp" 49
"../../../Engine/Content/VREditor/TransformGizmo/SM_Sequencer_Node.ubulk" 50
"../../../Engine/Content/VREditor/TransformGizmo/SM_Sequencer_Node.uasset" 51
"../../../Engine/Content/VREditor/TransformGizmo/SM_Sequencer_Node.uexp" 52
"../../../Engine/Content/EditorMaterials/Camera/CineMat.uasset" 53
"../../../Engine/Content/EditorMaterials/Camera/CineMat.uexp" 54
"../../../Engine/Content/EditorMaterials/Camera/MI_CineMat_Rig.uasset" 55
"../../../Engine/Content/EditorMaterials/Camera/MI_CineMat_Rig.uexp" 56
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Base.ubulk" 57
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Base.uasset" 58
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Base.uexp" 59
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Arm.ubulk" 60
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Arm.uasset" 61
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Arm.uexp" 62
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Mount.ubulk" 63
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Mount.uasset" 64
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Mount.uexp" 65
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Body.ubulk" 66
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Body.uasset" 67
"../../../Engine/Content/EditorMeshes/Camera/SM_CraneRig_Body.uexp" 68
"../../../Engine/Content/EditorMeshes/Camera/SM_RailRig_Track.ubulk" 69
"../../../Engine/Content/EditorMeshes/Camera/SM_RailRig_Track.uasset" 70
"../../../Engine/Content/EditorMeshes/Camera/SM_RailRig_Track.uexp" 71
"../../../Engine/Content/EditorMeshes/Camera/SM_RailRig_Mount.ubulk" 72
"../../../Engine/Content/EditorMeshes/Camera/SM_RailRig_Mount.uasset" 73
"../../../Engine/Content/EditorMeshes/Camera/SM_RailRig_Mount.uexp" 74
"../../../Engine/Content/EngineMaterials/T_Default_Material_Grid_M.ubulk" 75
"../../../Engine/Content/EngineMaterials/T_Default_Material_Grid_M.uasset" 76
"../../../Engine/Content/EngineMaterials/T_Default_Material_Grid_M.uexp" 77
"../../../Engine/Content/EngineMaterials/T_Default_Material_Grid_N.ubulk" 78
"../../../Engine/Content/EngineMaterials/T_Default_Material_Grid_N.uasset" 79
"../../../Engine/Content/EngineMaterials/T_Default_Material_Grid_N.uexp" 80
"../../../Engine/Content/Functions/Engine_MaterialFunctions01/Opacity/CameraDepthFade.uasset" 81
"../../../Engine/Content/Functions/Engine_MaterialFunctions01/Opacity/CameraDepthFade.uexp" 82
"../../../Engine/Content/EngineMaterials/WorldGridMaterial.uasset" 83
"../../../Engine/Content/EngineMaterials/WorldGridMaterial.uexp" 84
"../../../Engine/Content/ArtTools/RenderToTexture/Meshes/S_1_Unit_Plane.ubulk" 85
"../../../Engine/Content/ArtTools/RenderToTexture/Meshes/S_1_Unit_Plane.uasset" 86
"../../../Engine/Content/ArtTools/RenderToTexture/Meshes/S_1_Unit_Plane.uexp" 87
"../../../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_NoImage.ubulk" 88
"../../../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_NoImage.uasset" 89
"../../../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_NoImage.uexp" 90
"../../../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_OOD.ubulk" 91
"../../../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_OOD.uasset" 92
"../../../Engine/Content/EditorMaterials/ParticleSystems/PSysThumbnail_OOD.uexp" 93
"../../../Engine/Content/EditorLandscapeResources/SplineEditorMeshMat.uasset" 94
"../../../Engine/Content/EditorLandscapeResources/SplineEditorMeshMat.uexp" 95
"../../../Engine/Content/EditorLandscapeResources/SplineEditorMesh.ubulk" 96
"../../../Engine/Content/EditorLandscapeResources/SplineEditorMesh.uasset" 97
"../../../Engine/Content/EditorLandscapeResources/SplineEditorMesh.uexp" 98
"../../../Engine/Content/EditorResources/S_Solver.ubulk" 99
"../../../Engine/Content/EditorResources/S_Solver.uasset" 100
"../../../Engine/Content/EditorResources/S_Solver.uexp" 101
"../../../Engine/Plugins/Media/MediaPlate/Content/SM_MediaPlateScreen.ubulk" 102
"../../../Engine/Plugins/Media/MediaPlate/Content/SM_MediaPlateScreen.uasset" 103
"../../../Engine/Plugins/Media/MediaPlate/Content/SM_MediaPlateScreen.uexp" 104
"../../../Engine/Content/EngineMaterials/Good64x64TilingNoiseHighFreq.uasset" 105
"../../../Engine/Content/EngineMaterials/Good64x64TilingNoiseHighFreq.uexp" 106
"../../../Engine/Content/EngineMaterials/DefaultBokeh.uasset" 107
"../../../Engine/Content/EngineMaterials/DefaultBokeh.uexp" 108
"../../../Engine/Content/EngineMaterials/PreintegratedSkinBRDF.uasset" 109
"../../../Engine/Content/EngineMaterials/PreintegratedSkinBRDF.uexp" 110
"../../../Engine/Content/EngineMaterials/MiniFont.uasset" 111
"../../../Engine/Content/EngineMaterials/MiniFont.uexp" 112
"../../../Engine/Content/EngineMaterials/WeightMapPlaceholderTexture.uasset" 113
"../../../Engine/Content/EngineMaterials/WeightMapPlaceholderTexture.uexp" 114
"../../../Engine/Content/EngineMaterials/DefaultWhiteGrid.ubulk" 115
"../../../Engine/Content/EngineMaterials/DefaultWhiteGrid.uasset" 116
"../../../Engine/Content/EngineMaterials/DefaultWhiteGrid.uexp" 117
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/WorldPositionOffset/CameraOffset.uasset" 118
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/WorldPositionOffset/CameraOffset.uexp" 119
"../../../Engine/Plugins/Animation/ControlRig/Content/M_Manip.uasset" 120
"../../../Engine/Plugins/Animation/ControlRig/Content/M_Manip.uexp" 121
"../../../Engine/Plugins/2D/Paper2D/Content/PlaceholderTextures/DummySpriteTexture.ubulk" 122
"../../../Engine/Plugins/2D/Paper2D/Content/PlaceholderTextures/DummySpriteTexture.uasset" 123
"../../../Engine/Plugins/2D/Paper2D/Content/PlaceholderTextures/DummySpriteTexture.uexp" 124
"../../../Engine/Plugins/2D/Paper2D/Content/DefaultSpriteMaterial.uasset" 125
"../../../Engine/Plugins/2D/Paper2D/Content/DefaultSpriteMaterial.uexp" 126
"../../../Engine/Plugins/2D/Paper2D/Content/OpaqueUnlitSpriteMaterial.uasset" 127
"../../../Engine/Plugins/2D/Paper2D/Content/OpaqueUnlitSpriteMaterial.uexp" 128
"../../../Engine/Plugins/2D/Paper2D/Content/MaskedUnlitSpriteMaterial.uasset" 129
"../../../Engine/Plugins/2D/Paper2D/Content/MaskedUnlitSpriteMaterial.uexp" 130
"../../../Engine/Plugins/2D/Paper2D/Content/DummySprite.uasset" 131
"../../../Engine/Plugins/2D/Paper2D/Content/DummySprite.uexp" 132
"../../../Engine/Plugins/2D/Paper2D/Content/DefaultPaperTerrainMaterial.uasset" 133
"../../../Engine/Plugins/2D/Paper2D/Content/DefaultPaperTerrainMaterial.uexp" 134
"../../../Engine/Content/Animation/DefaultRecorderBoneCompression.uasset" 135
"../../../Engine/Content/Animation/DefaultRecorderBoneCompression.uexp" 136
"../../../Engine/Content/Animation/DefaultAnimCurveCompressionSettings.uasset" 137
"../../../Engine/Content/Animation/DefaultAnimCurveCompressionSettings.uexp" 138
"../../../Engine/Content/Animation/DefaultAnimBoneCompressionSettings.uasset" 139
"../../../Engine/Content/Animation/DefaultAnimBoneCompressionSettings.uexp" 140
"../../../Engine/Content/EngineMaterials/DefaultMaterial.uasset" 141
"../../../Engine/Content/EngineMaterials/DefaultMaterial.uexp" 142
"../../../Engine/Content/BasicShapes/Sphere.ubulk" 143
"../../../Engine/Content/BasicShapes/Sphere.uasset" 144
"../../../Engine/Content/BasicShapes/Sphere.uexp" 145
"../../../Engine/Content/BasicShapes/Plane.ubulk" 146
"../../../Engine/Content/BasicShapes/Plane.uasset" 147
"../../../Engine/Content/BasicShapes/Plane.uexp" 148
"../../../Engine/Content/BasicShapes/Cylinder.ubulk" 149
"../../../Engine/Content/BasicShapes/Cylinder.uasset" 150
"../../../Engine/Content/BasicShapes/Cylinder.uexp" 151
"../../../Engine/Content/BasicShapes/Cube.ubulk" 152
"../../../Engine/Content/BasicShapes/Cube.uasset" 153
"../../../Engine/Content/BasicShapes/Cube.uexp" 154
"../../../Engine/Content/BasicShapes/Cone.ubulk" 155
"../../../Engine/Content/BasicShapes/Cone.uasset" 156
"../../../Engine/Content/BasicShapes/Cone.uexp" 157
"../../../Engine/Content/EditorMaterials/PreviewShadowIndicator.ubulk" 158
"../../../Engine/Content/EditorMaterials/PreviewShadowIndicator.uasset" 159
"../../../Engine/Content/EditorMaterials/PreviewShadowIndicator.uexp" 160
"../../../Engine/Content/EditorMaterials/PreviewShadowIndicatorMaterial.uasset" 161
"../../../Engine/Content/EditorMaterials/PreviewShadowIndicatorMaterial.uexp" 162
"../../../Engine/Content/EditorMaterials/PhAT_UnselectedMaterial.uasset" 163
"../../../Engine/Content/EditorMaterials/PhAT_UnselectedMaterial.uexp" 164
"../../../Engine/Content/EditorMaterials/PhAT_NoCollisionMaterial.uasset" 165
"../../../Engine/Content/EditorMaterials/PhAT_NoCollisionMaterial.uexp" 166
"../../../Engine/Content/EngineResources/WhiteSquareTexture.uasset" 167
"../../../Engine/Content/EngineResources/WhiteSquareTexture.uexp" 168
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough.uasset" 169
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough.uexp" 170
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Translucent.uasset" 171
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Translucent.uexp" 172
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Translucent_OneSided.uasset" 173
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Translucent_OneSided.uexp" 174
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Opaque.uasset" 175
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Opaque.uexp" 176
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Opaque_OneSided.uasset" 177
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Opaque_OneSided.uexp" 178
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Masked_OneSided.uasset" 179
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Masked_OneSided.uexp" 180
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Masked.uasset" 181
"../../../Engine/Content/EngineMaterials/Widget3DPassThrough_Masked.uexp" 182
"../../../Engine/Content/EngineMaterials/STBlueNoise_vec2_128x128x64.uasset" 183
"../../../Engine/Content/EngineMaterials/STBlueNoise_vec2_128x128x64.uexp" 184
"../../../Engine/Content/EngineMaterials/STBlueNoise_scalar_128x128x64.uasset" 185
"../../../Engine/Content/EngineMaterials/STBlueNoise_scalar_128x128x64.uexp" 186
"../../../Engine/Content/EngineMaterials/RemoveSurfaceMaterial.uasset" 187
"../../../Engine/Content/EngineMaterials/RemoveSurfaceMaterial.uexp" 188
"../../../Engine/Content/EngineMaterials/DefaultCalibrationGrayscale.uasset" 189
"../../../Engine/Content/EngineMaterials/DefaultCalibrationGrayscale.uexp" 190
"../../../Engine/Content/EngineMaterials/PPM_DefaultCalibrationGrayscale.uasset" 191
"../../../Engine/Content/EngineMaterials/PPM_DefaultCalibrationGrayscale.uexp" 192
"../../../Engine/Content/EngineMaterials/DefaultCalibrationColor.uasset" 193
"../../../Engine/Content/EngineMaterials/DefaultCalibrationColor.uexp" 194
"../../../Engine/Content/EngineMaterials/PPM_DefaultCalibrationColor.uasset" 195
"../../../Engine/Content/EngineMaterials/PPM_DefaultCalibrationColor.uexp" 196
"../../../Engine/Plugins/Runtime/MeshModelingToolset/Content/Materials/M_DynamicMeshComponentVtxColor.uasset" 197
"../../../Engine/Plugins/Runtime/MeshModelingToolset/Content/Materials/M_DynamicMeshComponentVtxColor.uexp" 198
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultTexturePipeline.uasset" 199
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultTexturePipeline.uexp" 200
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultSceneLevelPipeline.uasset" 201
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultSceneLevelPipeline.uexp" 202
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultSceneAssetsPipeline.uasset" 203
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultSceneAssetsPipeline.uexp" 204
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultMaterialPipeline.uasset" 205
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultMaterialPipeline.uexp" 206
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultAssetsPipeline.uasset" 207
"../../../Engine/Plugins/Interchange/Runtime/Content/Pipelines/DefaultAssetsPipeline.uexp" 208
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/game_wind_noise.ubulk" 209
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/game_wind_noise.uasset" 210
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/game_wind_noise.uexp" 211
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/UnpackDirection.uasset" 212
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/UnpackDirection.uexp" 213
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/ObjectLocalBounds.uasset" 214
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/ObjectLocalBounds.uexp" 215
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/BreakOutFloat3Components.uasset" 216
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/BreakOutFloat3Components.uexp" 217
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/UVs/BoundingBoxBased_0-1_UVW.uasset" 218
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/UVs/BoundingBoxBased_0-1_UVW.uexp" 219
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/VectorLength.uasset" 220
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/VectorLength.uexp" 221
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/UnpackInteger3.uasset" 222
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/UnpackInteger3.uexp" 223
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeCameraFacing.uasset" 224
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeCameraFacing.uexp" 225
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/WorldPositionOffset/ObjectScale.uasset" 226
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/WorldPositionOffset/ObjectScale.uexp" 227
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/SafeNormalize.uasset" 228
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/SafeNormalize.uexp" 229
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeWindMotion.uasset" 230
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeWindMotion.uexp" 231
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeBranchMotion.uasset" 232
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeBranchMotion.uexp" 233
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeWind.uasset" 234
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeWind.uexp" 235
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/EmptyNormal.uasset" 236
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/EmptyNormal.uexp" 237
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/Empty.uasset" 238
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/Empty.uexp" 239
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeMaster.uasset" 240
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeMaster.uexp" 241
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeBillboard.uasset" 242
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeBillboard.uexp" 243
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeBillboardMaster.uasset" 244
"../../../Engine/Plugins/Editor/SpeedTreeImporter/Content/SpeedTree9/SpeedTreeBillboardMaster.uexp" 245
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/DefaultGizmoLibraryNormalized.uasset" 246
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/DefaultGizmoLibraryNormalized.uexp" 247
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_solid.ubulk" 248
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_solid.uasset" 249
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_solid.uexp" 250
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_3mm.ubulk" 251
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_3mm.uasset" 252
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_3mm.uexp" 253
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_1mm.ubulk" 254
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_1mm.uasset" 255
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Wedge_1mm.uexp" 256
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_solid.ubulk" 257
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_solid.uasset" 258
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_solid.uexp" 259
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_3mm.ubulk" 260
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_3mm.uasset" 261
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_3mm.uexp" 262
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_1mm.ubulk" 263
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_1mm.uasset" 264
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Triangle_1mm.uexp" 265
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_solid.ubulk" 266
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_solid.uasset" 267
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_solid.uexp" 268
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_3mm.ubulk" 269
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_3mm.uasset" 270
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_3mm.uexp" 271
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_1mm.ubulk" 272
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_1mm.uasset" 273
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Star4_1mm.uexp" 274
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_solid.ubulk" 275
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_solid.uasset" 276
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_solid.uexp" 277
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_3mm.ubulk" 278
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_3mm.uasset" 279
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_3mm.uexp" 280
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_1mm.ubulk" 281
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_1mm.uasset" 282
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Square_1mm.uexp" 283
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_solid.ubulk" 284
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_solid.uasset" 285
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_solid.uexp" 286
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_3mm.ubulk" 287
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_3mm.uasset" 288
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_3mm.uexp" 289
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_1mm.ubulk" 290
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_1mm.uasset" 291
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Sphere_1mm.uexp" 292
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_solid.ubulk" 293
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_solid.uasset" 294
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_solid.uexp" 295
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_3mm.ubulk" 296
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_3mm.uasset" 297
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_3mm.uexp" 298
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_1mm.ubulk" 299
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_1mm.uasset" 300
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedTriangle_1mm.uexp" 301
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_solid.ubulk" 302
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_solid.uasset" 303
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_solid.uexp" 304
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_3mm.ubulk" 305
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_3mm.uasset" 306
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_3mm.uexp" 307
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_1mm.ubulk" 308
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_1mm.uasset" 309
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_RoundedSquare_1mm.uexp" 310
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_solid.ubulk" 311
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_solid.uasset" 312
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_solid.uexp" 313
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_3mm.ubulk" 314
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_3mm.uasset" 315
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_3mm.uexp" 316
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_1mm.ubulk" 317
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_1mm.uasset" 318
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_QuarterCircle_1mm.uexp" 319
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_solid.ubulk" 320
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_solid.uasset" 321
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_solid.uexp" 322
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_3mm.ubulk" 323
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_3mm.uasset" 324
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_3mm.uexp" 325
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_1mm.ubulk" 326
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_1mm.uasset" 327
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Pyramid_1mm.uexp" 328
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_solid.ubulk" 329
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_solid.uasset" 330
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_solid.uexp" 331
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_3mm.ubulk" 332
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_3mm.uasset" 333
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_3mm.uexp" 334
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_1mm.ubulk" 335
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_1mm.uasset" 336
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Octagon_1mm.uexp" 337
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_solid.ubulk" 338
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_solid.uasset" 339
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_solid.uexp" 340
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_3mm.ubulk" 341
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_3mm.uasset" 342
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_3mm.uexp" 343
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_1mm.ubulk" 344
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_1mm.uasset" 345
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Hexagon_1mm.uexp" 346
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_solid.ubulk" 347
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_solid.uasset" 348
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_solid.uexp" 349
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_3mm.ubulk" 350
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_3mm.uasset" 351
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_3mm.uexp" 352
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_1mm.ubulk" 353
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_1mm.uasset" 354
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_HalfCircle_1mm.uexp" 355
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_solid.ubulk" 356
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_solid.uasset" 357
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_solid.uexp" 358
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_3mm.ubulk" 359
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_3mm.uasset" 360
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_3mm.uexp" 361
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_1mm.ubulk" 362
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_1mm.uasset" 363
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Diamond_1mm.uexp" 364
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_solid.ubulk" 365
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_solid.uasset" 366
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_solid.uexp" 367
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_3mm.ubulk" 368
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_3mm.uasset" 369
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_3mm.uexp" 370
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_1mm.ubulk" 371
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_1mm.uasset" 372
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Circle_1mm.uexp" 373
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_solid.ubulk" 374
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_solid.uasset" 375
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_solid.uexp" 376
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_3mm.ubulk" 377
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_3mm.uasset" 378
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_3mm.uexp" 379
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_1mm.ubulk" 380
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_1mm.uasset" 381
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Box_1mm.uexp" 382
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_solid.ubulk" 383
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_solid.uasset" 384
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_solid.uexp" 385
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_3mm.ubulk" 386
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_3mm.uasset" 387
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_3mm.uexp" 388
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_1mm.ubulk" 389
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_1mm.uasset" 390
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow_1mm.uexp" 391
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_solid.ubulk" 392
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_solid.uasset" 393
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_solid.uexp" 394
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_3mm.ubulk" 395
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_3mm.uasset" 396
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_3mm.uexp" 397
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_1mm.ubulk" 398
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_1mm.uasset" 399
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow4_1mm.uexp" 400
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_solid.ubulk" 401
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_solid.uasset" 402
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_solid.uexp" 403
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_3mm.ubulk" 404
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_3mm.uasset" 405
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_3mm.uexp" 406
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_1mm.ubulk" 407
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_1mm.uasset" 408
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRig_Arrow2_1mm.uexp" 409
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRigXRayMaterial.uasset" 410
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRigXRayMaterial.uexp" 411
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRigGizmoMaterial.uasset" 412
"../../../Engine/Plugins/Animation/ControlRig/Content/Controls/ControlRigGizmoMaterial.uexp" 413
"../../../Engine/Content/EngineSounds/Master.uasset" 414
"../../../Engine/Content/EngineSounds/Master.uexp" 415
"../../../Engine/Content/EngineMaterials/PhAT_JointLimitMaterial.uasset" 416
"../../../Engine/Content/EngineMaterials/PhAT_JointLimitMaterial.uexp" 417
"../../../Engine/Content/EngineMaterials/NaniteHiddenSectionMaterial.uasset" 418
"../../../Engine/Content/EngineMaterials/NaniteHiddenSectionMaterial.uexp" 419
"../../../Engine/Content/EngineMaterials/InvalidLightmapSettings.ubulk" 420
"../../../Engine/Content/EngineMaterials/InvalidLightmapSettings.uasset" 421
"../../../Engine/Content/EngineMaterials/InvalidLightmapSettings.uexp" 422
"../../../Engine/Content/EngineMaterials/M_InvalidLightmapSettings.uasset" 423
"../../../Engine/Content/EngineMaterials/M_InvalidLightmapSettings.uexp" 424
"../../../Engine/Content/EngineMaterials/GizmoMaterial.uasset" 425
"../../../Engine/Content/EngineMaterials/GizmoMaterial.uexp" 426
"../../../Engine/Content/EngineMaterials/BaseFlattenEmissiveMap_VT.uasset" 427
"../../../Engine/Content/EngineMaterials/BaseFlattenEmissiveMap_VT.uexp" 428
"../../../Engine/Content/EngineMaterials/BaseFlattenGrayscaleMap_VT.uasset" 429
"../../../Engine/Content/EngineMaterials/BaseFlattenGrayscaleMap_VT.uexp" 430
"../../../Engine/Content/EngineMaterials/BaseFlattenLinearColor_VT.uasset" 431
"../../../Engine/Content/EngineMaterials/BaseFlattenLinearColor_VT.uexp" 432
"../../../Engine/Content/EngineMaterials/Black_1x1_EXR_Texture_VT.uasset" 433
"../../../Engine/Content/EngineMaterials/Black_1x1_EXR_Texture_VT.uexp" 434
"../../../Engine/Content/EngineMaterials/BaseFlattenDiffuseMap_VT.uasset" 435
"../../../Engine/Content/EngineMaterials/BaseFlattenDiffuseMap_VT.uexp" 436
"../../../Engine/Content/EngineMaterials/BaseFlattenNormalMap_VT.uasset" 437
"../../../Engine/Content/EngineMaterials/BaseFlattenNormalMap_VT.uexp" 438
"../../../Engine/Content/EngineMaterials/FlattenMaterial_WS_Normal_VT.uasset" 439
"../../../Engine/Content/EngineMaterials/FlattenMaterial_WS_Normal_VT.uexp" 440
"../../../Engine/Content/EngineMaterials/FlattenMaterial_VT.uasset" 441
"../../../Engine/Content/EngineMaterials/FlattenMaterial_VT.uexp" 442
"../../../Engine/Content/EngineMaterials/BaseFlattenNormalMap.uasset" 443
"../../../Engine/Content/EngineMaterials/BaseFlattenNormalMap.uexp" 444
"../../../Engine/Content/EngineMaterials/BaseFlattenGrayscaleMap.uasset" 445
"../../../Engine/Content/EngineMaterials/BaseFlattenGrayscaleMap.uexp" 446
"../../../Engine/Content/EngineMaterials/BaseFlattenDiffuseMap.uasset" 447
"../../../Engine/Content/EngineMaterials/BaseFlattenDiffuseMap.uexp" 448
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/PivotPainter2/Black_1x1_EXR_Texture.uasset" 449
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/PivotPainter2/Black_1x1_EXR_Texture.uexp" 450
"../../../Engine/Content/EngineMaterials/BaseFlattenEmissiveMap.uasset" 451
"../../../Engine/Content/EngineMaterials/BaseFlattenEmissiveMap.uexp" 452
"../../../Engine/Content/EngineMaterials/BaseFlattenLinearColor.uasset" 453
"../../../Engine/Content/EngineMaterials/BaseFlattenLinearColor.uexp" 454
"../../../Engine/Content/EngineMaterials/FlattenMaterial.uasset" 455
"../../../Engine/Content/EngineMaterials/FlattenMaterial.uexp" 456
"../../../Engine/Content/EngineMaterials/DefaultWhiteGrid_Low.uasset" 457
"../../../Engine/Content/EngineMaterials/DefaultWhiteGrid_Low.uexp" 458
"../../../Engine/Content/EngineMaterials/EmissiveMeshMaterial.uasset" 459
"../../../Engine/Content/EngineMaterials/EmissiveMeshMaterial.uexp" 460
"../../../Engine/Content/EngineFonts/RobotoDistanceField.uasset" 461
"../../../Engine/Content/EngineFonts/RobotoDistanceField.uexp" 462
"../../../Engine/Content/EngineMaterials/DefaultTextMaterialOpaque.uasset" 463
"../../../Engine/Content/EngineMaterials/DefaultTextMaterialOpaque.uexp" 464
"../../../Engine/Content/EngineMaterials/DefaultDiffuse.ubulk" 465
"../../../Engine/Content/EngineMaterials/DefaultDiffuse.uasset" 466
"../../../Engine/Content/EngineMaterials/DefaultDiffuse.uexp" 467
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/BreakOutFloat2Components.uasset" 468
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/BreakOutFloat2Components.uexp" 469
"../../../Engine/Content/EngineMaterials/DefaultPostProcessMaterial.uasset" 470
"../../../Engine/Content/EngineMaterials/DefaultPostProcessMaterial.uexp" 471
"../../../Engine/Content/EngineMaterials/DefaultPhysicalMaterial.uasset" 472
"../../../Engine/Content/EngineMaterials/DefaultPhysicalMaterial.uexp" 473
"../../../Engine/Content/EngineMaterials/DefaultLightFunctionMaterial.uasset" 474
"../../../Engine/Content/EngineMaterials/DefaultLightFunctionMaterial.uexp" 475
"../../../Engine/Content/EngineMaterials/DefaultDestructiblePhysicalMaterial.uasset" 476
"../../../Engine/Content/EngineMaterials/DefaultDestructiblePhysicalMaterial.uexp" 477
"../../../Engine/Content/EngineMaterials/DefaultDeferredDecalMaterial.uasset" 478
"../../../Engine/Content/EngineMaterials/DefaultDeferredDecalMaterial.uexp" 479
"../../../Engine/Content/EngineMaterials/DefaultBloomKernel.uasset" 480
"../../../Engine/Content/EngineMaterials/DefaultBloomKernel.uexp" 481
"../../../Engine/Content/MobileResources/HUD/VirtualJoystick_Background.uasset" 482
"../../../Engine/Content/MobileResources/HUD/VirtualJoystick_Background.uexp" 483
"../../../Engine/Content/MobileResources/HUD/VirtualJoystick_Thumb.uasset" 484
"../../../Engine/Content/MobileResources/HUD/VirtualJoystick_Thumb.uexp" 485
"../../../Engine/Content/MobileResources/HUD/DefaultVirtualJoysticks.uasset" 486
"../../../Engine/Content/MobileResources/HUD/DefaultVirtualJoysticks.uexp" 487
"../../../Engine/Content/EngineSky/VolumetricClouds/CloudWeatherTexture.uasset" 488
"../../../Engine/Content/EngineSky/VolumetricClouds/CloudWeatherTexture.uexp" 489
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/MakeFloat2.uasset" 490
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/MakeFloat2.uexp" 491
"../../../Engine/Content/EngineSky/VolumetricClouds/CloudGradientTexture.uasset" 492
"../../../Engine/Content/EngineSky/VolumetricClouds/CloudGradientTexture.uexp" 493
"../../../Engine/Content/EngineSky/VolumetricClouds/T_NoiseShape64.ubulk" 494
"../../../Engine/Content/EngineSky/VolumetricClouds/T_NoiseShape64.uasset" 495
"../../../Engine/Content/EngineSky/VolumetricClouds/T_NoiseShape64.uexp" 496
"../../../Engine/Content/EngineSky/VolumetricClouds/T_VolumeNoiseShape64.uasset" 497
"../../../Engine/Content/EngineSky/VolumetricClouds/T_VolumeNoiseShape64.uexp" 498
"../../../Engine/Content/EngineSky/VolumetricClouds/T_NoiseErosion.ubulk" 499
"../../../Engine/Content/EngineSky/VolumetricClouds/T_NoiseErosion.uasset" 500
"../../../Engine/Content/EngineSky/VolumetricClouds/T_NoiseErosion.uexp" 501
"../../../Engine/Content/EngineSky/VolumetricClouds/T_VolumeNoiseErosion32.uasset" 502
"../../../Engine/Content/EngineSky/VolumetricClouds/T_VolumeNoiseErosion32.uexp" 503
"../../../Engine/Content/EngineSky/VolumetricClouds/m_SimpleVolumetricCloud.uasset" 504
"../../../Engine/Content/EngineSky/VolumetricClouds/m_SimpleVolumetricCloud.uexp" 505
"../../../Engine/Content/EngineSky/VolumetricClouds/m_SimpleVolumetricCloud_Inst.uasset" 506
"../../../Engine/Content/EngineSky/VolumetricClouds/m_SimpleVolumetricCloud_Inst.uexp" 507
"../../../Engine/Content/EngineResources/FilmGrains/Marcie_Grain_v3_128_M2_000.uasset" 508
"../../../Engine/Content/EngineResources/FilmGrains/Marcie_Grain_v3_128_M2_000.uexp" 509
"../../../Engine/Content/EngineFonts/Faces/RobotoLight.uexp" 510
"../../../Engine/Content/EngineFonts/Faces/RobotoLight.uasset" 511
"../../../Engine/Content/EngineFonts/Faces/RobotoLight.ufont" 512
"../../../Engine/Content/EngineFonts/Faces/RobotoBold.uexp" 513
"../../../Engine/Content/EngineFonts/Faces/RobotoBold.uasset" 514
"../../../Engine/Content/EngineFonts/Faces/RobotoBold.ufont" 515
"../../../Engine/Content/EngineFonts/Faces/RobotoRegular.uexp" 516
"../../../Engine/Content/EngineFonts/Faces/RobotoRegular.uasset" 517
"../../../Engine/Content/EngineFonts/Faces/RobotoRegular.ufont" 518
"../../../Engine/Content/EngineFonts/Faces/DroidSansFallback.uexp" 519
"../../../Engine/Content/EngineFonts/Faces/DroidSansFallback.uasset" 520
"../../../Engine/Content/EngineFonts/Faces/DroidSansFallback.ufont" 521
"../../../Engine/Content/EngineFonts/Faces/RobotoItalic.uexp" 522
"../../../Engine/Content/EngineFonts/Faces/RobotoItalic.uasset" 523
"../../../Engine/Content/EngineFonts/Faces/RobotoItalic.ufont" 524
"../../../Engine/Content/EngineFonts/Faces/RobotoBoldItalic.uexp" 525
"../../../Engine/Content/EngineFonts/Faces/RobotoBoldItalic.uasset" 526
"../../../Engine/Content/EngineFonts/Faces/RobotoBoldItalic.ufont" 527
"../../../Engine/Content/EngineFonts/Roboto.uasset" 528
"../../../Engine/Content/EngineFonts/Roboto.uexp" 529
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/CameraDirectionVector.uasset" 530
"../../../Engine/Content/Functions/Engine_MaterialFunctions02/Utility/CameraDirectionVector.uexp" 531
"../../../Engine/Content/EngineDebugMaterials/VolumeToRender.uasset" 532
"../../../Engine/Content/EngineDebugMaterials/VolumeToRender.uexp" 533
"../../../Engine/Content/EngineDebugMaterials/M_VolumeRenderSphereTracePP.uasset" 534
"../../../Engine/Content/EngineDebugMaterials/M_VolumeRenderSphereTracePP.uexp" 535
"../../../Engine/Content/EngineDebugMaterials/M_SimpleUnlitTranslucent.uasset" 536
"../../../Engine/Content/EngineDebugMaterials/M_SimpleUnlitTranslucent.uexp" 537
"../../../Engine/Content/EngineDebugMaterials/DebugMeshMaterial.uasset" 538
"../../../Engine/Content/EngineDebugMaterials/DebugMeshMaterial.uexp" 539
"../../../Engine/Content/EngineDebugMaterials/DebugEditorMaterial.uasset" 540
"../../../Engine/Content/EngineDebugMaterials/DebugEditorMaterial.uexp" 541
"../../../Engine/Content/EngineDamageTypes/DmgTypeBP_Environmental.uasset" 542
"../../../Engine/Content/EngineDamageTypes/DmgTypeBP_Environmental.uexp" 543
"../../../Engine/Content/EditorResources/S_Terrain.ubulk" 544
"../../../Engine/Content/EditorResources/S_Terrain.uasset" 545
"../../../Engine/Content/EditorResources/S_Terrain.uexp" 546
"../../../Engine/Content/EditorResources/BSPVertex.uasset" 547
"../../../Engine/Content/EditorResources/BSPVertex.uexp" 548
"../../../Engine/Content/EditorResources/SequenceRecorder/RecordingIndicator.uasset" 549
"../../../Engine/Content/EditorResources/SequenceRecorder/RecordingIndicator.uexp" 550
"../../../Engine/Content/EditorResources/SequenceRecorder/Countdown.uasset" 551
"../../../Engine/Content/EditorResources/SequenceRecorder/Countdown.uexp" 552
"../../../Engine/Content/EditorLandscapeResources/DefaultAlphaTexture.uasset" 553
"../../../Engine/Content/EditorLandscapeResources/DefaultAlphaTexture.uexp" 554
"../../../Engine/Content/EditorLandscapeResources/DataLayer.uasset" 555
"../../../Engine/Content/EditorLandscapeResources/DataLayer.uexp" 556
"../../../Engine/Content/Functions/Engine_MaterialFunctions01/Shading/PowerToRoughness.uasset" 557
"../../../Engine/Content/Functions/Engine_MaterialFunctions01/Shading/PowerToRoughness.uexp" 558
"../../../Engine/Content/Functions/Engine_MaterialFunctions01/Shading/ConvertFromDiffSpec.uasset" 559
"../../../Engine/Content/Functions/Engine_MaterialFunctions01/Shading/ConvertFromDiffSpec.uexp" 560
"D:/Project/Cut5/Content/MainMap.uexp" 561
"D:/Project/Cut5/Content/MainMap.umap" 562
"../../../Engine/Content/Maps/Entry_BuiltData.uasset" 563
"../../../Engine/Content/Maps/Entry_BuiltData.uexp" 564
"../../../Engine/Content/Maps/Entry.uexp" 565
"../../../Engine/Content/Maps/Entry.umap" 566

File diff suppressed because it is too large Load Diff

BIN
DefaultProject.cutlink Normal file

Binary file not shown.

BIN
Resources/Black.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

BIN
Resources/EngineLogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -36,6 +36,7 @@ public:
virtual void AddNewCard(FEffectCardProperty& CardProperty, FString GroupName) {};
virtual void OpenTimeline(const FString& TimelineName, bool NeedSaveBefore = false) {};
virtual void OpenProject(const FString& Project) {};
virtual void PreNewProject() {};
virtual void ExportProject(const FString& ExportPath) {};
virtual void ImportProject(const FString& ImportPath) {};
virtual void NewProject(const FString& NewPath){};

View File

@ -84,8 +84,8 @@ FString FFFMPEGUtils::LoadMedia(const FString& Path, FTimelinePropertyData* Prop
Texture->UpdateResource();
FGuid Guid = FGuid::NewGuid();
ExportImage(Texture, *FPaths::Combine(FPaths::ProjectSavedDir(), FGlobalData::CurrentProjectName, "Resources", "Thumbnail", Guid.ToString() + ".png"));
PropertyData->IconPath = FPaths::Combine(FPaths::ProjectSavedDir(), FGlobalData::CurrentProjectName, "Resources", "Thumbnail", Guid.ToString() + ".png");
ExportImage(Texture, *FPaths::Combine(FGlobalData::BasePath, FGlobalData::CurrentProjectName, "Resources", "Thumbnail", Guid.ToString() + ".png"));
PropertyData->IconPath = FPaths::Combine(FGlobalData::BasePath, FGlobalData::CurrentProjectName, "Resources", "Thumbnail", Guid.ToString() + ".png");
delete RawData;
}
}

View File

@ -33,6 +33,7 @@ public:
};
static FString MainSaveFullPath()
{
GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::White, FGlobalData::BasePath);
return FPaths::Combine(FGlobalData::BasePath, FGlobalData::CurrentProjectName, FGlobalData::CurrentProjectName + TEXT(".bin"));
};
};

View File

@ -0,0 +1,13 @@
#include "MainMenuCommands.h"
#define LOCTEXT_NAMESPACE "FTimelineClipCommands"
void FMainMenuCommands::RegisterCommands()
{
UI_COMMAND(NewProject, "新建", "Executes My TimelineClipCommands", EUserInterfaceActionType::Button, FInputChord());
UI_COMMAND(OpenProject, "打开", "Executes My TimelineClipCommands", EUserInterfaceActionType::Button, FInputChord());
UI_COMMAND(SaveProject, "保存", "Executes My TimelineClipCommands", EUserInterfaceActionType::Button, FInputChord());
UI_COMMAND(SaveProjectAs, "另存为", "Executes My TimelineClipCommands", EUserInterfaceActionType::Button, FInputChord());
UI_COMMAND(Setting, "设置", "Executes My TimelineClipCommands", EUserInterfaceActionType::Button, FInputChord());
UI_COMMAND(Exit, "退出", "Executes My TimelineClipCommands", EUserInterfaceActionType::Button, FInputChord());
}
#undef LOCTEXT_NAMESPACE

View File

@ -0,0 +1,26 @@
#pragma once
#include "CoreMinimal.h"
#include "Framework/Commands/Commands.h"
class FMainMenuCommands : public TCommands<FMainMenuCommands>
{
public:
FMainMenuCommands()
: TCommands<FMainMenuCommands>(TEXT("FMainMenuCommands"), NSLOCTEXT("Contexts", "FMainMenuCommands", "FMainMenuCommands"), NAME_None, FAppStyle::GetAppStyleSetName())
{
// 这里可以设置你的命令的默认键盘快捷键
}
// TCommands<> 接口
virtual void RegisterCommands() override;
TSharedPtr<FUICommandInfo> NewProject;
TSharedPtr<FUICommandInfo> OpenProject;
TSharedPtr<FUICommandInfo> SaveProject;
TSharedPtr<FUICommandInfo> SaveProjectAs;
TSharedPtr<FUICommandInfo> Setting;
TSharedPtr<FUICommandInfo> Exit;
};

View File

@ -0,0 +1,86 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "SCurtain.h"
#include "SCurtainPanel.h"
#include "SlateOptMacros.h"
#include "Cut5/Utils/Utils.h"
#include "Widgets/Text/SInlineEditableTextBlock.h"
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
void SCurtain::Construct(const FArguments& InArgs)
{
Curtain = InArgs._Curtain;
CurtainPanel = InArgs._CurtainPanel;
CurtainGroup = InArgs._CurtainGroup;
CurtainIndex = InArgs._CurtainIndex;
ChildSlot
[
SNew(SBox)
.WidthOverride(257)
.HeightOverride(50)
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SImage)
.ColorAndOpacity(Curtain->bIsActive ? FLinearColor(0.5, 0.5, 1.0, 1) : FLinearColor(1, 1, 1, 1))
.Image(FUtils::GetBrushFromImage(FUtils::GetResourcesPath("BackGround.png"), {}))
.OnMouseButtonDown_Lambda([this](const FGeometry& Geometry, const FPointerEvent& Event)
{
CurtainPanel->DeSelectedAll();
Curtain->bIsActive = true;
CurtainPanel->CallRender();
TSharedPtr<FCurtainDragDrop> CurtainDragDrop = MakeShared<FCurtainDragDrop>();
CurtainDragDrop->CurtainIndex = CurtainIndex;
CurtainDragDrop->GroupIndex = CurtainGroup - &CurtainPanel->Groups[0];
CurtainDragDrop->DragDropType = FCutDragDropBase::EType::CurtainDrag;
CurtainDragDrop->DraggingWidget = SharedThis(this);
return FReply::Handled().DetectDrag(SharedThis(this), EKeys::LeftMouseButton).BeginDragDrop(CurtainDragDrop.ToSharedRef());
})
]
+ SOverlay::Slot()
.HAlign(HAlign_Left)
.VAlign(VAlign_Center)
[
SNew(SInlineEditableTextBlock)
.Text(FText::FromString(Curtain->CurtainName))
.OnTextCommitted_Lambda([this](const FText& Text, ETextCommit::Type CommitType)
{
Curtain->CurtainName = Text.ToString();
CurtainPanel->CallRender();
})
]
]
];
}
FReply SCurtain::OnDragDetected(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent)
{
return FReply::Handled();
}
FReply SCurtain::OnDrop(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent)
{
TSharedPtr<FCurtainDragDrop> CurtainDragDrop = DragDropEvent.GetOperationAs<FCurtainDragDrop>();
if (CurtainDragDrop.IsValid())
{
if (CurtainDragDrop->DragDropType == FCutDragDropBase::EType::CurtainDrag)
{
CurtainPanel->Move(CurtainDragDrop->CurtainIndex, CurtainIndex, CurtainDragDrop->GroupIndex, CurtainGroup - &CurtainPanel->Groups[0]);
return FReply::Handled().EndDragDrop();
}
}
return FReply::Handled();
}
END_SLATE_FUNCTION_BUILD_OPTIMIZATION

View File

@ -0,0 +1,32 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Cut5/Widgets/DefineGlobal.h"
#include "Widgets/SCompoundWidget.h"
/**
*
*/
class CUT5_API SCurtain : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SCurtain)
{
}
SLATE_ARGUMENT(FCurtainGroup*, CurtainGroup)
SLATE_ARGUMENT(FCurtain*, Curtain)
SLATE_ARGUMENT(class SCurtainPanel*, CurtainPanel)
SLATE_ARGUMENT(int32, CurtainIndex)
SLATE_END_ARGS()
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
virtual FReply OnDragDetected(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnDrop(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent) override;
SCurtainPanel* CurtainPanel;
FCurtain* Curtain;
FCurtainGroup* CurtainGroup;
int32 CurtainIndex;
};

View File

@ -0,0 +1,116 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "SCurtainGroup.h"
#include "SCurtain.h"
#include "SCurtainPanel.h"
#include "SlateOptMacros.h"
#include "Cut5/Utils/Utils.h"
#include "Widgets/Layout/SExpandableArea.h"
#include "Widgets/Text/SInlineEditableTextBlock.h"
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
void SCurtainGroup::Construct(const FArguments& InArgs)
{
CurtainGroup = InArgs._CurtainGroup;
CurtainPanel = InArgs._CurtainPanel;
ChildSlot
[
SNew(SBox)
.WidthOverride(257)
.Padding(3)
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SBorder)
.ColorAndOpacity(CurtainGroup->bIsActive ? FLinearColor(0.5, 0.5, 1.0, 1) : FLinearColor(1, 1, 1, 1))
]
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SImage)
.Image(FUtils::GetBrushFromImage(FUtils::GetResourcesPath("BackGround.png"), {}))
.ColorAndOpacity(CurtainGroup->bIsActive ? FLinearColor(0.5, 0.5, 1.0, 1) : FLinearColor(1, 1, 1, 1))
.OnMouseButtonDown_Lambda([this](const FGeometry& Geometry, const FPointerEvent& Event)
{
CurtainPanel->DeSelectedAll();
CurtainGroup->bIsActive = true;
CallRender();
return FReply::Handled();
})
]
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SExpandableArea)
.OnAreaExpansionChanged_Lambda([this](bool bIsExpanded)
{
CurtainPanel->DeSelectedAll();
CurtainGroup->bIsActive = true;
CallRender();
})
.HeaderContent()
[
SNew(SInlineEditableTextBlock)
.Text(FText::FromString(CurtainGroup->GroupName))
.OnVerifyTextChanged_Lambda([](const FText& Text, FText& ErrorMessage)
{
if (Text.ToString() == "")
{
ErrorMessage = FText::FromString(TEXT("组名不能为空"));
return false;
}
return true;
})
]
.BodyContent()
[
SAssignNew(ContentVerticalBox, SVerticalBox)
]
]
]
];
CallRender();
}
void SCurtainGroup::CallRender()
{
ContentVerticalBox->ClearChildren();
for (FCurtain& Curtain : CurtainGroup->Curtains)
{
ContentVerticalBox->AddSlot()
[
SNew(SCurtain)
.Curtain(&Curtain)
.CurtainGroup(CurtainGroup)
.CurtainPanel(CurtainPanel)
.CurtainIndex(&Curtain - &CurtainGroup->Curtains[0])
];
}
}
FReply SCurtainGroup::OnDrop(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent)
{
TSharedPtr<FCurtainDragDrop> CurtainDragDrop = DragDropEvent.GetOperationAs<FCurtainDragDrop>();
if (CurtainDragDrop.IsValid())
{
if (CurtainDragDrop->DragDropType == FCutDragDropBase::EType::CurtainDrag)
{
CurtainPanel->Move(CurtainDragDrop->CurtainIndex, 0, CurtainDragDrop->GroupIndex, CurtainGroup - &CurtainPanel->Groups[0]);
return FReply::Handled().EndDragDrop();
}
}
return FReply::Handled();
}
END_SLATE_FUNCTION_BUILD_OPTIMIZATION

View File

@ -0,0 +1,34 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Cut5/Widgets/DefineGlobal.h"
#include "Widgets/SCompoundWidget.h"
/**
*
*/
class CUT5_API SCurtainGroup : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SCurtainGroup)
{
}
SLATE_ARGUMENT(FCurtainGroup*, CurtainGroup)
SLATE_ARGUMENT(class SCurtainPanel*, CurtainPanel)
SLATE_END_ARGS()
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
FCurtainGroup* CurtainGroup;
SCurtainPanel* CurtainPanel;
TSharedPtr<SVerticalBox> ContentVerticalBox;
void CallRender();
virtual FReply OnDrop(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent) override;
};

View File

@ -5,7 +5,7 @@
#include "DesktopPlatformModule.h"
#include "IDesktopPlatform.h"
#include "SCurtainTree.h"
#include "SlateOptMacros.h"
#include "Cut5/Interface/CutMainWidgetInterface.h"
#include "Cut5/Utils/Utils.h"
@ -62,79 +62,6 @@ void SCurtainPanel::Construct(const FArguments& InArgs)
]
+ SVerticalBox::Slot()
.SizeParam(FAuto())
[
SNew(SBox)
.WidthOverride(100)
.HeightOverride(50)
[
SNew(SButton)
.OnClicked_Lambda([this]()
{
FString String;
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
DesktopPlatform->OpenDirectoryDialog(nullptr, TEXT("选择新建路径"), String, String);
MainWidgetInterface->NewProject(String);
return FReply::Handled();
})
.Text(FText::FromString(TEXT("新建")))
]
]
+ SVerticalBox::Slot()
.SizeParam(FAuto())
[
SNew(SBox)
.WidthOverride(100)
.HeightOverride(50)
[
SNew(SButton)
.OnClicked_Lambda([this]()
{
FString String;
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
DesktopPlatform->OpenDirectoryDialog(nullptr, TEXT("选择导出路径"), String, String);
MainWidgetInterface->ExportProject(String);
return FReply::Handled();
})
.Text(FText::FromString(TEXT("导出")))
]
]
+ SVerticalBox::Slot()
.SizeParam(FAuto())
[
SNew(SBox)
.WidthOverride(100)
.HeightOverride(50)
[
SNew(SButton)
.OnClicked_Lambda([this]()
{
MainWidgetInterface->ImportProject("");
return FReply::Handled();
})
.Text(FText::FromString(TEXT("导入")))
]
]
+ SVerticalBox::Slot()
.SizeParam(FAuto())
[
SNew(SBox)
.WidthOverride(100)
.HeightOverride(50)
[
SNew(SButton)
.OnClicked_Lambda([this]()
{
return FReply::Handled();
})
.Text(FText::FromString(TEXT("保存项目")))
]
]
+ SVerticalBox::Slot()
.SizeParam(FAuto())
[
SNew(SSeparator)
]
@ -158,7 +85,8 @@ void SCurtainPanel::Construct(const FArguments& InArgs)
SNew(SButton)
.OnClicked_Lambda([this]()
{
AddNewCurtain();
Groups.Add(FCurtainGroup());
CallRender();
return FReply::Handled();
})
]
@ -177,11 +105,22 @@ void SCurtainPanel::Construct(const FArguments& InArgs)
SNew(SButton)
.OnClicked_Lambda([this]()
{
if (CurrentSelectedTree < Trees.Num())
int32 i = 0;
for (FCurtainGroup& Group : Groups)
{
Trees[CurrentSelectedTree]->AddNewStep();
for (FCurtain& Curtain : Group.Curtains)
{
if (Curtain.bIsActive)
{
AddNewCurtain(i);
return FReply::Handled();
}
}
i++;
}
AddNewCurtain(0);
return FReply::Handled();
})
]
+ SOverlay::Slot()
@ -196,20 +135,20 @@ void SCurtainPanel::Construct(const FArguments& InArgs)
]
];
];
}
void SCurtainPanel::AddNewCurtain()
void SCurtainPanel::AddNewCurtain(int32 Index)
{
if (ScrollBox)
{
Trees.Add(SNew(SCurtainTree).CurtainPanel(SharedThis(this)));
ScrollBox->AddSlot()
.Padding(0 , 1)
[
Trees[Trees.Num() - 1].ToSharedRef()
];
if (Index < Groups.Num())
{
Groups[Index].Curtains.Add(FCurtain());
CallRender();
}
}
}
void SCurtainPanel::UnSelectAllCurtain()
@ -217,4 +156,55 @@ void SCurtainPanel::UnSelectAllCurtain()
}
void SCurtainPanel::CallRender()
{
ScrollBox->ClearChildren();
for (FCurtainGroup& Group : Groups)
{
ScrollBox->AddSlot()
[
SNew(SCurtainGroup)
.CurtainGroup(&Group)
.CurtainPanel(this)
];
}
}
void SCurtainPanel::DeSelectedAll()
{
for (FCurtainGroup& Group : Groups)
{
for (FCurtain& Curtain : Group.Curtains)
{
Curtain.bIsActive = false;
}
Group.bIsActive = false;
}
}
void SCurtainPanel::Move(int32 SrcCurtainIndex, int32 DstCurtainIndex, int32 SrcGroupIndex, int32 DstGroupIndex)
{
const FCurtain OriginCurtain = Groups[SrcGroupIndex].Curtains[SrcCurtainIndex];
if (SrcGroupIndex == DstGroupIndex)
{
if (DstCurtainIndex - SrcCurtainIndex > 0)
{
Groups[SrcGroupIndex].Curtains.RemoveAt(SrcCurtainIndex);
Groups[SrcGroupIndex].Curtains.Insert(OriginCurtain, DstCurtainIndex - 1);
}
else
{
Groups[SrcGroupIndex].Curtains.RemoveAt(SrcCurtainIndex);
Groups[SrcGroupIndex].Curtains.Insert(OriginCurtain, DstCurtainIndex);
}
}
else
{
Groups[SrcGroupIndex].Curtains.RemoveAt(SrcCurtainIndex);
Groups[DstGroupIndex].Curtains.Insert(OriginCurtain, DstCurtainIndex);
}
CallRender();
}
END_SLATE_FUNCTION_BUILD_OPTIMIZATION

View File

@ -3,6 +3,7 @@
#pragma once
#include "CoreMinimal.h"
#include "SCurtainGroup.h"
#include "Cut5/Interface/CutMainWidgetInterface.h"
#include "Widgets/SCompoundWidget.h"
#include "Widgets/Views/STreeView.h"
@ -30,14 +31,18 @@ public:
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
void AddNewCurtain();
void AddNewCurtain(int32 Index);
void UnSelectAllCurtain();
void CallRender();
void DeSelectedAll();
void Move(int32 SrcCurtainIndex = 0, int32 DstCurtainIndex = 0, int32 SrcGroupIndex = 0, int32 DstGroupIndex = 0);
ICutMainWidgetInterface* MainWidgetInterface = nullptr;
int32 CurrentSelectedTree = 0;
TArray<TSharedPtr<SCurtainTree>> Trees;
TSharedPtr<SScrollBox> ScrollBox;
TSharedPtr<FUICommandList> CommandList;
TSharedPtr<STextBlock> Title;
TArray<FCurtainGroup> Groups;
};

View File

@ -1,92 +0,0 @@
#include "SCurtainTree.h"
#include "Cut5/Widgets/MicroWidgets/SClickEditableText.h"
#include "Widgets/Input/SEditableTextBox.h"
#include "Widgets/Layout/SExpandableArea.h"
#include "Widgets/Text/SInlineEditableTextBlock.h"
void SCurtainTree::Construct(const FArguments& InArgs)
{
CurtainPanel = InArgs._CurtainPanel;
RootCurtain.Add(MakeShared<FCurtain>());
ChildSlot
[
SAssignNew(ExpandableArea, SExpandableArea)
.HeaderContent()
[
SNew(SInlineEditableTextBlock)
.Text(FText::FromString(RootCurtain[0]->CurtainName))
.OnTextCommitted_Lambda([&](const FText& InText, ETextCommit::Type InCommitType)
{
RootCurtain[0]->CurtainName = InText.ToString();
})
]
.BodyContent()
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SButton)
]
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SAssignNew(TreeView, STreeView<TSharedPtr<FCurtain>>)
.OnGenerateRow(this, &SCurtainTree::GenerateRow)
.OnGetChildren(this, &SCurtainTree::GetChildrenForTree)
.TreeItemsSource(&RootCurtain)
.ItemHeight(30.0)
.SelectionMode(ESelectionMode::Single)
]
]
];
}
TSharedRef<ITableRow> SCurtainTree::GenerateRow(TSharedPtr<FCurtain> Curtain,
const TSharedRef<STableViewBase>& TableViewBase) const
{
return SNew(STableRow<TSharedPtr<FCurtain>>, TableViewBase)
.Content()
[
SNew(SBox)
.HeightOverride(50)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
[
SNew(SOverlay)
+ SOverlay::Slot()
[
SNew(SClickEditableText)
.CanEdit(true)
.OnEdited_Lambda([](FString New, FString Old){})
.InitTextPtr(&Curtain->CurtainName)
.IsNeedUpright(false)
]
]
]
];
}
void SCurtainTree::GetChildrenForTree(TSharedPtr<FCurtain, ESPMode::ThreadSafe> Curtain,
TArray<TSharedPtr<FCurtain, ESPMode::ThreadSafe>>& Shareds)
{
if (Curtain)
{
Shareds = Curtain->ChildrenCurtain;
}
}
void SCurtainTree::AddNewStep()
{
RootCurtain.Add(MakeShared<FCurtain>());
TreeView->RebuildList();
}

View File

@ -1,25 +0,0 @@
#pragma once
#include "CoreMinimal.h"
#include "Cut5/Widgets/DefineGlobal.h"
#include "Widgets/SCompoundWidget.h"
#include "Widgets/Views/STreeView.h"
class SCurtainTree : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SCurtainTree)
{
}
SLATE_ARGUMENT(TSharedPtr<class SCurtainPanel>, CurtainPanel)
SLATE_END_ARGS()
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
TSharedRef<ITableRow> GenerateRow(TSharedPtr<FCurtain> Curtain, const TSharedRef<STableViewBase>& TableViewBase) const;
void GetChildrenForTree(TSharedPtr<FCurtain, ESPMode::ThreadSafe> Curtain, TArray<TSharedPtr<FCurtain, ESPMode::ThreadSafe>>& Shareds);
void AddNewStep();
TSharedPtr<class SCurtainPanel> CurtainPanel;
TSharedPtr<STreeView<TSharedPtr<FCurtain>>> TreeView;
TArray<TSharedPtr<FCurtain>> RootCurtain;
TSharedPtr<SExpandableArea> ExpandableArea;
};

View File

@ -13,7 +13,7 @@ extern "C"{
#include <opencv2/imgproc.hpp>
#include <opencv2/core/mat.hpp>
struct FTimelinePropertyData;
DECLARE_DELEGATE_OneParam(FOnEnsure, FString)
class CUT5_API FGlobalData
{
public:
@ -206,7 +206,6 @@ struct CUT5_API FTimelinePropertyData
Ar << PropertyData.IconPath;
Ar << PropertyData.MoviePath;
Ar << PropertyData.MovieFrameLength;
Ar << PropertyData.AudioData;
Ar << PropertyData.VideoStream;
Ar << PropertyData.AudioStream;
Ar << PropertyData.MoviePath;
@ -226,6 +225,7 @@ public:
TrackClip,
Clip2Clip,
TickDrag,
CurtainDrag,
};
FCutDragDropBase() {};
FCutDragDropBase(EType InType)
@ -260,6 +260,13 @@ public:
EDragType DragType;
};
class CUT5_API FCurtainDragDrop final : public FCutDragDropBase
{
public:
int32 GroupIndex = 0;
int32 CurtainIndex = 0;
};
struct FTimelineInfo;
struct CUT5_API FTimelineInfo
{
@ -331,10 +338,31 @@ class FCurtain
public:
FString CurtainName = TEXT("新建幕");
FGuid CurtainUUID;
TSharedPtr<FCurtain> ParentCurtain;
TArray<TSharedPtr<FCurtain>> ChildrenCurtain;
};
bool bIsActive = false;
friend FArchive& operator<< (FArchive& Ar, FCurtain& Curtain)
{
Ar << Curtain.CurtainName;
Ar << Curtain.CurtainUUID;
return Ar;
}
};
class FCurtainGroup
{
public:
FString GroupName = TEXT("新建组");
FGuid GroupUID;
TArray<FCurtain> Curtains;
bool bIsActive = false;
friend FArchive& operator<< (FArchive& Ar, FCurtainGroup& Curtain)
{
Ar << Curtain.GroupName;
Ar << Curtain.GroupUID;
Ar << Curtain.Curtains;
return Ar;
}
};
class FCurtainTree
{

View File

@ -4,6 +4,7 @@
#include "SEffectCard.h"
#include "SEffectCardGroup.h"
#include "SEffectCardsPanel.h"
#include "SlateOptMacros.h"
#include "Cut5/Utils/Utils.h"
@ -151,12 +152,16 @@ void SEffectCard::ShowClosedButton(bool bShow)
SNew(SImage)
.Image(FUtils::GetBrushFromImage(FUtils::GetResourcesPath("close-circle-fill.png"), {16, 16}))
]
.OnClicked_Lambda([]()
.OnClicked_Lambda([this]()
{
GEngine->GameViewport->AddViewportWidgetContent(
SNew(STips)
.Title(TEXT("确定删除特效卡吗?"))
.SubTitle(TEXT("特效卡删除后不可恢复")), 1
.SubTitle(TEXT("特效卡删除后不可恢复"))
.OnEnsure_Lambda([this](const FString& String)
{
CardGroupPtr->EffectCardPanel->RemoveCard(CardProperty->Guid);
}), 1
);
@ -171,8 +176,12 @@ void SEffectCard::ShowClosedButton(bool bShow)
}
else
{
Overlay->RemoveSlot(ClosedButton.ToSharedRef());
ClosedButton.Reset();
if (ClosedButton)
{
Overlay->RemoveSlot(ClosedButton.ToSharedRef());
ClosedButton.Reset();
}
}
}
@ -277,7 +286,7 @@ TSharedPtr<SWidget> SEffectCard::GetPropertiesWidget()
.HeightOverride(32)
[
SNew(SEditableTextBox)
.Text(FText::FromString(FString::FromInt(GroupProperty->ID)))
.Text(FText::FromString(FString::FromInt(CardProperty->ID)))
.OnVerifyTextChanged_Lambda([this](const FText& InText, FText& OutErrorMessage)
{
if (InText.IsEmpty())
@ -298,7 +307,7 @@ TSharedPtr<SWidget> SEffectCard::GetPropertiesWidget()
})
.OnTextCommitted_Lambda([this](const FText& InText, ETextCommit::Type InCommitType)
{
GroupProperty->ID = FCString::Atoi(*InText.ToString());
CardProperty->ID = FCString::Atoi(*InText.ToString());
})
]
]

View File

@ -45,6 +45,7 @@ void SEffectCardGroup::Construct(const FArguments& InArgs)
MainInterface = InArgs._MainInterface;
EffectCardPanel = InArgs._EffectCardPanel;
// 只考虑组别储存,不考虑组内卡片储存
SetSavePath({TEXT("FX"), EffectCardGroup->GroupName + TEXT(".bin")});
@ -258,6 +259,7 @@ void SEffectCardGroup::CallRender()
NewCard.Name = TEXT("未命名") + NewCard.Guid.ToString();
FUtils::CreateDefaultTimelineSave(FUtils::SingleCardFullPath(NewCard.Name), FTimelineInfo::ETimelineType::FX);
GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Red, FUtils::SingleCardFullPath(NewCard.Name));
{
FSaveModifier SaveModifier(FUtils::SingleCardFullPath(NewCard.Name));
SaveModifier.TimelineInfo.CurrentOpenFullPath = FUtils::SingleCardFullPath(NewCard.Name);

View File

@ -56,7 +56,8 @@ void SEffectCardsPanel::CallRender()
TSharedPtr<SEffectCardGroup> CardGroupInst =
SNew(SEffectCardGroup)
.EffectCardGroup(&Group)
.MainInterface(MainInterface);
.MainInterface(MainInterface)
.EffectCardPanel(this);
ScrollBox->AddSlot()
[
CardGroupInst.ToSharedRef()

View File

@ -0,0 +1,146 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "SNewProjectTips.h"
#include "SlateOptMacros.h"
#include "Cut5/Utils/Utils.h"
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
void SNewProjectTips::Construct(const FArguments& InArgs)
{
OnEnsure = InArgs._OnEnsure;
FTextBlockStyle NormalText = FAppStyle::GetWidgetStyle<FTextBlockStyle>("NormalText");
NormalText.SetFontSize(20);
ChildSlot
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(SBox)
.WidthOverride(320)
.HeightOverride(180)
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SImage)
.Image(FUtils::GetBrushFromImage(FUtils::GetResourcesPath("TipsBackGround.png"), {}))
]
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(0, 30, 0, 0)
.HAlign(HAlign_Center)
.VAlign(VAlign_Top)
[
SAssignNew(EditableTextBox, SEditableTextBox)
.Text(FText::FromString(InArgs._Title))
.OnVerifyTextChanged_Lambda([this](const FText& InText, FText& OutText)
{
if (InText.ToString().Len() > 20)
{
OutText = FText::FromString(TEXT("项目名称不能超过20个字符"));
ConfirmButton->SetEnabled(false);
return false;
}
if (InText.ToString().Len() == 0)
{
OutText = FText::FromString(TEXT("项目名称不能为空"));
ConfirmButton->SetEnabled(false);
return false;
}
ConfirmButton->SetEnabled(true);
return true;
})
.OnTextCommitted_Lambda([this](const FText& InText, ETextCommit::Type InCommitType)
{
if (OnEnsure.ExecuteIfBound(InText.ToString()))
{
}
})
]
+ SVerticalBox::Slot()
.HAlign(HAlign_Center)
.VAlign(VAlign_Bottom)
[
SNew(SBox)
.HeightOverride(55.6)
.WidthOverride(1000.0)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.SizeParam(FStretch(1.0))
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SButton)
.OnClicked_Lambda([this]()
{
GEngine->GameViewport->RemoveViewportWidgetContent(SharedThis(this));
return FReply::Handled();
})
.ButtonColorAndOpacity(FColor(0, 0,0 ,0))
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(STextBlock)
.Text(FText::FromString(TEXT("取消")))
.ColorAndOpacity(FSlateColor(FLinearColor(1.0f, 1.0f, 1.0f, 1.0f)))
]
]
]
+ SHorizontalBox::Slot()
.SizeParam(FStretch(1.0))
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SAssignNew(ConfirmButton, SButton)
.OnClicked_Lambda([this]()
{
if (OnEnsure.ExecuteIfBound(EditableTextBox->GetText().ToString()))
{
}
return FReply::Handled();
})
.ButtonColorAndOpacity(FColor(0, 0,0 ,0))
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(STextBlock)
.Text(FText::FromString(TEXT("确定")))
.ColorAndOpacity(FSlateColor(FLinearColor(1.0f, 1.0f, 1.0f, 1.0f)))
]
]
]
]
]
]
]
]
];
}
END_SLATE_FUNCTION_BUILD_OPTIMIZATION

View File

@ -0,0 +1,30 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Cut5/Widgets/DefineGlobal.h"
#include "Widgets/SCompoundWidget.h"
/**
*
*/
class CUT5_API SNewProjectTips : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SNewProjectTips)
{
}
SLATE_ARGUMENT(FString, Title)
SLATE_ARGUMENT(FString, SubTitle)
SLATE_EVENT(FOnEnsure, OnEnsure)
SLATE_END_ARGS()
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
TSharedPtr<SEditableTextBox> EditableTextBox;
TSharedPtr<SButton> ConfirmButton;
FOnEnsure OnEnsure;
};

View File

@ -10,6 +10,7 @@ BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
void STips::Construct(const FArguments& InArgs)
{
OnEnsure = InArgs._OnEnsure;
FTextBlockStyle NormalText = FAppStyle::GetWidgetStyle<FTextBlockStyle>("NormalText");
NormalText.SetFontSize(20);
ChildSlot
@ -95,7 +96,8 @@ void STips::Construct(const FArguments& InArgs)
SNew(SButton)
.OnClicked_Lambda([this]()
{
OnEnsure.ExecuteIfBound("");
GEngine->GameViewport->RemoveViewportWidgetContent(SharedThis(this));
return FReply::Handled();
})
.ButtonColorAndOpacity(FColor(0, 0,0 ,0))

View File

@ -3,11 +3,13 @@
#pragma once
#include "CoreMinimal.h"
#include "Cut5/Widgets/DefineGlobal.h"
#include "Widgets/SCompoundWidget.h"
/**
*
*/
DECLARE_DELEGATE_OneParam(FOnDeleteEffectCard, int32)
class CUT5_API STips : public SCompoundWidget
{
public:
@ -16,8 +18,11 @@ public:
}
SLATE_ARGUMENT(FString, Title)
SLATE_ARGUMENT(FString, SubTitle)
SLATE_EVENT(FOnEnsure, OnEnsure)
SLATE_END_ARGS()
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
FOnEnsure OnEnsure;
};

View File

@ -15,11 +15,15 @@
#include "STimelinePropertyPanel.h"
#include "STrackBody.h"
#include "STrackHead.h"
#include "Commands/MainMenuCommands.h"
#include "CustomPanel/SCustomPanel.h"
#include "Cut5/Utils/FFMPEGUtils.h"
#include "Cut5/Utils/Utils.h"
#include "Cut5/Xml/tinyxml2.h"
#include "DragDropOperator/DragDropOperator.h"
#include "FX/SEffectCardsPanel.h"
#include "HAL/FileManagerGeneric.h"
#include "MicroWidgets/SNewProjectTips.h"
#include "StatePanel/SStatePanel.h"
#include "Widgets/Layout/SConstraintCanvas.h"
#include "Widgets/Layout/SScaleBox.h"
@ -34,133 +38,226 @@ void SCutMainWindow::Construct(const FArguments& InArgs)
SAssignNew(CutTimeline, SCutTimeline).MainWidgetInterface(this);
SAssignNew(StatePanel, SStatePanel);
SAssignNew(CustomPanel, SCustomPanel);
FMainMenuCommands::Register();
CommandList = MakeShareable(new FUICommandList);
CommandList->MapAction(FMainMenuCommands::Get().NewProject, FExecuteAction::CreateLambda([this]()
{
PreNewProject();
}));
CommandList->MapAction(FMainMenuCommands::Get().OpenProject, FExecuteAction::CreateLambda([this]()
{
FString String;
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
DesktopPlatform->OpenDirectoryDialog(nullptr, TEXT("选择新建路径"), String, String);
if (String.IsEmpty())
return;
OpenProject(String);
}));
CommandList->MapAction(FMainMenuCommands::Get().SaveProject, FExecuteAction::CreateLambda([this]()
{
SaveProject();
}));
CommandList->MapAction(FMainMenuCommands::Get().Exit, FExecuteAction::CreateLambda([this]()
{
exit(0);
}));
ChildSlot
[
SNew(SScaleBox)
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
.Stretch(EStretch::Fill)
[
SNew(SConstraintCanvas)
+ SConstraintCanvas::Slot()
.Anchors(FAnchors(0, 0, 1, 1))
SNew(SImage)
.Image(FUtils::GetBrushFromImage(FUtils::GetResourcesPath("Black.png"), {}))
]
+ SOverlay::Slot()
.VAlign(VAlign_Top)
.HAlign(HAlign_Fill)
[
SNew(SBox)
.HeightOverride(47)
.WidthOverride(47)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.Padding(16, 0, 0, 0)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
SNew(SImage)
.Image(FUtils::GetBrushFromImage(FUtils::GetResourcesPath("EngineLogo.png"), {26, 26}))
]
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.Padding(32, 0, -32, 0)
[
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SAssignNew(CurtainPanel, SCurtainPanel)
.MainInterface(this)
]
+ SHorizontalBox::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(2.0)
SNew(SButton)
.ButtonStyle(FCoreStyle::Get(), "NoBorder")
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.SizeParam(FAuto())
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
[
SNew(SButton)
.Text(FText::FromString(TEXT("设备列表")))
.OnClicked_Lambda([this]()
{
PropertiesPanelSwitcher->SetActiveWidgetIndex(0);
return FReply::Handled();
})
]
+ SHorizontalBox::Slot()
[
SNew(SButton)
.Text(FText::FromString(TEXT("特效卡")))
.OnClicked_Lambda([this]()
{
PropertiesPanelSwitcher->SetActiveWidgetIndex(1);
return FReply::Handled();
})
]
]
+ SVerticalBox::Slot()
[
SAssignNew(PropertiesPanelSwitcher, SWidgetSwitcher)
+ SWidgetSwitcher::Slot()
[
// Property Panel
SNew(STimelinePropertyPanel)
.MainWindow(SharedThis(this))
]
+ SWidgetSwitcher::Slot()
[
SAssignNew(EffectCardsPanel, SEffectCardsPanel)
.MainInterface(this)
]
]
]
+ SHorizontalBox::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
[
StatePanel.ToSharedRef()
]
]
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
[
SAssignNew(CustomInputPanel, SCustomInputPanel)
]
]
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
[
CustomPanel.ToSharedRef()
]
]
SNew(STextBlock)
.Text(FText::FromString(TEXT("菜单 v")))
]
+ SVerticalBox::Slot()
.Padding(2.0)
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
CutTimeline.ToSharedRef()
]
.OnClicked_Lambda([this]()
{
FMenuBuilder MenuBuilder(true, CommandList);
MenuBuilder.AddMenuEntry(FMainMenuCommands::Get().NewProject, NAME_None, FText::FromString(TEXT("新建")));
MenuBuilder.AddMenuEntry(FMainMenuCommands::Get().OpenProject, NAME_None, FText::FromString(TEXT("打开")));
MenuBuilder.AddMenuEntry(FMainMenuCommands::Get().SaveProject, NAME_None, FText::FromString(TEXT("保存")));
MenuBuilder.AddMenuEntry(FMainMenuCommands::Get().SaveProjectAs, NAME_None, FText::FromString(TEXT("保存为")));
MenuBuilder.AddMenuEntry(FMainMenuCommands::Get().Setting, NAME_None, FText::FromString(TEXT("设置")));
MenuBuilder.AddMenuEntry(FMainMenuCommands::Get().Exit, NAME_None, FText::FromString(TEXT("退出")));
FSlateApplication::Get().PushMenu(AsShared(), FWidgetPath(), MenuBuilder.MakeWidget(), FSlateApplication::Get().GetCursorPos(), FPopupTransitionEffect(FPopupTransitionEffect::ContextMenu));
return FReply::Handled();
})
]
]
]
]
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
.Padding(16, 47, 16, 16)
[
SNew(SScaleBox)
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
.Stretch(EStretch::Fill)
[
SNew(SConstraintCanvas)
+ SConstraintCanvas::Slot()
.Anchors(FAnchors(0, 0, 1, 1))
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SAssignNew(CurtainPanel, SCurtainPanel)
.MainInterface(this)
]
+ SHorizontalBox::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.Padding(2.0)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.SizeParam(FAuto())
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
[
SNew(SButton)
.Text(FText::FromString(TEXT("设备列表")))
.OnClicked_Lambda([this]()
{
PropertiesPanelSwitcher->SetActiveWidgetIndex(0);
return FReply::Handled();
})
]
+ SHorizontalBox::Slot()
[
SNew(SButton)
.Text(FText::FromString(TEXT("特效卡")))
.OnClicked_Lambda([this]()
{
PropertiesPanelSwitcher->SetActiveWidgetIndex(1);
return FReply::Handled();
})
]
]
+ SVerticalBox::Slot()
[
SAssignNew(PropertiesPanelSwitcher, SWidgetSwitcher)
+ SWidgetSwitcher::Slot()
[
// Property Panel
SNew(STimelinePropertyPanel)
.MainWindow(SharedThis(this))
]
+ SWidgetSwitcher::Slot()
[
SAssignNew(EffectCardsPanel, SEffectCardsPanel)
.MainInterface(this)
]
]
]
+ SHorizontalBox::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
[
StatePanel.ToSharedRef()
]
]
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
[
SAssignNew(CustomInputPanel, SCustomInputPanel)
]
]
+ SHorizontalBox::Slot()
.SizeParam(FAuto())
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
[
CustomPanel.ToSharedRef()
]
]
]
+ SVerticalBox::Slot()
.Padding(2.0)
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
CutTimeline.ToSharedRef()
]
]
]
]
]
]
];
SoundThread = new FSoundThread();
@ -335,26 +432,83 @@ void SCutMainWindow::OpenTimeline(const FString& TimelineName, bool NeedSaveBefo
void SCutMainWindow::OpenProject(const FString& Project)
{
TArray<uint8> Data;
FFileHelper::LoadFileToArray(Data, *Project);
FMemoryReader Reader(Data);
FString CustomPanelInputPath = "";
Reader << CustomPanelInputPath;
CustomInputPanel->LoadPanel(CustomPanelInputPath);
FString FXPath = "";
Reader << FXPath;
EffectCardsPanel->LoadPanel(FXPath);
FGlobalData::CurrentProjectName = FPaths::GetCleanFilename(Project);
FTimelineInfo OpenedInfo;
FGlobalData::BasePath = Project;
CutTimeline->TimelineInfo.CurrentOpenFullPath = FUtils::MainSaveFullPath();
// 加载项目关联文件 .cutlink
TArray<uint8> Data;
// 找出文件夹内后缀为.cutlink的文件
TArray<FString> CutlinkName;
FFileManagerGeneric::Get().FindFiles(CutlinkName, *FPaths::Combine(Project, TEXT("*.cutlink")), true, false);
if (CutlinkName.Num() == 0)
{
UE_LOG(LogTemp, Error, TEXT("项目关联文件不存在"));
return;
}
// 去掉.cutlink后缀得到项目名
FGlobalData::CurrentProjectName = FPaths::GetBaseFilename(FPaths::GetCleanFilename(CutlinkName[0]));
FFileHelper::LoadFileToArray(Data, *FPaths::Combine(Project, FPaths::GetCleanFilename(CutlinkName[0])));
FMemoryReader Reader(Data);
// 写入版本号
FString LoadVersion;
Reader << LoadVersion;
if (LoadVersion != FGlobalData::Version)
{
UE_LOG(LogTemp, Error, TEXT("版本不匹配,无法打开项目,载入版本:%s, 当前版本:%s"), *LoadVersion, *FGlobalData::Version);
return;
}
// 记录所有导入资产链接
int32 PropertyDataNum = 0;
Reader << PropertyDataNum;
for (int32 i = 0; i < PropertyDataNum; i++)
{
FTimelinePropertyData TimelinePropertyData;
Reader << TimelinePropertyData;
FTimelinePropertyData ReloadPropertyData;
FFFMPEGUtils::LoadMedia(TimelinePropertyData.MoviePath, &ReloadPropertyData);
ReloadPropertyData.Guid = TimelinePropertyData.Guid;
CustomInputPanel->GridPanel->AddSlot(CustomInputPanel->GetChildren()->Num() % 2, CustomInputPanel->GetChildren()->Num() / 2)
[
SNew(SCustomInputResource)
.PropertyData(ReloadPropertyData)
];
CustomInputPanel->PropertyData.Add(ReloadPropertyData);
}
// 记录所有幕
int32 CutNum = 0;
Reader << CutNum;
for (int32 i = 0; i < CutNum; i++)
{
FCurtainGroup NewGroup;
Reader << NewGroup;
CurtainPanel->Groups.Add(NewGroup);
CurtainPanel->CallRender();
}
// 记录所有组轨道链接
EffectCardsPanel->EffectCardGroups.Empty();
int32 GroupLength = 0;
Reader << GroupLength;
for (int32 i = 0; i < GroupLength; i++)
{
FEffectCardGroup Group;
Reader << Group;
EffectCardsPanel->EffectCardGroups.Add(Group);
EffectCardsPanel->CallRender();
}
CutTimeline->LoadTimeline(FPaths::Combine(Project, FGlobalData::CurrentProjectName + TEXT(".bin")), OpenedInfo);
}
@ -553,7 +707,14 @@ void SCutMainWindow::SaveProject()
}
// 记录所有幕
int32 CurtainLength = CurtainPanel->Groups.Num();
MemoryWriter << CurtainLength;
for (int32 i = 0; i < CurtainPanel->Groups.Num(); i++)
{
MemoryWriter << CurtainPanel->Groups[i];
}
// 记录所有组轨道链接
int32 GroupLength = EffectCardsPanel->EffectCardGroups.Num();
MemoryWriter << GroupLength;
@ -562,10 +723,33 @@ void SCutMainWindow::SaveProject()
MemoryWriter << Group;
}
FFileHelper::SaveArrayToFile(ProjectLinkData, *FPaths::Combine(FGlobalData::BasePath, FGlobalData::CurrentProjectName + TEXT(".cutlink")));
FFileHelper::SaveArrayToFile(ProjectLinkData, *FPaths::Combine(FGlobalData::BasePath, FGlobalData::CurrentProjectName, FGlobalData::CurrentProjectName + TEXT(".cutlink")));
}
void SCutMainWindow::PreNewProject()
{
FString String;
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
DesktopPlatform->OpenDirectoryDialog(nullptr, TEXT("选择新建路径"), String, String);
if (String.IsEmpty())
return;
FGlobalData::BasePath = String;
TSharedPtr<SNewProjectTips> NewProjectTips =
SNew(SNewProjectTips)
.Title(TEXT("新建项目名字"));
NewProjectTips->OnEnsure.BindLambda([this, NewProjectTips](FString String)
{
FGlobalData::CurrentProjectName = String;
GEngine->GameViewport->RemoveViewportWidgetContent(NewProjectTips.ToSharedRef());
});
GEngine->GameViewport->AddViewportWidgetContent(
NewProjectTips.ToSharedRef(), 2);
}
void SCutMainWindow::OnSelectCard(const FGuid& SelectedCard)
{
if (SelectedCard.IsValid())

View File

@ -38,6 +38,9 @@ public:
TSharedPtr<class SWidgetSwitcher> PropertiesPanelSwitcher;
TSharedPtr<class SEffectCardsPanel> EffectCardsPanel;
TArray<TSharedPtr<SPlayerLight>> PlayerLightsSlateInstances;
TSharedPtr<FUICommandList> CommandList;
void Render();
@ -59,6 +62,7 @@ public:
virtual void ImportProject(const FString& ImportPath) override;
virtual void NewProject(const FString& NewPath) override;
virtual void SaveProject() override;
virtual void PreNewProject() override;
virtual void OnSelectCard(const FGuid& SelectedCard) override;
virtual void OnRemoveCard(const FGuid& SelectedCard) override;
virtual FTimelinePropertyData* GetResourcePropertyDataPtr(FGuid GUID) override;

View File

@ -367,9 +367,11 @@ void SCutTimeline::RenderGroup()
.HeightOverride(FGlobalData::DefaultTrackHeight * TrackGroups[i].TrackDataArray.Num())
[
SNew(SInlineEditableTextBlock)
.Text(FText::FromString(TrackGroups[i].GroupName))
// .InitTextPtr(&TrackGroups[i].GroupName)
// .OnEdited_Raw(this, &SCutTimeline::OnGroupNameEdited)
.Text(FText::FromString(TrackGroups[i].GroupName)).WrapTextAt(1.0)
.OnTextCommitted_Lambda([this, i](const FText& NewText, ETextCommit::Type CommitType)
{
OnGroupNameEdited(NewText.ToString(), TrackGroups[i].GroupName);
})
]
];