mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-30 04:40:53 +00:00
Added: #929 Added the objects build project and updated the max file batch convert script.
This commit is contained in:
parent
ad51d50449
commit
42aa859245
16 changed files with 665 additions and 95 deletions
|
@ -41,22 +41,32 @@ fn getAbsoluteDestination t =
|
||||||
|
|
||||||
fn getFixedTexturePath t =
|
fn getFixedTexturePath t =
|
||||||
(
|
(
|
||||||
if (doesFileExist (getAbsoluteSource t)) then
|
absoluteDestination = (getAbsoluteDestination t)
|
||||||
|
if (not (doesFileExist absoluteDestination)) and (((findString t "\\Stuff\\Fyros\\Decors\\_textures\\Batiments") != undefined) or ((findString t "\\Stuff\\Fyros\\Decors\\_textures\\Accessories\\Vv2\\") != undefined)) then
|
||||||
(
|
(
|
||||||
if not (doesFileExist (getAbsoluteDestination t)) then
|
testDestination = ("W:\\database\\stuff\\Fyros\\Agents\\_textures\\Accessories\\" + (getFilenameFile (filenameFromPath t)) + ".png")
|
||||||
|
if (doesFileExist testDestination) then
|
||||||
(
|
(
|
||||||
makeDir (getFilenamePath (getAbsoluteDestination t)) all:true
|
absoluteDestination = testDestination
|
||||||
renameFile (getAbsoluteSource t) (getAbsoluteDestination t)
|
|
||||||
)
|
|
||||||
if (doesFileExist (getAbsoluteDestination t)) then
|
|
||||||
(
|
|
||||||
if (getAbsoluteDestination t) != (getAbsoluteSource t) then
|
|
||||||
(
|
|
||||||
deleteFile (getAbsoluteSource t)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return (getAbsoluteDestination t)
|
if (not (doesFileExist absoluteDestination)) and (((findString t "\\Stuff\\Fyros\\Decors\\_textures\\Batiments") != undefined) or ((findString t "\\Stuff\\Fyros\\Decors\\_textures\\Accessories\\") != undefined)) then
|
||||||
|
(
|
||||||
|
testDestination = ("W:\\database\\stuff\\Fyros\\Agents\\_textures\\Accessories\\Vv2\\" + (getFilenameFile (filenameFromPath t)) + ".png")
|
||||||
|
if (doesFileExist testDestination) then
|
||||||
|
(
|
||||||
|
absoluteDestination = testDestination
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if (not (doesFileExist absoluteDestination)) and ((findString t "\\Stuff\\Fyros\\Decors\\_textures\\Accessories\\") != undefined) then
|
||||||
|
(
|
||||||
|
testDestination = ("W:\\database\\stuff\\Fyros\\Agents\\_textures\\Batiments\\" + (getFilenameFile (filenameFromPath t)) + ".png")
|
||||||
|
if (doesFileExist testDestination) then
|
||||||
|
(
|
||||||
|
absoluteDestination = testDestination
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return absoluteDestination
|
||||||
)
|
)
|
||||||
|
|
||||||
fn renameTexture t =
|
fn renameTexture t =
|
||||||
|
@ -175,6 +185,8 @@ rollout assets_png_rollout "Properties"
|
||||||
actionMan.executeAction 0 "63508" -- Views: Standard Display with Maps
|
actionMan.executeAction 0 "63508" -- Views: Standard Display with Maps
|
||||||
actionMan.executeAction 0 "40043" -- Selection: Select None
|
actionMan.executeAction 0 "40043" -- Selection: Select None
|
||||||
|
|
||||||
|
max views redraw
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,10 @@ def copyFilesExtNoTreeIfNeeded(log, dir_source, dir_target, file_ext):
|
||||||
files = findFiles(log, dir_source, "", file_ext)
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFilesExtNoSubdirIfNeeded(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFilesNoSubdir(log, dir_source, file_ext)
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
@ -192,7 +196,7 @@ def findFilesNoSubdir(log, dir_where, file_ext):
|
||||||
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
||||||
result += [ fileName ]
|
result += [ fileName ]
|
||||||
elif not os.path.isdir(fileFull):
|
elif not os.path.isdir(fileFull):
|
||||||
printLog(log, "findFilesNoSubdir: file not dir or file?!" + filePath)
|
printLog(log, "findFilesNoSubdir: file not dir or file?!" + fileFull)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def findFile(log, dir_where, file_name):
|
def findFile(log, dir_where, file_name):
|
||||||
|
|
|
@ -0,0 +1,185 @@
|
||||||
|
NEL3D_APPDATA_EXPORT_NODE_ANIMATION = 1423062800
|
||||||
|
|
||||||
|
|
||||||
|
-- Allocate 20 Me for the script
|
||||||
|
heapSize += 15000000
|
||||||
|
|
||||||
|
nlErrorFilename = "output_logfile"
|
||||||
|
nlErrorStream = openFile nlErrorFilename mode:"a"
|
||||||
|
if nlErrorStream == undefined then
|
||||||
|
nlErrorStream = createFile nlErrorFilename
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
fn unhidecategory =
|
||||||
|
(
|
||||||
|
if (geometry.count > 0) then
|
||||||
|
(
|
||||||
|
unhide geometry[1]
|
||||||
|
if (geometry[1].ishidden == true) then
|
||||||
|
max hide object toggle
|
||||||
|
)
|
||||||
|
if (shapes.count > 0) then
|
||||||
|
(
|
||||||
|
unhide shapes[1]
|
||||||
|
if (shapes[1].ishidden == true) then
|
||||||
|
max hide shape toggle
|
||||||
|
)
|
||||||
|
if (lights.count > 0) then
|
||||||
|
(
|
||||||
|
unhide lights[1]
|
||||||
|
if (lights[1].ishidden == true) then
|
||||||
|
max hide light toggle
|
||||||
|
)
|
||||||
|
if (cameras.count > 0) then
|
||||||
|
(
|
||||||
|
unhide cameras[1]
|
||||||
|
if (cameras[1].ishidden == true) then
|
||||||
|
max hide camera toggle
|
||||||
|
)
|
||||||
|
if (helpers.count > 0) then
|
||||||
|
(
|
||||||
|
unhide helpers[1]
|
||||||
|
if (helpers[1].ishidden == true) then
|
||||||
|
max hide helper toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Log a message
|
||||||
|
fn nlerror message =
|
||||||
|
(
|
||||||
|
if nlErrorStream != undefined then
|
||||||
|
(
|
||||||
|
format "%\n" message to:nlErrorStream
|
||||||
|
flush nlErrorStream
|
||||||
|
)
|
||||||
|
|
||||||
|
-- To the console
|
||||||
|
print message
|
||||||
|
)
|
||||||
|
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Get files in the anim_source_directory
|
||||||
|
files = getFiles "anim_source_directory/*.max"
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Sort files
|
||||||
|
sort files
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- No file ?
|
||||||
|
if files.count != 0 then
|
||||||
|
(
|
||||||
|
-- For each files
|
||||||
|
for i = 1 to files.count do
|
||||||
|
(
|
||||||
|
nlerror ("Scanning file "+files[i]+" ...")
|
||||||
|
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Output file
|
||||||
|
output = ("output_directory/"+(getFilenameFile files[i])+".anim")
|
||||||
|
|
||||||
|
-- Compare file date
|
||||||
|
if (NeLTestFileDate output files[i]) == true then
|
||||||
|
(
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
heapfree
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
-- Open the max project
|
||||||
|
if (loadMaxFile files[i] quiet:true) == true then
|
||||||
|
(
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
-- Select Bip01, not very smart
|
||||||
|
if $Bip01 != undefined then
|
||||||
|
(
|
||||||
|
select $Bip01
|
||||||
|
|
||||||
|
-- Always uncheck triangle pelvis
|
||||||
|
if (classof $Bip01) == Biped_Object then
|
||||||
|
(
|
||||||
|
$Bip01.controller.figureMode = true
|
||||||
|
$Bip01.controller.trianglepelvis = false
|
||||||
|
$Bip01.controller.figureMode = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- For each node
|
||||||
|
for node in objects do
|
||||||
|
(
|
||||||
|
exportNodeAnmation = getappdata node NEL3D_APPDATA_EXPORT_NODE_ANIMATION
|
||||||
|
if (exportNodeAnmation != undefined) then
|
||||||
|
(
|
||||||
|
if (exportNodeAnmation == "1") then
|
||||||
|
(
|
||||||
|
selectmore node
|
||||||
|
|
||||||
|
-- Is it a biped ?
|
||||||
|
if (classof node.controller) == Vertical_Horizontal_Turn then
|
||||||
|
(
|
||||||
|
-- Always uncheck triangle pelvis
|
||||||
|
node.controller.trianglepelvis = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if ((selection as array).count != 0) then
|
||||||
|
(
|
||||||
|
-- Export the animation
|
||||||
|
if (NelExportAnimation (selection as array) output false) == false then
|
||||||
|
(
|
||||||
|
nlerror ("ERROR exporting animation "+files[i])
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("OK "+output)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting animation: no node animated to export in file "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting animation: can't open the file "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("SKIPPED "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR error exporting animation in files " + files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("WARNING no animation file in folder anim_source_directory")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting animation in folder anim_source_directory")
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Bye
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
quitMAX #noPrompt
|
||||||
|
quitMAX () #noPrompt
|
||||||
|
|
|
@ -63,13 +63,13 @@ else:
|
||||||
mkPath(log, sourcePath)
|
mkPath(log, sourcePath)
|
||||||
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
||||||
mkPath(log, destPath)
|
mkPath(log, destPath)
|
||||||
files = findFiles(log, sourcePath, "", ".tga")
|
files = findFilesNoSubdir(log, sourcePath, ".tga")
|
||||||
for file in files:
|
for file in files:
|
||||||
sourceFile = sourcePath + "/" + file
|
sourceFile = sourcePath + "/" + file
|
||||||
destFile = destPath + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
destFile = destPath + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
||||||
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
||||||
files = findFiles(log, sourcePath, "", ".png")
|
files = findFilesNoSubdir(log, sourcePath, ".png")
|
||||||
for file in files:
|
for file in files:
|
||||||
sourceFile = sourcePath + "/" + file
|
sourceFile = sourcePath + "/" + file
|
||||||
destFile = destPath + "/" + os.path.basename(file)[0:-len(".png")] + ".dds"
|
destFile = destPath + "/" + os.path.basename(file)[0:-len(".png")] + ".dds"
|
||||||
|
@ -78,14 +78,14 @@ else:
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Build map uncompressed: copy tga, png, dds <<<")
|
printLog(log, ">>> Build map uncompressed: copy tga, png, dds <<<")
|
||||||
for dir in MapSourceDirectories:
|
for dir in MapUncompressedSourceDirectories:
|
||||||
sourcePath = DatabaseDirectory + "/" + dir
|
sourcePath = DatabaseDirectory + "/" + dir
|
||||||
mkPath(log, sourcePath)
|
mkPath(log, sourcePath)
|
||||||
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
||||||
mkPath(log, destPath)
|
mkPath(log, destPath)
|
||||||
copyFilesExtNoTreeIfNeeded(log, sourcePath, destPath, ".dds")
|
copyFilesExtNoSubdirIfNeeded(log, sourcePath, destPath, ".dds")
|
||||||
copyFilesExtNoTreeIfNeeded(log, sourcePath, destPath, ".png")
|
copyFilesExtNoSubdirIfNeeded(log, sourcePath, destPath, ".png")
|
||||||
copyFilesExtNoTreeIfNeeded(log, sourcePath, destPath, ".tga")
|
copyFilesExtNoSubdirIfNeeded(log, sourcePath, destPath, ".tga")
|
||||||
|
|
||||||
printLog(log, ">>> Build panoply <<<")
|
printLog(log, ">>> Build panoply <<<")
|
||||||
printLog(log, "********************************")
|
printLog(log, "********************************")
|
||||||
|
|
|
@ -61,10 +61,13 @@ mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
|
mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + LightmapClientDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -36,38 +36,9 @@ from process import *
|
||||||
from tools import *
|
from tools import *
|
||||||
from directories import *
|
from directories import *
|
||||||
|
|
||||||
# Todo: make a tool to verify the files :)
|
|
||||||
|
|
||||||
def getTagFileName(filePath):
|
def getTagFileName(filePath):
|
||||||
return os.path.split(filePath)[1] + ".tag"
|
return os.path.split(filePath)[1] + ".tag"
|
||||||
|
|
||||||
def hackBigTree():
|
|
||||||
return 0
|
|
||||||
if EcosystemName == "jungle":
|
|
||||||
# FO_S2_big_tree is corrupt on first export...
|
|
||||||
outDirTag = ExportBuildDirectory + "/" + ShapeTagExportDirectory
|
|
||||||
outDirWithCoarse = ExportBuildDirectory + "/" + ShapeWithCoarseMeshExportDirectory
|
|
||||||
shapeName = "FO_S2_big_tree.shape"
|
|
||||||
tagName = "FO_S2_big_tree.max.tag"
|
|
||||||
hackName = "FO_S2_big_tree_hack.tag"
|
|
||||||
if os.path.exists(outDirWithCoarse + "/" + shapeName) and os.path.exists(outDirTag + "/" + tagName) and not os.path.exists(outDirTag + "/" + hackName):
|
|
||||||
printLog(log, "Removing bad export of FO_S2_big_tree")
|
|
||||||
printLog(log, "RM " + outDirWithCoarse + "/" + shapeName)
|
|
||||||
os.remove(outDirWithCoarse + "/" + shapeName)
|
|
||||||
printLog(log, "RM " + outDirTag + "/" + tagName)
|
|
||||||
os.remove(outDirTag + "/" + tagName)
|
|
||||||
printLog(log, "TAG " + outDirTag + "/" + hackName)
|
|
||||||
hackTagFile = open(outDirTag + "/" + hackName, "w")
|
|
||||||
hackTagFile.write("FO_S2_big_tree")
|
|
||||||
hackTagFile.close()
|
|
||||||
return 1
|
|
||||||
elif os.path.exists(outDirTag + "/" + hackName) and not os.path.exists(outDirWithCoarse + "/" + shapeName) and not os.path.exists(outDirTag + "/" + tagName):
|
|
||||||
printLog(log, "Missing export of FO_S2_big_tree")
|
|
||||||
return 0
|
|
||||||
else:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Export shape")
|
printLog(log, "--- Export shape")
|
||||||
|
@ -150,8 +121,9 @@ if MaxAvailable:
|
||||||
subprocess.call([ ExecTimeout, str(MaxShapeExportTimeout), Max, "-U", "MAXScript", "shape_export.ms", "-q", "-mi", "-vn" ])
|
subprocess.call([ ExecTimeout, str(MaxShapeExportTimeout), Max, "-U", "MAXScript", "shape_export.ms", "-q", "-mi", "-vn" ])
|
||||||
lSrc = open(logFile, "r")
|
lSrc = open(logFile, "r")
|
||||||
for line in lSrc:
|
for line in lSrc:
|
||||||
if (len(line) > 0):
|
lineStrip = line.strip()
|
||||||
printLog(log, line.strip())
|
if (len(lineStrip) > 0):
|
||||||
|
printLog(log, lineStrip)
|
||||||
lSrc.close()
|
lSrc.close()
|
||||||
os.remove(logFile)
|
os.remove(logFile)
|
||||||
if (os.path.exists(tagFilePath)):
|
if (os.path.exists(tagFilePath)):
|
||||||
|
@ -163,19 +135,6 @@ if MaxAvailable:
|
||||||
os.remove(scriptDst)
|
os.remove(scriptDst)
|
||||||
else:
|
else:
|
||||||
printLog(log, "SKIP " + maxFilePath)
|
printLog(log, "SKIP " + maxFilePath)
|
||||||
#while tagDiff > 0:
|
|
||||||
# printLog(log, "MAXSCRIPT " + scriptDst)
|
|
||||||
# subprocess.call([ Max, "-U", "MAXScript", "shape_export.ms", "-q", "-mi", "-vn" ])
|
|
||||||
# tagList = findFiles(log, outDirTag, "", ".tag")
|
|
||||||
# newTagLen = len(tagList)
|
|
||||||
# tagDiff = newTagLen - tagLen
|
|
||||||
# tagLen = newTagLen
|
|
||||||
# printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
|
||||||
# if not tagDiff > 0:
|
|
||||||
# tagDiff += hackBigTree() # force rerun also when big tree deleted
|
|
||||||
# if not tagDiff > 0:
|
|
||||||
# tagDiff += secondTry
|
|
||||||
# secondTry = 0
|
|
||||||
|
|
||||||
# Export clod 3dsmax
|
# Export clod 3dsmax
|
||||||
printLog(log, ">>> Export character lod shape files (.clod) from Max <<<")
|
printLog(log, ">>> Export character lod shape files (.clod) from Max <<<")
|
||||||
|
@ -193,6 +152,8 @@ if MaxAvailable:
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
shutil.move("temp_log.log", "log.log")
|
shutil.move("temp_log.log", "log.log")
|
||||||
|
|
||||||
# end of file
|
# end of file
|
||||||
|
|
|
@ -63,17 +63,35 @@ if ClodConfigFile != "":
|
||||||
printLog(log, "******** TODO ********")
|
printLog(log, "******** TODO ********")
|
||||||
printLog(log, "********************************")
|
printLog(log, "********************************")
|
||||||
|
|
||||||
printLog(log, ">>> LightmapOptimizer <<<")
|
printLog(log, ">>> Optimize lightmaps <<<")
|
||||||
printLog(log, "********************************")
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmapNotOptimizedExportDirectory)
|
||||||
printLog(log, "******** TODO ********")
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory)
|
||||||
printLog(log, "********************************")
|
mkPath(log, ExportBuildDirectory + "/" + ShapeTagExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeExportDirectory)
|
||||||
|
removeFilesRecursive(log, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory)
|
||||||
|
copyFiles(log, ExportBuildDirectory + "/" + ShapeLightmapNotOptimizedExportDirectory, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory)
|
||||||
|
subprocess.call([ LightmapOptimizer, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory, ExportBuildDirectory + "/" + ShapeExportDirectory, ExportBuildDirectory + "/" + ShapeTagExportDirectory, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory + "/list_lm_8bit.txt" ])
|
||||||
|
|
||||||
printLog(log, ">>> TgaToDds <<<")
|
printLog(log, ">>> Convert lightmaps in 16 or 8 bits <<<")
|
||||||
printLog(log, "********************************")
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory)
|
||||||
printLog(log, "******** TODO ********")
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
printLog(log, "********************************")
|
lightMapTgas = findFilesNoSubdir(log, ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory, ".tga")
|
||||||
|
listLm8Bit = [ ]
|
||||||
|
listLm8BitFile = open(ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory + "/list_lm_8bit.txt", "r")
|
||||||
|
for line in listLm8BitFile:
|
||||||
|
lineStrip = line.strip()
|
||||||
|
if (len(lineStrip) > 0):
|
||||||
|
listLm8Bit += [ lineStrip ]
|
||||||
|
for lightMapTga in lightMapTgas:
|
||||||
|
srcTga = ExportBuildDirectory + "/" + ShapeLightmapBuildDirectory + "/" + lightMapTga
|
||||||
|
dstTga = ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory + "/" + lightMapTga
|
||||||
|
if needUpdateLogRemoveDest(log, srcTga, dstTga):
|
||||||
|
if lightMapTga in listLm8Bit: # THIS MAY NOT WORK, PLEASE VERIFY CONTENTS OF list_lm_8bit.txt!!!
|
||||||
|
subprocess.call([ TgaToDds, srcTga, "-o", dstTga, "-a", "tga8" ])
|
||||||
|
else:
|
||||||
|
subprocess.call([ TgaToDds, srcTga, "-o", dstTga, "-a", "tga16" ])
|
||||||
|
|
||||||
if 1: # todo: CoarseMeshTextureNames length > 0 ...
|
if len(CoarseMeshTextureNames) > 0:
|
||||||
printLog(log, ">>> Build coarse meshes <<<")
|
printLog(log, ">>> Build coarse meshes <<<")
|
||||||
shapeWithCoarseMesh = ExportBuildDirectory + "/" + ShapeWithCoarseMeshExportDirectory
|
shapeWithCoarseMesh = ExportBuildDirectory + "/" + ShapeWithCoarseMeshExportDirectory
|
||||||
mkPath(log, shapeWithCoarseMesh)
|
mkPath(log, shapeWithCoarseMesh)
|
||||||
|
@ -111,6 +129,8 @@ if 1: # todo: CoarseMeshTextureNames length > 0 ...
|
||||||
os.remove("config_generated.cfg")
|
os.remove("config_generated.cfg")
|
||||||
for tn in CoarseMeshTextureNames:
|
for tn in CoarseMeshTextureNames:
|
||||||
subprocess.call([ TgaToDds, shapeWithCoarseMesh + "/" + tn + ".tga", "-o", shapeWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
subprocess.call([ TgaToDds, shapeWithCoarseMesh + "/" + tn + ".tga", "-o", shapeWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
||||||
|
else:
|
||||||
|
printLog(log, ">>> No coarse meshes <<<")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,26 +43,26 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install shape <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + ShapeClientDirectory
|
clientPath = ClientDataDirectory + "/" + ShapeClientDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install shape <<<")
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeExportDirectory, clientPath, ".shape")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeExportDirectory, clientPath, ".shape")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".shape")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".shape")
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".dds")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".dds")
|
||||||
|
|
||||||
#if test "$lightmap_install_directory"; then
|
|
||||||
# mkdir $client_directory/$lightmap_install_directory 2>> log.log 2> /dev/null
|
|
||||||
# cp -u -p -R lightmap_16_bits/. $client_directory/$lightmap_install_directory 2>> log.log
|
|
||||||
#fi
|
|
||||||
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, clientPath, ".anim")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, clientPath, ".anim")
|
||||||
|
|
||||||
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
|
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
|
||||||
|
|
||||||
|
printLog(log, ">>> Install shape lightmaps <<<")
|
||||||
|
clientPath = ClientDataDirectory + "/" + LightmapClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory, clientPath, ".tga")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file directories.py
|
||||||
|
# \brief Directories configuration
|
||||||
|
# \date 2010-08-27 17:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# \date 2001-2005
|
||||||
|
# \author Nevrax
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Directories configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# *** COMMON PATH ***
|
||||||
|
|
||||||
|
CommonPath = "common/objects"
|
||||||
|
|
||||||
|
|
||||||
|
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeSourceDirectories = [ ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/fyros/agents/accessories" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/tryker/agents/accessories" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/matis/agents/accessories" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/zorai/agents/accessories" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/generique/agents/accessories" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/caravan/agents/accessories" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/animated_light" ]
|
||||||
|
|
||||||
|
# Maps directories
|
||||||
|
MapSourceDirectories = [ ]
|
||||||
|
MapSourceDirectories += [ "stuff/fyros/agents/_textures/accessories" ]
|
||||||
|
MapSourceDirectories += [ "stuff/tryker/agents/_textures/accessories" ]
|
||||||
|
MapSourceDirectories += [ "stuff/matis/agents/_textures/accessories" ]
|
||||||
|
MapSourceDirectories += [ "stuff/zorai/agents/_textures/accessories" ]
|
||||||
|
MapSourceDirectories += [ "stuff/generique/agents/_textures/accessories" ]
|
||||||
|
MapSourceDirectories += [ "stuff/caravan/agents/_textures/accessories" ]
|
||||||
|
|
||||||
|
MapUncompressedSourceDirectories = [ ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||||
|
ShapeExportDirectory = CommonPath + "/shape"
|
||||||
|
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||||
|
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||||
|
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||||
|
|
||||||
|
|
||||||
|
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Map directories
|
||||||
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||||
|
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||||
|
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||||
|
|
||||||
|
|
||||||
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
|
# Map directory
|
||||||
|
MapClientDirectory = "objects"
|
||||||
|
|
||||||
|
# Map directory
|
||||||
|
BitmapClientDirectory = MapClientDirectory
|
||||||
|
|
||||||
|
# Shape directory
|
||||||
|
ShapeClientDirectory = "objects"
|
||||||
|
|
||||||
|
# Lightmap directory
|
||||||
|
LightmapClientDirectory = "objects"
|
|
@ -0,0 +1,77 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file config.py
|
||||||
|
# \brief Process configuration
|
||||||
|
# \date 2010-08-27 17:02GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Process configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# *** PROCESS CONFIGURATION ***
|
||||||
|
|
||||||
|
# *** PROCESS CONFIG ***
|
||||||
|
ProcessToComplete = [ ]
|
||||||
|
ProcessToComplete += [ "shape" ] # not fully implemented, but works for this process
|
||||||
|
ProcessToComplete += [ "map" ] # not fully implemented, but works for this process
|
||||||
|
|
||||||
|
|
||||||
|
# *** SHAPE EXPORT OPTIONS ***
|
||||||
|
|
||||||
|
# Compute lightmaps ?
|
||||||
|
ShapeExportOptExportLighting = "true"
|
||||||
|
|
||||||
|
# Cast shadow in lightmap ?
|
||||||
|
ShapeExportOptShadow = "true"
|
||||||
|
|
||||||
|
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||||
|
ShapeExportOptLightingLimit = 0
|
||||||
|
|
||||||
|
# Lightmap lumel size
|
||||||
|
ShapeExportOptLumelSize = "0.25"
|
||||||
|
|
||||||
|
# Oversampling value. Can be 1, 2, 4 or 8
|
||||||
|
ShapeExportOptOversampling = 1
|
||||||
|
|
||||||
|
# Does the lightmap must be generated in 8 bits format ?
|
||||||
|
ShapeExportOpt8BitsLightmap = "false"
|
||||||
|
|
||||||
|
# Does the lightmaps export must generate logs ?
|
||||||
|
ShapeExportOptLightmapLog = "true"
|
||||||
|
|
||||||
|
# Coarse mesh texture mul size
|
||||||
|
TextureMulSizeValue = "1.5"
|
||||||
|
|
||||||
|
DoBuildShadowSkin = 0
|
||||||
|
|
||||||
|
ClodConfigFile = ""
|
||||||
|
|
||||||
|
# *** COARSE MESH TEXTURE NAME ***
|
||||||
|
CoarseMeshTextureNames = [ ]
|
||||||
|
|
||||||
|
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||||
|
MultipleTilesPostfix = [ ]
|
||||||
|
MultipleTilesPostfix += [ "_sp" ]
|
||||||
|
MultipleTilesPostfix += [ "_su" ]
|
||||||
|
MultipleTilesPostfix += [ "_au" ]
|
||||||
|
MultipleTilesPostfix += [ "_wi" ]
|
||||||
|
|
||||||
|
# *** MAPS OPTIONS ***
|
||||||
|
|
||||||
|
ReduceBitmapFactor = 0
|
|
@ -0,0 +1,123 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file directories.py
|
||||||
|
# \brief Directories configuration
|
||||||
|
# \date 2010-08-27 17:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# \date 2001-2005
|
||||||
|
# \author Nevrax
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Directories configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# *** COMMON PATH ***
|
||||||
|
|
||||||
|
CommonName = "sky"
|
||||||
|
CommonPath = "common/" + CommonName
|
||||||
|
|
||||||
|
|
||||||
|
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeSourceDirectories = [ ]
|
||||||
|
ShapeSourceDirectories += [ "sky_v2/max" ]
|
||||||
|
|
||||||
|
# Maps directories
|
||||||
|
MapSourceDirectories = [ ]
|
||||||
|
MapSourceDirectories += [ "sky_v2/textures/textures" ]
|
||||||
|
|
||||||
|
MapUncompressedSourceDirectories = [ ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/textures/desert" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/textures/forest" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/textures/jungle" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/textures/lacustre" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/setup/desert" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/setup/forest" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/setup/jungle" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/setup/lacustre" ]
|
||||||
|
MapUncompressedSourceDirectories += [ "sky_v2/textures/textures/nodds" ]
|
||||||
|
|
||||||
|
# Ig directories
|
||||||
|
IgLandSourceDirectories = [ ]
|
||||||
|
IgOtherSourceDirectories = [ ]
|
||||||
|
IgOtherSourceDirectories += [ "sky_v2/max" ]
|
||||||
|
IgPrimitiveSourceDirectories = [ ]
|
||||||
|
|
||||||
|
# Animation directories
|
||||||
|
AnimSourceDirectories = [ ]
|
||||||
|
AnimSourceDirectories += [ "sky_v2/max" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||||
|
ShapeExportDirectory = CommonPath + "/shape"
|
||||||
|
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||||
|
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||||
|
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||||
|
|
||||||
|
# Ig directories
|
||||||
|
IgStaticLandExportDirectory = CommonPath + "/ig_static_land" # Landscape IG eported from 3dsmax not elevated by the heightmap
|
||||||
|
IgStaticOtherExportDirectory = CommonPath + "/ig_static_other" # Village or construction IGs exported from 3dsmax
|
||||||
|
IgStaticTagExportDirectory = CommonPath + "/ig_static_tag" # Tag for exported 3dsmax files
|
||||||
|
|
||||||
|
|
||||||
|
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Map directories
|
||||||
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||||
|
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||||
|
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||||
|
|
||||||
|
# Ig directories
|
||||||
|
IgElevLandPrimBuildDirectory = CommonPath + "/ig_elev_land_prim" # landscape IG generated by the prim exporter (already elevated by the land exporter)
|
||||||
|
IgElevLandLigoBuildDirectory = CommonPath + "/ig_elev_land_ligo" # Landscape IG found in ligo bricks from 3dsmax elevated by the heightmap
|
||||||
|
IgElevLandStaticBuildDirectory = CommonPath + "/ig_elev_land_static" # Landscape IG eported from 3dsmax elevated by the heightmap
|
||||||
|
IgTempLandMergeBuildDirectory = CommonPath + "/ig_temp_land_merge"
|
||||||
|
IgTempLandCompareBuildDirectory = CommonPath + "/ig_temp_land_compare" # Tmp final IG directory for landscape IGs before comparison
|
||||||
|
IgLandBuildDirectory = CommonPath + "/ig_land" # Final IG directory for landscape IGs
|
||||||
|
IgOtherBuildDirectory = CommonPath + "/ig_other" # Final IG directory for village or construction IGs
|
||||||
|
IgOtherLightedBuildDirectory = CommonPath + "/ig_other_lighted"
|
||||||
|
|
||||||
|
|
||||||
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
|
# Map directory
|
||||||
|
MapClientDirectory = CommonName
|
||||||
|
|
||||||
|
# Map directory
|
||||||
|
BitmapClientDirectory = MapClientDirectory
|
||||||
|
|
||||||
|
# Shape directory
|
||||||
|
ShapeClientDirectory = CommonName
|
||||||
|
|
||||||
|
# Lightmap directory
|
||||||
|
LightmapClientDirectory = CommonName
|
||||||
|
|
||||||
|
# Animation directory
|
||||||
|
AnimClientDirectory = CommonName
|
||||||
|
|
||||||
|
# Ig directory
|
||||||
|
IgClientDirectory = CommonName
|
|
@ -0,0 +1,80 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file config.py
|
||||||
|
# \brief Process configuration
|
||||||
|
# \date 2010-08-27 17:02GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Process configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# Copyright (C) 2010 Winch Gate Property Limited
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# *** PROCESS CONFIGURATION ***
|
||||||
|
|
||||||
|
# *** PROCESS CONFIG ***
|
||||||
|
ProcessToComplete = [ ]
|
||||||
|
ProcessToComplete += [ "shape" ]
|
||||||
|
ProcessToComplete += [ "map" ]
|
||||||
|
#ProcessToComplete += [ "anim" ]
|
||||||
|
#ProcessToComplete += [ "ig" ]
|
||||||
|
#ProcessToComplete += [ "ig_light" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** SHAPE EXPORT OPTIONS ***
|
||||||
|
|
||||||
|
# Compute lightmaps ?
|
||||||
|
ShapeExportOptExportLighting = "true"
|
||||||
|
|
||||||
|
# Cast shadow in lightmap ?
|
||||||
|
ShapeExportOptShadow = "true"
|
||||||
|
|
||||||
|
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||||
|
ShapeExportOptLightingLimit = 0
|
||||||
|
|
||||||
|
# Lightmap lumel size
|
||||||
|
ShapeExportOptLumelSize = "0.25"
|
||||||
|
|
||||||
|
# Oversampling value. Can be 1, 2, 4 or 8
|
||||||
|
ShapeExportOptOversampling = 1
|
||||||
|
|
||||||
|
# Does the lightmap must be generated in 8 bits format ?
|
||||||
|
ShapeExportOpt8BitsLightmap = "false"
|
||||||
|
|
||||||
|
# Does the lightmaps export must generate logs ?
|
||||||
|
ShapeExportOptLightmapLog = "true"
|
||||||
|
|
||||||
|
# Coarse mesh texture mul size
|
||||||
|
TextureMulSizeValue = "1.5"
|
||||||
|
|
||||||
|
DoBuildShadowSkin = 0
|
||||||
|
|
||||||
|
ClodConfigFile = ""
|
||||||
|
|
||||||
|
# *** COARSE MESH TEXTURE NAME ***
|
||||||
|
CoarseMeshTextureNames = [ ]
|
||||||
|
|
||||||
|
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||||
|
MultipleTilesPostfix = [ ]
|
||||||
|
MultipleTilesPostfix += [ "_sp" ]
|
||||||
|
MultipleTilesPostfix += [ "_su" ]
|
||||||
|
MultipleTilesPostfix += [ "_au" ]
|
||||||
|
MultipleTilesPostfix += [ "_wi" ]
|
||||||
|
|
||||||
|
# *** MAPS OPTIONS ***
|
||||||
|
|
||||||
|
ReduceBitmapFactor = 0
|
|
@ -33,6 +33,8 @@ EcosystemName = "jungle"
|
||||||
EcosystemPath = "ecosystems/" + EcosystemName
|
EcosystemPath = "ecosystems/" + EcosystemName
|
||||||
ContinentName = "newbieland"
|
ContinentName = "newbieland"
|
||||||
ContinentPath = "continents/" + ContinentName
|
ContinentPath = "continents/" + ContinentName
|
||||||
|
CommonName = ContinentName
|
||||||
|
CommonPath = ContinentPath
|
||||||
|
|
||||||
# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD ***
|
# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD ***
|
||||||
ContinentLeveldesignWorldDirectory = ContinentName
|
ContinentLeveldesignWorldDirectory = ContinentName
|
||||||
|
|
|
@ -26,12 +26,14 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
|
||||||
|
|
||||||
|
|
||||||
# *** ECOSYSTEM NAME ***
|
# *** ECOSYSTEM NAME ***
|
||||||
EcosystemName = "jungle"
|
EcosystemName = "jungle"
|
||||||
EcosystemPath = "ecosystems/" + EcosystemName
|
EcosystemPath = "ecosystems/" + EcosystemName
|
||||||
|
CommonPath = EcosystemPath
|
||||||
|
|
||||||
|
|
||||||
|
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeSourceDirectories = [ ]
|
ShapeSourceDirectories = [ ]
|
||||||
|
@ -147,11 +149,11 @@ PacsPrimSourceDirectories += [ "stuff/" + EcosystemName + "/decors/vegetations"
|
||||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeTagExportDirectory = "ecosystems/" + EcosystemName + "/shape_tag"
|
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||||
ShapeExportDirectory = "ecosystems/" + EcosystemName + "/shape"
|
ShapeExportDirectory = CommonPath + "/shape"
|
||||||
ShapeWithCoarseMeshExportDirectory = "ecosystems/" + EcosystemName + "/shape_with_coarse_mesh"
|
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||||
ShapeLightmapNotOptimizedExportDirectory = "ecosystems/" + EcosystemName + "/shape_lightmap_not_optimized"
|
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||||
ShapeAnimExportDirectory = "ecosystems/" + EcosystemName + "/shape_anim"
|
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||||
|
|
||||||
# Smallbank directories
|
# Smallbank directories
|
||||||
SmallbankExportDirectory = "ecosystems/" + EcosystemName + "/smallbank"
|
SmallbankExportDirectory = "ecosystems/" + EcosystemName + "/smallbank"
|
||||||
|
@ -184,11 +186,13 @@ ZoneExportDirectory = "ecosystems/" + EcosystemName + "/zone"
|
||||||
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
# Map directories
|
# Map directories
|
||||||
MapBuildDirectory = "ecosystems/" + EcosystemName + "/map"
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
MapPanoplyBuildDirectory = "ecosystems/" + EcosystemName + "/map_panoply"
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeWithCoarseMeshBuildDirectory = "ecosystems/" + EcosystemName + "/shape_with_coarse_mesh_builded"
|
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||||
|
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||||
|
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||||
|
|
||||||
# Farbank directories
|
# Farbank directories
|
||||||
FarbankBuildDirectory = "ecosystems/" + EcosystemName + "/farbank"
|
FarbankBuildDirectory = "ecosystems/" + EcosystemName + "/farbank"
|
||||||
|
@ -218,15 +222,15 @@ ClientSetupDirectories += [ "jungle_vegetable_sets" ]
|
||||||
ClientSetupDirectories += [ "jungle_pacs_prim" ]
|
ClientSetupDirectories += [ "jungle_pacs_prim" ]
|
||||||
ClientSetupDirectories += [ "jungle_lightmaps" ]
|
ClientSetupDirectories += [ "jungle_lightmaps" ]
|
||||||
|
|
||||||
# Shape directory
|
# Map directory
|
||||||
MapClientDirectory = "jungle_maps"
|
MapClientDirectory = "jungle_maps"
|
||||||
|
|
||||||
|
# Map directory
|
||||||
|
BitmapClientDirectory = MapClientDirectory
|
||||||
|
|
||||||
# Shape directory
|
# Shape directory
|
||||||
ShapeClientDirectory = "jungle_shapes"
|
ShapeClientDirectory = "jungle_shapes"
|
||||||
|
|
||||||
# Map directory
|
|
||||||
BitmapClientDirectory = "jungle_maps"
|
|
||||||
|
|
||||||
# Lightmap directory
|
# Lightmap directory
|
||||||
LightmapClientDirectory = "jungle_lightmaps"
|
LightmapClientDirectory = "jungle_lightmaps"
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,10 @@ ShapeExportOptLightmapLog = "false"
|
||||||
# Coarse mesh texture mul size
|
# Coarse mesh texture mul size
|
||||||
TextureMulSizeValue = "1.5"
|
TextureMulSizeValue = "1.5"
|
||||||
|
|
||||||
|
DoBuildShadowSkin = 0
|
||||||
|
|
||||||
|
ClodConfigFile = ""
|
||||||
|
|
||||||
# *** COARSE MESH TEXTURE NAME ***
|
# *** COARSE MESH TEXTURE NAME ***
|
||||||
CoarseMeshTextureNames = [ ]
|
CoarseMeshTextureNames = [ ]
|
||||||
CoarseMeshTextureNames += [ "nel_coarse_mesh_jungle_sp" ]
|
CoarseMeshTextureNames += [ "nel_coarse_mesh_jungle_sp" ]
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
|
|
||||||
ProjectsToProcess = [ ]
|
ProjectsToProcess = [ ]
|
||||||
ProjectsToProcess += [ "common/interface" ]
|
ProjectsToProcess += [ "common/interface" ]
|
||||||
|
ProjectsToProcess += [ "common/objects" ]
|
||||||
|
ProjectsToProcess += [ "common/sky" ]
|
||||||
ProjectsToProcess += [ "ecosystems/jungle" ]
|
ProjectsToProcess += [ "ecosystems/jungle" ]
|
||||||
ProjectsToProcess += [ "continents/newbieland" ]
|
ProjectsToProcess += [ "continents/newbieland" ]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue