5.2 KiB
Asset Processor Tool Documentation
This documentation provides information about the Asset Processor Tool, covering both user-facing features and technical details for developers.
Overview
This tool processes 3D asset source files (texture sets, models, etc., provided as ZIP, RAR, 7z archives, or folders) into a standardized library format. It uses configurable presets to interpret different asset sources and automates tasks like file classification, image resizing, channel merging, and metadata generation.
The tool offers both a Graphical User Interface (GUI) for interactive use and a Command-Line Interface (CLI) for batch processing and scripting. It also includes a Directory Monitor for automated processing of assets dropped into a watched folder, and optional integration with Blender for automated material/nodegroup creation.
This documentation strictly excludes details on environment setup, dependency installation, building the project, or deployment procedures, assuming familiarity with Python and the relevant libraries (OpenCV, NumPy, PySide6).
Architecture and Codebase Summary
For developers interested in contributing, the tool's architecture is designed around a Core Processing Engine (asset_processor.py) that handles the pipeline for single assets. This engine is supported by a Configuration System (configuration.py and config.py with Presets/*.json) and a new Hierarchical Rule System (rule_structure.py) that allows dynamic overrides of static configurations at Source, Asset, and File levels. Multiple interfaces are provided: a Graphical User Interface (gui/), a Command-Line Interface (main.py), and a Directory Monitor (monitor.py). Optional Blender Integration (blenderscripts/) is also included. Key new files supporting the hierarchical rule system include rule_structure.py, gui/rule_hierarchy_model.py, and gui/rule_editor_widget.py.
The codebase is organized into key directories and files reflecting these components. The gui/ directory contains all GUI-related code, Presets/ holds configuration presets, and blenderscripts/ contains scripts for Blender interaction. The core logic resides in files like asset_processor.py, configuration.py, config.py, main.py, and monitor.py. The processing pipeline involves steps such as file classification, map processing, channel merging, and metadata generation.
Table of Contents
- Overview - This document, providing a high-level summary and table of contents.
- User Guide - Information for end-users of the tool.
- Introduction - Purpose and scope of the tool for users.
- Features - Detailed list of the tool's capabilities.
- Installation - Requirements and setup instructions.
- Configuration and Presets - How to configure the tool and use presets.
- Usage: GUI - Guide to using the Graphical User Interface.
- Usage: CLI - Guide to using the Command-Line Interface.
- Usage: Monitor - Guide to using the Directory Monitor for automated processing.
- Usage: Blender Integration - How the optional Blender integration works for users.
- Output Structure - Description of the generated asset library structure.
- Docker - Instructions for using the tool with Docker.
- Developer Guide - Technical information for developers contributing to the tool.
- Architecture - High-level system design and component overview.
- Codebase Structure - Detailed breakdown of project files and directories.
- Key Components - In-depth explanation of major classes and modules.
- Configuration System and Presets - Technical details of configuration loading and preset structure.
- Processing Pipeline - Step-by-step technical breakdown of the asset processing logic.
- GUI Internals - Technical details of the GUI implementation (threading, signals, etc.).
- Monitor Internals - Technical details of the Directory Monitor implementation.
- Blender Integration Internals - Technical details of Blender script execution and interaction.
- Development Workflow - Guidance on contributing and modifying the codebase.
- Coding Conventions - Project's coding standards and practices.
- Debugging Notes - Advanced internal details, state management, error handling, and limitations.