Dimension3D opened this issue on Feb 11, 2008 · 19 posts
Dimension3D posted Mon, 11 February 2008 at 6:21 PM
Attached Link: Free Dimension 3D Python Scripts
I recently made two new Python scripts for Poser. The Add Deformers script transfers all deformers from a main character to conformed characters (just as magnetize poses do, but it works for any deformers on any figure). The Conform Figures script conforms several figures at once to the selected figure.I also updated all other Python scripts with new features and some improvements or bug fixes. If you are using one of it, get the new version. The largest change is for the quick link script which has several new features to automate tasks in Poser.
The scripts can be downloaded from my site www.ralf-sesseler.de (see link above) and from my free stuff section at Renderosity.
Dimension 3D - Poser Tools, Poser Props and Morphs, Cinema 4D
Plugins, and more
Angelouscuitry posted Mon, 11 February 2008 at 6:27 PM
Thanks, Man!
Whistle, whistle, who, who!
Your Multi-Delete has come in handy so often! I've DL'd your other scripts, and am looking forward to reading up on them!
Thanks Again!
beos53 posted Tue, 12 February 2008 at 12:32 AM
Thank You!
PoserPro 2014, Windows 7, AMD FX-6300 6 core, 8 GB ram, Nvidia
GeForce GTX 750 Ti
3Dave posted Tue, 12 February 2008 at 6:57 AM
Very useful, thankyou
FlyByNight posted Tue, 12 February 2008 at 3:25 PM
Thank you! Multiple delete will come in very handy.
FlyByNight
quietrob posted Sun, 20 April 2008 at 1:54 PM
Thank You so much for the scripts and the tutorial. I'm no longer scared of Pythons!!!
Conniekat8 posted Sun, 20 April 2008 at 3:28 PM
Oooh, cool. I missed this the first time around! Thanks for the topic bump :)
Hi, my namez: "NO, Bad Kitteh, NO!" Whaz
yurs?
BadKittehCo
Store BadKittehCo Freebies
and product support
Acadia posted Sun, 20 April 2008 at 4:04 PM
Thanks so much :)
"It is good to see ourselves as
others see us. Try as we may, we are never
able to know ourselves fully as we
are, especially the evil side of us.
This we can do only if we are not
angry with our critics but will take in good
heart whatever they might have to
say." - Ghandi
pjz99 posted Sun, 20 April 2008 at 4:45 PM
Handy stuff, thanks :)
quietrob posted Sun, 20 April 2008 at 10:34 PM
Quote - Oooh, cool. I missed this the first time around! Thanks for the topic bump :)
These ARE cool! Is there a Python script for a multiple figure delete as well props?
Dimension3D posted Sun, 20 April 2008 at 10:59 PM
Quote - These ARE cool! Is there a Python script for a multiple figure delete as well props?
Yes, the Delete script will delete selected figures, props, lights, or cameras from a scene.
Dimension 3D - Poser Tools, Poser Props and Morphs, Cinema 4D
Plugins, and more
jartz posted Mon, 21 April 2008 at 5:06 AM
Many, many thanks
JB
____________________________________________________________________________________________________________________________
Asus N50-600 - Intel Core i5-8400 CPU @ 2.80GHz · Windows 10 Home/11 upgrade 64-bit · 16GB DDR4 RAM · 1TB SSD and 1TB HDD; Graphics: NVIDIA Geforce GTX 1060 - 6GB GDDR5 VRAM; Software: Poser Pro 11x
grichter posted Mon, 21 April 2008 at 11:28 PM
FYI P7 Mac OSX 10.5.2 Conform, Delete and Reset only ones I have tested so far work as expected. For those on mac's give them a whirl they are fantastic even if there is a disclaimer that Mac use has not been tested.
Thanks a ton for these scripts
Gary
"Those who lose themselves in a passion lose less than those who lose their passion"
Tguyus posted Wed, 23 April 2008 at 2:36 PM
Thanks very much D3D! These are very handy. I'm especially enamored of the Copy Morphs script since I'm migrating my figure control magnets to morph targets (so I can render in Vue). The Copy Morphs script will let me quickly copy the shaping morphs to the conforming clothing. But I'm wondering...
... how difficult would it be to add a looping subroutine so the morphs are copied to all frames of an animation?
Thanks again!
Dimension3D posted Wed, 23 April 2008 at 11:28 PM
Quote - ... how difficult would it be to add a looping subroutine so the morphs are copied to all frames of an animation?
Should be easy. Add the following code at the beginning of the method copyMorph, and put the current code of this method into the loop:
for f in range(scene.NumFrames()):
scene.SetFrame(f)
I haven't tested it, but this should copy the morph setting for each frame in the scene.
Dimension 3D - Poser Tools, Poser Props and Morphs, Cinema 4D
Plugins, and more
grichter posted Thu, 24 April 2008 at 12:11 AM
Heads up to Mac users in Quick Browser edit the script like this and it works like a champ
["Poser 7", "/Applications/Poser 7/Runtime"], etc for each runtime you have. Need to start at the Users level to your runtime if you have multiple runtimes like I do.
Mac's need a right leaning slash and a leading slash. This goes for Quick Access too (without the brackets as above)
Great scripts. really works coool as I have all my wardrobe wiz stuff go to a WW2 runtime I set up for testing first. With quick browser, loading converted clothes for testing is quick and easy with this script vs switching runtimes back and forth which can take sometime depending on how big the runtime is.
Gary
"Those who lose themselves in a passion lose less than those who lose their passion"
Tguyus posted Thu, 24 April 2008 at 11:02 AM
Quote - > Quote - ... how difficult would it be to add a looping subroutine so the morphs are copied to all frames of an animation?
Should be easy. Add the following code at the beginning of the method copyMorph, and put the current code of this method into the loop:
for f in range(scene.NumFrames()):
scene.SetFrame(f)I haven't tested it, but this should copy the morph setting for each frame in the scene.
Ulp. I'm afraid I'm not much of a pythoner yet, though I'm trying to learn. Seems like I should've been able to get this to work but just couldn't find the right spot to insert the looping code lines.
Here's the code in case D3D or any other python experts are willing to point to the corect insertion point... and thanks! (D3D-- I hope you don't mind my pasting the code in the message. Please let me know if I've done bad.... and thanks again for the great script!)
partialMatch = 1
noJCM = 0
import poser
import string
def copyMorph(figure, conform):
number = conform.Actors()[0].InternalName()
number = number[number.index(':'):]
for figActor in figure.Actors():
try:
conActor = figActor.InternalName()
conActor = conActor[:conActor.index(':')] + number
conActor = conform.ActorByInternalName(conActor)
except:
continue
for figParam in figActor.Parameters():
name = figParam.Name()
if noJCM and (string.find(name, "JCM") == 0):
continue
conParam = conActor.Parameter(name)
if (conParam == None) and partialMatch:
m = 1000
params = conActor.Parameters()
for p in params:
i = string.find(p.Name(), name)
l = len(p.Name()) - len(name)
if i >= 0 and l < m:
conParam = p
m = l
if (conParam != None and ((figParam.IsMorphTarget() and conParam.IsMorphTarget())
or (figParam.IsValueParameter() and conParam.IsValueParameter()))
and conParam.Value() != figParam.Value()):
conParam.SetValue(0)
conParam.SetValue(figParam.Value() - conParam.Value())
scene = poser.Scene()
conform = scene.CurrentFigure()
if conform:
figure = conform.ConformTarget()
if figure == None:
figure = scene.Figures()
for fig in figure:
c = fig.ConformTarget()
if (c != None) and (c.InternalName() == conform.InternalName()):
copyMorph(conform, fig)
else:
copyMorph(figure, conform)
scene.Draw()
Dimension3D posted Thu, 24 April 2008 at 12:42 PM
The lines for the loop belong here:
def copyMorph(figure, conform):
for f in range(scene.NumFrames()):
scene.SetFrame(f)
number = conform.Actors()[0].InternalName()
number = number[number.index(':'):]
...
It's important to have the indention that way, so the complete current method code will be inside the loop.
Dimension 3D - Poser Tools, Poser Props and Morphs, Cinema 4D
Plugins, and more
Tguyus posted Thu, 24 April 2008 at 2:57 PM
Quote - The lines for the loop belong here:
def copyMorph(figure, conform):
for f in range(scene.NumFrames()):
scene.SetFrame(f)
number = conform.Actors()[0].InternalName()
number = number[number.index(':'):]
...It's important to have the indention that way, so the complete current method code will be inside the loop.
It worked! Thank you VERY much! This is great!