Forum Replies Created
-
AuthorPosts
-
January 29, 2025 at 1:10 AM #2115652
its very simply to use just put in daz library, click on figure and run the script,after that click and utilites and click to list-non-zero morphs and list-non zero transformation.This going to open a notepad++ and list all non zero morphs and translations of the figure.
If you want a more straight up script to show all morphs dialed on the figure you can this script below on Script IDE and it going to show everything that is dialed on the selected figure,including rogue morphs.
After Finding the Rogue morph just change this value on morph file (if the morph is compress you need to descompress first).How to change Morph start Value:
"modifier_library" : [
{
"channel" : {
"id" : "value",
"type" : "float",
"name" : "Value",
"label" : "Rogue Morph",
"auto_follow" : true,
"value" : 1,
"min" : 0,
"max" : 1,
"clamped" : true,
"display_as_percent" : true,
"step_size" : 0.01
},"value" stores the default value of the morph. Above, it's set to 1, which means it gets automatically turned on. In my case, this is bad.
So,
CHANGE:
"value" : 1,
TO:
"value" : 0,Script:
// Script to List all Morphs Dialed on the figure
function dumpMorphs(obj)
{
var a = [];if(!obj) return false;
var n = obj.getNumModifiers();
for( var i=0; i < n; i++ )
{
var mod = obj.getModifier(i);
if( mod.inherits("DzMorph"))
{
var oProp = mod.getValueChannel();
var sName = mod.getName();var nMin = oProp.getMin();
var nMax = oProp.getMax();var nDef = oProp.getDefaultValue();
var nVal = oProp.getValue();var sLabel = oProp.getLabel();
var sPath = oProp.getPath();//var bFlag = (nDef > 0) ? 1 : 0;
var bFlag = (nDef != nVal) ? 1 : 0;if(bFlag) {
var sVal1 = String(nDef);
var sVal2 = String(nVal);if (oProp.getDisplayAsPercent()) {
nDef = nDef * 100;
nVal = nVal * 100;sVal1 = parseFloat(nDef.toFixed(2));
sVal2 = parseFloat(nVal.toFixed(2));
}var sEntry = String( "\"%1\", \"%2\", %3, %4")
.arg(sLabel)
.arg(sPath)
.arg(sVal1)
.arg(sVal2);a.push(sEntry);
}
}
}return a;
}(function ()
{
var node = Scene.getPrimarySelection();
if (!node) {
MessageBox.critical( qsTr("Nothing selected."), qsTr("Warning"), qsTr("&OK") );
return;
}if( node.inherits("DzBone")) node = node.getSkeleton();
if( !node.inherits("DzSkeleton")) {
MessageBox.critical( qsTr("Selection is not a figure."), qsTr("Warning"), qsTr("&OK") );
return;
}var obj = node.getObject();
if(!obj) {
MessageBox.critical( qsTr("Error getObject."), qsTr("Warning"), qsTr("&OK") );
return;
}var a = dumpMorphs(obj);
print("Lines: " + a.length + "\n");
for (var i=0; i < a.length; i++) {
print(a[i] + "\n");
}
})();January 29, 2025 at 12:29 AM #2115650Hi eelgoo.
Other thing you can do is use this script from Praxis on Daz3D Forum its really helpful to find rogue morph and another hidden translations that i are some body parts of the figures.I hope this can be helpful for you.Script:
Guide how to use it:
December 29, 2022 at 7:35 PM #1907368???????????????
-
AuthorPosts
