RcTools

Author: Reinhard Claus   V5.3 for Softimage 2011-2013SP1 (Win64) / by Reinhard Claus, last update March 2013

The RCTools plug-in is a collection of workflow helpers and filters for Softimage. The supplied popup menu (Script command »rcToolsPopup«) gives you quick access to all the tools. Download links are at the bottom of the page.

What's new?

Version 5.3: Symmetrize function

Version 5.2: Mirror Edge/Polygon selection / Flip Edge/Polygon selection command / Paste Point Positions In Place / Global Position constraints (select positive X etc.) / Manual symmetry resolving

Version 5.14: Mirror Point selection / Flip Point selection command / now disabling menu items by selection context (5.1->5.12: Bugfix for Flip Point Selection, 5.12->5.13: Paste form no need to freeze whole mesh anymore / bugfix flip point selection - warns now if no symmetry, 5.13->5.14 Flip/Mirror now for polygons and edges also, Preference bug fix)

Version 5.02: Version 2011, 2012 backwards compatibility / Edge Orientation Filter / Custom Preference initialization improved

Version 5.0: »Topo Clipboard« functionality. Copy/Paste map properties (UV, Envelopes, Colors etc.) between meshes or different parts of a mesh / Component selection info shown at top / Bugfix for the subcomponent clipboard feature from the last release (Hierarchy didn't work) / Loop functions moved to bottom.

Version 4.6: Removed C++ plugins parts, replaced with VBS / factory calls / Improved pattern selection / »Apply pattern to selection« command / Softimage 2013 bug workaround (API SubComponent Element is not refreshed) / WalkAlongEdge8 command.

Version 4.5: Updated rcCustomPointFilter with position and distance filtering / Subcomponent (poly/edge/point) clipboard commands: Copy, paste, boolean union, intersection, difference, subtract, swap / Removed Snapshot commands (Similar functionality is provided by subcomponent clipboard update) / Accellerator keys update.

Version 4.4: Fill selection commands / »Peek« command for various aligment option of the camera to the selection / Repeat command / Fixes to the custom filters, which were translated from C# to VBScript because of compatibility problems (Note that VBScript also executes faster than C#).

Installation

Start Softimage then drag-and-drop the rcTools.5.3.xsiaddon file into the application in order to install it into the USER directory. In case you want to use a different directory for the installation, go to the File menu and select Addon->Install in order to install the provided .xsiaddon file into a directory of your choice. See the bottom of this page for info on troubleshooting the installation.

Usage

The addon registers the custom command »rcToolsPopup« which invokes the RCTools popup menu. This command must be mapped to a hotkey and gives quick access to all RCTools commands. The hotkey assignment can be done through Softimage's keyboard settings dialog (File->Keyboard). Pick the »Custom Script Commands« category and scroll down to the »rcToolsPopup« command.

Also it's recommended to bind a key to the »rcToolsRepeatLast« command which repeats the last command executed from the RCTools popup menu. This is useful for example for the walk select loop command.


RCTools function reference

Peek

Usage: Select polygons, edges or points. Invoke »Peek«.

Peek aligns the current view's camera so it's directly facing the current poly/edge/point selection from a 90° viewing angle. As a special case, for 1 edge or 2 points selected, peek will move the camera on the line that goes through those elements (basically looking through them)

This is mainly meant as a modeling/construction helper for moving/snapping components in the camera view plane. It can be used for example in combination with orthgraphic projection/2D snapping for enabling some workflows like snapping to an extended line.

Section "Topo Clipboard"



TopoClipboard lets you copy map data from »under« a point/edge/polygon selection and paste it into another point/edge/polygon selection, provided the other selection has the same topology as the first one. Data that you can transfer that way are envelope weights, vertex colors, UVs, weight maps, tangents and local point positions. TopoClipboard works across different maps of the same type and across different polygon meshes also.

Such operations so far haven't been possible because the point order differs in different areas of the model/on different meshes. The Topo Clipboard feature though builds a new temporary point order that depends only on the selected topology and is independent from the internal point order.

Usage: Make a polygon, edge, sample or point selection on a polygon mesh object, then from the Topo Clipboard->Copy menu, select an existing property (UVs, Envelope weights, ..) to copy from. The properties in the selected area will be copied into the clipboard and can be pasted to a different part of the same or a different mesh using the Topo Clipboard->Paste submenu.

Note that sometimes if your selection has a symmetric topology, TopoClipboard asks you to resolve the symmetry by picking one or two points. In case that happens, be sure to remember the sequence of points picked so you can re-pick the corresponding points in the same order on the pasted area later. Most of the time, it's one or two points only. Hint: You can use these points to rotate the pasted results also.

Some examples uses:

Transfer UVs across meshes: Often, copy/paste in the UV editor isn't possible because two meshes have a different point order. If you can't use GATOR either because the models have a different scale/have been deformed, or the result isn't what you expect, you can still use the TopoClipboard to transfer the UVs, presumed the models have an identical topology. Just select all polygons, use Copy UVs, and Paste UVs on the other model.

Flip the UV of a symmetric model: To do that, select all polygons, select copy UV map. TopoClipboard asks you to pick an anchor point because the selection has a symmetric topology. Pick one on the right side of the model. Next select paste UV map. You'll be asked for another anchor point. This time, pick the corresponding point on the left side of the model. The UVs will be pasted flipped now.

Modeling toes: Let's assume you've modeled a foot and used the same topology for each toe. When you later come back to tweak one of the toes, you can easily carry the modeling changes over to the other toes using paste point positions with the "localized" option so the modified form will be transfered automatically to the paste position. In a similar way, tweaked envelope weights can be transfered to the new toes. For pasting to the other foot (which has a mirrored topology), use the mirrored option.

Copy/Paste Point Positions:

Copies the form of the selected area to the pasted area. Orientation of the pasted form will be adjusted to the new area if the "Localize" option is used. The "Mirrored" option is in case the pasted area is on the other side of a symmetric mesh.

Copy/Paste Envelopes:

Copies Envelope weights from the selected area to the clipboard and allows them to be pasted on another area. After pasting, a remapping dialog is shown which allows you to remap the clipboard weights to the new local deformers, as is done here with the finger joints:

           

There's an exception to the »same topology« rule here: If the clipboard weight contains the deformer weights of only 1 point, those may be pasted to any number of points you like. Paste Envelopes can handle mirrored topology automatically. To get a normalized result, existing deformer weights will be proportionally reduced so the new pasted weights will fit in fully without modification.

Note that in the current version, envelope pasting doesn't work with partial clusters yet.

Copy/Paste UVs:

Copies UVs of the selected area to the pasted area. Can handle mirrored topology.

This can also be used to copy UVs between two meshes that have a different point order, but the same topology:

Copy/Paste Vertex Colors/Tangents:

Copies vertex colors of the selected area to the pasted area. Can handle mirrored topology automatically.

Copy/Paste Weight maps:

Copies weights of the selected area to the pasted area. Can handle mirrored topology automatically. Works also with partial clusters.



Section "Modify Components"

Symmetrize

(Re-)symmetrizes a polygon mesh object. Analyses the mesh first, looking for topological "partners", and then symmetrizes their positions. Allows copying from left to right, right to left, left/right average and flip left/right. The same functions exist for bottom/top and front/back. If something was selected, only the selected components will be symmetrized.

Cap marked holes

Fills holes marked previously with the "edgeloop around corners" or the "polygon outline" functions:

Section "Component Selection

The subcomponent clipboard offers a quick method to store one selection per object for each of the subcomponents (polygons/edges/points). The following examples show only polygon selections but this function also works on point and edge selections.

Copy Selection

Copies the current subcomponent selection into the subcomponent selection clipboard (Which is an annotation property stored under the object):

Paste Selection

Replaces the current subcomponent selection with the clipboard:

Union:

Intersection:

Difference:

Subtract:

Swap:


Example: This function allows to selecting all polygons that are created by a bevel operation: Select all polygons. Copy selection. Apply bevel. Paste selection. Invert selection.

Note: Since the subcomponent clipboard is stored as a property under the object, it's possible to move or copy it between objects that have the same topology. This way you could recreate an existing selection on a different object.

Note: When trying to paste on an object that has fewer components than it had at the time when the components were being copied, the paste operation might fail.

Note: When trying to paste on an object that has fewer components than it had at the time when the components were being copied, the paste operation might fail.

Flip

This function flips the current selection over to the other side of the mesh.

Mirror

Given a selection, this tool selects all symmetric elements that exists on the mesh. Note that both Flip and Mirror work by analyzing the topology before running, so they are independent from any deformation the object has. But this also means that the mesh topology must be perfectly symmetrical for these functions to work.

Fill

Given a polygonal selection, this tool selects the inside of the selection after you clicked in it:

Hold shift while clicking to fill multiple areas. MMB to end. It also works with an initial edge selection:

Fill (how to remove the original selection)

Fill also allows to »deselect-fill« an area. This is for example useful to erase the original selection border in case you only need the inside part selected. Middle click (or Shift-middle click) the area in order to deselect it.

Walk (Usage: Select two neighboring polygons, points or edges, taking care to select in the order of the desired walk direction. Invoke »Walk select« repeatedly.)

»Walk select« extends the selection by one item into the direction of the last selected item. In order for that to work, it is required that the last selected item is connected to a previous selection.

Note: This command's name is rcWalkAlongLoop, in case you intent to tie in to a hotkey. There's also rcWalkAlongLoop8, which walks 8 steps at once.

Complete all (Usage: Select polygons, edges or points. Invoke "Complete all".)

For an edge selection, »Complete all« will select edges along paths (a.k.a. loops) originating from the initial selection of edges. A path will end when the boundary of the surface, or a point with an odd number of »fan« edges is hit.

This implements a different selection workflow than Softimage's built in loop selection (where you directly select loops using the ALT key). You might prefer this in situations where multiple loops have to be selected.

Examples:

The edgeloop function also selects edgeloops on the boundary of a surface. It stops at corners:

For polygon and point paths, pairs of two neighboring items have to be selected in order for the algorithm to be able to specify the direction of the paths:

Note: this command's name is »rcCompleteAllLoops«, in case you intend to tie it to a hotkey

Complete all (around corners) (Usage: Select edges or points. Invoke »Complete all (around corners)«.)

Complete all (around corners)" works exactly like its non-corners couterpart (see above) with the one exception that for edge and point loops, it does not stop selecting at corners on the boundary of the mesh. The non-corners version stops there because selecting and extruding a corner-to-corner segment of the boundary is an essential workflow for poly-by-poly modelers:

Complete all Edgerings (Usage: Select edges. Invoke "Complete all Edgerings")

"Complete all Edgerings" selects all edge rings (paths of single parallel edges) originating from an initial selection of edges. Selection stops at triangles and when the boundary of the surface is hit.

Grow all Loops (Usage: Select polygons, edges or points. Invoke "Grow Loop".)

"Grow Loop" extends all open loops by one item on both ends. Like for the »walk loop« command, for polygon and point loops two adjacent items have to be selected.

Note: this command's name is rcLoopGrow, in case you intend to tie it to a hotkey

Shrink all Loops (Usage: Select polygons, edges or points. Invoke »Shrink Loop«.)

»Shrink Loop« removes one item on either end of the selected loops/edge rings.

Note: this command's name is rcLoopShrink, in case you intend to tie it to a hotkey

Grow to Island

Select a polygon, invoke »Grow to Island« to select the whole polygon island (all connected polygons). »Grow to Island« also works for point and edge selections.

Loop patterns

This allows you to set a global selection ON-OFF pattern for all loop (and ring) selections. Select e.g. X.X.X.X to have the loop commands (Complete all loops, complete all loops (around corners), complete all edgerings) select only every other element of a loop. XXXXXX is the default behavior (every item selected). To create custom patterns, pick »custom« and inside the preferences (loop tab), use the Loop Pattern String text box to enter a pattern. Enter 1 segment of a pattern only (like XXX...X...)

Loop patterns - apply to selection

Enables you to apply the selected pattern to an existing selection. After selecting this command, pick a start element (polygon, edge or point) to specify where the pattern should start. Using the middle mouse button or holding the ALT key while picking will reverse the loop pattern.

Section "Custom Filters"

Filter operations: Select All, Keep, Add, Subtract

This allows for a finer control than »select all using filter«. For instance if you have a random edge selection on the mesh and you want to keep from this selectiob only the edges that are on the border of the mesh, you could do the following: With your random edge selection active, select Softimage's Border_edge filter, then select RCTools->Filter ops->Keep.

Similarily, »Add« adds all components to the selection that match the specified filter, and »Subtract« removes all component from the selection that match the filter. The »Select All« is the same function as the built-in »Select all using Filter«, it was just added for completeness here.

This is particularily useful for the custom filters:

Custom Filters

RCTool's »Custom Filters« are four customizable filters for polygon meshes, polygons, edges and points. You can filter items by a number of criteria such as minimum and maximum edge length, polygon size, orientation or adjacency properties.

You'll be able to specify combined filter criteria for polygons, edges, point or objects such as only 4-sided polygons that have a minimum area of 2 sq SI units and are located on a concave area of the mesh (This example did probably not make too much sense, but should make the point clear). Criteria also include Random component selection

Customization is done inside the Softimage preferences dialog, under the »Custom->Custom Filters« category, but it's probably easier to use the provided property page directly (RCTools->Open Custom Filter PPG) and do all selection there, using the buttons at the top.

Quick Usage: Configure the custom filter, then activate it using the MCP, then apply the filter to your current selection using either the Softimage built-in filter commands (»Select All using Filter«, »Deselect All using Filter«) or one of the new RCTools filter commands (Keep, Add, Subtract).

Detailed Usage: Configure the custom filters either by entering the preferences (File->Preferences), then activating the »Custom->Custom Filters« category, or directly by invoking the preferences dialog through the RCTools menu (RCTools->Open Custom Filter PPG)


Filter property page, note this is a screenshot of an older version

You'll be able to configure the four custom filters (Polygon mesh/polygon/edge/point) from the four tabs here. Every group of filter parameters has an »apply« button that will activate that group of parameters for the filter. When no apply button is activated in a filter/tab, the filter when applied will keep everything selected. The groups will be evaluated top-to-bottom, although the sequence should not play a role.

The parameter groups are inclusive: If you for instance activate the »Polygon area« group, then only those polygons will remain selected which areas fall within the min-max range.

Every parameter field has a »from selection« button next to it that will evaluate the parameter for the currently selected object/components, and copy that value into the input field. Note that this can be used for measuring purposes also (especially polygon area/polygon orientation/deviation/edge length/angle).

There's also a »pick« button if you don't want to erase the current selection.

Settings for the Custom Polygon Mesh filter

Polygon Count: If the polygon count group is active, only those objects are kept selected which polygon counts fall within the specified min-max range. The "from selection" button will sample the polygon count from the currently selected object.

BBox Volume:keep only obects selected that have a Bounding box volume that is inside the min-max range. The "from selection" button will sample the Bbox volume from the currently selected object.

Random Factor/selection propability:This will randomly select objects. This makes sense only when selecting multiple objects at once. A typical case might be you have a grid of 10 * 10 buildings, and you intend to scale up a random 25% of these. To achieve that, you could set the "selection propability" parameter to 0.25 and rectangle select all buildings with the custom Polymesh filter active. You will end up with a random 25% of the buildings selected.

Settings for the Custom Polygon filter

Polygon Area: Filter polygons by area. The area is measured in square SI Units, supposed you have a square polygon that is 2*2 SI units wide, the area value will be 4. The "from selection" button will sample the total area of the selected polygons. ("From Sel" from min will use minimum polygon area if multiple polygons are selected, "From sel" in max will use maximum area)

Polygon Aspect ratio: Filter polygons by the polygon's aspect ratio (works best for 4-sided polygons). The aspect ratio is measured long side/short side, thus it will always be >1. You can use this for example in situations where you want to have only the long polygons of an object selected. The "from selection" button will sample one polygon only.

Polygon Sides: Filter by number of polygon sides. If you wanted only 4 and 5 sided polygons selected, set min to 4 and max to 5 here.

Orientation Vector/max deviation: Use this to add orientation detection to the filter. Only those polygons are kept in the selection that have an orientation (or "normal vector") that at most deviates by the specified deviation value from the orientation vector. For setting the orientation vector/deviation value it is suggested to sample the current selection. The "from selection" button will compute the average orientation/deviation of all selected polygons.

Approx. Surface Curvature: Filter by local curvature of the surface: For example if you set min to 0°(zero) and max to 180°, you would end up with only those polygons selected that are located on convex areas of your object. The "from selection" button will compute the average value for the selected polygons.

Random Factor/selection propability: This computes a random number per polygon. It then filters out all polygons that have a number higher than the "selection propability" setting. The higher the number, the more polygons are kept selected.

Settings for the Custom Edge filter

Edge Length: Filter by edge length. The length is measured in SI Units. The "from selection" button samples the total lenght of the selected edges.

Total adjacent Edges: Filters by the total number of edges directly adjacent to the to-be-filtered edge. For quad-structured meshes this number will be 6 for most of the edges. The "from selection" button will sample one edge only.

Angle of adjacent Polygons: Filters by the angle of the edge's adjacent Polygons. For example in a cube, this angle will be 90° for all edges. If you want to select all concave edges, use -180° for min, 0° for max. The "from selection" button will compute the average value for the selected edges.

Edge Orientation/max deviation: Use this to add edge orientation detection to the filter. Only those edges are kept in the selection that have an orientation that at most deviates by the specified deviation value from the reference value. For setting the reference orientation vector/deviation value it is suggested to sample the current selection. The "from selection" button will compute the average orientation of all selected edges.

Sharp Edges: Selection of edges that are "sharp" by the automatic discontinuity setting in the object's geometry approximation properties. This can be used to find edges that qualify for a bevel operation... Usage: Adjust the automatic discontinuity setting until the object's rounded/angled parts looks right. Activate the Rim Edge Filter and call Softimage's Select All using Filter command. Now apply a bevel to the selected edges.

Edge on a UV Border: Selects edges that are on the borders of UV islands.

Random Factor/selection propability: This computes a random number per edge. It then filters out all edges that have a number higher than the "selection propability" setting. The higher the number, the more edges are kept selected.

Settings for the Custom Point filter

Global Position Distance: Filters by the distance to a position in global space. The "from selection" button will average the position of a selection of points.

Global Position Constraints: Filters by the comparing global point coordinate components. For example if you'd like to select all points in positive X, enter "0" in the "X>" box and check apply for it.

Total adjacent Edges: Filters by the total number of edges that are directly adjacent to the to-be-filtered point. For quad-structured meshes this will be 4 for most points. The "from selection" button will sample one point only.

Average Length adjacent Edges: Filters by the average length of the point's directly adjacent edges. The "from selection" button will sample one point only.

Approx. Surface Curvature: Filter by local curvature of the surface: For example if you set min to 0°(zero) and max to 180°, you would end up with only those points selected that are located on convex areas of your object. The "from selection" button will compute the average value for the selected points

Random Factor/selection propability: This computes a random number per point. It then filters out all points that have a number higher than the "selection propability" setting. The higher the number, the more points are kept selected.

Section "Misc"

Repeat last command: Offers a shortcut to repeat most of RCTool's popup menu commands. This doesn't make sense really to have as a menu entry, so this serves more as a reminder to bind the rcRepeatLast command to a hotkey.

Edit this popup: You can customize the RCTools popup menu here. Just add a line following the scheme popup.AddItem("[MENU NAME]", "[JAVASCRIPT COMMANDS]");

Help: Displays this help file in a Softimage Netview

 


Installation Troubleshooting

Cleanup of older versions: Older versions of RcTools installed their custom preferences in a permanent way. So if you see a double entry for RcTools in the preferences, proceed as follows: Delete both properties (using the right click context menu in the «preferences» window tree). Exit Softimage, then in the windows file explorer, go to your user preferences folder (e.g. C:\Users\Admin\Autodesk\Softimage_201XX\Data\Preferences) and delete the .Preset related to rcTools. After restarting, the second entry should have disappeared.

Missing requirement: It's installed on most systems, but if the loop function shouldn't work, you might need the Microsoft Visual C++ 2010 Redistributable Package (x64)

Other issues: Sometimes rcTools requires a restart after the installation. Post in the thread linked below for further troubleshooting help.

 

     Downloadables:

     rcTools.5.3.xsiaddon  727k win64 plugin (python/VBScript/JS/C++)

     SI-Community thread for questions and feedback

 

 

 

 

This site and (non external) contents are ©2000-2010 rray.de