Forum: Poser 11 / Poser Pro 11 OFFICIAL Technical


Subject: Is there a Script/ a way to apply a keyboard key to move figure parts?

Uncanny_Film opened this issue on Jan 18, 2020 ยท 8 posts


Uncanny_Film posted Sun, 19 January 2020 at 3:00 PM

an0malaus posted at 2:54PM Sun, 19 January 2020 - #4377138

While that might be a useful concept, how would it be any easier than a single mouse/trackpad click on a Parameter palette dial's increment/decrement arrows? With those you can be exactly specific about which parameter of the currently selected actor you want to modify, be it morph, translation, scale or rotation. How would a keypress be able to distinguish which axis you wanted to translate, scale or rotate, unless you had one key combination for each to be incremented, and another to decrement?

I have a dim memory of someone writing a script to place actors or figures at the scene origin, if they had been moved away by applying a pose. That kind of thing could be useful as a key macro.

# -*- coding: utf-8 -*- 
# IncrementParameter.py
# (c) 2020 an0malaus (Geoff Hicks/GeoffIX)
#
# This script will increment a particular parameter of the currently selected actor in the scene.
# It is intended to be run by a key shortcut set up in Poser UI preferences.
# Duplicate the file with different names to increment or decrement various parameters.
#
# INSTALLATION:
# The script should be installed somewhere within the Runtime/Python/poserScripts/ScriptsMenu hierarchy.
# Poser must be restarted for the script to be found and made available in the Preferences:Interface:Shortcuts list.
# Try to avoid using key combinations that Poser already uses.
# Good luck :-)
#
# v1.0    20200120    Initial version per request on Renderosity by spartan00j.
#                 https://www.renderosity.com/mod/forumpro/?thread_id=2942016
########################################################################################################################
from __future__ import print_function

version = '1.0'
increment = True # Change this to False to decrement theParm value by the sensitivity setting

import poser

scene = poser.Scene()
actor = scene.CurrentActor()
assert actor, 'No actor currently selected!'

# Modify the following line to select which parameter the keypress is supposed to modify.
# Remove the # character from one of the following commented examplesw:
#theParm = actor.ParameterByCode(poser.kParmCodeXTRAN)
theParm = actor.ParameterByCode(poser.kParmCodeYTRAN)
#theParm = actor.ParameterByCode(poser.kParmCodeZTRAN)
#theParm = actor.ParameterByCode(poser.kParmCodeXROT)
#theParm = actor.ParameterByCode(poser.kParmCodeYROT)
#theParm = actor.ParameterByCode(poser.kParmCodeZROT)
#theParm = actor.Parameter('Some Parameter Name Here!!!')
assert theParm, 'No parameter on {} specified!'.format(actor.Name())

delta = theParm.Sensitivity() * (-1,1)[increment] # How much to adjust by each time the key is pressed.
theParm.SetValue(theParm.UnaffectedValue() + delta,1) # Set the new value and update the scene

### END ###

Thanks, This will give me a good starting point. Well, actually I'm not necessarily going to use the keys themselves. I'm creating a control pad that's certain key layouts to increase speed and productivity. I'm going to use an Arduino pro micro to create the pad device. Alongside using a 3D printer to create an enclosure for the keypad. and it will help a lot if I can just take current shortcuts and apply them to the keypad that I'm going to create. I've already have a space pilot pro to control the cameras. And I'm using not orbit mouse instead of a standard mouse. And an Elgato stream deck. Basically I'm getting into the Arduino programming and creating hobby scene. And I thought this would be a neat little project to incorporate with my animating workflow. I also wanted to create a button layout to select different body parts of the figure as well, before controlling with the dials. I have some concept designs as well.

concept Layout.jpg

Draft Design.jpg




Win10 - AMD 2nd Gen Ryzen Threadripper 2950X, 16-Core, 32 Thread 4.4 GHz - 128GB Ram - X2 GeForce RTX 3060 Ti - 3D-connexion  

Poser 12 | Octane Render |  Real-Flow | 3DCoat | Speed Tree | Adobe Premiere  |  Adobe After Effects |  Adobe Audition |  Adobe Photoshop