A couple of basic examples, because I didn’t see any screenshots in the docs.
Tag Archives: Softimage
Screenshots of the week
VorleX Muscle System 2.01 PRO Preserving Fine Details During Skin Sliding
Modulate particle scale
by origin

Fun with matrices
by Daniel Brassard

Push from bounds
by Mr.Core

Friday Flashback #157
1999 ad for SOFTIMAGE|3D: Art is Self-Expression

Art is Self-Expression
It’s the artist, not the tools. It’s the process involved in
realizing a creative idea, not the CAD-accurate modeling
or the obligatory check-off feature list.Discover why SOFTIMAGE|3D is used by the world’s greatest
Digital Artists to produce critically-acclaimed animation in
television, games, and feature films. Make contact.
Get Closest Location and position coordinate systems
When you’re using Get Closest Locations, positions are local. That is, they are relative to the local coordinate system of the object that “owns” the ICE tree. The input Position is in local coordinates, so in most cases, (0, 0, 0) will do fine. And if you use the output locations to get positions, those positions will be in the local coordinate system of the ICE tree owner.
https://vimeo.com/85486760
Hat tip: Gray, who has posted this several (many?) times over the years.
Screenshots of the week
Getting all shaders under a light
Given something like this:

Here’s how you get all shaders under a light, even the disconnected ones:
from sipyutils import si # win32com.client.Dispatch('XSI.Application')
from sipyutils import log # LogMessage
from sipyutils import C # win32com.client.constants
from sipyutils import disp # win32com.client.Dispatch
si = si()
def dispFix( badDispatch ):
import win32com.client.dynamic
# Re-Wraps a bad dispatch into a working one:
return win32com.client.dynamic.Dispatch(badDispatch)
oLight = si.Selection(0)
#import win32com.client
oDisconnected = disp( "XSI.Collection" )
if oLight.IsClassOf( C.siLightID ):
for oShader in oLight.GetAllShaders():
oOut = dispFix( oShader.Parameters( "out" ) )
if oOut.Targets.Count == 0:
oDisconnected.Add( oShader )
log( oDisconnected.GetAsText() )
Hat tip: Matt Lind, who provided the GetAllShaders answer to the question “how to get all shaders in a light, even the disconnected ones”
Using ICE attributes to control point light instances
Integer division in ICE
Dividing an integer N by itself doesn’t always give you 1.

I think it’s a problem in the Divide by Scalar node (the division is probably returning a scalar like 0.99999999, and then that is truncated to zero when it is converted to an integer).
A workaround is to do all your division with scalars, and then use modulo to determine whether you Round or Floor the result. Here’s an example compound by Guillaume Laforge:

Screenshots of the week
Follow surface compound
by Mochio

ICE Modeling Tutorial: Generating a Forest
Friday Flashback #155
The future of 3d animation began 14 years ago on this day, Jan 17th. Was it worth the wait?

Teaser from http://www.3dwillneverbethesame.com






