Once again, the Cool VL Viewer is the first TPV to provide you with support for SL's latest feature... This time, the new
experimental v1.30.1.0 release published today implements the all new "Puppetry" support.
Note that it was a rather big backport, because many of the classes used by the puppetry feature were not used (and thus not implemented) by the Cool VL Viewer. Of course, I also fixed and improved a few things, especially with regard to Linux support.
As far as the Puppetry features themselves are concerned, you will find a new "Puppetry" sub-menu in the "Advanced" -> "Character" menu, and here are the changes I made, when compared with LL's implementation:
- I added a kill switch ("Use puppetry when available" menu entry which toggles the "PuppetryAllowed" debug setting), so that you may toggle Puppetry support in real time.
- For Linux, the puppetry plugin launch feature supports non-executable script plugins (my code uses the shebang line in the script to launch the proper interpreter for that script). Since LL's provided test script files are not executable, this feature saves you from using 'chmod +x' on those scripts...
- I added Lua, and batch file puppetry scripts support for Windows (i.e. lua.exe would be used when launching a *.lua plugin script, and *.bat and *.cmd files would cause cmd.exe to be launched to interpret them).
- The camera number setting has been moved away from the Puppetry menu and instead uses a "PuppetryCamera" persistent debug setting.
- A "PuppetryCameraOption" debug setting was added, so that you may change (or disable entirely, when that setting is set to an empty string) the option used in the command line of the puppetry plugin script, instead of having it hard-coded to "--camera <camera_number>". My code also allows to use an option in the form "--option_name=<camera_number>" (simply leave the "=" sign at the end of the option name set in "PuppetryCameraOption").
- There is no support for a viewer command line "--leap" option like in LL's viewer, but there is a new "PuppetryLastCommand" debug setting which stores the last (successful) plugin command line and you may relaunch the latter via the "Launch previous plug-in" menu entry.
- Unlike what happens in LL's viewer, the "Use server echo on self" option in the menu is remembered via a new "PuppetryUseServerEcho" debug setting (with LL's viewer, server echo is always disabled at launch of a plugin).
- Due to a last minute change by LL for the UDP data packing of puppetry joint parameters, I implemented a dual support for the old and new packing methods, so that the viewer stays compatible with LL's current puppetry viewer and the upcoming ones. If you do not see other users' puppetry animations playing, it means their viewer is using a different packing method: simply toggle the "Use old UDP data packing" menu entry accordingly...
- EDIT: Added in v1.30.1.1: AgentPuppetryStart() and AgentPuppetryStop() Lua functions. See the Lua user manual for full details.
Note that by lack of a camera, I did not test puppetry with one, but all the provided example Python scripts do work just fine with the Cool VL Viewer. To test them yourself, install LL's plugins this way (here, for Linux):
(note that I use 'pip-3' here because my Linux distro got both Python 2 and 3 installed; it could be named 'pip3' or just 'pip' in your distro).
You may then launch, from the viewer, any of the example plugins available in the leap/puppetry/ sub-directories.
See
LL's documentation for more information and hints.