Softimage free scripts and plugins.

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
  02 February 2011
Listing objects under the mouse (more than one)

Unfortunately, not easily so. This is not so much a limitation of QMenu, but rather of the Softimage SDK, which exposes simply no direct means of acquiring the objects under the mouse (selected or not). Also, there is no raycast function which could be used to test "manually". There might be the option of writing custom display callbacks for the viewports, but that's a bit drastic and beyond my current set of skills. If any one here knows how to do this, or can even send me a related piece of code on how to pull this off to reduce my R&D time I might look into it. But honestly, this is something Autodesk should provide out of the box (just like fully customizable Menus to begin with).
Stefan Kubicek
  02 February 2011
I have just released the following tools for Softimage :

XSIGradient : gradient background for the viewport

XSIRuleOfThirds : draws a 'Rule of Thirds' grid over a camera

XSIEnvelope : A set of tools to help speed up the enveloping process

XSISelectionSets : An easy way to store and apply selection sets

All of which can be downloaded from

As a side note, Stefan, i have recently started dabling in CustomDisplayCallback code, i would be happy to send you the source code for the above plugins that use it as a reference point.

Having said that, off the top of my head i am not sure how to go about testing the area of the object in relation to the mouse position, but it certainly sounds like an interesting task!

  02 February 2011
Hi Michael!

Thanks for releasing those and also for providing decent help files and polishing - not always a given

As for display callbacks: I thought you'd be needing something related for the gradient viewport background when I saw your post at the mailing list.

Somehow Softimage must already do some testing for objects under the mouse, otherwise the default right-click menu would not be case sensitive (it looks different when clicking over, say, an empty area on the screen vs. over an object). So it must be possible, unless it's one of those black boxes again.

I really don't know what functionality there is in the graphics sequencer and related departments that could be used, or if it's even possible to make e.g. arbitrary OpenGL calls.

I remember, years ago, there was an example on xsiblog of such functionality by a guy who had programmed a tool to rapidly change the posture of a character by just clicking on the object/body part in the viewport and dragging the mouse.

Edit: I just found it ->

To my knowledge he never released it anywhere, but maybe he can be contacted and kindly asked for the source code? He also describes the methodology he used to get it to work (seems he used OpenGL calls to get the object under the mouse, so it must be possible), which sounds plausible. What I'd need to get this going is, ideally, a plugin, that exposes either a command I can call to query for objects under the mouse cursor, or even better, a plugin which stores names of, or references to, objects under the mouse in it's UserData attribute (which it constantly updates, or at least updates on key_pressed, in case this is not a performance bottle neck), from where I can fetch it without even using a command (thus eliminating the possibility of said command to appear in the Edit menu under certain conditions). Any help highly appreciated.
Stefan Kubicek

Last edited by Stefan.k : 02 February 2011 at 05:10 PM.
  02 February 2011
Great that you both are looking into this.
This is what it looked like in 2006.

Last edited by Bullit : 02 February 2011 at 09:14 PM.
  03 March 2011
@Bullit: Excuse my ignorance, but what's this? Softimage3D? 2006?
Stefan Kubicek
  03 March 2011
No, this was Alias Studio in 2006. I don't remember what version was.
Just to show how it worked, it as very helpful with several objects in scene.
  03 March 2011
It looks like the issue of getting what is under the mouse is gone with 2012's Interaction Tool SDK.
  03 March 2011
Yes Sir! The new tools SDK offers lot of additional functionality that could also proof useful for QMenu, maybe it will even invocation of QMenus through the mouse if QMenu is declared as a tool. We'll see. I'm not among the beta testers, unfortunately. Has ne1 here tested Qmenu in 2012 beta?
Stefan Kubicek
  03 March 2011

ENmenu show the Maya-like Menu.

  10 October 2011
mSymm / mCombine

I'd like to share two scripts I've developed a few days ago.

They are very basic and simple but I use them a lot.

This script align the points close to 0, to 0. (-0.01 ~ 0.01 by default, you can easily edit it).
Deletes the left side of the object.
If there is no left side, it symmetrizes the polygon with Weld Distance : 0.001. So it works like some kind of Toggle Symmetry.

If you press shift, alt or ctrl when you click, it symmetrizes with local reference

Merges the selected objects, rename the merged object with the first selected object's name, and move it under the first selected object's parent. So it kinda merges the add-selected objects into the first selected one.
It uses merge with 0.001 of tolerance, Copy Animation and Copy Materials.

I packed this as an addon so it would be easier to install.
  09 September 2012
Here's an old set of tools in .xsiaddon format (just drag and drop into any empty viewport)., that I've either written or collected, and I use regularly when modeling in SI. I'm a fan of toggling the subd and polygon mode as I model, and I also like all my polygons to have zero discontinuity angle (light and dark are easier to see on faceted form), so there a tool there called Quicklevel. I mapped Quicklevel to the tilde key (kinda like the tab key in Lightwave or the toggle between 1 and 3 in Maya).


