Debugging ICE Graphs

 
 
 

There is a special node called the LogValuesNode which allows you to log values to the Script Editor's history pane while passing them through from one port to another port. For example, imagine a Turbulize Around Value compound as input to a Gravity Force compound in a particle simulation:

If you want to print the values that are being set on the Gravity Force compound, you can pass them through a LogValuesNode:

These are some of the ways you can customize what gets logged and how:

Specifying a Range of Elements to Log

You can limit the values that get logged to a subset of elements. For example, if every element logs its value in a particle simulation, the more particles are have been emitted, the more the simulation will be bogged down logging values to the Script Editor.

To specify a range of elements to log

  1. Set the allelements (All Elements) port to false.

  2. Specify the range by setting the following values:

    • The index of the first element in the range in the firstelement (First Element) port. The index is 0-based, and any invalid values (values that fall below 0 or above the lastelement value) will be clamped to the closest valid value.

    • The index of the last element in the range in the lastelement (Last Element) port. The index is 0-based, and any invalid values (values that fall below the firstelement value or above the last available element for that time will be clamped to the closest valid value.

    Tip

    You can specify a very high value for both values, such as 5000, to set up a range of just the last element at every point in the simulation. That way, if there are 5 elements at frame 2 and 45 elements at frame 60, at frame 2 element 5's values will log but at frame 60 element 45's values will log.

Differentiating Multiple LogValuesNodes

If you have several LogValuesNodes connected in the same graph, you can use a special label to identify which node wrote the message to the history pane:

  • Write the identifying label to the debugprinttag

Creative Commons License Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License