Added: #929 Added the objects build project and updated the max file batch convert script.
parent
ad51d50449
commit
42aa859245
@ -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
|
||||
|
@ -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
|
Loading…
Reference in New Issue