panda3d-blend2bam


Namepanda3d-blend2bam JSON
Version 0.25.0 PyPI version JSON
download
home_page
SummaryA tool to convert Blender blend files to Panda3D BAM files
upload_time2023-12-16 20:19:39
maintainer
docs_urlNone
authorMitchell Stokes
requires_python>=3.8
licenseMIT
keywords panda3d gamedev
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![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
* Materials<sup>1</sup>
* Textures
* Lights
* Skinned Meshes
* Shape Keys
* Skeletal Mesh Animations
* Shape Key Animations <sup>2</sup>
* Separate Animation Files
* Collision Shapes <sup>3</sup>
* Tags from Custom Properties
* Convert Particle Systems to Meshes

<sup>1</sup> 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.

<sup>2</sup> Shape key animations require Panda3D 1.10.6+

<sup>3</sup> 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](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 ...] 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:

```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/)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "panda3d-blend2bam",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "panda3d,gamedev",
    "author": "Mitchell Stokes",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/a3/a7/7f9dfa8a0013a7cf1cd820c5b23fb5763fcf629f4587b6dc873eadbb1f61/panda3d-blend2bam-0.25.0.tar.gz",
    "platform": null,
    "description": "![Pipeline](https://github.com/Moguri/blend2bam/workflows/Pipeline/badge.svg)\n[![License](https://img.shields.io/github/license/Moguri/panda3d-blend2bam.svg)](https://choosealicense.com/licenses/mit/)\n\n\n# blend2bam\n`blend2bam` is a CLI tool to convert Blender 2.80+ blend files to Panda3D BAM files.\nIt also supplies a Python file loader to add \"native\" blend file support to Panda3D.\n\n## Features\n\nThe following are supported:\n* Static Meshes\n* Materials<sup>1</sup>\n* Textures\n* Lights\n* Skinned Meshes\n* Shape Keys\n* Skeletal Mesh Animations\n* Shape Key Animations <sup>2</sup>\n* Separate Animation Files\n* Collision Shapes <sup>3</sup>\n* Tags from Custom Properties\n* Convert Particle Systems to Meshes\n\n<sup>1</sup> The focus is on PBR materials with limited support for \"legacy\" materials.\nFor legacy materials, only diffuse color (pulled from base color) and normal maps are supported.\n\n<sup>2</sup> Shape key animations require Panda3D 1.10.6+\n\n<sup>3</sup> Collision shapes are generated from Blender's rigid body properties and shapes can be built for either Bullet or Panda3D's builtin collision system\n\nSome notable missing features are:\n* Object Animations\n* Multiple Diffuse/Base Color Textures\n\nThe [conversion guide](docs/conversion-guide-gltf28.md) provides information on how Blender data gets converted to Panda3D data and any gotchas.\n\n## Installation\n\nUse [pip](https://github.com/panda3d/panda3d) to install the panda3d-blend2bam package:\n\n```bash\npip install panda3d-blend2bam\n```\n\nBlender 2.80+ is required for `blend2bam` (ideally available on the system PATH).\nIf it is not, the directory containing `blender` can be specified with `--blender-dir` (see CLI usage).\n\n## Usage\n\n### CLI\n\n```\nusage: blend2bam [-h] [--version] [-v] [-m {legacy,pbr}] [--physics-engine {builtin,bullet}] [--srcdir SRCDIR] [--blender-dir BLENDER_DIR] [--blender-bin BLENDER_BIN]\n                 [--append-ext] [--no-srgb] [--textures {ref,copy,embed}] [--animations {embed,separate,skip}] [--invisible-collisions-collection INVISIBLE_COLLISIONS_COLLECTION]\n                 [--allow-double-sided-materials] src [src ...] dst\n\nCLI tool to convert Blender blend files to Panda3D BAM files\n\npositional arguments:\n  src                   source path\n  dst                   destination path\n\noptions:\n  -h, --help            show this help message and exit\n  --version             show program's version number and exit\n  -v, --verbose         print out extra information (default: False)\n  -m {legacy,pbr}, --material-mode {legacy,pbr}\n                        control how materials are exported (default: pbr)\n  --physics-engine {builtin,bullet}\n                        the physics engine to build collision solids for (default: builtin)\n  --srcdir SRCDIR       a common source directory to use when specifying multiple source files (default: None)\n  --blender-dir BLENDER_DIR\n                        directory that contains the blender binary (default: )\n  --blender-bin BLENDER_BIN\n                        name of the blender binary to use (default: blender)\n  --append-ext          append extension on the destination instead of replacing it (batch mode only) (default: False)\n  --no-srgb             do not load textures as sRGB textures (default: False)\n  --textures {ref,copy,embed}\n                        how to handle external textures (default: ref)\n  --animations {embed,separate,skip}\n                        how to handle animation data (default: embed)\n  --invisible-collisions-collection INVISIBLE_COLLISIONS_COLLECTION\n                        name of a collection in blender whose collision objects will be exported without a visible geom node (default: InvisibleCollisions)\n  --allow-double-sided-materials\n                        allow exporting double-sided materials (otherwise force all materials to be single-sided) (default: False)\n```\n\n### Python File Loader\n\n`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.\nThis *does not* add support to `pview`, which is a C++ application that does not support Python file loaders.\n\n## Running Tests\n\nFirst install `blend2bam` in editable mode along with `test` extras:\n\n```bash\npip install -e .[test]\n```\n\nThen run the test suite with `pytest`:\n\n```bash\npython -m pytest\n```\n\n## Building Wheels\n\nInstall `build`:\n\n```bash\npip install --upgrade build\n```\n\nand run:\n\n```bash\npython -m build\n```\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A tool to convert Blender blend files to Panda3D BAM files",
    "version": "0.25.0",
    "project_urls": {
        "homepage": "https://github.com/Moguri/blend2bam"
    },
    "split_keywords": [
        "panda3d",
        "gamedev"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cd0e7df56abf28e4c79ac1e094eee5719f2fac15c124d2f4a18bc1f51cdbec06",
                "md5": "8edc6deef8a27f799f9553ef98dc639a",
                "sha256": "adfb3d3ea097a831c9d73f7d0c4dfd7fb0a8e180d1dbab3f8dd31d51cb1b1796"
            },
            "downloads": -1,
            "filename": "panda3d_blend2bam-0.25.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8edc6deef8a27f799f9553ef98dc639a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14012,
            "upload_time": "2023-12-16T20:19:37",
            "upload_time_iso_8601": "2023-12-16T20:19:37.390122Z",
            "url": "https://files.pythonhosted.org/packages/cd/0e/7df56abf28e4c79ac1e094eee5719f2fac15c124d2f4a18bc1f51cdbec06/panda3d_blend2bam-0.25.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3a77f9dfa8a0013a7cf1cd820c5b23fb5763fcf629f4587b6dc873eadbb1f61",
                "md5": "72d88603d9a743119061b09234a8a5f9",
                "sha256": "e52447664eaad157d5ccf4926a34bd4d2779214b381d482d3ae85958d94efdba"
            },
            "downloads": -1,
            "filename": "panda3d-blend2bam-0.25.0.tar.gz",
            "has_sig": false,
            "md5_digest": "72d88603d9a743119061b09234a8a5f9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 14710,
            "upload_time": "2023-12-16T20:19:39",
            "upload_time_iso_8601": "2023-12-16T20:19:39.484998Z",
            "url": "https://files.pythonhosted.org/packages/a3/a7/7f9dfa8a0013a7cf1cd820c5b23fb5763fcf629f4587b6dc873eadbb1f61/panda3d-blend2bam-0.25.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-16 20:19:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Moguri",
    "github_project": "blend2bam",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "panda3d-blend2bam"
}
        
Elapsed time: 0.15728s