Creando bibliotecas comerciales
Descripción general
Esta información es para empresas que deseen crear bibliotecas de activos distribuidas que estén integradas en Forest Pack. No es necesario aprender estos pasos si solo está creando bibliotecas para uso interno.
Los usuarios esperan que las bibliotecas vendidas a través de nuestra tienda se integren con la biblioteca Forest Pack. Esto les permitirá obtener una vista previa y cargar rápidamente recursos directamente dentro de Forest Pack con materiales aplicados automáticamente para que coincidan con su renderizador actual.
En el caso de Recursos de cobertura del suelo como el césped, en lugar de proporcionar modelos individuales, preferimos crear Presets con configuraciones clave de Forest Pack ya aplicadas. Puedes encontrar más información sobre esto en nuestro Tutorial de creación de Presets .
Reglas generales
-
Cada artículo debe utilizar un solo material. Podría ser un material multiobjeto/subobjeto "consolidado" que contenga materiales para el renderizador actual. Luego, al usar una macro, el usuario puede elegir entre varias bibliotecas de materiales sobre el renderizador utilizado en la escena.
-
Los materiales deben eliminarse de los objetos del archivo Max o reemplazarse con materiales estándar. Esto es para evitar problemas con los usuarios que reciben mensajes sobre mapas y sombreadores faltantes.
-
Cada artículo debe tener un nombre único; en caso de variaciones, se debe utilizar la numeración.
-
No utilice objetos Proxy con la biblioteca Forest Pack. Aumenta el tamaño de los archivos al requerir un archivo separado para cada renderizador y hay muy poca ventaja de rendimiento al usar Proxies con Forest Pack.
-
Cada activo de la biblioteca necesita su propia miniatura, representada en una relación de aspecto cuadrada de 1:1 no inferior a 800 x 800 e idealmente 1024 x 1024. Debe estar sobre un fondo claro simple similar al que se muestra a continuación. Si lo desea, tenemos un archivo de plantilla para esto que podemos proporcionarle.
-
Cuando sea posible, utilice brillo y brillo estandarizados Flujos de trabajo de PBR Esto nos permitirá a nosotros y a nuestros usuarios crear fácilmente materiales adicionales para admitir nuevos renderizadores con resultados relativamente predecibles.
-
Se necesitan información y descripciones de la planta para cada activo.
Nombrar es importante. Creemos que deberíamos intentar ser lo más específicos posible sobre la especie de planta o árbol.
También se puede incluir una breve descripción de cada planta en la biblioteca XML. Para múltiples versiones de la misma planta, esto simplemente se puede duplicar. Los nombres de los activos, las descripciones y las miniaturas también se utilizan para completar automáticamente un catálogo en línea.
-
Cuando sea posible agregar Forest Colour mapas para agregar textura y/o variedad de tintes a sus objetos. Los usuarios esperan que las bibliotecas proporcionadas para su uso con Forest Pack aprovechen al máximo sus funciones.
-
Siempre que sea posible, es mejor utilizar geometría de hoja que mapas de opacidad, lo que puede tener un impacto negativo en los tiempos de renderizado. Para algunos árboles muy grandes o para hojas que tienen formas complejas, entendemos que puede que no siempre sea necesario.
-
Mantenga un recuento de polígonos razonable. Es imposible dar una cifra exacta porque depende del tamaño y la complejidad del árbol/planta, pero para un árbol grande, hasta 2 millones debería estar bien. Menos si es posible y sólo suba más si es absolutamente necesario.
Creando la biblioteca
Forest Pack's Explorador de librerías necesita tener una estructura de carpetas con un índice.xml archivo (que almacena toda la información de la biblioteca necesaria) y un conjunto de imágenes en miniatura, que se almacenan en la carpeta de miniaturas (que contiene imágenes en miniatura) o en la misma ruta que los archivos objeto. Además, se recomienda tener un archivo [nombre de biblioteca].ms maxscript que maneje cualquier función que necesite la biblioteca, como getRenderer() para detectar el renderizador actual, acciones personalizadas, etc.
Nombres de archivos y estructura de directorios
Los elementos pueden compartir mapas y materiales; todos los mapas y bibliotecas de materiales necesarios deben almacenarse en directorios separados, de la siguiente manera:
- \objects\<plant_name>.max (one mesh object per file, same name as filename)
- \thumbnails\<plant_name>.jpg
- \maps\<mapname>.jpg
- \matlibs\scanline.mat
- \matlibs\mentalray.mat
- \matlibs\vray.mat
Si es posible, agregue un fp_
al inicio de todos los archivos y nombres de objetos. Facilita a los usuarios identificar los orígenes de los archivos. Para mapas utilice la siguiente fórmula:
fp_assetname_[maptype].jpg
Por ejemplo, un activo llamado daffodil1 podría tener estos activos:
- fp_daffodil1_diffuse.jpg
- fp_daffodil1_glossiness.jpg
- fp_daffodil1_normal.jpg
- fp_daffodil1_translucence.jpg
- fp_daffodil1_opacity.jpg
Esto también nos simplifica la recreación de materiales para otros renderizadores y abre la opción de automatizar el proceso más adelante, similar al enfoque utilizado por Quixel.
Estructura index.xml
Encabezamiento
<?xml version="1.0"?>
<library version="100" order="1">
<select class="material" setmacro="\product name>RENDERER">
<option value="@forestlib.ms:getRenderer()" default="1">Automatic Selector</option>
<option value="standard">Standard</option>
<option value="mental">MentalRay</option>
<option value="vray">VRay</option>
</select>
El encabezado La parte se utiliza para asignar materiales correctos al elemento seleccionado llamando a la función getRenderer() definida en el archivo forestlib.ms maxscript (o en [nombre del producto]catalog.ms) para evaluar el renderizador utilizado actualmente en la escena. En cualquier caso (usando el forestlib.ms predeterminado o el [nombre del producto]catalog.ms personalizado), el nombre de la macro debe configurarse correctamente mediante setmacro="[nombre del producto]RENDERER"> y debe ser diferente del setmacro= predeterminado. "RENDERER" para evitar posibles mensajes de error.
Artículo
<item class="maxobject">
<name lang="english">Latin plant name</name>
<name lang="latin">Common plant name</name>
<family>Botanical family of plant</family>
<description>Textual description about the plant</description>
<bitmap>\thumbnails\[plant_name].jpg</bitmap>
<maxfile>\objects\[plant_name].max</maxfile>
<object>[plant_name]</object>
<matlib>\matlibs\$([product name]RENDERER).mat</matlib>
<material>[plant_material]</material>
</item>
La ruta a cualquier modelo/textura también se puede manejar de dos maneras:
Relativo a la ubicación del archivo XML:
<maxfile>objects\_fp_[plant_name].max</maxfile>
Referencia por macros:
<maxfile>$([product name]_PATH)\objects\_fp_[plant_name].max</maxfile>
El uso de macros para archivos de mapeo no es obligatorio, sin embargo este mecanismo es útil para apuntar a modelos almacenados en otra ubicación, o agregar variaciones a la biblioteca (por renderizador, temporada u otros criterios).
Instalación de la biblioteca
Nota:
Si está produciendo bibliotecas para que se califiquen como productos iToo, puede ignorar esta sección.
La sección Rutas de biblioteca del Explorador de bibliotecas de Forest Pack contiene la ubicación de las diferentes bibliotecas. El usuario puede agregar manualmente sus propias bibliotecas en la sección Archivo>Preferencias>Rutas de biblioteca y mediante Agregar... la ruta donde se almacenan los archivos .xml. Estos valores se almacenan en el registro del usuario:
[HKEY_CURRENT_USER\Software\Itoo Software\Forest Pack Pro\LibraryDir]
Además, cualquier instalador de terceros podría definirlo globalmente en la siguiente clave de registro del sistema:
[HKEY_LOCAL_MACHINE\Software\Itoo Software\Forest Pack Pro\LibraryDir]
Cada proveedor de biblioteca es responsable de instalar, administrar y hacer referencia a todos sus objetos y archivos. Aunque la automatización personalizada es posible a través de .ms, la biblioteca no copia ni mueve ningún archivo de sus ubicaciones originales.
Macros de biblioteca
Las Macros de Biblioteca son el mecanismo para almacenar y automatizar elementos en la biblioteca. Las macros de la biblioteca se almacenan en el registro en las siguientes ubicaciones:
Macros modificables por maxscript y almacenadas en el perfil del usuario:
[HKEY_CURRENT_USER\Software\Itoo Software\Forest Pack Pro\LibraryMacros]
Macros definidas globalmente por cualquier instalador de terceros:
[HKEY_LOCAL_MACHINE\SOFTWARE\Itoo Software\RailClone Pro\LibraryMacros]
El contenido de la macro puede ser cualquier texto libre, cuando se aplica a cualquiera de los campos maxfile, object, matlib o material, el texto se sustituye y se aplica al elemento. Además, es posible obtener el valor de la macro desde maxscript, utilizando el siguiente formato:
@<library name>.ms:<maxscript call>
Por ejemplo
@hqcatalog.ms:getHDFlowerRenderer()
Donde la función solicita a 3dsmax el renderizador actual y devuelve el prefijo apropiado para modificar las rutas del archivo u objeto. El archivo .ms debe estar ubicado en la misma ruta que el archivo .xml.
Selectores de macros
Para los valores que el usuario puede seleccionar dinámicamente, es posible mostrar un cuadro combinado manejado por el código de la biblioteca. Esta opción permite cambiar los valores de las macros sin necesidad de programar código adicional:
<select class="material" setmacro="<product name>RENDERER">
<option value="@forestlib.ms:getRenderer()" default="1">Automatic Selector</option>
<option value="standard">Standard</option>
<option value="mental">MentalRay</option>
<option value="vray">VRay</option>
</select>
Actualmente solo se permiten combinaciones para la selección de materiales; sin embargo, es posible agregar más cuadros combinados en el futuro.
Ejemplos de biblioteca
Biblioteca simple sin macros
Índice.xml:
<?xml version="1.0"?>
<library version="100" order="1">
<item class="maxobject">
<name lang="english">English Oak</name>
<name lang="latin">Querqus robur</name>
<family>Fagaceae</family>
<description>Quercus robur is commonly known as the English oak or pedunculate oak or French oak.
It is native to most of Europe, and to Anatolia to the Caucasus, and also to parts of North Africa.</description>
<bitmap>_fp_English Oak01.jpg</bitmap>
<maxfile>objects\_fp_English Oak01.max</maxfile>
<object>_fp_English Oak01</object>
</item>
<item class="maxobject">
<name lang="english">Holm Oak</name>
<name lang="latin">Quercus Ilex</name>
<family>Fagaceae</family>
<description>Quercus ilex, the evergreen oak, holm oak, or holly oak is a large evergreen oak native to the Mediterranean region.
It takes its name from holm, an ancient name for holly. It is a member of the white oak section of the genus,
with acorns that mature in a single summer.</description>
<bitmap>_fp_Holm Oak01.jpg</bitmap>
<maxfile>objects\_fp_Holm Oak01.max</maxfile>
<object>_fp_Holm Oak01</object>
</item>
<item class="maxobject">
<name lang="english">Silver Maple</name>
<name lang="latin">Acer saccharinum</name>
<family>Sapindaceae</family>
<description>Acer saccharinum, commonly known as silver maple, creek maple, silverleaf maple,
soft maple, water maple, swamp maple, or white maple — is a species of maple native to eastern
North America in the eastern United States and Canada. It is one of the most common trees in the United States.</description>
<bitmap>_fp_Silver Maple01.jpg</bitmap>
<maxfile>objects\_fp_Silver Maple01.max</maxfile>
<object>_fp_Silver Maple01</object>
</item>
</library>
Biblioteca con selecciones de sombreador automático
Índice.xml:
<?xml version="1.0"?>
<library version="100" order="1">
<select class="material" setmacro="RENDERER">
<option value="@forestlib.ms:getRenderer()" default="1">Automatic Selector</option>
<option value="scanline">Standard</option>
<option value="mentalray">MentalRay</option>
<option value="vray">VRay</option>
</select>
<item class="maxobject">
<name lang="english">English Oak</name>
<name lang="latin">Querqus robur</name>
<family>Fagaceae</family>
<description>Quercus robur is commonly known as the English oak or pedunculate oak or French oak.
It is native to most of Europe, and to Anatolia to the Caucasus, and also to parts of North Africa.</description>
<bitmap>_fp_English Oak01.jpg</bitmap>
<maxfile>objects\_fp_English Oak01.max</maxfile>
<object>_fp_English Oak01</object>
<matlib>matlibs\$(RENDERER).mat</matlib>
<material>_fp_English Oak</material>
</item>
<item class="maxobject">
<name lang="english">Holm Oak</name>
<name lang="latin">Quercus Ilex</name>
<family>Fagaceae</family>
<description>Quercus ilex, the evergreen oak, holm oak, or holly oak is a large evergreen oak native to the Mediterranean region.
It takes its name from holm, an ancient name for holly. It is a member of the white oak section of the genus,
with acorns that mature in a single summer.</description>
<bitmap>_fp_Holm Oak01.jpg</bitmap>
<maxfile>objects\_fp_Holm Oak01.max</maxfile>
<object>_fp_Holm Oak01</object>
<matlib>matlibs\$(RENDERER).mat</matlib>
<material>_fp_Holm Oak01</material>
</item>
<item class="maxobject">
<name lang="english">Silver Maple</name>
<name lang="latin">Acer saccharinum</name>
<family>Sapindaceae</family>
<description>Acer saccharinum, commonly known as silver maple, creek maple,
silverleaf maple, soft maple, water maple, swamp maple, or white maple — is a species of maple native to eastern
North America in the eastern United States and Canada.
It is one of the most common trees in the United States.</description>
<bitmap>_fp_Silver Maple01.jpg</bitmap>
<maxfile>objects\_fp_Silver Maple01.max</maxfile>
<object>_fp_Silver Maple01</object>
<matlib>matlibs\$(RENDERER).mat</matlib>
<material>_fp_Silver Maple01</material>
</item>
</library>
Acciones personalizadas (abrir sitio web)
Índice.xml:
<?xml version="1.0"?>
<library version="100" order="1">
<maxscript file="CustomActionsLibrary.ms" script='onLibOpen "CustomAction1";' execute_on="lib_open"/>
<maxscript file="CustomActionsLibrary.ms" script='onItemSelect "CustomAction2";' execute_on="item_select"/>
<select class="material" setmacro="CustomActionsLibraryRENDERER">
<option value="@CustomActionsLibrary.ms:getRenderer()" default="1">Automatic Selector</option>
<option value="scanline">Standard</option>
<option value="mentalray">MentalRay</option>
<option value="vray">VRay</option>
</select>
<item class="maxobject">
<name lang="english">English Oak</name>
<name lang="latin">Querqus robur</name>
<family>Fagaceae</family>
<description>Quercus robur is commonly known as the English oak or pedunculate oak or French oak.
It is native to most of Europe, and to Anatolia to the Caucasus, and also to parts of North Africa.</description>
<bitmap>_fp_English Oak01.jpg</bitmap>
<maxfile>objects\_fp_English Oak01.max</maxfile>
<object>_fp_English Oak01</object>
<matlib>matlibs\$(RENDERER).mat</matlib>
<material>_fp_English Oak</material>
</item>
<item class="maxobject">
<name lang="english">Holm Oak</name>
<name lang="latin">Quercus Ilex</name>
<family>Fagaceae</family>
<description>Quercus ilex, the evergreen oak, holm oak, or holly oak is a large evergreen oak native to the Mediterranean region.
It takes its name from holm, an ancient name for holly. It is a member of the white oak section of the
genus, with acorns that mature in a single summer.</description>
<bitmap>_fp_Holm Oak01.jpg</bitmap>
<maxfile>objects\_fp_Holm Oak01.max</maxfile>
<object>_fp_Holm Oak01</object>
<matlib>matlibs\$(RENDERER).mat</matlib>
<material>_fp_Holm Oak01</material>
</item>
<item class="maxobject">
<name lang="english">Silver Maple</name>
<name lang="latin">Acer saccharinum</name>
<family>Sapindaceae</family>
<description>Acer saccharinum, commonly known as silver maple, creek maple, silverleaf maple, soft maple, water maple, swamp maple,
or white maple — is a species of maple native to eastern North America in the eastern United States and Canada.
It is one of the most common trees in the United States.</description>
<bitmap>_fp_Silver Maple01.jpg</bitmap>
<maxfile>objects\_fp_Silver Maple01.max</maxfile>
<object>_fp_Silver Maple01</object>
<matlib>matlibs\$(RENDERER).mat</matlib>
<material>_fp_Silver Maple01</material>
</item>
</library>