Using xmlstarlet instead of SAT tools to retrieve information from sbs files
This commit is contained in:
parent
3e88552835
commit
2e57184009
8 changed files with 40 additions and 34 deletions
24
Makefile
24
Makefile
|
@ -58,26 +58,14 @@ $(SBSAR_DIR)/%.sbsar: $(SBS_DIR)/%.sbs
|
||||||
# There is a png imageset for each preset of a base texture
|
# There is a png imageset for each preset of a base texture
|
||||||
# All png are stored in a png_1024 folder
|
# All png are stored in a png_1024 folder
|
||||||
@ mkdir -p $(PNG1024_DIR)
|
@ mkdir -p $(PNG1024_DIR)
|
||||||
# Get all presets for the graph
|
|
||||||
@ $(eval PRESETLIST=`$(GETPRESET) --input $< | grep PRESET | sed -r 's/PRESET "(.*)"/\1/g'`)
|
|
||||||
# Get graph outputs list
|
# Get graph outputs list
|
||||||
@ declare -i graphcount=0 ;\
|
@ outputs=$$(xmlstarlet sel -t -m "//content/graph[1]/graphOutputs/graphoutput/identifier" -o " " -v "@v" $<) ;\
|
||||||
output_list="" ;\
|
echo " - Graph OUTPUTS : $$outputs";\
|
||||||
for line in $$($(GETOUTPUT) $<) ; do \
|
|
||||||
if [ "$$line" = "GRAPH-URL" ] ;\
|
|
||||||
then ((graphcount++)) ;\
|
|
||||||
fi ;\
|
|
||||||
if [ $$graphcount -le 1 ] ;\
|
|
||||||
then if [ "$$line" != "OUTPUT" ] && [ "$$line" != "GRAPH-URL" ] && [ "$${line:0:4}" != "pkg:" ] ;\
|
|
||||||
then output_list+=" $${line}" ;\
|
|
||||||
fi ;\
|
|
||||||
else : ;\
|
|
||||||
fi ;\
|
|
||||||
done;\
|
|
||||||
echo " - Graph output_list :"$$output_list;\
|
|
||||||
echo "Building 1024 png imageset(s) from presets of" $@ ;\
|
echo "Building 1024 png imageset(s) from presets of" $@ ;\
|
||||||
pngfiles="";\
|
pngfiles="";\
|
||||||
for preset in $(PRESETLIST) ; do \
|
presetlist=$$(xmlstarlet sel -t -m "//content/graph[1]/sbspresets/sbspreset/label" -o " " -v "@v" $<);\
|
||||||
|
echo " presetlist: " $$presetlist ; \
|
||||||
|
for preset in $$presetlist ; do \
|
||||||
echo "- Preset" $$preset; \
|
echo "- Preset" $$preset; \
|
||||||
material=$$(basename -s .sbsar $@);\
|
material=$$(basename -s .sbsar $@);\
|
||||||
echo "material :"$$material;\
|
echo "material :"$$material;\
|
||||||
|
@ -87,7 +75,7 @@ $(SBSAR_DIR)/%.sbsar: $(SBS_DIR)/%.sbs
|
||||||
rm -Rf $(PNG512_DIR)/$$obsolete* ;\
|
rm -Rf $(PNG512_DIR)/$$obsolete* ;\
|
||||||
rm -Rf $(PNG256_DIR)/$$obsolete* ;\
|
rm -Rf $(PNG256_DIR)/$$obsolete* ;\
|
||||||
listitem="";\
|
listitem="";\
|
||||||
for item in $$output_list;\
|
for item in $$outputs;\
|
||||||
do itemfull="$(PNG1024_DIR)/$${material}_$${preset}_$${item}.png";\
|
do itemfull="$(PNG1024_DIR)/$${material}_$${preset}_$${item}.png";\
|
||||||
listitem="$$listitem $$itemfull";\
|
listitem="$$listitem $$itemfull";\
|
||||||
done;\
|
done;\
|
||||||
|
|
19
README.md
19
README.md
|
@ -2,6 +2,13 @@
|
||||||
|
|
||||||
This repository use [Git LFS](https://git-lfs.github.com/).
|
This repository use [Git LFS](https://git-lfs.github.com/).
|
||||||
|
|
||||||
|
## Structure of sbs files
|
||||||
|
|
||||||
|
Your preset should be written without any space in their label.
|
||||||
|
|
||||||
|
For now, the script export only the first graph of each file.
|
||||||
|
|
||||||
|
|
||||||
## Organisation of a factory
|
## Organisation of a factory
|
||||||
|
|
||||||
### Configuration of the Makefile
|
### Configuration of the Makefile
|
||||||
|
@ -34,7 +41,7 @@ Theses are the places where the script will generate the final png files. It wil
|
||||||
|
|
||||||
#### Blender related
|
#### Blender related
|
||||||
|
|
||||||
You have to define also a blender file directory where you will store the files used to generate previews of texturesets. They will be handled vie the `material_list.json` file indicated in the following section. They will have to be organized a special way to function, see later.
|
You have to define also a blender file directory where you will store the files used to generate previews of texturesets. They will be handled by the `material_list.json` file indicated in the following section. They will have to be organized a special way to function, see later.
|
||||||
|
|
||||||
The `BLENDEREXEC` variable is the path to the binary used to generate the preview. It must be compatible with the version used to save the renders files.
|
The `BLENDEREXEC` variable is the path to the binary used to generate the preview. It must be compatible with the version used to save the renders files.
|
||||||
|
|
||||||
|
@ -52,10 +59,12 @@ The path to the json file used to manage all the metadata linked to texturesets
|
||||||
|
|
||||||
### Configuration of the json file
|
### Configuration of the json file
|
||||||
|
|
||||||
|
You have to fill this file to tell the system where it should export the result (the png textures and the blender file used for the preview render)
|
||||||
|
|
||||||
- `name` is the mundane texture name
|
- `name` is the mundane texture name
|
||||||
- `description` is the description of the texture
|
- `description` is the description of the texture
|
||||||
- `type` is the subfolder name in `BLENDFILES_FOLDER` in the `local-config.mk` file the blender files used to generate the rpeviews are stored
|
- `type` is the subfolder name in `BLENDFILES_FOLDER` in the `local-config.mk` file the blender files used to generate the previews are stored
|
||||||
- `format` is the format of the texture, square or rectangular, it must be either "10,10" for normal 1024x1024 files, "9,10" for 512x1024 and "10,9" for 1024x512
|
- `format` is the format of the texture, square or rectangular, it must be either "10,10" for normal 1024x1024 files, "9,10" for 512x1024 and "10,9" for 1024x512
|
||||||
- `destination_1024` is the folders names list where to copy the generated textrues files in 1024x1024, it can be left with an empty field if non-relevant.
|
- `destination_1024` is the folders names list where to copy the generated textures files in 1024x1024, it can be left with an empty field if non-relevant.
|
||||||
- `destination_512` is the folders names list where to copy the generated textrues files in 512x512, it can be left with an empty field if non-relevant.
|
- `destination_512` is the folders names list where to copy the generated textures files in 512x512, it can be left with an empty field if non-relevant.
|
||||||
- `destination_256` is the folders names list where to copy the generated textrues files in 256x256, it can be left with an empty field if non-relevant.
|
- `destination_256` is the folders names list where to copy the generated textures files in 256x256, it can be left with an empty field if non-relevant.
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:1f57ea0c1190f8fd9c4df24cf59c8322427e73181fe059915fe8a4f8cb2a06ab
|
|
||||||
size 11441
|
|
BIN
example/logo/yk.png
(Stored with Git LFS)
Normal file
BIN
example/logo/yk.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
example/logo/yk.png~
Normal file
BIN
example/logo/yk.png~
Normal file
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
|
@ -1,6 +1,15 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name":"texture_factory_test_preset0",
|
"name":"texture_factory_test_Preset_numero_1",
|
||||||
|
"description":"Texture factory testing material",
|
||||||
|
"type":"bhonr",
|
||||||
|
"format":"10,10",
|
||||||
|
"destination_1024":["build/export/project_A"],
|
||||||
|
"destination_512":["build/export/project_B_512"],
|
||||||
|
"destination_256":[""]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"texture_factory_test_Preset_numero_2",
|
||||||
"description":"Texture factory testing material",
|
"description":"Texture factory testing material",
|
||||||
"type":"bhonr",
|
"type":"bhonr",
|
||||||
"format":"10,10",
|
"format":"10,10",
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -3,10 +3,10 @@ export SBS_DIR=example/sbs
|
||||||
export SBSAR_DIR=build/sbsar
|
export SBSAR_DIR=build/sbsar
|
||||||
|
|
||||||
# executables used
|
# executables used
|
||||||
export MAKESBSAR=sbscooker --quiet --output-name {inputName} --includes "/opt/Allegorithmic/Substance_Automation_Toolkit/resources/packages/" --includes "$(SBS_DIR)/utilities/"
|
# TODO:was used to add --includes "~/.local/share/Steam/steamapps/common/Substance 3D Designer 2023/resources/packages/" --includes "$(SBS_DIR)/utilities/"
|
||||||
export GETPRESET=sbsmutator info --print-presets
|
# but it seems obsolete, check how to add other dependencies integrated if needed
|
||||||
export GETOUTPUT=sbsmutator info --print-outputs
|
export MAKESBSAR=~/.local/share/Steam/steamapps/common/Substance\ 3D\ Designer\ 2023/sbscooker --quiet --output-name {inputName}
|
||||||
export SBSRENDER=sbsrender
|
export SBSRENDER=~/.local/share/Steam/steamapps/common/Substance\ 3D\ Designer\ 2023/sbsrender
|
||||||
|
|
||||||
# texturesets files
|
# texturesets files
|
||||||
export TEXTURESET_FOLDER := build/texturesets
|
export TEXTURESET_FOLDER := build/texturesets
|
||||||
|
@ -21,10 +21,10 @@ export PNG256_DIR := build/png_256
|
||||||
|
|
||||||
# Blender related
|
# Blender related
|
||||||
export BLENDFILES_FOLDER := example/blenderfiles
|
export BLENDFILES_FOLDER := example/blenderfiles
|
||||||
export BLENDEREXEC := /opt/blender/blender
|
export BLENDEREXEC := /home/yann/Documents/3D/blender_builds/current_stable/blender
|
||||||
|
|
||||||
# Logo file
|
# Logo file
|
||||||
export LOGO := example/logo/YKtextures.png
|
export LOGO := example/logo/yk.png
|
||||||
|
|
||||||
# Destination preview folder
|
# Destination preview folder
|
||||||
export PREVIEW_FOLDER := build/previews
|
export PREVIEW_FOLDER := build/previews
|
||||||
|
|
Loading…
Reference in a new issue