Forum Coordinators: RedPhantom
Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 21 6:06 am)
Ah... Just the question I was looking for an answer to :D
Can you save a master as a "pose" and have it load by simply clicking that saved pose? Does poser automatically wire that up?
I wouldn't expect it to load the needed morphs, although that would be cool... but how would it determine which files contain the applicable morphs?
I'm going to try saving a master that wires up some of La Femme control chips, then save (only) the resulting master, then apply that to a La Femme figure that doesn't have that master. Back later to post how it went.
And the answer is: no, it doesn't work simply saving the morphs though the GUI. At least, not that I could find. Sorry. There are other's who've forgotten more than I will ever know about Poser, though, so maybe there is a way to do that.
As for scriptable, pretty sure it is. And I think scripts can be triggered by a library entry. iirc, some of the v4wm's do that, as well as commercially available joint fix injections (for v4). I'm working on a script that will take a bunch of La Femme face chip settings and turn them into a single master. It's tedious in the extreme wiring dozens of parameters through the GUI. It's tedious enough messing working with those parameters to get the expression (pose) in the first place. Need a one button (save facial pose as expression). Soon :)
Hioushi & thoennes, yes, this is eminently doable. The trick is simply to put the normal contents of a character CR2 file within a pose PZ2 file. In other words, you include all of the name, limit and especially ERC and delta (if you're adding morphTargets) information that would be in a CR2 and is usually left out of a PZ2 file.
I've created such a thing for adding extra master parameters to PE. Additionally, where a CR2 would make reference to a figureResFile, in its place, you put the PZ2 targetFIgure line which identifies which figure the pose is intended for. The targetFigure value is basically just the name of the OBJ file that the figureResFile would refer to, but without the full path and .OBJ extension.
The pose only needs to refer to the actors which you're adding master channels or valueOperations (ERC) to, and doesn't need a figure block at all.
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.
Here's the example for PE I was referring to (save as "Add Arm Orbit ERC.pz2"):
{
version
{
number 11
build 34764
}
thighLength 0.186251
targetFigure Evolution.Base.14h5
actor BODY:1
{
groups
{
groupNode Morphforms
{
groupNode Arms
{
collapsed 1
parmNode CTRLArmsEnableShrug
parmNode CTRLArmsOrbit
parmNode CTRLArmOrbitL
parmNode CTRLArmOrbitR
parmNode CTRLArmsPhase
parmNode CTRLArmPhaseL
parmNode CTRLArmPhaseR
parmNode CTRLArmsFold
parmNode CTRLArmFoldL
parmNode CTRLArmFoldR
parmNode CTRLArmOrbitUp-DownL
parmNode CTRLArmOrbitUp-DownR
parmNode CTRLArmOrbitFront-BackL
parmNode CTRLArmOrbitFront-BackR
parmNode CTRLArmsRoll
parmNode CTRLArmsScissor
parmNode CTRLArmsSwivel
parmNode CTRLArmsTwist
parmNode CTRLArmsUp-Down
parmNode CTRLArmUp-DownL
parmNode CTRLArmUp-DownR
parmNode CTRLShouldersShrug
parmNode CTRLShoulderShrugL
parmNode CTRLShoulderShrugR
parmNode CTRLCollarsFront-Back
parmNode CTRLCollarFront-BackL
parmNode CTRLCollarFront-BackR
parmNode CTRLCollarsTwist
parmNode CTRLElbowsBend
parmNode CTRLElbowBendL
parmNode CTRLElbowBendR
parmNode CTRLElbowsScissor
parmNode CTRLElbowsSwivel
parmNode CTRLHandsBend
parmNode CTRLHandsSide-Side
parmNode CTRLHandsTwist
parmNode CTRLHandsRoll
parmNode CTRLHandsScissor
parmNode CTRLHandsSwivel
parmNode CTRLPalmsTwist
groupNode Fingers
{
collapsed 1
parmNode CTRLHandGrasp
parmNode CTRLHandSpread
parmNode CTRLFingersRoll
parmNode CTRLFingersScissor
parmNode CTRLFingersSwivel
parmNode CTRLFingersYaw
parmNode CTRLThumbOppose
parmNode CTRLThumbSpread
parmNode CTRLThumbGrasp
parmNode CTRLIndexGrasp
parmNode CTRLMiddleGrasp
parmNode CTRLRingGrasp
parmNode CTRLPinkyGrasp
groupNode Claws
{
collapsed 1
parmNode CTRLHandClaw
parmNode CTRLThumbClaw
parmNode CTRLIndexClaw
parmNode CTRLMiddleClaw
parmNode CTRLRingClaw
parmNode CTRLPinkyClaw
}
}
}
}
groupNode Morphs | Partial (Hidden)
{
collapsed 1
parmNode PlusArmOrbitR
parmNode MinusArmOrbitR
parmNode AbsArmOrbitR
parmNode PlusArmOrbitL
parmNode MinusArmOrbitL
parmNode AbsArmOrbitL
parmNode ShrugRatioR
parmNode ShrugRatioL
parmNode ShrugFactorR
parmNode ShrugFactorL
}
}
channels
{
valueParm CTRLArmsEnableShrug
{
name ArmsEnableShrug
initValue 0
hidden 0
enabled 1
forceLimits 1
min 0
max 1
trackingScale 1
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmsOrbit
{
name ArmsOrbit
initValue 0
hidden 0
enabled 1
forceLimits 1
min -3//-2.2//-2
max 3//2.2//2
trackingScale 0.0222222
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmOrbitL
{
name ArmOrbitL
initValue 0
hidden 0
enabled 1
forceLimits 1
min -3//-2.2//-2
max 3//2.2//2
trackingScale 0.0222222
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsOrbit
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLArmOrbitR
{
name ArmOrbitR
initValue 0
hidden 0
enabled 1
forceLimits 1
min -3//-2.2//-2
max 3//2.2//2
trackingScale 0.0222222
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsOrbit
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLArmsPhase
{
name ArmsPhase
initValue 0
hidden 0
enabled 1
forceLimits 1
min -360
max 360
trackingScale 1
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmPhaseL
{
name ArmPhaseL
initValue 0
hidden 0
enabled 1
forceLimits 1
min -360
max 360
trackingScale 1
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsPhase
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmFoldL
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLArmPhaseR
{
name ArmPhaseR
initValue 0
hidden 0
enabled 1
forceLimits 1
min -360
max 360
trackingScale 1
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsPhase
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmFoldR
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLArmsFold
{
name ArmsFold
initValue 0
hidden 0
enabled 1
forceLimits 1
min -37.5
max 150
trackingScale 1
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmFoldL
{
name ArmFoldL
initValue 0
hidden 0
enabled 1
forceLimits 1
min -37.5
max 150
trackingScale 1
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsFold
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLArmFoldR
{
name ArmFoldR
initValue 0
hidden 0
enabled 1
forceLimits 1
min -37.5
max 150
trackingScale 1
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsFold
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLArmOrbitUp-DownL
{
name ArmOrbitUp-DownL
initValue 0
hidden 1
enabled 1
forceLimits 1
min -3//-2.2//-2
max 3//2.2//2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpKey
Figure 1
BODY:1
CTRLArmPhaseL
strength 1.000000
beginValueKeys
valueKey -370 0.984808
valueKey -360 1
valueKey -350 0.984808
valueKey -340 0.939693
valueKey -330 0.866025
valueKey -320 0.766044
valueKey -310 0.642788
valueKey -300 0.5
valueKey -290 0.34202
valueKey -280 0.173648
valueKey -270 -1.83697e-16
valueKey -260 -0.173648
valueKey -250 -0.34202
valueKey -240 -0.5
valueKey -230 -0.642788
valueKey -220 -0.766044
valueKey -210 -0.866025
valueKey -200 -0.939693
valueKey -190 -0.984808
valueKey -180 -1
valueKey -170 -0.984808
valueKey -160 -0.939693
valueKey -150 -0.866025
valueKey -140 -0.766044
valueKey -130 -0.642788
valueKey -120 -0.5
valueKey -110 -0.34202
valueKey -100 -0.173648
valueKey -90 6.12323e-17
valueKey -80 0.173648
valueKey -70 0.34202
valueKey -60 0.5
valueKey -50 0.642788
valueKey -40 0.766044
valueKey -30 0.866025
valueKey -20 0.939693
valueKey -10 0.984808
valueKey 0 1
valueKey 10 0.984808
valueKey 20 0.939693
valueKey 30 0.866025
valueKey 40 0.766044
valueKey 50 0.642788
valueKey 60 0.5
valueKey 70 0.34202
valueKey 80 0.173648
valueKey 90 6.12323e-17
valueKey 100 -0.173648
valueKey 110 -0.34202
valueKey 120 -0.5
valueKey 130 -0.642788
valueKey 140 -0.766044
valueKey 150 -0.866025
valueKey 160 -0.939693
valueKey 170 -0.984808
valueKey 180 -1
valueKey 190 -0.984808
valueKey 200 -0.939693
valueKey 210 -0.866025
valueKey 220 -0.766044
valueKey 230 -0.642788
valueKey 240 -0.5
valueKey 250 -0.34202
valueKey 260 -0.173648
valueKey 270 -1.83697e-16
valueKey 280 0.173648
valueKey 290 0.34202
valueKey 300 0.5
valueKey 310 0.642788
valueKey 320 0.766044
valueKey 330 0.866025
valueKey 340 0.939693
valueKey 350 0.984808
valueKey 360 1
valueKey 370 0.984808
endValueKeys
valueOpTimes
Figure 1
BODY:1
CTRLArmOrbitL
strength 1.000000
}
valueParm CTRLArmOrbitUp-DownR
{
name ArmOrbitUp-DownR
initValue 0
hidden 1
enabled 1
forceLimits 1
min -3//-2.2//-2
max 3//2.2//2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpKey
Figure 1
BODY:1
CTRLArmPhaseR
strength 1.000000
beginValueKeys
valueKey -370 0.984808
valueKey -360 1
valueKey -350 0.984808
valueKey -340 0.939693
valueKey -330 0.866025
valueKey -320 0.766044
valueKey -310 0.642788
valueKey -300 0.5
valueKey -290 0.34202
valueKey -280 0.173648
valueKey -270 -1.83697e-16
valueKey -260 -0.173648
valueKey -250 -0.34202
valueKey -240 -0.5
valueKey -230 -0.642788
valueKey -220 -0.766044
valueKey -210 -0.866025
valueKey -200 -0.939693
valueKey -190 -0.984808
valueKey -180 -1
valueKey -170 -0.984808
valueKey -160 -0.939693
valueKey -150 -0.866025
valueKey -140 -0.766044
valueKey -130 -0.642788
valueKey -120 -0.5
valueKey -110 -0.34202
valueKey -100 -0.173648
valueKey -90 6.12323e-17
valueKey -80 0.173648
valueKey -70 0.34202
valueKey -60 0.5
valueKey -50 0.642788
valueKey -40 0.766044
valueKey -30 0.866025
valueKey -20 0.939693
valueKey -10 0.984808
valueKey 0 1
valueKey 10 0.984808
valueKey 20 0.939693
valueKey 30 0.866025
valueKey 40 0.766044
valueKey 50 0.642788
valueKey 60 0.5
valueKey 70 0.34202
valueKey 80 0.173648
valueKey 90 6.12323e-17
valueKey 100 -0.173648
valueKey 110 -0.34202
valueKey 120 -0.5
valueKey 130 -0.642788
valueKey 140 -0.766044
valueKey 150 -0.866025
valueKey 160 -0.939693
valueKey 170 -0.984808
valueKey 180 -1
valueKey 190 -0.984808
valueKey 200 -0.939693
valueKey 210 -0.866025
valueKey 220 -0.766044
valueKey 230 -0.642788
valueKey 240 -0.5
valueKey 250 -0.34202
valueKey 260 -0.173648
valueKey 270 -1.83697e-16
valueKey 280 0.173648
valueKey 290 0.34202
valueKey 300 0.5
valueKey 310 0.642788
valueKey 320 0.766044
valueKey 330 0.866025
valueKey 340 0.939693
valueKey 350 0.984808
valueKey 360 1
valueKey 370 0.984808
endValueKeys
valueOpTimes
Figure 1
BODY:1
CTRLArmOrbitR
strength 1.000000
}
valueParm CTRLArmOrbitFront-BackL
{
name ArmOrbitFront-BackL
initValue 0
hidden 1
enabled 1
forceLimits 1
min -3//-2.2//-2
max 3//2.2//2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpKey
Figure 1
BODY:1
CTRLArmPhaseL
strength 1.000000
beginValueKeys
valueKey -370 -0.173648
valueKey -360 2.44929e-16
valueKey -350 0.173648
valueKey -340 0.34202
valueKey -330 0.5
valueKey -320 0.642788
valueKey -310 0.766044
valueKey -300 0.866025
valueKey -290 0.939693
valueKey -280 0.984808
valueKey -270 1
valueKey -260 0.984808
valueKey -250 0.939693
valueKey -240 0.866025
valueKey -230 0.766044
valueKey -220 0.642788
valueKey -210 0.5
valueKey -200 0.34202
valueKey -190 0.173648
valueKey -180 -1.22465e-16
valueKey -170 -0.173648
valueKey -160 -0.34202
valueKey -150 -0.5
valueKey -140 -0.642788
valueKey -130 -0.766044
valueKey -120 -0.866025
valueKey -110 -0.939693
valueKey -100 -0.984808
valueKey -90 -1
valueKey -80 -0.984808
valueKey -70 -0.939693
valueKey -60 -0.866025
valueKey -50 -0.766044
valueKey -40 -0.642788
valueKey -30 -0.5
valueKey -20 -0.34202
valueKey -10 -0.173648
valueKey 0 0
valueKey 10 0.173648
valueKey 20 0.34202
valueKey 30 0.5
valueKey 40 0.642788
valueKey 50 0.766044
valueKey 60 0.866025
valueKey 70 0.939693
valueKey 80 0.984808
valueKey 90 1
valueKey 100 0.984808
valueKey 110 0.939693
valueKey 120 0.866025
valueKey 130 0.766044
valueKey 140 0.642788
valueKey 150 0.5
valueKey 160 0.34202
valueKey 170 0.173648
valueKey 180 1.22465e-16
valueKey 190 -0.173648
valueKey 200 -0.34202
valueKey 210 -0.5
valueKey 220 -0.642788
valueKey 230 -0.766044
valueKey 240 -0.866025
valueKey 250 -0.939693
valueKey 260 -0.984808
valueKey 270 -1
valueKey 280 -0.984808
valueKey 290 -0.939693
valueKey 300 -0.866025
valueKey 310 -0.766044
valueKey 320 -0.642788
valueKey 330 -0.5
valueKey 340 -0.34202
valueKey 350 -0.173648
valueKey 360 -2.44929e-16
valueKey 370 0.173648
endValueKeys
valueOpTimes
Figure 1
BODY:1
CTRLArmOrbitL
strength 1.000000
}
valueParm CTRLArmOrbitFront-BackR
{
name ArmOrbitFront-BackR
initValue 0
hidden 1
enabled 1
forceLimits 1
min -3//-2.2//-2
max 3//2.2//2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpKey
Figure 1
BODY:1
CTRLArmPhaseR
strength 1.000000
beginValueKeys
valueKey -370 -0.173648
valueKey -360 2.44929e-16
valueKey -350 0.173648
valueKey -340 0.34202
valueKey -330 0.5
valueKey -320 0.642788
valueKey -310 0.766044
valueKey -300 0.866025
valueKey -290 0.939693
valueKey -280 0.984808
valueKey -270 1
valueKey -260 0.984808
valueKey -250 0.939693
valueKey -240 0.866025
valueKey -230 0.766044
valueKey -220 0.642788
valueKey -210 0.5
valueKey -200 0.34202
valueKey -190 0.173648
valueKey -180 -1.22465e-16
valueKey -170 -0.173648
valueKey -160 -0.34202
valueKey -150 -0.5
valueKey -140 -0.642788
valueKey -130 -0.766044
valueKey -120 -0.866025
valueKey -110 -0.939693
valueKey -100 -0.984808
valueKey -90 -1
valueKey -80 -0.984808
valueKey -70 -0.939693
valueKey -60 -0.866025
valueKey -50 -0.766044
valueKey -40 -0.642788
valueKey -30 -0.5
valueKey -20 -0.34202
valueKey -10 -0.173648
valueKey 0 0
valueKey 10 0.173648
valueKey 20 0.34202
valueKey 30 0.5
valueKey 40 0.642788
valueKey 50 0.766044
valueKey 60 0.866025
valueKey 70 0.939693
valueKey 80 0.984808
valueKey 90 1
valueKey 100 0.984808
valueKey 110 0.939693
valueKey 120 0.866025
valueKey 130 0.766044
valueKey 140 0.642788
valueKey 150 0.5
valueKey 160 0.34202
valueKey 170 0.173648
valueKey 180 1.22465e-16
valueKey 190 -0.173648
valueKey 200 -0.34202
valueKey 210 -0.5
valueKey 220 -0.642788
valueKey 230 -0.766044
valueKey 240 -0.866025
valueKey 250 -0.939693
valueKey 260 -0.984808
valueKey 270 -1
valueKey 280 -0.984808
valueKey 290 -0.939693
valueKey 300 -0.866025
valueKey 310 -0.766044
valueKey 320 -0.642788
valueKey 330 -0.5
valueKey 340 -0.34202
valueKey 350 -0.173648
valueKey 360 -2.44929e-16
valueKey 370 0.173648
endValueKeys
valueOpTimes
Figure 1
BODY:1
CTRLArmOrbitR
strength 1.000000
}
valueParm CTRLArmsRoll
{
name ArmsRoll
initValue 0
hidden 0
enabled 1
forceLimits 1
min -2
max 2
trackingScale 0.05
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmsScissor
{
name ArmsScissor
initValue 0
hidden 0
enabled 1
forceLimits 1
min -4
max 4
trackingScale 0.1
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmsSwivel
{
name ArmsSwivel
initValue 0
hidden 0
enabled 1
forceLimits 1
min -2
max 2
trackingScale 0.05
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmsTwist
{
name ArmsTwist
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1.4//-1.1
max 0.8
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmsUp-Down
{
name ArmsUp-Down
initValue 0
hidden 0
enabled 1
forceLimits 1
min -2
max 2
trackingScale 0.05
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLArmUp-DownL
{
name ArmUp-DownL
initValue 0
hidden 0
enabled 1
forceLimits 1
min -2
max 2
trackingScale 0.05
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsUp-Down
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsRoll
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitUp-DownL
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLArmUp-DownR
{
name ArmUp-DownR
initValue 0
hidden 0
enabled 1
forceLimits 1
min -2
max 2
trackingScale 0.05
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsUp-Down
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsRoll
strength -1.000000
deltaAddDelta -1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitUp-DownR
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLShouldersShrug
{
name ShouldersShrug
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.0833333
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLShoulderShrugL
{
name ShoulderShrugL
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.0833333
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLShouldersShrug
strength 1.000000
deltaAddDelta 1.000000
valueOpTimes
Figure 1
BODY:1
ShrugFactorL
strength 1.000000
}
valueParm CTRLShoulderShrugR
{
name ShoulderShrugR
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.0833333
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLShouldersShrug
strength 1.000000
deltaAddDelta 1.000000
valueOpTimes
Figure 1
BODY:1
ShrugFactorR
strength 1.000000
}
valueParm CTRLCollarsFront-Back
{
name CollarsFront-Back
initValue 0
hidden 0
enabled 1
forceLimits 1
min -4
max 3
trackingScale 0.1
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLCollarFront-BackL
{
name CollarFront-BackL
initValue 0
hidden 0
enabled 1
forceLimits 1
min -4
max 3
trackingScale 0.1
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLCollarsFront-Back
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLCollarFront-BackR
{
name CollarFront-BackR
initValue 0
hidden 0
enabled 1
forceLimits 1
min -4
max 3
trackingScale 0.1
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLCollarsFront-Back
strength 1.000000
deltaAddDelta 1.000000
}
valueParm CTRLCollarsTwist
{
name CollarsTwist
initValue 0
hidden 0
enabled 1
forceLimits 1
min -4
max 3
trackingScale 0.1
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLElbowsBend
{
name ElbowsBend
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.25
max 1.5
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLElbowBendL
{
name ElbowBendL
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.375
max 1.5
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLElbowsBend
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLElbowsScissor
strength -1.000000
deltaAddDelta -1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmFoldL
strength 0.020000
deltaAddDelta 0.020000
}
valueParm CTRLElbowBendR
{
name ElbowBendR
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.375
max 1.5
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLElbowsBend
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLElbowsScissor
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmFoldR
strength 0.020000
deltaAddDelta 0.020000
}
valueParm CTRLElbowsScissor
{
name ElbowsScissor
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1.5
max 1.5
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLElbowsSwivel
{
name ElbowsSwivel
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1.4//-1.1
max 1.4//1.1
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandsBend
{
name HandsBend
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.65
max 0.7
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandsSide-Side
{
name HandsSide-Side
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.25
max 0.2
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandsTwist
{
name HandsTwist
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 1//0.7
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandsRoll
{
name HandsRoll
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.7
max 0.7
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandsScissor
{
name HandsScissor
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.25
max 0.25
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandsSwivel
{
name HandsSwivel
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1//-0.7
max 1//0.7
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLPalmsTwist
{
name PalmsTwist
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.1
max 0.1
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandGrasp
{
name Grasp
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandSpread
{
name Spread
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 1
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLFingersRoll
{
name FingersRoll
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 1
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLFingersScissor
{
name FingersScissor
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 1
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLFingersSwivel
{
name FingersSwivel
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 1
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLFingersYaw
{
name FingersYaw
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.15
max 0.15
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLThumbOppose
{
name ThumbOppose
initValue 0
hidden 0
enabled 1
forceLimits 1
min 0
max 1.5
trackingScale 0.0125
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLThumbSpread
{
name ThumbSpread
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1.5
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLThumbGrasp
{
name ThumbGrasp
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.5
max 1
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLIndexGrasp
{
name IndexGrasp
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLMiddleGrasp
{
name MiddleGrasp
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLRingGrasp
{
name RingGrasp
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLPinkyGrasp
{
name PinkyGrasp
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLHandClaw
{
name Claw
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLThumbClaw
{
name ThumbClaw
initValue 0
hidden 0
enabled 1
forceLimits 1
min -0.5
max 1
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLIndexClaw
{
name IndexClaw
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLMiddleClaw
{
name MiddleClaw
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLRingClaw
{
name RingClaw
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm CTRLPinkyClaw
{
name PinkyClaw
initValue 0
hidden 0
enabled 1
forceLimits 1
min -1
max 2
trackingScale 0.02
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
valueParm PlusArmOrbitR
{
name PlusArmOrbitR
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 2.2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitR
strength 1.000000
deltaAddDelta 1.000000
}
valueParm MinusArmOrbitR
{
name MinusArmOrbitR
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 2.2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitR
strength -1.000000
deltaAddDelta -1.000000
}
valueParm AbsArmOrbitR
{
name AbsArmOrbitR
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 2.2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
PlusArmOrbitR
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
MinusArmOrbitR
strength 1.000000
deltaAddDelta 1.000000
// Prevent divide by zero error when used as divisor for sign determination
valueOpKey
Figure 1
BODY:1
CTRLArmOrbitR
strength 1.000000
beginValueKeys
valueKey -1e-06 0
valueKey 0 1
valueKey 1e-06 0
endValueKeys
}
valueParm PlusArmOrbitL
{
name PlusArmOrbitL
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 2.2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitL
strength 1.000000
deltaAddDelta 1.000000
}
valueParm MinusArmOrbitL
{
name MinusArmOrbitL
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 2.2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitL
strength -1.000000
deltaAddDelta -1.000000
}
valueParm AbsArmOrbitL
{
name AbsArmOrbitL
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 2.2
trackingScale 0.01
masterSynched 1
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpDeltaAdd
Figure 1
BODY:1
PlusArmOrbitL
strength 1.000000
deltaAddDelta 1.000000
valueOpDeltaAdd
Figure 1
BODY:1
MinusArmOrbitL
strength 1.000000
deltaAddDelta 1.000000
// Prevent divide by zero error when used as divisor for sign determination
valueOpKey
Figure 1
BODY:1
CTRLArmOrbitL
strength 1.000000
beginValueKeys
valueKey -1e-06 0
valueKey 0 1
valueKey 1e-06 0
endValueKeys
}
valueParm ShrugRatioR
{ // If Orbiting, returns 1 if arms fully up or -1 if arms fully down, else 0
name ShrugRatioR
initValue 0
hidden 1
enabled 1
forceLimits 1
min -2.2
max 2.2
trackingScale 0.01
keys
{
static 0
k 0 0
}
interpStyleLocked 0
// Quotient ranges between +Divisor and -Divisor so output between +1 and -1
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitUp-DownR
strength 1.000000
deltaAddDelta 1.000000
// Divisor protected from ever being exactly zero (1 added when |x| < 1e-6)
valueOpDivideBy
Figure 1
BODY:1
AbsArmOrbitR
strength 1.000000
}
valueParm ShrugRatioL
{ // If Orbiting, returns 1 if arms fully up or -1 if arms fully down, else 0
name ShrugRatioL
initValue 0
hidden 1
enabled 1
forceLimits 1
min -2.2
max 2.2
trackingScale 0.01
keys
{
static 0
k 0 0
}
interpStyleLocked 0
// Quotient ranges between +Divisor and -Divisor so output between +1 and -1
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmOrbitUp-DownL
strength 1.000000
deltaAddDelta 1.000000
// Divisor protected from ever being exactly zero (1 added when |x| < 1e-6)
valueOpDivideBy
Figure 1
BODY:1
AbsArmOrbitL
strength 1.000000
}
valueParm ShrugFactorR
{ // Scale CTRLrShoulderShrug to zero as the arm orbits to the horizontal
name ShrugFactorR
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 1
trackingScale 0.01
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpKey
Figure 1
BODY:1
ShrugRatioR
strength 1.000000
beginValueKeys
valueKey -1 1
valueKey 0 0
//valueKey 0 0.5
//valueKey 1 0
endValueKeys
// Apply full shrug when orbit amplitude is zero (off)
valueOpKey
Figure 1
BODY:1
CTRLArmOrbitR
strength 1.000000
beginValueKeys
valueKey -1e-06 0
valueKey 0 1
valueKey 1e-06 0
endValueKeys
// Apply full shrug when CTRLArmsEnableShrug is 1 (on)
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsEnableShrug
strength 1.000000
deltaAddDelta 1.000000
}
valueParm ShrugFactorL
{ // Scale CTRLlShoulderShrug to zero as the arm orbits to the horizontal
name ShrugFactorL
initValue 0
hidden 1
enabled 1
forceLimits 1
min 0
max 1
trackingScale 0.01
keys
{
static 0
k 0 0
}
interpStyleLocked 0
valueOpKey
Figure 1
BODY:1
ShrugRatioL
strength 1.000000
beginValueKeys
valueKey -1 1
valueKey 0 0
//valueKey 0 0.5
//valueKey 1 0
endValueKeys
// Apply full shrug when orbit amplitude is zero (off)
valueOpKey
Figure 1
BODY:1
CTRLArmOrbitL
strength 1.000000
beginValueKeys
valueKey -1e-06 0
valueKey 0 1
valueKey 1e-06 0
endValueKeys
// Apply full shrug when CTRLArmsEnableShrug is 1 (on)
valueOpDeltaAdd
Figure 1
BODY:1
CTRLArmsEnableShrug
strength 1.000000
deltaAddDelta 1.000000
}
}
}
}
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.
Oh, I should note that the file was a work in progress, so none of the ERC linking the BODY master controls to the other actors has been added yet, though the concept has been fully tested.
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.
Thanks for the info!
I have another question for you. What is your workflow for creating such a file? do you code it manually (hope not!) or do you set all the master parameters in poser and then extract it somehow (python?) ?
I would actually pay for a script that would take list of master parameter names and would extract them to a pz2 file to be injected in other figures.
an0malaus posted at 6:13PM Thu, 27 June 2019 - #4354941
Hioushi & thoennes, yes, this is eminently doable. The trick is simply to put the normal contents of a character CR2 file within a pose PZ2 file. In other words, you include all of the name, limit and especially ERC and delta (if you're adding morphTargets) information that would be in a CR2 and is usually left out of a PZ2 file.
I've created such a thing for adding extra master parameters to PE. Additionally, where a CR2 would make reference to a figureResFile, in its place, you put the PZ2 targetFIgure line which identifies which figure the pose is intended for. The targetFigure value is basically just the name of the OBJ file that the figureResFile would refer to, but without the full path and .OBJ extension.
The pose only needs to refer to the actors which you're adding master channels or valueOperations (ERC) to, and doesn't need a figure block at all.
I'll have to look at that file closer, this weekend.
I'm ready for this part of my "la femme facial expression making" project :)
Couldn't find an easier way to do what I just did... I go out to the last frame, and setup the facial chips into a pose. For symmetric expressions, I can just do one side and mirror.
This script takes those face chip settings (x,y,x rot and trans) at lastframe and wires them into a master (as valueops)
For me, it's a convenient way to make a bunch of master controlled facial expressions using the dizzying array of facial chips.
You give the script a master name. If that master exists, it replaces it. Dangerous. It only wires chip parms that where value@lastframe != initvalue
Seems to work. I made her smile :D
The next step is making each master an injectable "pose" to add it to a La Femme figure.
Then I can post those injectable masters.
Well, nuts. I managed to create a file that injects the slaves. And each has the correct actor (BODY) and the correct value. But they're not finding the master parameter. Can a new master not be injected into the body???? This is the code (from the saved CR2 that has the new master. I removed everything else and saved as pz2. For brevity, I removed the slaves since they work. I feel I'm missing something obvious. Writing a file that will inject the slaves is simple enough; the file is not very complex. As an aside, when I use the GUI to add the missing master (that the pz2 didn't add), it's all wired and good to go. And wow, it's beautiful to watch that heap of dependencies work smoothly together to make her smile using a single dial :)
{
version
{
number 11
build 35540
}
actor BODY
{
channels
{
valueParm Smile
{
name Smile
initValue 0
hidden 0
enabled 1
forceLimits 0
min 0
max 1
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
}
}
Figure
{
}
}
Tracking scale, I think is the sensitivity you see in the GUI for settings of a parameter. It's the sensitivity of the "dial". I don't know of any official documentation on any of the file formats. There are people who've written editors that certainly must know more. But I'm not sure if any of them are still involved with Poser and where they got their information from.
I would sure like a wiki of what does what, and (better, maybe) how to do X with Y. I've been using these:
http://docs.daz3d.com/doku.php/artzone/wiki/user/rbtwhiz/technotes/content/erc/start https://www.renderosity.com/mod/forumpro/?thread_id=2735605
And over at SM forums, there's talk of the need to preserve the data in their retiring Poser forums, specifically because there are so many gems in them. I could certainly host a wiki. And I've already probed their API to find that I can dump entire threads as JSON, which is easy to load into any database and present however.
Ah, got it. I missed putting in:
createFullBodyMorph Smile
Now I have a nice Master Control "Smile" for La Femme in a pz2 file that can be added to any LF based character.
Okay, now I need modify the Python that combines all the face chips with non-InitValues@lastframe into a single master and have it write that to a pz2. Then I can make expressions all day.
Here is the final working pz2. It makes a master called "Smile" in the BODY, with dependencies in a bunch of facial chips. I think this is the minimal pz2 to accomplish this:
{
version
{
number 11
build 35540
}
createFullBodyMorph Smile
actor BODY
{
channels
{
valueParm Smile
{
name Smile
initValue 0
hidden 0
enabled 1
forceLimits 0
min 0
max 1
trackingScale 0.01
masterSynched 0
keys
{
static 0
k 0 0
}
interpStyleLocked 0
}
}
}
actor uLip
{
channels
{
rotateX xRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -2.000000
deltaAddDelta -2.000000
}
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000400
deltaAddDelta 0.000400
trackingScaleMult 0.100000
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000400
deltaAddDelta -0.000400
trackingScaleMult 0.100000
}
}
}
actor dLip
{
channels
{
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000400
deltaAddDelta -0.000400
trackingScaleMult 0.100000
}
}
}
actor rdLip
{
channels
{
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000400
deltaAddDelta 0.000400
trackingScaleMult 0.100000
}
}
}
actor ldLip
{
channels
{
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000400
deltaAddDelta 0.000400
trackingScaleMult 0.100000
}
}
}
actor ruLip
{
channels
{
rotateZ zRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -5.000000
deltaAddDelta -5.000000
}
rotateY yRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.027000
deltaAddDelta 0.027000
}
rotateX xRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.071900
deltaAddDelta -0.071900
}
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000200
deltaAddDelta -0.000200
trackingScaleMult 0.100000
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000800
deltaAddDelta -0.000800
trackingScaleMult 0.100000
}
}
}
actor luLip
{
channels
{
rotateZ zRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 5.000000
deltaAddDelta 5.000000
}
rotateY yRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.027000
deltaAddDelta -0.027000
}
rotateX xRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.071900
deltaAddDelta -0.071900
}
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000200
deltaAddDelta -0.000200
trackingScaleMult 0.100000
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000800
deltaAddDelta -0.000800
trackingScaleMult 0.100000
}
}
}
actor rLip
{
channels
{
rotateZ zRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -10.000000
deltaAddDelta -10.000000
}
translateX xTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000800
deltaAddDelta -0.000800
trackingScaleMult 0.1
}
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.001100
deltaAddDelta 0.001100
trackingScaleMult 0.100000
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000400
deltaAddDelta -0.000400
trackingScaleMult 0.100000
}
}
}
actor lLip
{
channels
{
rotateZ zRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 10.000000
deltaAddDelta 10.000000
}
translateX xTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000800
deltaAddDelta 0.000800
trackingScaleMult 0.1
}
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.001100
deltaAddDelta 0.001100
trackingScaleMult 0.100000
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000400
deltaAddDelta -0.000400
trackingScaleMult 0.100000
}
}
}
actor nose
{
channels
{
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000100
deltaAddDelta 0.000100
trackingScaleMult 0.100000
}
}
}
actor rNostril
{
channels
{
rotateZ zRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 5.000000
deltaAddDelta 5.000000
}
rotateY yRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -1.000000
deltaAddDelta -1.000000
}
}
actor lNostril
{
channels
{
rotateZ zRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -5.000000
deltaAddDelta -5.000000
}
rotateY yRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 1.000000
deltaAddDelta 1.000000
}
}
}
actor luCheek
{
channels
{
rotateX xRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -5.000000
deltaAddDelta -5.000000
}
translateX xTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000800
deltaAddDelta 0.000800
trackingScaleMult 1
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000800
deltaAddDelta -0.000800
trackingScaleMult 0.100000
}
}
}
actor ruCheek
{
channels
{
rotateX xRotate
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -5.000000
deltaAddDelta -5.000000
}
translateX xTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000800
deltaAddDelta -0.000800
trackingScaleMult 1
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000800
deltaAddDelta -0.000800
trackingScaleMult 0.100000
}
}
}
actor rdCheek
{
channels
{
translateX xTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength -0.000800
deltaAddDelta -0.000800
trackingScaleMult 1
}
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000400
deltaAddDelta 0.000400
trackingScaleMult 0.100000
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.001100
deltaAddDelta 0.001100
trackingScaleMult 0.100000
}
}
}
actor ldCheek
{
channels
{
translateX xTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000800
deltaAddDelta 0.000800
trackingScaleMult 1
}
translateY yTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.000400
deltaAddDelta 0.000400
trackingScaleMult 0.100000
}
translateZ zTran
{
valueOpDeltaAdd
Figure
BODY
Smile
strength 0.001100
deltaAddDelta 0.001100
trackingScaleMult 0.100000
}
}
}
}
This should be pretty simple to write to a file from dial settings.
Very useful info, but one suggestion:
At the top of the PoserPython forum there is a notice saying:
You can now attach text files to your posts to pass around scripts. Just attach the script as a txt file like you would a jpg or gif. Since the forum will use a random name for the file in the link, you should give instructions on what the file name should be and where to install it. Its a good idea to usually put that info right in the script file as well.
I assume this works also for Poser content files.
FVerbaas ah, thanks for the tip. Still getting reacquainted with the forum software here and missing the convenience of @username citations and colour-coded, triple-quoted text blocks with a scrolling window.
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.
an0malaus posted at 9:14PM Tue, 02 July 2019 - #4355789
FVerbaas ah, thanks for the tip. Still getting reacquainted with the forum software here and missing the convenience of @username citations and colour-coded, triple-quoted text blocks with a scrolling window.
Oops, Me too. ?
(Had been away from Poser until I read about La Femme a couple of months ago, when cleaning up an old unused email account. Was intrigued. She's fun!)
Thank you all for the help. I went the other way around while using your code as a reference. I edited the cr2 with all the master parameters and stripped it of everything else, it was faster than manually writing the file for every actor. I was able to create the INJ file and it works.
I'm sure this could be automated with python but I don't currently have the time to get to it. This will do for now. Thanks!
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.
Hi there. I'm using Poser 11 Pro and I created a bunch of master parameters in a figure to control multiple actions (eg: one dial controls, arms, torso and legs). This are quite handy and I would like to have them in other figures (same base figure, just a different CR2). Is it possible to extract this master parameters and inject them into another figure? is it scriptable?
Thanks!