Package: panda3d-pman
Panda3D Managerpman is a Python package to help bootstrap and managePanda3Dapplications.FeaturesProject quick-startAutomatic asset conversionAutomatically adds export directory to the model pathConvenient CLI for running and testing applicationsPlugin system for expanding functionalityInstallationUsepipto install thepanda3d-pmanpackage:pipinstallpanda3d-pmanUsageQuick start a project withpman create.
If you already have a directory for your project:cdmy_awesome_project
pmancreate.pmancan also create the directory for you:pmancreatemy_awesome_projectIn addition to thecreatecommand,pmanhas the following commands:update - re-run project creation logic on the project directoryhelp - display usage informationbuild - convert all files in the assets directory and place them in the export directoryrun - run the application by callingpythonwith the main filetest - run tests (shortcut forpython setup.py test)dist - create distributable forms of Panda3D applications (requires Panda3D 1.10+)clean - remove built filesConfigurationpmanwill look for any of the following files in the project root:pyproject.toml.pman.pman.userThis configuration usesTOMLfor markup.
The.pmanorpyproject.tomlconfiguration file is project-wide and should be checked in under version control.Another, per-user configuration file also exists at the project root as.pman.user.
This configuration file stores user settings and shouldnotbe checked into version control.Settings in.pman.usertake precedence over settings in.pmanand both take precedence overpyproject.toml.
If a setting is not defined in a config file, a default value will be used.When storing settings inpyproject.toml, section names should be pre-pended withtool.pman..
For example,generaloptions would be undertool.pman.general.General OptionsSection name:generaloptiondefaultdescriptionname"Game"The project name. For now this is only used for naming the built application in the defaultsetup.py.plugins["DefaultPlugins"]A list of plugins to load and use."DefaultPlugins"is expanded to the current default plugins, which makes it easier to enable additional plugins.Build OptionsSection name:buildoptiondefaultdescriptionasset_dir"assets/"The directory to look for assets to convert.export_dir".built_assets/"The directory to store built assets.ignore_patterns[]A case-insensitive list of patterns. Files matching any of these patterns will not be ignored during the build step. Pattern matching is done usingthe fnmatch moduleRun OptionsSection name:runoptiondefaultdescriptionmain_file"main.py"The entry-point to the application.extra_args""A string of extra arugments that are append to the invocation ofmain_file.auto_buildtrueIftrue, automatically run builds as part of running the application (viapman.shim.init). This is disabled in deployed applications.Distribution OptionsSection name:distoptiondefaultdescriptionbuild_installerstrueWhether or not to build installers for built applications (i.e., runbdist_apps).PluginsTo extend functionality, pman offers a plugin system.
These plugins are found by pman usingentry points.Default PluginsBy default, pman loads the following plugins:native2bamblend2bamWhen specifying plugins, a specialDefaultPluginsstring is available that expands to pman's current default plugins.
For example, to useMyAwesomePluginin addition to pman's default plugins use:[General]plugins=['DefaultPlugins','MyAwesomePlugin']Built-in PluginsBelow are plugins that ship with pman and their options.native2bamSupport file formats:egg,egg.pz,obj(andmtl),fbx,dae,plyLoads the file into Panda and saves the result out to BAM. This relies on Panda's builtin file loading capabilities.OptionsNoneblend2bamSupported file formats:blendConverts Blender files to BAM files viablend2bam.OptionsSection name:blend2bamoptiondefaultdescriptionmaterial_mode"pbr"Specify whether to use the default Panda materials ("legacy") or Panda's new PBR material attributes ("pbr"). This is only used by the "gltf" pipeline; the "egg" always uses "legacy".physics_engine"builtin"The physics engine that collision solids should be built for. To export for Panda's builtin collision system, use "builtin." For Bullet, use "bullet." This is only used by the "gltf" pipeline; the "egg" pipeline always uses "builtin."pipeline"gltf"The backend that blend2bam uses to convert blend files. Goherefor more information.Running TestsFirst install the project in editable mode along withtestextras:pipinstall-e.[test]Then run the test suite withpytest:pytestBuilding WheelsInstallbuild:pipinstall--upgradebuildand run:python-mbuildLicenseMIT