Is there a way to create shortcuts?

3Diva3Diva Posts: 11,287

I use a lot of older clothing items and I find that converting the items to SubD and adding a Smoothing Modifier can really help them fit better. That's something do A LOT. Is there a way to create a shortcut or a script or something that will do that with one click or two? That way every time I load older clothing items I don't have to: Edit >> Object >> Geometry >> Convert to SubD then then Edit >> Object >> Geometry >> Add Smoothing Modifier. Having a shortcut or script to do that with one or two clicks would be a really big help. Is there a way to do that?

Comments

  • marblemarble Posts: 7,449

    Have you tried assigning a keyboard shortcut to the menu item?

    This thread has some information... https://www.daz3d.com/forums/discussion/114941/keyboard-shortcuts

  • @ Divamakeup

    Main Menu: Window>Workspace>Customize

    at the right side go to the Tool Bars tab

    right-click Add Toolbar - name it something

    you can choose some actions from the left side and drag&drop it to your new toolbar (actualy I couldnt find the Add Smoothing Modifier there sad)

    maybe create an script for Add Smoothing Modifier and Convert to SubD on the selected node and put it to your actions in Main Menu: Scripts

  • 3Diva3Diva Posts: 11,287
    marble said:

    Have you tried assigning a keyboard shortcut to the menu item?

    This thread has some information... https://www.daz3d.com/forums/discussion/114941/keyboard-shortcuts

    Thank you for the link. I read the posts and tried the Workspace Customize but there doesn't seem to be the option to create a short cut for those two actions (at least not that I can find). 

  • ebergerlyebergerly Posts: 3,255

    I imagine you can write a script to maybe make a window or tab with a bunch of shortcut icons you can just click, but I've never gone in depth with Studio scripting. 

  • Both commands are under Scene Hierarchy in the action list, and right-clicking gives the option to Change Keyboard Shortcut.

  • 3Diva3Diva Posts: 11,287

    Both commands are under Scene Hierarchy in the action list, and right-clicking gives the option to Change Keyboard Shortcut.

    Scene Hierarchy? I would never have guessed there. lol Thank you so much, Richard!! :D I finally got my short cuts! YAY!! laugh

  • Would be neat to have a seach text-field on top to filter the action list, like we have one in the scene pane - in this case type in "smooth" and you get shown a list with Add Smoothing Modifier and Smooth Weight Map. I spent too much time searching the action list just to find out that the action I'm searching isn't listed where I've expected it. Would be awsome if you could switch this filter text-box with a little butteon beside to search for current key-mappings also - for example I want to know what action is linked to Ctrl+E - I type it in and I can see the action below, but this is just a suggestion maybe too much to ask for.

  • Syrus_DanteSyrus_Dante Posts: 983
    edited November 2017

    Hi, I want to give you a little update on the "Customize DazStudio" options you have to customize the shotcuts, toolbars and menues to reach the "Actions" you need on hand more easiely.

    changing/adding ShortCutKeys / Toolbars / Menues:

    Clearing the Timeline #Comment_3007506

    and you may want to have a look at:

    change Mouse Button Modifiers (Viewport 3D Navigation):

    Animation Tools #Comment_3010691

    Thanks @Divamakeup for asking this question - this was the initial reason for me to investigate futher on this subject.

     

    Post edited by Syrus_Dante on
  • Richard HaseltineRichard Haseltine Posts: 96,866
    edited November 2017

    Would be neat to have a seach text-field on top to filter the action list, like we have one in the scene pane - in this case type in "smooth" and you get shown a list with Add Smoothing Modifier and Smooth Weight Map. I spent too much time searching the action list just to find out that the action I'm searching isn't listed where I've expected it. Would be awsome if you could switch this filter text-box with a little butteon beside to search for current key-mappings also - for example I want to know what action is linked to Ctrl+E - I type it in and I can see the action below, but this is just a suggestion maybe too much to ask for.

    The current Customise dialogue is still using elements of Qt3 - I have a bug open, for a diffrent issue, that notes it needs updating (and we know that theya re working to move to a newer version of the Qt Framework). Additions like a filter box will probbaly have to wait on that, otherwise it would just be more stuff to switch later.

    Edited because I'd written QT instead of Qt on one occasion.

    Post edited by Richard Haseltine on
  • @ Richard Haseltine

    OK, I understand - so we have to wait for DazStudio v5 then they will implement the new QuickTime Framework maybe - cant wait to see that.wink

  • ChoholeChohole Posts: 33,604

    No, it doesn't need to be Qt 5; it just needs to not be Qt 3.

     

    And, Qt != QuickTime.

  • RGcincyRGcincy Posts: 2,808
    edited October 2018

    That way every time I load older clothing items I don't have to: Edit >> Object >> Geometry >> Convert to SubD then then Edit >> Object >> Geometry >> Add Smoothing Modifier. Having a shortcut or script to do that with one or two clicks would be a really big help. Is there a way to do that?

    I came across this thread while searching for something else. The code below (modified from what Daz has published) will add the subD and smoothing modifiers in one go. Save it to your script folder and you can then make it into a custom action.

    // DAZ Studio version 4.10.0.123 filetype DAZ Script/********************************************************************** 	Copyright (C) 2002-2018 Daz 3D, Inc. All Rights Reserved. 	This script is provided as part of the Daz Script Documentation. The	contents of this script, and\or any portion thereof, may only be used	in accordance with the following license: 	Creative Commons Attribution 3.0 Unported (CC BY 3.0)	- http://creativecommons.org/licenses/by/3.0 	To contact Daz 3D or for more information about Daz Script visit the	Daz 3D website: 	- http://www.daz3d.com **********************************************************************/// Source: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/actions/action_trigger/start// Define an anonymous function;// serves as our main loop,// limits the scope of variables(function(){ 	/*********************************************************************/	// String : A function for retrieving a translation if one exists	function text( sText )	{		// If the version of the application supports qsTr()		if( typeof( qsTr ) != "undefined" ){			// Return the translated (if any) text			return qsTr( sText );		} 		// Return the original text		return sText;	}; 	/*********************************************************************/	// String : A function for triggering an action	function triggerAction( sClassName )	{		// Get the action manager		var oActionMgr = MainWindow.getActionMgr();		// If we do not have an action manager		if( !oActionMgr ){			// We are done...			return;		} 		// Find the action we want		var oAction = oActionMgr.findAction( sClassName );		// If the action was not found		if( !oAction ){			// Inform the user...			MessageBox.warning( 				text( "The \"%1\" action could not be found." ).arg( sClassName ),				text( "Resource Error" ), text( "&OK" ), "" );			// We are done...			return;		} 		// If the action is disabled		if( !oAction.enabled ){			// Inform the user...			MessageBox.warning( 				text( "The \"%1\" action is currently disabled." ).arg( oAction.text ),				text( "Resource Error" ), text( "&OK" ), "" );			// We are done...			return;		} 		// Trigger execution of the action		oAction.trigger();	}; 	/*********************************************************************/	// Get the primary selection	var oNode = Scene.getPrimarySelection();	// If we do not have a node selected	if( !oNode ){		// Inform the user...		MessageBox.warning(			text( "This script requires an object in the scene to be selected." ),			text( "Selection Error" ), text( "&OK" ), "" );		// We are done...		return;	} //The following section was modified from the original	// Define the classname of the action we want to invoke the execution of	var sAction = "DzSubDAction";	// If the selected node is a skeleton or a bone	if( oNode.inherits( "DzSkeleton" ) || oNode.inherits( "DzBone" ) ){		// Update the classname accordingly		sAction = "DzSubDAction";	} 	// Trigger the action	triggerAction( sAction ); 	// Define the classname of the action we want to invoke the execution of	var sAction = "DzMeshSmoothAction";	// If the selected node is a skeleton or a bone	if( oNode.inherits( "DzSkeleton" ) || oNode.inherits( "DzBone" ) ){		// Update the classname accordingly		sAction = "DzMeshSmoothAction";	} 	// Trigger the action	triggerAction( sAction );	// Finalize the function and invoke})();

     

    Post edited by RGcincy on
  • RGcincy said:

    That way every time I load older clothing items I don't have to: Edit >> Object >> Geometry >> Convert to SubD then then Edit >> Object >> Geometry >> Add Smoothing Modifier. Having a shortcut or script to do that with one or two clicks would be a really big help. Is there a way to do that?

    I came across this thread while searching for something else. The code below (modified from what Daz has published) will add the subD and smoothing modifiers in one go. Save it to your script folder and you can then make it into a custom action.

    // DAZ Studio version 4.10.0.123 filetype DAZ Script// Define an anonymous function;// serves as our main loop,// limits the scope of variables(function(){ 	/*********************************************************************/	// String : A function for retrieving a translation if one exists	function text( sText )	{		// If the version of the application supports qsTr()		if( typeof( qsTr ) != "undefined" ){			// Return the translated (if any) text			return qsTr( sText );		} 		// Return the original text		return sText;	}; 	/*********************************************************************/	// String : A function for triggering an action	function triggerAction( sClassName )	{		// Get the action manager		var oActionMgr = MainWindow.getActionMgr();		// If we do not have an action manager		if( !oActionMgr ){			// We are done...			return;		} 		// Find the action we want		var oAction = oActionMgr.findAction( sClassName );		// If the action was not found		if( !oAction ){			// Inform the user...			MessageBox.warning( 				text( "The \"%1\" action could not be found." ).arg( sClassName ),				text( "Resource Error" ), text( "&OK" ), "" );			// We are done...			return;		} 		// If the action is disabled		if( !oAction.enabled ){			// Inform the user...			MessageBox.warning( 				text( "The \"%1\" action is currently disabled." ).arg( oAction.text ),				text( "Resource Error" ), text( "&OK" ), "" );			// We are done...			return;		} 		// Trigger execution of the action		oAction.trigger();	}; 	/*********************************************************************/	// Get the primary selection	var oNode = Scene.getPrimarySelection();	// If we do not have a node selected	if( !oNode ){		// Inform the user...		MessageBox.warning(			text( "This script requires an object in the scene to be selected." ),			text( "Selection Error" ), text( "&OK" ), "" );		// We are done...		return;	} 	// Define the classname of the action we want to invoke the execution of	var sAction = "DzSubDAction";	// If the selected node is a skeleton or a bone	if( oNode.inherits( "DzSkeleton" ) || oNode.inherits( "DzBone" ) ){		// Update the classname accordingly		sAction = "DzSubDAction";	} 	// Trigger the action	triggerAction( sAction ); 	// Define the classname of the action we want to invoke the execution of	var sAction = "DzMeshSmoothAction";	// If the selected node is a skeleton or a bone	if( oNode.inherits( "DzSkeleton" ) || oNode.inherits( "DzBone" ) ){		// Update the classname accordingly		sAction = "DzMeshSmoothAction";	} 	// Trigger the action	triggerAction( sAction );	// Finalize the function and invoke})();

     

    Please make sure you include the CC3.0 by attribution copyright statement - if you download the script, using the link at the top rather than copying the text, then it will be included for you.

  • RGcincyRGcincy Posts: 2,808
    edited October 2018

    Please make sure you include the CC3.0 by attribution copyright statement - if you download the script, using the link at the top rather than copying the text, then it will be included for you.

     

    Thanks for the tip. I updated what I posted to include that.

    Post edited by RGcincy on
  • Syrus_DanteSyrus_Dante Posts: 983
    edited October 2018

    You have to be careful to include the licence if you use those scripts examples.

    Here is what I once did as I tried Daz Script writing: Convert to SubD script

    The idea was to finaly have a control dialogue for to change all settings about SubD and Smoothing Modifier on the selected scene items. Then I thought a step further and wanted to include an OBJ export of what is selected instead of what is visible with an "silent" export to the given path. I got this idea from here: How to export only selected clothing as an object in DS

    Until the present time I never got this idea working to pass "arguments" (those are basicly the values to set for SubD and Smooth) from one script to another.

    Here is the latest script I've written there: ApplyOrZero_SubD_SubDivLevel_MeshResLevel_v4.dsa

    // DAZ Studio version 4.10.0.107 filetype DAZ Script/********************************************************************** 	Copyright (C) 2002-2017 Daz 3D, Inc. All Rights Reserved.	Script code: MODIFIED! No warranty of any kind. 	This script is provided as part of the >> Daz Script Developer Discussion >> Convert to SubD script	Thread opener [OP]:  Hellboy @ September 15 - 2017	- Post by: algovincian @ September 18	- Post by: jag11 @ November 27		Creative Commons Attribution 3.0 Unported (CC BY 3.0)	- http://creativecommons.org/licenses/by/3.0 	To contact Daz 3D or for more information about Daz Script visit the	Daz 3D website: 	- http://www.daz3d.com	**********************************************************************	Daz 3D Forums > Software > Daz Studio Discussion > Daz Script Developer Discussion > Convert to SubD script	Modification of the original Script Example / code snippet:	- Idea by: algovincian @ September 18 - 2017	- Mod by: jag11 @ November 27	- Mod v2 by: Syrus_Dante @ 2017-12-19	- now with extended error detection!	- includes parts of Example Script: Sub Script [Callee_Script.dsa] to show passed Arguments with their datatypes in the MessageBox	Source: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/remote_operation/sub_script/start**********************************************************************		FileName: ApplyOrZero_SubD_SubDivLevel_MeshResLevel_v2.dsa	Function: pass arguments to Apply - Or - Zero values with no Arguments passed	- will apply SubD (Convert to SubD), View SubD Level and Resolution Level values	- to the Properties of the current Selection of Items in the Daz Studio Scene**********************************************************************/*/// sorry I got no idea how to fix those comment lines =) there are just too much of them...// Source: https://www.daz3d.com/forums/discussion/197936/convert-to-subd-script// ...this is just the bottom PART of the whole script...	// String : A function for join Text Error Messages	function ErrorMsg ( sText, sObject, sType, Value)	{		if ( Value != -1 ) {			var sValue = text ( ("to Value: %1") .arg( sValue ) );		} else {			var sValue = " ";		}				aMessage[nSucces + nError] = aMessage.join ( "! Error#: %1 with Selection: %2 TypeOf: %3 > ", sText, "%4", "\n"		.arg( nError += 1 )		.arg( sObject )		.arg( sType )		.arg( sValue ));	};		// String : A function for join Text Info Messages	function InfoMsg ( sText, sObject, sType, Value)	{		aMessage[nSucces + nError] = aMessage.concat ( "Succes#: %1 with Selection: %2 TypeOf: %3 > ", sText, "to Value: %4", "\n"		.arg( nSucces += 1 )		.arg( sObject )		.arg( sType )		.arg( Value ));	};		//********************************************************************************	// Get Nodes from "Scene.getSelected" : current Scene Selection and set values:	// - to the predefined Zero values	// - or to the passed Arguments	//********************************************************************************	var aNodes = Scene.getSelectedNodeList();	var nNodes = aNodes.length;	var actionMgr = MainWindow.getActionMgr();	var action = null;	var oObject = null;	var sObject = "\n";		//current Object name	var nError = 0;			//Error Counter	var nSucces = 0;		//Succes Counter	// Iterate over the current Scene Selection	/*********************************************************************/	for ( var i = 0; i < nNodes; i++ ) {		if (oObject = aNodes[i].getObject()) {			sObject = JSON.stringify( oObject );			sType = typeof( oObject );						//Check if the 'current' Selection is an object with geometry - and we only have one Item ??? (oProp.getNumItems() == 1) Edit: deleted			//********************************************************************************			if (oShape = oObject.getCurrentShape()) {				// Apply SubD (Convert To SubD)				//********************************************************************************				if ((Apply_SubD == true)					&& (action = actionMgr.findAction("DzSubDAction"))) {					if (oShape.findProperty("SubDIALevel"))	{		//Property: View SubD Level found on 'current' Selection means SubD is allready applied						ErrorMsg = ( "SubD is allready applied (Converted To SubD)", sObject, sType, "Apply_SubD = true" );					} else {						//Apply: SubD - DS-Action:[Convert to SubD...]						action.trigger();						InfoMsg = ( "SubD applied (Convert To SubD)", sObject, sType, "Apply_SubD = true" );					}				}								// Set Property: Render SubD Level				//********************************************************************************				if (oProp = oShape.findProperty("SubDRenderLevel")) {					// error: in if condition initial values 0 & 0 View SubD Level gets set Render SubD Level follows then it gets compared with My_RSubDLevel and then its equal so it dosnt change =(					// solution: first set Render SubD Level then View SubD Level woks =)					if ((My_RSubDLevel) != (oProp.getValue("SubDRenderLevel"))) {							oProp.setValue( My_RSubDLevel );						InfoMsg = ( "Changed Property: Render SubD Level", sObject, sType, My_RSubDLevel );					} else {						ErrorMsg = ( "No need to change the Property: Render SubD Level", sObject, sType, My_RSubDLevel );					}				} else {					ErrorMsg = ( "Can't change the Property: Render SubD Level", sObject, sType, My_RSubDLevel );				}												// Set Property: View SubD Level (Render SubD Level will also be set somehow)				//********************************************************************************				if (oProp = oShape.findProperty("SubDIALevel")) {					if ((My_VSubDLevel) != (oProp.getValue("SubDIALevel"))) {						oProp.setValue( My_VSubDLevel );						InfoMsg = ( "Changed Property: View SubD Level", sObject, sType, My_VSubDLevel);					} else {						ErrorMsg = ( "No need to change the Property: View SubD Level", sObject, sType, My_VSubDLevel );					} 				} else {					ErrorMsg = ( "Can't change the Property: View SubD Level", sObject, sType, My_VSubDLevel );				}								// Set Property: Resolution Level				//********************************************************************************				if (oProp = oShape.findProperty("lodlevel")) {					if (My_ResLevel != (oProp.getValue("lodlevel"))) {						oProp.setValue( My_ResLevel );						InfoMsg = ( "Changed Property: Resolution Level", sObject, sType, My_ResLevel );					}else {						ErrorMsg = ( "No need to change the Property: Resolution Level", sObject, sType, My_ResLevel );					}				} else {					ErrorMsg = ( "Can't change the Property: Resolution Level", sObject, sType, My_ResLevel );				}											} else {				ErrorMsg = ( "Object with no geometry!", sObject, sType, -1 );				}		} else {			MessageBox.critical( qsTr("Can't get the current Object!")			, qsTr("Critical Error!"), qsTr("&OK") );		}	}	aMessage[aMessage.length + 1] = text ( "Done.                        !\n" );  //ugly with this spaces I know but you cant read the caption "Finished!" with only showing "Done." in the messagebox =(	if ( nNodes == 0 ) {		MessageBox.critical( qsTr("No Selection found.\n"		+ "Select an Item or Ctr+Select multible Items in the Scene.")		, qsTr("Critical Error!"), qsTr("&OK") );		return;	}	if ( nError != 0 ) {		aMessage[aMessage.length + 1] = text ( "Total Amount of: %1 Errors Occured!\n"		.arg( nError ) );	}	if ( nSucces != 0 ) {			aMessage[aMessage.length + 1] = text ( "Total Amount of: %1 Succesfully applied values.\n"		.arg( nSucces ) );	}	sMessage = aMessage.join ( "\n" );	MessageBox.information( sMessage, qsTr("Finished!"), qsTr("&OK") );

     

    Post edited by Syrus_Dante on
  • WendyLuvsCatzWendyLuvsCatz Posts: 37,821

    if someone could create a script to enable FBX exports with subdivision hence HD morphed mesh I would sacrifice my firstborn

    (out of eggs and childless but the thought counts)

  • RGcincyRGcincy Posts: 2,808

    You have to be careful to include the licence if you use those scripts examples.

    I saw there was also a requirement to indicate changes in a "reasonable manner". Are there any standards for that? 

    Here is what I once did as I tried Daz Script writing: Convert to SubD script

    i was coming across a lot of your posts today as I was searching for how to customize the menus and toolbars. Helpful, so thanks for sharing those.

  • @ RGcincy

    You see I've tried to document the version history and the references to the sources in the top comment section of the script code, getting alot of comment lines in the end, but its important also for humans to understand the purpose of the written script code.wink

  • 3Diva3Diva Posts: 11,287
    RGcincy said:

    That way every time I load older clothing items I don't have to: Edit >> Object >> Geometry >> Convert to SubD then then Edit >> Object >> Geometry >> Add Smoothing Modifier. Having a shortcut or script to do that with one or two clicks would be a really big help. Is there a way to do that?

    I came across this thread while searching for something else. The code below (modified from what Daz has published) will add the subD and smoothing modifiers in one go. Save it to your script folder and you can then make it into a custom action.

    // DAZ Studio version 4.10.0.123 filetype DAZ Script/********************************************************************** 	Copyright (C) 2002-2018 Daz 3D, Inc. All Rights Reserved. 	This script is provided as part of the Daz Script Documentation. The	contents of this script, and\or any portion thereof, may only be used	in accordance with the following license: 	Creative Commons Attribution 3.0 Unported (CC BY 3.0)	- http://creativecommons.org/licenses/by/3.0 	To contact Daz 3D or for more information about Daz Script visit the	Daz 3D website: 	- http://www.daz3d.com **********************************************************************/// Source: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/actions/action_trigger/start// Define an anonymous function;// serves as our main loop,// limits the scope of variables(function(){ 	/*********************************************************************/	// String : A function for retrieving a translation if one exists	function text( sText )	{		// If the version of the application supports qsTr()		if( typeof( qsTr ) != "undefined" ){			// Return the translated (if any) text			return qsTr( sText );		} 		// Return the original text		return sText;	}; 	/*********************************************************************/	// String : A function for triggering an action	function triggerAction( sClassName )	{		// Get the action manager		var oActionMgr = MainWindow.getActionMgr();		// If we do not have an action manager		if( !oActionMgr ){			// We are done...			return;		} 		// Find the action we want		var oAction = oActionMgr.findAction( sClassName );		// If the action was not found		if( !oAction ){			// Inform the user...			MessageBox.warning( 				text( "The \"%1\" action could not be found." ).arg( sClassName ),				text( "Resource Error" ), text( "&OK" ), "" );			// We are done...			return;		} 		// If the action is disabled		if( !oAction.enabled ){			// Inform the user...			MessageBox.warning( 				text( "The \"%1\" action is currently disabled." ).arg( oAction.text ),				text( "Resource Error" ), text( "&OK" ), "" );			// We are done...			return;		} 		// Trigger execution of the action		oAction.trigger();	}; 	/*********************************************************************/	// Get the primary selection	var oNode = Scene.getPrimarySelection();	// If we do not have a node selected	if( !oNode ){		// Inform the user...		MessageBox.warning(			text( "This script requires an object in the scene to be selected." ),			text( "Selection Error" ), text( "&OK" ), "" );		// We are done...		return;	} //The following section was modified from the original	// Define the classname of the action we want to invoke the execution of	var sAction = "DzSubDAction";	// If the selected node is a skeleton or a bone	if( oNode.inherits( "DzSkeleton" ) || oNode.inherits( "DzBone" ) ){		// Update the classname accordingly		sAction = "DzSubDAction";	} 	// Trigger the action	triggerAction( sAction ); 	// Define the classname of the action we want to invoke the execution of	var sAction = "DzMeshSmoothAction";	// If the selected node is a skeleton or a bone	if( oNode.inherits( "DzSkeleton" ) || oNode.inherits( "DzBone" ) ){		// Update the classname accordingly		sAction = "DzMeshSmoothAction";	} 	// Trigger the action	triggerAction( sAction );	// Finalize the function and invoke})();

     

    I'm sorry if this is a stupid question, but how do I save the above as a script for inside Daz Studio?

  • RGcincyRGcincy Posts: 2,808

    I'm sorry if this is a stupid question, but how do I save the above as a script for inside Daz Studio?

    Not stupid at all. I wasn't sure if I could post a file of it or not. Highlight the text in the box, then Ctrl+C to copy and paste it into a text or word editor. Then save it to your My Daz3D Library/Scripts folder with a name like "Add subD and Smoothing modifiers.dsa" (you may have to save it as a .txt file then change those three letters from .txt. to .dsa using File Explorer or similar). 

     

     

  • RGcincy said:

    I'm sorry if this is a stupid question, but how do I save the above as a script for inside Daz Studio?

    Not stupid at all. I wasn't sure if I could post a file of it or not. Highlight the text in the box, then Ctrl+C to copy and paste it into a text or word editor. Then save it to your My Daz3D Library/Scripts folder with a name like "Add subD and Smoothing modifiers.dsa" (you may have to save it as a .txt file then change those three letters from .txt. to .dsa using File Explorer or similar).

    Check the File Type list when saving - sometimes you will get Text (*.txt) and All files (*.*), the latter will allow saving as .dsa

  • 3Diva3Diva Posts: 11,287
    RGcincy said:

    I'm sorry if this is a stupid question, but how do I save the above as a script for inside Daz Studio?

    Not stupid at all. I wasn't sure if I could post a file of it or not. Highlight the text in the box, then Ctrl+C to copy and paste it into a text or word editor. Then save it to your My Daz3D Library/Scripts folder with a name like "Add subD and Smoothing modifiers.dsa" (you may have to save it as a .txt file then change those three letters from .txt. to .dsa using File Explorer or similar). 

     

     

    Thank you! :D I appreciate you taking the time to write up a quick tutorial. I felt silly asking - but hey, if I don't ask I will never learn. heheh :) 

  • RGcincyRGcincy Posts: 2,808

    Thank you! :D I appreciate you taking the time to write up a quick tutorial. I felt silly asking - but hey, if I don't ask I will never learn. heheh :) 

    No problem. I was just learning to do this for some dForce stuff and ran across this thread and thought "I think I know how to do this now".

  • if someone could create a script to enable FBX exports with subdivision hence HD morphed mesh I would sacrifice my firstborn

    (out of eggs and childless but the thought counts)

    Not sure when this was posted, but i too would sacrifice @WendyLuvzCats unborn firstborn along for an FBX export script that carried HD Morphs along with textures and animations (specifically trying to find a path to Houdini that would allow me to bring animated and textured Genesis 8 figures into that program for further animation and effects).

     

    . . . also, is there a way to add a shortcut key for Create SubCategory ??  Couldn't find that entry anywhere.  Right now just using the right click menu to add one subcategory at a time. Didn't know if there was a more efficient way.

     

    Thanks.

  • nicsttnicstt Posts: 11,714

    Ctrl Shift D and M  will add subd and smooth.

  • edited July 2020

    @WebdyKzvsCatz and @Mosk the Scribe

    Re: Getting HD mesh versions into Houdini - I have that tool (works in Houdini 18). It's using a parallel FBX/OBJ export route like most other solutions out there, but it combines the HD static mesh into the FBX based rig, so you can animate (and render) in Houdini using either (or even both).
    It also supports using morphs (e.g. facial expressions). It also supports "layered" FBX (read: You get cloths and hair rig-converted as well). 

    That said, it is a general-purpose FBX-rig-tool, not focused on DAZ but solving a general joints/bones rigging problem (converting the former into the latter), DAZ support is a mere "sideproduct". Since it's a private fun-project, I can not provide any kind of support and I am currently focusing on solving those technical problems, not on any vendor-specific needs (plus, DAZ has let me know some time ago that supporting any kind of development is completely out of their interest, I also understand that even linking to the "work in progress" thread on the sideFX forum is not allowed here, just google it), but I am willing to cooperate with (technically savvy) DAZ users on improving the (future, not current) animators' needs and ideas for FBX imports into Houdini (including DAZ sourced material). I would ask those interested to contact me privately through my website (which I probably am not allowed to link to either, it's marc dash albrecht dot de) and tell me a bit about their specific (technical) needs/requirements and expertise. Again, I am only interested in making the technical side as smooth as possible, any artists-support is currently out of my abilities as I am not making any money from this.

    Generally, I could write a tool that reads DAZ native figure files and imports those into Houdini. I could apply the conversion technique so that HD versions (and, of course, morphs) could be used as well - that's actually not that hard to do, it's just WORK. However that I would not want to do as a "hobby project" as I can easily convert the data myself and have no need for DAZ figures myself (my paid work deals with multi-million-point meshes). Delving into this would require such a tool to be commercially "feasible", read, it would have to provide the income that pays for continued development and professional support. From what I understand, there is no (real) money to be made in the DAZ universe (I mean, from tools/pipeline support, it may be different for "content providers"!) - I would be very happy to learn otherwise and am willing to discuss cooperation roads (business-wise).

     

    Marc Albrecht

    Post edited by malbrecht_f7fe64995d on
Sign In or Register to comment.