mcjGeoSender

DS 1,2,3,4

Purpose

NOTE: THIS MAY NOT WORK WITH DS4.5 and UP

The mcjGeoSender script and the mcjGeoSend plugin are part of my "Studio to Blender Bridge Tools".

They let you export animated scenes as a sequence of numbered .obj files.

The mcjGeoSend plugin ( for DS3 Windows 32/64 bit ) is not essential but it can speed up the exports by a factor of 10 or more

HISTORY

2011/2012 - release and fixes

July 19th 2018 - added four-zeros zero padding

Installation

  • The mcjGeoSend plugin

Note that DS4 users don't need this plugin since DS4's built-in exporter is as fast.

The mcjGeoSend plugin installation package can be found at the bottom of this web page under the name mcjGeoSendPlugin.zip

It contains two DLL files, one for Windows/32bit and one for Windows/64bit

Unzip this file in your Daz Studio plugins folder

On a typical windows installation, it means C:\Program Files\DAZ 3D\DAZStudio3\plugins

  • The mcjGeoSender script

The mcjGeoSender script's installation package can be found at the bottom of this web page under the name mcjGeoSenderScript.zip

It contains the script and the corresponding thumbnai / icon image.

  • The mcjGeoSender manual

The web page you are reading is the manual and can be found at the bottom of this page under the name mcjGeoSenderManual.zip

Use

Specify the range of frames to be exported

Output Folder: Browse to and select the folder that will contain the .obj files

prefix for obj: Type in the "root name" of the files, example : 'frame' will produce frame.mtl. frame0.obj, frame1.obj ... frame29.obj

Scale in percent: The default scale of 2% is intended for Blender

Use mcjGeoSend plugin if available: By default the mcjGeoSend plugin will be used if present but you can force the use of Daz Studio's internal .obj exporter.

Use Single .mtl file: By default, if the mcjGeoSend plugin is used, all the obj files will share one .mtl file. You may want to turn this off if materials in your scene have animated parameters.

Fix mtl file for Blender: By default mcjGeoSender will modify the .mtl files to make them Blender compatible. You may want to turn this feature off if Blender is not your target importer. Technical reason: Daz Studio's internal obj exporter puts quotation marks around some image file names, other times, it specifies relative paths with a leading slash (/) character. All this prevents Blender from importing the .obj files.

Collect Maps : If Daz's internal .obj exporter is used, and this option is checked, all the image maps in your scene will be copied to a folder named "Maps" under the destination folder.

The "No Progress Bar" option: if checked, no progress bar will be displayed during the export. This may help when exporting animations created with "Animate". The downside is that gracefully halting an export is difficult.

Quirk alert:

When using Studio's internal .obj exporter and not using the "Collect Maps" option, image files that are not in jpg format are misrepresented in the .mtl file.

Example: a surface that uses the image file "c:\toto.bmp" will be listed as using "c:\toto.jpg". So any program that will attempt to import the .obj file will not be able to find the correct image.

Solution: use the "collect maps" option or create and use jpg versions of all your non-jpg image maps.

For Daz Studio version 1.8 Users

The good news is, you can use this script to export Studio scenes for render in Blender

The moderately bad news is, for each scene/Frame export, you have to click the "Apply" button on the export settings panel

To get proper scaling, Select the "Poser" preset, but change the scale to 2%

You only have to do this once.

Note for Script authors

Sample code to detect and invoke the plugin in your daz scripts

var objFilename = "c:/toto.obj";

    var mtlFilename = "c:/toto.mtl";
 
    // Blender uses a scale of 2/100 or 50cm per unit
    var scale = 0.02;

    // blender does not accept file paths enclosed in quotes,
    // but other programs require them
    var bUseQuotationMarks = false;
   
    var plugin = App.getPluginMgr().findPlugin( "mcjGeoSend" );
    if( plugin )
    {
        mcjGeoSendNode().writeFile( objFilename, mtlFilename, scale, bUseQuotationMarks );
    }
    else
    {
        //use Studio's built-in exporter
        //...
    }