First Docs:
I will keep this page updated:
https://github.com/pedroCabrera/pcTools_Softimage/wiki
Python Scripts
PC_Basic_Tools
PC_Instances_To_Model:
Duplicate the master instanced Model for each instance selected and matches each transform
PC_ConvertModelsToNulls:
Convert each selected model to a basic null object, it preserves the children.
PC_Nurbs_To_Curves:
Extract the Nurbs curves from selected object, it lets you choose U/V/ALL and set a color for them.
PC_Curve_By_Nulls:
Create A curve from the selected Nulls and add a cluster center to each point to the null.
PC_Custom_Thickness:
Adds thickness to the selected objects. Its a Ice compound with more controls than the default SI thinckes.
PC_Multi_Compound_Exporter:
You can export multiple compound at once, specifying if you want to override categories, task, color… You must select then on the explorer, navigating through the explorer ICE Tree children
PC_Multi_Model_Exporter:
Export the selected models to the specified folder using the model name as the filename on the path.
PC_Multi_Model_Importer:
Opens an explorer where you can go adding models,objs,fbx,etc to the import List, so you can go to many folders as you want and go adding, then choose the options on the specific tabs, and import all in “batch mode”.
PC_Create_Point_Cloud_From_Positions:
Creates a pointcloud and add points in each selected object position ( first a group with all the selected objects is created and uses that for adding points ) you can choose to delete the original positions at creation time
PC_Set_Particle_Colored_Shape:
Lets you pick particles and then it Creates a Compound to allow you to set its color/Shape/Size
PC_Primitives
PC_Cubesphere:
Creates a basic CubeSphere (Cube Subdivided and reshaped to form a sphere) topology in ICE with the specified depth and radius
PC_Disc:
Creates a basic disc topology in ICE with the specified inner and outer radius
PC_Polygon:
Creates a basic polygon topology in ICE with the specified size and nb of points
PC_Basic_Gear:
Create a basic gear topology in ICE with the specified inner radius, outer radius and the nb of dents.
PC_Ice_Curve:
Creates a curve with an ICE Tree and a CustomOp, In the iceTree you specify the Control Points (as one linear array) the number per subCurve (if you want to create multiple subcurves from the total array. You also Specify the type of curve ( linear, cubic, quadratic) and if it is closed or not.
PC_Rigging_Tools
PC_Auto_Rigging_Car
PC_Path_Rig
PC_Workflow_Tools
PC_Add_To_Partition_MultiPass:
Adds the selected objects to a partition in the current pass, selected passes or in all passes. You can choose from any existing partition name or you can create a new one. You must specify if you want to create the partition in case that don’t actually exist or if you want to add it to the background objects partition, if not, it will stay where it was
PC_Set_Camera_MultiPass:
Sets the Specified Camera in the specified pass or in all passes
PC_MultiPass_Capture:
Capture each selected passes in the specified path, the name will be the pass name and the frame rate ,if you don’t override it, will be taken from the pass settings. The camera will also be taken from the pass.
PC_SetPlayControlFromPass:
It sets the in/out play control to match the pass settings ( there is also a registered event which takes care of this each time you change the pass)
PC_Store_Custom_Channel:
This affects all materials in the selection, even objects or directly materials are selected. It shows a pop up window that let you choose some options an then it creates a "_Color4_Passthrough_" node betwen your shader and the "_surface_" input port, also a "_Store_Color_in_Channel_" node with your inputs options so you can store thing in custom AOVS.
PC_Arnold_Framebuffer_Manager:
Opens a Window to manage which Arnold AOVS add to the render and wich not, also it allowd you to change all the names at a time.
PC_Custom_Framebuffer_Manager:
Opens a Window to manage which Custom AOVS add to the render and wich not, also it allowd you to change all the names at a time.
Custom Ice nodes(cpp)
PC_Bezier_Curve:
Similar to the native bezier Curve but smoother (more like native cubic curves), it needs an linear array of positions, and a linear array of U values
PC_RCVN_V2(Recalculate Curve Normals / Parallel Transport Frame):
Fix the problem with the flipping Normals on curves
PC_CVData2(Get Curve data):
Gets positions/normals/tangents in a curve or group of curves referenced by their names. It can compute even Spaced points per curve or a fixed Nb points by connecting a U array( it can return the positions using the u value as a UV value or a percentage) it also can return the u value converted to percentage or to uv as you choose. It also can return positions based on Knot Subdivision
PC_Instance_Shape:
Instance a shape by it’s name not by its reference (using the node reference to string or typing directly). It can only set the RBD mode as BoundingBox, so don’t use in rbd sims.
PC_Get_Object_ID:
Returns the internal XSI ID for the “string referenced object”
PC_CamAttrs:
Returns the basic camera attributes for the “string referenced object” (you can write “Render Pass” to use the actual render pass camera. It returns the camera matrix and the scalar attributes in this order: (fov,aspect,far,near,FrustrumLeft,FrustrumRight,FrustrumBack,FrustrumTop)
PC_Set_Attribute:
Sets an ICE attribute (create it if necessary) with the specified AttributeName in the “string referenced object”. This is useful to set data on multiple objects at the same time. Use it with caution. Don’t try to override the the system attributes.
PC_Acumulate_Attribute:
This Allows to set data the same as PC_Set_Attribute but in addition you can specify if you want to accumulate values each evaluation time, or if you want the current value to sum the new value
PC_Number_to_String:
Convert a number to a string. If is a float number you can specify the precision on the conversion If is an integer you can specify the padding
PC_Resolve_Tokens:
Resolve default tokens on strings
PC_FileChk:
Checks if a file exists on the system, it can use token strings
PC_Subdivide_Array:
Subdivide the input array linearly the specified nb
PC_Array_Acumulate_Op:
Return an matching nb of elements array in which each element is the input element plus the prev output element. It can sum,sub,mul and div. sample(Input: a,b,c... → output(sum) : a, a+b, a+b+c…)
PC_Find_ArrayinArray:
Find each element on the first array into the second array and returns the first matching index if it exist.
PC_CompareArrays:
Compare each element on the first array with each element on the second until the condition is reached and returns the first matching index if exist.
PC_X360C:
Creates an Instance of an XINPUT Xbox360 Controller and outputs itself. You can specify which port
PC_X360C_GetData:
Gets the State of the XINPUT Xbox360 Controller as a Scalar Array( there is a compound that exposes each button with name) Array Order: (StickLX, StickLY, StickRX, StickRY, LT, RT, A,B, X, Y, LB, RB, StickLClick, StickRClick, Back, Start, LEFT, RIGHT, UP, DOWN)
PC_X360C_Vibrate:
Sets the L and R vibration of the input XINPUT Xbox360 Controller
PC_X360C_SetDeadZone:
Calibrate the Dead Zone of the XINPUT Xbox360 Controller
PC_GetKeyState:
Return the state of the specified Keyboard Key