Skip to content

Instantly share code, notes, and snippets.

@Zincr0
Last active November 17, 2021 03:21
Show Gist options
  • Select an option

  • Save Zincr0/8218b16ae90a5849dadbfdb78c344788 to your computer and use it in GitHub Desktop.

Select an option

Save Zincr0/8218b16ae90a5849dadbfdb78c344788 to your computer and use it in GitHub Desktop.
Take olds packs EXTREME_XPAND_PROC99VOL2 EXTREME_XPAND_PROC99VOL1 and fix format for extreme pbr nexus blender addon.
"""
Uncompress EXTREME_XPAND_PROC99VOL1 and EXTREME_XPAND_PROC99VOL2.
Run this script.
The folders 'PROC99VOL1' 'PROC99VOL2' will be created.
Enter the addon and add those new folders as libary paths.
"""
import os
import shutil
import json
infoTemplate = {"storage_info": {"permission": "",
"json_version": 1.0,
"storage_method": "TEXTURE_IMAGES",
"blender_version": [2, 93, 5],
"extreme_pbr_version": [4, 0, 100]},
"material_info": {"material_name": "",
"author": "Julio_S",
"website_name": "",
"website_url": "",
"license": "CC0 1.0",
"license_description": "",
"license_link": "",
"original_name": ""},
"group_inputs_properties": {},
"material_properties": {"use_screen_refraction": True,
"use_sss_translucency": False,
"blend_method": "OPAQUE",
"shadow_method": "OPAQUE",
"use_backface_culling": False,
"alpha_threshold": 0.5,
"refraction_depth": 0.0},
"date": "16/11/2021"}
def main(rootPath, oldPackRoot, newPackRoot):
print(oldPackRoot)
os.chdir(oldPackRoot)
carpetas = []
for path in os.listdir("."):
if os.path.isdir(path):
carpetas.append(path)
os.chdir(rootPath)
os.mkdir(newPackRoot)
os.chdir(newPackRoot)
for carpeta in carpetas:
os.mkdir(newPackRoot + "/" + carpeta)
os.chdir(oldPackRoot + "/" + carpeta)
filesFolder = []
for path in os.listdir("."):
if os.path.isdir(path):
filesFolder.append(path)
for fileFolder in filesFolder:
resolution = fileFolder.split("_")[0]
materialName = "_".join(fileFolder.split("_")[1:])
imageName = materialName + ".png"
#print("resolution: ", resolution)
#print("materialName: ", materialName)
#print("imageName: ", imageName)
oldIconFolder = oldPackRoot + "/" + carpeta + "/" + imageName
oldImagesFolder = oldPackRoot + "/" + carpeta + "/" + fileFolder
materialFolder = newPackRoot + "/" + carpeta + "/" + materialName
os.chdir(newPackRoot + "/" + carpeta)
os.mkdir(materialFolder)
resolutionFolder = materialFolder + "/" + resolution
os.mkdir(resolutionFolder)
print("source folder: ", oldImagesFolder)
for oldImageFile in os.listdir(oldImagesFolder):
extension = oldImageFile.split(".")[-1]
name = oldImageFile.split(".")[:-1][0]
imageType = "_".join(name.split("_")[-2:])
newImageFile = materialName + "_" + imageType + "_" + resolution + "." + extension
print(oldImageFile)
print("to")
print(newImageFile)
shutil.copy(oldImagesFolder + "/" + oldImageFile, resolutionFolder + "/" + newImageFile)
dataInfoFolder = materialFolder + "/data"
if not os.path.exists(dataInfoFolder):
os.mkdir(dataInfoFolder)
os.chdir(dataInfoFolder)
infoTemplate['material_info']['material_name'] = materialName
infoTemplate['material_info']['original_name'] = "".join(materialName.split(" "))
with open('mat_info.json', 'w') as outfile:
json.dump(infoTemplate, outfile)
previewsFolder = dataInfoFolder + "/previews"
os.mkdir(previewsFolder)
previewsFolderIcon = previewsFolder + "/default"
os.mkdir(previewsFolderIcon)
shutil.copy(oldIconFolder, previewsFolderIcon + "/" + imageName)
if __name__ == "__main__":
rootPath = os.getcwd()
print("EXTREME_XPAND_PROC99VOL1 and EXTREME_XPAND_PROC99VOL2 should be in the same script folder")
oldPaths = ['EXTREME_XPAND_PROC99VOL1', 'EXTREME_XPAND_PROC99VOL2']
newPaths = ['PROC99VOL1', 'PROC99VOL2']
for index, path in enumerate(oldPaths):
oldPackRoot = rootPath + '/' + path
newPackRoot = rootPath + '/' + newPaths[index]
shutil.rmtree(newPackRoot, ignore_errors=True)
main(rootPath, oldPackRoot, newPackRoot)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment