Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Moguri/blend2bam
A CLI tool to convert Blender blend files to Panda3D BAM files
https://github.com/Moguri/blend2bam
Last synced: 7 days ago
JSON representation
A CLI tool to convert Blender blend files to Panda3D BAM files
- Host: GitHub
- URL: https://github.com/Moguri/blend2bam
- Owner: Moguri
- License: mit
- Created: 2019-01-14T06:50:20.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-13T23:33:28.000Z (about 1 month ago)
- Last Synced: 2024-10-14T14:37:18.747Z (about 1 month ago)
- Language: Python
- Size: 932 KB
- Stars: 65
- Watchers: 8
- Forks: 17
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
![Pipeline](https://github.com/Moguri/blend2bam/workflows/Pipeline/badge.svg)
[![License](https://img.shields.io/github/license/Moguri/panda3d-blend2bam.svg)](https://choosealicense.com/licenses/mit/)# blend2bam
`blend2bam` is a CLI tool to convert Blender 2.80+ blend files to Panda3D BAM files.
It also supplies a Python file loader to add "native" blend file support to Panda3D.## Features
The following are supported:
* Static Meshes
* Materials1
* Textures
* Lights
* Skinned Meshes
* Shape Keys
* Skeletal Mesh Animations
* Shape Key Animations 2
* Separate Animation Files
* Collision Shapes 3
* Tags from Custom Properties
* Convert Particle Systems to Meshes1 The focus is on PBR materials with limited support for "legacy" materials.
For legacy materials, only diffuse color (pulled from base color) and normal maps are supported.2 Shape key animations require Panda3D 1.10.6+
3 Collision shapes are generated from Blender's rigid body properties and shapes can be built for either Bullet or Panda3D's builtin collision system
Some notable missing features are:
* Object Animations
* Multiple Diffuse/Base Color TexturesThe [conversion guide](docs/conversion-guide-gltf28.md) provides information on how Blender data gets converted to Panda3D data and any gotchas.
## Installation
Use [pip](https://github.com/panda3d/panda3d) to install the panda3d-blend2bam package:
```bash
pip install panda3d-blend2bam
```Blender 2.80+ is required for `blend2bam` (ideally available on the system PATH).
If it is not, the directory containing `blender` can be specified with `--blender-dir` (see CLI usage).## Usage
### CLI
```
usage: blend2bam [-h] [--version] [-v] [-m {legacy,pbr}] [--physics-engine {builtin,bullet}] [--srcdir SRCDIR] [--blender-dir BLENDER_DIR] [--blender-bin BLENDER_BIN]
[--append-ext] [--no-srgb] [--textures {ref,copy,embed}] [--animations {embed,separate,skip}] [--invisible-collisions-collection INVISIBLE_COLLISIONS_COLLECTION]
[--allow-double-sided-materials] src [src ...] dstCLI tool to convert Blender blend files to Panda3D BAM files
positional arguments:
src source path
dst destination pathoptions:
-h, --help show this help message and exit
--version show program's version number and exit
-v, --verbose print out extra information (default: False)
-m {legacy,pbr}, --material-mode {legacy,pbr}
control how materials are exported (default: pbr)
--physics-engine {builtin,bullet}
the physics engine to build collision solids for (default: builtin)
--srcdir SRCDIR a common source directory to use when specifying multiple source files (default: None)
--blender-dir BLENDER_DIR
directory that contains the blender binary (default: )
--blender-bin BLENDER_BIN
name of the blender binary to use (default: blender)
--append-ext append extension on the destination instead of replacing it (batch mode only) (default: False)
--no-srgb do not load textures as sRGB textures (default: False)
--textures {ref,copy,embed}
how to handle external textures (default: ref)
--animations {embed,separate,skip}
how to handle animation data (default: embed)
--invisible-collisions-collection INVISIBLE_COLLISIONS_COLLECTION
name of a collection in blender whose collision objects will be exported without a visible geom node (default: InvisibleCollisions)
--allow-double-sided-materials
allow exporting double-sided materials (otherwise force all materials to be single-sided) (default: False)
```### Python File Loader
`blend2bam` also supports Panda3D's Python file loader API (requires Panda3D 1.10.4+) to seamlessly adds blend file support to Panda3D's `Loader` classes.
This *does not* add support to `pview`, which is a C++ application that does not support Python file loaders.## Running Tests
First install `blend2bam` in editable mode along with `test` extras:
```bash
pip install -e .[test]
```Then run the test suite with `pytest`:
```bash
python -m pytest
```## Building Wheels
Install `build`:
```bash
pip install --upgrade build
```and run:
```bash
python -m build
```## License
[MIT](https://choosealicense.com/licenses/mit/)