Sat, Nov 9, 8:07 AM CST

Renderosity Forums / Poser 11 / Poser Pro 11 OFFICIAL Technical



Welcome to the Poser 11 / Poser Pro 11 OFFICIAL Technical Forum

Forum Moderators: nerd

Poser 11 / Poser Pro 11 OFFICIAL Technical F.A.Q (Last Updated: 2024 Nov 04 10:44 pm)

banner

Welcome to the Poser Forums! Need help with these versions, advice on upgrading? Etc...you've arrived at the right place!


Looking for Poser Tutorials? Find those HERE



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


Uncanny_Film ( ) posted Sat, 18 January 2020 at 5:05 PM · edited Wed, 06 November 2024 at 11:39 PM

Hello. I was wondering was there a script or a way to apply a key command to move a poser figure body Part? I'm practicing creating macros keyboards. I'm setting up one now for A quick selection of the different cameras. And I wanted to take it even further and create possibly dials to bend or twist body parts that are selected in Poser. Thanks




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


an0malaus ( ) posted Sun, 19 January 2020 at 8:18 AM

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 ###



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


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


an0malaus ( ) posted Sun, 19 January 2020 at 10:40 PM

That looks very interesting! It could even form the basis for an on-screen control palette for Poser, though there are a fair number of figures and animals that have additional body parts that could require separate coverage (abdo2, chest2, neck2, tail1-n, ears, etc.). You might also think about the IK situation and those base/endpoint actors which allow translation. Still, I wouldn't want to bog down your personal project with ideas that won't serve your needs.

I've done a bit of 3D printing myself, though apart from art and nick-nacks, the most useful things I've printed have been shopping bag handle holders and a fingertip nut wrench, since Poser's my primary hobby. I looked into Arduino kits as a networkable driver for my 3dprinter, but ended up using an old 2007 macbook pro, once I'd worked out how to set up its USB serial port with the right software.



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


Uncanny_Film ( ) posted Mon, 20 January 2020 at 4:25 PM

Actually that doesn't sound like a bad idea to implement IK buttons. Also, do you know of any other scripts that are just used for controlling movement with figures? That I can examine.




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


HartyBart ( ) posted Thu, 20 August 2020 at 10:11 PM

Could something like this be used to direct both the eyes of any figure, via nudges on the keyboard's right-left / up-down arrows? Ideally with an offset, so that the eyes move together properly and the character doesn't get cross-eyed?



Learn the Secrets of Poser 11 and Line-art Filters.


Uncanny_Film ( ) posted Sun, 12 September 2021 at 9:37 AM

HartyBart posted at 9:36AM Sun, 12 September 2021 - #4397436

Could something like this be used to direct both the eyes of any figure, via nudges on the keyboard's right-left / up-down arrows? Ideally with an offset, so that the eyes move together properly and the character doesn't get cross-eyed?

Sorry for the late reply. But I do see why It wouldn't work.




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


Uncanny_Film ( ) posted Sun, 12 September 2021 at 9:40 AM

an0malaus posted at 9:38AM Sun, 12 September 2021 - #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 again for this. I've been off Poser for a while now(You know life stuff happening). I woulded to ask. will this work for Poser 12. Im getting an error when loading.




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


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.