Tools in this addon include:
1. Quicklevel - toggles subd (discontinuity of 89.5) and polygon (discontinuity of 0) I also made this tool to help control the students render time at the end of the semester. This prevented them from increasing the render subdivision level 4.
2. Stats - toggle stats
3. Xzero - move points or edges to global X,0 (for character modeling)
4. CloneOnX - clone half a mesh on X (for sym modeling)
5. FixSym - deletes and recreates a sym map (good for corrected meshes, final touches)
6. FlattenNormal - self explanatory
7. FlattenX - self explanatory
8. FlattenY - self explanatory
9. FlattenZ - self explanatory
10. Solidify (Helgee Mathee's original thickening tool)
11. ExtractIslands - self explanatory (A script pulled from Softimage Wiki)
maya and zbrush training
creating CG3D since 2001

3D Models
@ Turbosquid

my Scripts
  10 October 2013
Feather Tools

Feather Tools

Styling, Animation, and Simulation of Bird Feathers for Softimage.
My various work and stuff
  01 January 2014

Originally Posted by neso: It creates individual cluster center for every component selected,
and then it sets neutral pose for them.Useful for rigging.
Command can be found in right click menu, and EDIT tab.


 // Create Multiple Cluster Centers Plugin
 // Initial code generated by XSI SDK Wizard
 // e.xecuted Thu Apr 2 03:09:14 UTC+0200 2009 by memag
 // Tip: To add a command to this plug-in, right-click in the 
 // script editor and choose Tools > Add Command.
 // Tip: To get help on a callback, highlight the callback name
 // (for example, "Init", "Define", or "e.xecute") and press F1.
 function XSILoadPlugin( in_reg )
    in_reg.Author = "memag";
    in_reg.Name = "Create Multiple Cluster CentersPlugin";
    in_reg.Email = "";
    in_reg.URL = "";
    in_reg.Major = 1;
    in_reg.Minor = 0;
    in_reg.RegisterMenu(siMenu3DViewComponentContextID  ,"Create_Multiple_Cluster_Centers_Menu",false,false);
    //RegistrationInsertionPoint - do not remove this line
    return true;
 function XSIUnloadPlugin( in_reg )
    var strPluginName;
    strPluginName = in_reg.Name;
    Application.LogMessage(strPluginName + " has been unloaded.",siVerbose);
    return true;
 function Create_Multiple_Cluster_Centers_Init( in_ctxt )
    var oCmd;
    oCmd = in_ctxt.Source;
    oCmd.Description = "";
    oCmd.ReturnValue = true;
    return true;
 function Create_Multiple_Cluster_Centers_e.xecute(  )
    Application.LogMessage("Create_Multiple_Cluster_Centers_e.xecute called",siVerbose);
 var oProgressBar = XSIUIToolkit.ProgressBar ;
 if (selection.count != 0)
   var objs = Selection.Count;
   for (i = 0; i < objs; i++)
       var component = Selection(0).SubComponent.ComponentCollection;
       for (i = 0; i < component.Count; i++)
         var sel = component(i);
         oProgressBar.Maximum = component.Count ;
    oProgressBar.Caption = "Creating Cluster Center for " + sel;
    oProgressBar.CancelEnabled = false ;
    oProgressBar.Visible = true;
           oProgressBar.Value =i;
         CreateClusterCenterWithNull(sel, 0)
    var selo = GetValue("SelectionList");
    SetNeutralPose(selo, siSRT, false);
    SetValue(selo+".null.primary_icon", 0, null);
    SetValue(selo+".null.shadow_icon",2, null);
    SetValue(selo+".null.shadow_scaleX", 0.4, null);
    SetValue(selo+".null.shadow_scaleY", 0.4, null);
    SetValue(selo+".null.shadow_scaleZ", 0.4, null);
    SetValue(selo+".null.shadow_colour_custom", true, null);
    SetValue(selo+".null.R", 0.717136, null);
    SetValue(selo+".null.G", 1, null);
    SetValue(selo+".null.B", 0.004, null);
    SetValue(selo+".Name", [sel]+" ClusterCenter "+(i+1));
           if ( oProgressBar.CancelPressed ) break ;
           oProgressBar.Visible = false ;
   logmessage ("Select some COMPONENTS !");
    return true;
 function Create_Multiple_Cluster_Centers_Menu_Init( in_ctxt )
    var oMenu;
    oMenu = in_ctxt.Source;
    oMenu.AddCommandItem("Create Multiple Cluster Centers","Create_Multiple_Cluster_Centers");
    return true;

function Create_Multiple_Cluster_Centers_e.xecute( )

// ERROR : 'Create_Multiple_Cluster_Centers_e'

HI~ I use this Jscript
it had a problem how to solve?
reply share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 12:15 PM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.