-
-
Notifications
You must be signed in to change notification settings - Fork 216
/
Copy pathPrefixAllAssets.py
118 lines (103 loc) · 3.92 KB
/
PrefixAllAssets.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# _
# (_)
# _ __ ___ __ _ _ __ ___ ___ _ __ _ ___ _ __ ___
# | '_ ` _ \ / _` | '_ ` _ \ / _ \| '_ \| |/ _ \ '_ ` _ \
# | | | | | | (_| | | | | | | (_) | | | | | __/ | | | | |
# |_| |_| |_|\__,_|_| |_| |_|\___/|_| |_|_|\___|_| |_| |_|
# www.mamoniem.com
# www.ue4u.xyz
#Copyright 2022 Muhammad A.Moniem (@_mamoniem). All Rights Reserved.
#
import unreal
#You can set the prefix of your choice here
prefixAnimationBlueprint = "animBP"
prefixAnimationSequence = "anim"
prefixAnimation = "anim"
prefixBlendSpace = "animBlnd"
prefixBlueprint = "bp"
prefixCurveFloat = "crvF"
prefixCurveLinearColor = "crvL"
prefixLevel = "lvl"
prefixMaterial = "mat"
prefixMaterialFunction = "mat_func"
prefixMaterialInstance = "mat_inst"
prefixParticleSystem = "fx"
prefixPhysicsAsset = "phsx"
prefixSkeletalMesh = "sk"
prefixSkeleton = "skln"
prefixSoundCue = "cue"
prefixSoundWave = "wv"
prefixStaticMesh = "sm"
prefixTexture2D = "tex"
prefixTextureCube = "HDRI"
workingPath = "/Game/"
@unreal.uclass()
class GetEditorAssetLibrary(unreal.EditorAssetLibrary):
pass
def GetProperPrefix(className):
_prefix = ""
if className == "AnimBlueprint":
_prefix = prefixAnimationBlueprint
elif className == "AnimSequence":
_prefix = prefixAnimationSequence
elif className == "Animation":
_prefix = prefixAnimation
elif className == "BlendSpace1D":
_prefix = prefixBlendSpace
elif className == "Blueprint":
_prefix = prefixBlueprint
elif className == "CurveFloat":
_prefix = prefixCurveFloat
elif className == "CurveLinearColor":
_prefix = prefixCurveLinearColor
elif className == "Material":
_prefix = prefixMaterial
elif className == "MaterialFunction":
_prefix = prefixMaterialFunction
elif className == "MaterialInstance":
_prefix = prefixMaterialInstance
elif className == "ParticleSystem":
_prefix = prefixParticleSystem
elif className == "PhysicsAsset":
_prefix = prefixPhysicsAsset
elif className == "SkeletalMesh":
_prefix = prefixSkeletalMesh
elif className == "Skeleton":
_prefix = prefixSkeleton
elif className == "SoundCue":
_prefix = prefixSoundCue
elif className == "SoundWave":
_prefix = prefixSoundWave
elif className == "StaticMesh":
_prefix = prefixStaticMesh
elif className == "Texture2D":
_prefix = prefixTexture2D
elif className == "TextureCube":
_prefix = prefixTextureCube
else:
_prefix = ""
return _prefix
editorAssetLib = GetEditorAssetLibrary()
allAssets = editorAssetLib.list_assets(workingPath, True, False)
allAssetsCount = len(allAssets)
selectedAssetPath = workingPath
with unreal.ScopedSlowTask(allAssetsCount, selectedAssetPath) as slowTask:
slowTask.make_dialog(True)
for asset in allAssets:
_assetData = editorAssetLib.find_asset_data(asset)
_assetName = _assetData.get_asset().get_name()
_assetPathName = _assetData.get_asset().get_path_name()
_assetPathOnly = _assetPathName.replace((_assetName + "." + _assetName), "")
_assetClassName = _assetData.get_asset().get_class().get_name()
_assetPrefix = GetProperPrefix(_assetClassName)
if _assetPrefix in _assetName:
continue
elif _assetPrefix == "":
continue
else:
_targetPathName = _assetPathOnly + ("%s%s%s%s%s%s%s" % (_assetPrefix, "_", _assetName, ".", _assetPrefix, "_", _assetName))
editorAssetLib.rename_asset(_assetPathName, _targetPathName)
print (">>> Renaming [%s] to [%s]" % (_assetPathName, _targetPathName))
if slowTask.should_cancel():
break
slowTask.enter_progress_frame(1, asset)