Last updated:
0 purchases
panda3dblend2bam 0.25.0
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 Meshes
1 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 Textures
The conversion guide provides information on how Blender data gets converted to Panda3D data and any gotchas.
Installation
Use pip to install the panda3d-blend2bam package:
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 ...] dst
CLI tool to convert Blender blend files to Panda3D BAM files
positional arguments:
src source path
dst destination path
options:
-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:
pip install -e .[test]
Then run the test suite with pytest:
python -m pytest
Building Wheels
Install build:
pip install --upgrade build
and run:
python -m build
License
MIT
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.