Configuring ppremake

Panda Premake (“ppremake”) is a deprecated tool that was originally used to build and convert files en masse for the Panda3D engine. While the binary is no longer available in modern versions of Panda, it was built to be compatible as a standalone application. To save time and possible frustration, I’ve included a prebuilt version of ppremake located within the ttmodels directory.

If you decide not to use a Panda3D version with Maya support, you must open ttmodels/Package.pp and change the line reading #define MAYA2EGG maya2egg_client to #define MAYA2EGG maya2egg<MAYAVERSION>. Note that <MAYAVERSION> should be replaced with the version of Maya you are using along with the version of maya2egg your Panda3D installation comes with.

If you are using a Panda3D build with Maya server support, ensure that you have the Maya service running in the background before starting the build process. Simply open up a new command prompt and run maya2egg<MAYAVERSION> -server. Any time you would like to convert a Maya file to an Egg file, you would simply run maya2egg_client <input.mb> <output.egg> on a new shell instance.


Due to a bug within char/boss/Sources.pp, you will need to adjust the line reading #define MAYA2EGG maya2egg to #define MAYA2EGG maya2egg<MAYAVERSION>. If you are using a maya2egg server, do NOT use the client version (maya2egg_client). Instead, use the same maya2egg version as the server you’re hosting.

This means that all of the models within char/boss/ will have to be converted in a manual fashion which will briefly slow down the build process.

(Updated 2/4/21) For some reason, the egg-optchar and egg-trans procedure is completely missed. There is probably a fix for this by editing the sources.pp file, but for now I will just say to open the Makefile and run the commands yourself for whichever model. It seems to be that it can’t read from a temp file it just created, so the mitigation is to just apply these commands directly to the egg file itself instead of creating a temp file. This will be updated when a patch is created.