Converting EMDL files


Recently a few customers have asked Autodesk support about converting their Softimage EMDL files, and whether they could somehow get Softimage licenses to do it. (One Autodesk person even asked me whether I know anyone who could answer Softimage questions! 😉

You actually don’t need a license, because you can do it with xsibatch. Just add the -processing flag to do it without using a license.

xsibatch.exe -processing -script "S:\solidangle\softimage\convert_emdl.pys" -main "main"

Here’s an example script that loads a model and exports it to Alembic:

def main():
Application.ImportModel("S:\Program Files\Autodesk\Softimage 2015 SP2\Data\XSI_SAMPLES\Models\Jaiqua.emdl", "", "", "", "", "", "")

path = "S:\Projects\softimage\support\Models\{0}.abc".format( Application.Selection(0).Name )

model = "B:{0}".format( Application.Selection(0).Name )

Application.AbcExport( path, 1,2, model, False, "Ogawa", "Color, Scale, Size, PointVelocity, Orientation, AngularVelocity, Shape, StrandPosition, StrandVelocity, StrandDeform, StrandOrientation, StrandUpVector, StrandColor, StrandSize, ColorAlongStrands", "Materials, MaterialID, PointUserMotions", "")

PS Here’s the Softimage SDK help

Installing PyQtForSoftimage in Softimage 2015


I use the Python 2.7.3 that comes with Softimage 2015 SP1, but I do also have Python 2.7 installed on my system.

  1. Download and install PyQt.
  2. Set the PYTHONPATH environment variable to point to the location of PyQt4. You could do this in setenv.bat, or in the System environment variables. In my case, I set it in setenv.bat to point to C:\Python27\Lib\site-packages, which is where I installed PyQt.
  3. Download and install the PyQtForSoftimage addon.
  4. Check that everything is working. Open the Plug-in Manager, find PyQtForSoftimage, and run some of the examples.

Installing aaOcean


Download
https://bitbucket.org/amaanakram/aaocean/downloads

Install for mental ray

  1. Extract the aaOcean download package.
  2. Create a new workgroup (or use the Softimage User location).
  3. Copy the aaOceanDataShader.dll and aaOceanShaderDefinition.dll from here:
    aaOceanRev255\aaOcean\MentalRay\Softimage2014

    to

    $MY_WORKGROUP\Application\Plugins
  4. Copy aaOceanDeformer.dll from here:
    aaOceanRev255\aaOcean\Softimage\Softimage2014\

    to

    $MY_WORKGROUP\Application\Plugins\

$MY_WORKGROUP is just my workgroup location. For example:
C:\Users\StephenBlair\Documents\softimage\workgroups\aaOcean

Did you notice that the mental ray version of aaOcean doesn’t have a SPDL file? That’s because it has a shader definition plugin instead.
aaOcean

Install for Arnold

  1. Copy
    aaOceanRev255\aaOcean\Arnold\Arnold-4.2.0.6-windows\Shader\aaOcean.dll 

    to

    $WORKGROUP\Addons\SItoA\Application\Plugins\bin\nt-x86-64
  2. Copy
    aaOcean\Arnold\Arnold-4.2.0.6-windows\SItoA\aaOcean.spdl

    to

    $WORKGROUP\Addons\SItoA\Application\spdl
  3. Copy
    aaOceanRev255\aaOcean\Softimage\Softimage2014\aaOceanDeformer.dll

    to

    $WORKGROUP\Addons\SItoA\Application\Plugins

$MY_WORKGROUP is just my workgroup location. For example:
C:\Users\StephenBlair\Documents\softimage\workgroups\sitoa-3.2.0-2014

[SItoA] Installing the alShaders in Softimage


Cross-posted from the Arnold Support Corner.

Here’s how to install third-party, SPDL-based shaders, like alShaders, so that you can use them with SItoA.

als_shaders

In these instructions, $AL_SHADERS is the location where you extracted the alShaders download. For example, C:\solidangle\alShaders\alShaders-win-0.4.0b18-ai4.2.0.6.

$SITOA_WORKGROUP is the SItoA workgroup location. For example, C:\Users\StephenBlair\softimage\workgroups\sita-3.3.0-2014.

  1. Copy the alShader DLLs from
    $AL_SHADERS\bin
    to
    $SITOA_WORKGROUP\Addons\SItoA\Application\Plugins\bin\nt-x86-64

  2. Create a spdl folder in your Addons\SItoA\Application folder:
    $SITOA_WORKGROUP\Addons\SItoA\Application\spdl

  3. Copy the alShader spdl files from
    $AL_SHADERS\spdl
    to
    $SITOA_WORKGROUP\Addons\SItoA\Application\spdl

  4. Restart Softimage. The alShaders should show up in the Render Tree preset manager, and assuming that your version of alShaders is compatible with your SItoA, they’ll work in a render too.
    als_shaders

Tip Don’t create an alShader from the Arnold > DLL Shaders menu; it won’t pick up the SPDL and you’ll get a raw PPG (and a raw render tree node too).

[Arnold] Rendering XGen in Softimage


That mohawk-like hair on his head? XGen primitives (splines). Created in Maya, rendered in Softimage.
hairy_creature_xgen

  1. Export an ASS file with XGen stuff from Maya.
  2. Set the PATH to include the Maya plug-ins\xgen\bin and bin folders.
    set PATH=%PATH%;C:\Program Files\Autodesk\Maya2014\plug-ins\xgen\bin;C:\Program Files\Autodesk\Maya2014\bin
  3. Add the MtoA shaders and procedurals to the search paths in the Arnold Render Options.
  4. Add an Arnold Standin property to a mesh and point it to the ASS file.
  5. And that’s it!

[Tip] Decluttering your XSI browser Add-on Paths


If you’ve got a lot of add-ons, you probably have a bit of clutter in the browser Paths menu. Like this:
clutter_addon_paths
You can get rid of all those add-ons by cleaning out the Addons/InstalledAddons folders in your User and Workgroup locations. Softimage checks those folders (at startup) to build the list of add-ons for the Paths menu.

Don’t worry; removing the .xsiaddon files from the InstalledAddons folder doesn’t uninstall the addons.

Getting the plugin path


You can use the OriginPath property to get the location of a plugin, but OriginPath is available in the scope of a plugin callback only.

__sifile__ and __sipath__, however, can be used in the global scope.

import win32com.client
from win32com.client import constants

import sipyutils

Application.LogMessage( "Global: __sipath__=%s" % __sipath__ )
Application.LogMessage( "Global: __sifile__=%s" % __sifile__ )

null = None
false = 0
true = 1

def XSILoadPlugin( in_reg ):
	in_reg.Author = "SOLIDANGLE"
	in_reg.Name = "TestPlugin"
	in_reg.Major = 1
	in_reg.Minor = 0

	#Register plugin items

	Application.LogMessage( "XSILoadPlugin: __sipath__=%s" % __sipath__ )
	Application.LogMessage( "XSILoadPlugin: __sifile__=%s" % __sifile__ )
	Application.LogMessage( "XSILoadPlugin: in_reg.OriginPath=%s" % in_reg.OriginPath )

	return true

The above will output something like the following:

# INFO : Global: __sipath__=C:\Users\SOLIDANGLE\Autodesk\Softimage_2015\Application\Plugins
# INFO : Global: __sifile__=C:\Users\SOLIDANGLE\Autodesk\Softimage_2015\Application\Plugins\TestPlugin.py
# INFO : XSILoadPlugin: __sipath__=C:\Users\SOLIDANGLE\Autodesk\Softimage_2015\Application\Plugins
# INFO : XSILoadPlugin: __sifile__=C:\Users\SOLIDANGLE\Autodesk\Softimage_2015\Application\Plugins\TestPlugin.py
# INFO : XSILoadPlugin: in_reg.OriginPath=C:\Users\SOLIDANGLE\Autodesk\Softimage_2015\Application\Plugins\