Turntable Tool



Here's a tool which takes the framerate from your Project Settings and then uses the first half of the timeline to rotate the asset and the second half to rotate the lights. There are sliders to offset the rotation of the asset and lights. You can also set an HDRI and then edit the intensity and exposure.


Just copy and paste this script into your node graph!

<katana release="4.0v1" version="4.0.1.000004">
  <node name="__SAVE_exportedNodes" type="Group">
    <node baseType="Group" comment="Made by Rich Fry | https://www.richfry.net/" name="rf_Turntable" ns_bubbleZoom="0.000000" ns_errorGlow="0.000000" ns_fromContext="legacy" ns_offsetX="80.000000" ns_offsetY="0.000000" selected="true" type="Group" viewed="true" x="224.000011" y="480.000016">
      <port name="asset" source="In_Asset.default" type="in"/>
      <port name="o0" type="out"/>
      <group_parameter name="rf_Turntable">
        <group_parameter hints="{}" name="user">
          <string_parameter hints="{&apos;widget&apos;: &apos;scenegraphLocation&apos;}" name="Asset" value="/root/world/geo"/>
          <string_parameter hints="{&apos;widget&apos;: &apos;fileInput&apos;, &apos;label&apos;: &apos;HDRI Path&apos;}" name="HDRIPath" value=""/>
          <number_parameter name="Intensity" value="1"/>
          <number_parameter name="Exposure" value="0"/>
          <number_parameter hints="{&apos;slidercenter&apos;: &apos;180.0&apos;, &apos;slider&apos;: &apos;True&apos;, &apos;slidermax&apos;: &apos;360.0&apos;, &apos;label&apos;: &apos;Offset HDRI Rotation&apos;}" name="OffsetHDRI" value="0"/>
          <number_parameter hints="{&apos;slidercenter&apos;: &apos;180.0&apos;, &apos;slider&apos;: &apos;True&apos;, &apos;slidermax&apos;: &apos;360.0&apos;, &apos;label&apos;: &apos;Offset Asset Rotation&apos;}" name="OffsetAsset" value="0"/>
          <string_parameter hints="{&apos;readOnly&apos;: &apos;True&apos;, &apos;constant&apos;: &apos;True&apos;, &apos;label&apos;: &apos;Made By&apos;}" name="MadeBy" value="Rich Fry | https://www.richfry.net/"/>
        </group_parameter>
      </group_parameter>
      <node baseType="Transform3D" name="TurntableRotate" ns_errorGlow="0.000000" type="Transform3D" x="-32.000000" y="-2607.999974">
        <port name="in" source="rf_Turntable.asset" type="in"/>
        <port name="out" type="out"/>
        <group_parameter name="TurntableRotate">
          <string_parameter name="path" useNodeDefault="false" value="/root/world/geo"/>
          <string_parameter name="order" value="Scale Rot Trans"/>
          <string_parameter name="rotateOrder" value="Rx Ry Rz"/>
          <string_parameter name="stackOrder" value="First"/>
          <numberarray_parameter name="translate" size="3" tupleSize="3">
            <number_parameter name="i0" value="0"/>
            <number_parameter name="i1" value="0"/>
            <number_parameter name="i2" value="0"/>
          </numberarray_parameter>
          <numberarray_parameter name="rotate" size="3" tupleSize="3">
            <number_parameter name="i0" useNodeDefault="false" value="0"/>
            <number_parameter expression="(ifelse(frame&gt;getParam(&quot;rootNode.outTime&quot;)/2, 360, 360 / (getParam(&quot;rootNode.outTime&quot;)/2 -1)* (frame -1)))+getParam(&quot;rf_Turntable.user.OffsetAsset&quot;)" isexpression="true" name="i1" useNodeDefault="false">
              <fcurve name="TurntableRotate.rotate.i1" version="4">
                <visible/>
                <segments>
                  <segment expression="linear()"/>
                  <key>
                    <position x="1" y="0"/>
                  </key>
                  <segment expression="linear()"/>
                  <key>
                    <position x="120" y="360"/>
                  </key>
                  <segment expression="linear()"/>
                </segments>
              </fcurve>
            </number_parameter>
            <number_parameter name="i2" value="0"/>
          </numberarray_parameter>
          <numberarray_parameter name="scale" size="3" tupleSize="3">
            <number_parameter name="i0" value="1"/>
            <number_parameter name="i1" value="1"/>
            <number_parameter name="i2" value="1"/>
          </numberarray_parameter>
          <numberarray_parameter name="pivot" size="3" tupleSize="3">
            <number_parameter name="i0" value="0"/>
            <number_parameter name="i1" value="0"/>
            <number_parameter name="i2" value="0"/>
          </numberarray_parameter>
          <number_parameter name="uniformScale" value="1"/>
          <string_parameter name="makeInteractive" value="No"/>
          <string_parameter name="adjustParentBounds" value="Yes"/>
        </group_parameter>
      </node>
      <node baseType="SuperTool" edited="true" name="GafferThree" ns_basicDisplay="1.000000" ns_iconName="" type="GafferThree" x="-32.000000" y="-2816.000031">
        <port name="in" source="TurntableRotate.out" type="in"/>
        <port name="out" returns="o0" type="out"/>
        <group_parameter name="GafferThree">
          <number_parameter name="apiVersion" value="1"/>
          <number_parameter name="version" value="10"/>
          <string_parameter name="rootLocation" value="/root/world/lgt/gaffer"/>
          <number_parameter name="showIncomingScene" value="0"/>
          <number_parameter name="syncSelection" value="0"/>
          <string_parameter expression="@Merge_packages1" name="node_packageMerge"/>
          <string_parameter expression="@rootPackage1" name="node_rootPackage"/>
          <string_parameter expression="@preMergeView1" name="node_preMergeView"/>
          <string_parameter expression="@Merge_incoming1" name="node_incomingMerge"/>
          <string_parameter expression="@_GafferTagAdopted1" name="node_tagAdopted"/>
          <string_parameter expression="@PostMergeStack1" name="node_postMergeStack"/>
          <string_parameter expression="@EditPackageStack1" name="node_editPackageStack"/>
          <string_parameter expression="@postMergeViewAllUpstream1" name="node_postMergeViewAllUpstream"/>
          <string_parameter expression="@VariableSet_gafferState_ui1" name="node_postMergeView"/>
        </group_parameter>
        <node baseType="Merge" name="Merge_packages1" type="Merge" x="0.000000" y="-75.000000">
          <port name="i0" source="rootPackage1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="Merge_packages1">
            <string_parameter name="showAdvancedOptions" value="No"/>
            <group_parameter name="advanced">
              <string_parameter name="sumBounds" value="No"/>
              <string_parameter name="preserveWorldSpaceXform" value="No"/>
              <stringarray_parameter name="preserveInheritedAttributes" size="0" tupleSize="1"/>
              <group_parameter name="preferredInputAttributes">
                <stringarray_parameter name="name" size="0" tupleSize="1"/>
                <numberarray_parameter name="index" size="0" tupleSize="1"/>
              </group_parameter>
              <string_parameter name="preferRightmostInputWithAttribute" value=""/>
              <stringarray_parameter name="mergeGroupAttributes" size="0" tupleSize="1"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="Group" name="rootPackage1" type="Group" x="0" y="0">
          <port name="out" type="out"/>
          <group_parameter name="rootPackage1">
            <group_parameter name="__gaffer">
              <string_parameter name="packageType" value="RootPackage"/>
              <string_parameter expression="=^/rootLocation" name="location"/>
            </group_parameter>
            <string_parameter expression="@LocationCreate1" name="node_create"/>
            <string_parameter expression="@Merge9" name="node_merge"/>
          </group_parameter>
          <node baseType="LocationCreate" name="LocationCreate1" type="LocationCreate" x="0" y="0">
            <port name="out" type="out"/>
            <group_parameter name="LocationCreate1">
              <string_parameter name="type" value="group"/>
              <stringarray_parameter name="locations" size="1" tupleSize="1">
                <string_parameter expression="=^/__gaffer.location" name="i0"/>
              </stringarray_parameter>
              <group_parameter name="attrs"/>
            </group_parameter>
          </node>
          <node baseType="Merge" name="Merge9" type="Merge" x="0.000000" y="-50.000000">
            <port name="i0" source="LocationCreate1.out" type="in"/>
            <port name="i2" source="rig__rig__1.out" type="in"/>
            <port name="out" returns="out" type="out"/>
            <group_parameter name="Merge9">
              <string_parameter name="showAdvancedOptions" value="No"/>
              <group_parameter name="advanced">
                <string_parameter name="sumBounds" value="No"/>
                <string_parameter name="preserveWorldSpaceXform" value="No"/>
                <stringarray_parameter name="preserveInheritedAttributes" size="0" tupleSize="1"/>
                <group_parameter name="preferredInputAttributes">
                  <stringarray_parameter name="name" size="0" tupleSize="1"/>
                  <numberarray_parameter name="index" size="0" tupleSize="1"/>
                </group_parameter>
                <string_parameter name="preferRightmostInputWithAttribute" value=""/>
                <stringarray_parameter name="mergeGroupAttributes" size="0" tupleSize="1"/>
              </group_parameter>
            </group_parameter>
          </node>
          <node baseType="Group" name="rig__rig__1" type="Group" x="360.000000" y="50.000000">
            <port name="out" type="out"/>
            <group_parameter name="rig__rig__1">
              <group_parameter name="__gaffer">
                <string_parameter name="packageType" value="RigPackage"/>
                <string_parameter name="location" value="/root/world/lgt/gaffer/rig"/>
              </group_parameter>
              <string_parameter expression="@PrimitiveCreate1" name="node_create"/>
              <string_parameter expression="@Merge10" name="node_merge"/>
            </group_parameter>
            <node baseType="PrimitiveCreate" name="PrimitiveCreate1" type="PrimitiveCreate" x="0.000000" y="50.000000">
              <port name="out" type="out"/>
              <group_parameter name="PrimitiveCreate1">
                <string_parameter expression="=^/__gaffer.location" name="name"/>
                <string_parameter name="type" value="rig"/>
                <string_parameter name="fileName" value=""/>
                <string_parameter name="previewTexture" value=""/>
                <number_parameter name="previewAlpha" value="0.7"/>
                <number_parameter name="enableClippingPlane" value="1"/>
                <number_parameter name="reverseClippingDirection" value="0"/>
                <group_parameter hints="{&apos;widget&apos;: &apos;homogeneousTransform&apos;, &apos;closed&apos;: &apos;False&apos;, &apos;open&apos;: &apos;True&apos;}" name="transform">
                  <string_parameter hints="{&apos;widget&apos;:&apos;popup&apos;, &apos;options&apos;:&apos;SRT Values|Transform Matrix&apos;}" name="interface" value="SRT Values"/>
                  <string_parameter hints="{&apos;widget&apos;: &apos;popup&apos;, &apos;options&apos;: &apos;Scale Rotate Translate|Scale Translate Rotate|Rotate Scale Translate|Rotate Translate Scale|Translate Scale Rotate|Translate Rotate Scale&apos;}" name="transformOrder" value="Scale Rotate Translate"/>
                  <string_parameter hints="{&apos;widget&apos;: &apos;popup&apos;, &apos;options&apos;:&apos;XYZ|XZY|YXZ|YZX|ZXY|ZYX&apos;}" name="rotationOrder" value="XYZ"/>
                  <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;SRT Values&apos;}" name="translate">
                    <number_parameter name="x" value="0"/>
                    <number_parameter name="y" value="0"/>
                    <number_parameter name="z" value="0"/>
                  </group_parameter>
                  <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;SRT Values&apos;}" name="rotate">
                    <number_parameter name="x" value="0"/>
                    <number_parameter expression="(ifelse(frame &gt; getParam(&quot;rootNode.outTime&quot;), 360 ,ifelse(frame &gt; getParam(&quot;rootNode.outTime&quot;)/2, (360/ (getParam(&quot;rootNode.outTime&quot;)/2)*(frame-(getParam(&quot;rootNode.outTime&quot;)/2))),0)))+getParam(&quot;rf_Turntable.user.OffsetHDRI&quot;)" isexpression="true" name="y" useNodeDefault="false"/>
                    <number_parameter name="z" value="0"/>
                  </group_parameter>
                  <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;SRT Values&apos;}" name="scale">
                    <number_parameter name="x" value="1"/>
                    <number_parameter name="y" value="1"/>
                    <number_parameter name="z" value="1"/>
                  </group_parameter>
                  <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;Transform Matrix&apos;}" name="matrix">
                    <number_parameter name="m00" value="1"/>
                    <number_parameter name="m01" value="0"/>
                    <number_parameter name="m02" value="0"/>
                    <number_parameter name="m03" value="0"/>
                    <number_parameter name="m10" value="0"/>
                    <number_parameter name="m11" value="1"/>
                    <number_parameter name="m12" value="0"/>
                    <number_parameter name="m13" value="0"/>
                    <number_parameter name="m20" value="0"/>
                    <number_parameter name="m21" value="0"/>
                    <number_parameter name="m22" value="1"/>
                    <number_parameter name="m23" value="0"/>
                    <number_parameter name="m30" value="0"/>
                    <number_parameter name="m31" value="0"/>
                    <number_parameter name="m32" value="0"/>
                    <number_parameter name="m33" value="1"/>
                  </group_parameter>
                </group_parameter>
                <string_parameter name="makeInteractive" value="Yes"/>
                <string_parameter name="includeBounds" value="Yes"/>
                <string_parameter name="viewerPickable" value="Yes"/>
                <number_parameter name="rigDisplayScale" value="0.5"/>
                <group_parameter name="extraAttrs">
                  <string_parameter expression="@rig__rig__1" name="__gafferPackage"/>
                  <group_parameter name="info">
                    <group_parameter name="gaffer">
                      <string_parameter name="packageClass" value="RigPackage"/>
                    </group_parameter>
                  </group_parameter>
                </group_parameter>
              </group_parameter>
            </node>
            <node baseType="Merge" name="Merge10" type="Merge" x="0.000000" y="-50.000000">
              <port name="i0" source="PrimitiveCreate1.out" type="in"/>
              <port name="i1" source="PxrDomeLight__HDRI__1.out" type="in"/>
              <port name="out" returns="out" type="out"/>
              <group_parameter name="Merge10">
                <string_parameter name="showAdvancedOptions" value="No"/>
                <group_parameter name="advanced">
                  <string_parameter name="sumBounds" value="No"/>
                  <string_parameter name="preserveWorldSpaceXform" value="No"/>
                  <stringarray_parameter name="preserveInheritedAttributes" size="0" tupleSize="1"/>
                  <group_parameter name="preferredInputAttributes">
                    <stringarray_parameter name="name" size="0" tupleSize="1"/>
                    <numberarray_parameter name="index" size="0" tupleSize="1"/>
                  </group_parameter>
                  <string_parameter name="preferRightmostInputWithAttribute" value=""/>
                  <stringarray_parameter name="mergeGroupAttributes" size="0" tupleSize="1"/>
                </group_parameter>
              </group_parameter>
            </node>
            <node baseType="Group" name="PxrDomeLight__HDRI__1" type="Group" x="180.000000" y="50.000000">
              <port name="out" type="out"/>
              <group_parameter name="PxrDomeLight__HDRI__1">
                <group_parameter name="__gaffer">
                  <string_parameter name="packageType" value="PxrDomeLightPackage"/>
                  <string_parameter name="location" value="/root/world/lgt/gaffer/rig/HDRI"/>
                </group_parameter>
                <string_parameter expression="@ViewerObjectSettings1" name="node_viewerObjectSettings"/>
                <string_parameter expression="@LightCreate1" name="node_create"/>
                <string_parameter expression="@Material1" name="node_material"/>
                <string_parameter expression="@DistantPort1" name="node_template"/>
                <string_parameter expression="@OpScript1" name="node_prune_template"/>
                <string_parameter expression="@Merge11" name="node_merge"/>
                <string_parameter expression="@LightLinkSetup_illumination1" name="node_lightLink_illumination"/>
                <string_parameter expression="@LightLinkSetup_shadow1" name="node_lightLink_shadow"/>
                <string_parameter expression="@PrmanLightStatements1" name="node_lightStmt"/>
                <string_parameter expression="@_PrmanViewerSettings1" name="node_viewer"/>
              </group_parameter>
              <node baseType="LightCreate" name="LightCreate1" type="LightCreate" x="0.000000" y="-50.000000">
                <port name="templateMaterial" source="DistantPort1.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="LightCreate1">
                  <string_parameter expression="=^/__gaffer.location" name="name"/>
                  <string_parameter name="projection" value="perspective"/>
                  <number_parameter name="fov" value="70"/>
                  <number_parameter name="near" value="0.1"/>
                  <number_parameter name="far" value="100000"/>
                  <group_parameter name="screenWindow">
                    <number_parameter name="left" value="-1"/>
                    <number_parameter name="right" value="1"/>
                    <number_parameter name="bottom" value="-1"/>
                    <number_parameter name="top" value="1"/>
                  </group_parameter>
                  <number_parameter name="centerOfInterest" value="20"/>
                  <number_parameter name="orthographicWidth" value="30"/>
                  <number_parameter name="includeInCameraList" value="1"/>
                  <number_parameter name="radius" value="1"/>
                  <number_parameter name="initialState" value="1"/>
                  <group_parameter name="previewColor">
                    <number_parameter name="red" value="1"/>
                    <number_parameter name="green" value="1"/>
                    <number_parameter name="blue" value="0"/>
                  </group_parameter>
                  <group_parameter name="manipulators"/>
                  <group_parameter name="lightListDefaults"/>
                  <number_parameter name="shadowFallDistance" value="10"/>
                  <group_parameter hints="{&apos;widget&apos;: &apos;homogeneousTransform&apos;, &apos;closed&apos;: &apos;False&apos;, &apos;open&apos;: &apos;True&apos;}" name="transform">
                    <string_parameter hints="{&apos;widget&apos;:&apos;popup&apos;, &apos;options&apos;:&apos;SRT Values|Transform Matrix&apos;}" name="interface" value="SRT Values"/>
                    <string_parameter hints="{&apos;widget&apos;: &apos;popup&apos;, &apos;options&apos;: &apos;Scale Rotate Translate|Scale Translate Rotate|Rotate Scale Translate|Rotate Translate Scale|Translate Scale Rotate|Translate Rotate Scale&apos;}" name="transformOrder" value="Scale Rotate Translate"/>
                    <string_parameter hints="{&apos;widget&apos;: &apos;popup&apos;, &apos;options&apos;:&apos;XYZ|XZY|YXZ|YZX|ZXY|ZYX&apos;}" name="rotationOrder" value="XYZ"/>
                    <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;SRT Values&apos;}" name="translate">
                      <number_parameter name="x" value="0"/>
                      <number_parameter name="y" value="0"/>
                      <number_parameter name="z" value="0"/>
                    </group_parameter>
                    <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;SRT Values&apos;}" name="rotate">
                      <number_parameter name="x" value="0"/>
                      <number_parameter name="y" useNodeDefault="true" value="0"/>
                      <number_parameter name="z" value="0"/>
                    </group_parameter>
                    <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;SRT Values&apos;}" name="scale">
                      <number_parameter name="x" value="1"/>
                      <number_parameter name="y" useNodeDefault="true" value="1"/>
                      <number_parameter name="z" value="1"/>
                    </group_parameter>
                    <group_parameter hints="{&apos;widget&apos;:&apos;multi&apos;,&apos;conditionalVisOp&apos;:&apos;equalTo&apos;, &apos;conditionalVisPath&apos;:&apos;../interface&apos;, &apos;conditionalVisValue&apos;:&apos;Transform Matrix&apos;}" name="matrix">
                      <number_parameter name="m00" value="1"/>
                      <number_parameter name="m01" value="0"/>
                      <number_parameter name="m02" value="0"/>
                      <number_parameter name="m03" value="0"/>
                      <number_parameter name="m10" value="0"/>
                      <number_parameter name="m11" value="1"/>
                      <number_parameter name="m12" value="0"/>
                      <number_parameter name="m13" value="0"/>
                      <number_parameter name="m20" value="0"/>
                      <number_parameter name="m21" value="0"/>
                      <number_parameter name="m22" value="1"/>
                      <number_parameter name="m23" value="0"/>
                      <number_parameter name="m30" value="0"/>
                      <number_parameter name="m31" value="0"/>
                      <number_parameter name="m32" value="0"/>
                      <number_parameter name="m33" value="1"/>
                    </group_parameter>
                  </group_parameter>
                  <string_parameter name="makeInteractive" value="Yes"/>
                  <number_parameter name="forceAsStaticScene" value="1"/>
                  <group_parameter name="extraAttrs">
                    <string_parameter expression="@PxrDomeLight__HDRI__1" name="__gafferPackage"/>
                    <group_parameter name="info">
                      <group_parameter name="gaffer">
                        <string_parameter expression="=^/__gaffer.packageType" name="packageClass"/>
                      </group_parameter>
                    </group_parameter>
                  </group_parameter>
                </group_parameter>
              </node>
              <node baseType="Material" name="Material1" type="Material" x="0.000000" y="-100.000000">
                <port name="in" source="LightCreate1.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="Material1">
                  <string_parameter name="name" value="Material"/>
                  <string_parameter name="action" value="edit material"/>
                  <string_parameter name="namespace" value=""/>
                  <number_parameter name="isNetwork" value="0"/>
                  <string_parameter name="makeInteractive" value="Yes"/>
                  <string_parameter name="addShaderType" value=""/>
                  <group_parameter name="inheritsFrom">
                    <string_parameter name="location" value=""/>
                  </group_parameter>
                  <group_parameter name="edit">
                    <string_parameter name="CEL" value=""/>
                    <string_parameter expression="=^/__gaffer.location" name="location"/>
                  </group_parameter>
                  <group_parameter name="lookfile">
                    <string_parameter name="lookfile" value=""/>
                    <string_parameter name="materialPath" value=""/>
                    <number_parameter name="asReference" value="1"/>
                  </group_parameter>
                  <group_parameter name="overrides">
                    <string_parameter name="CEL" value=""/>
                    <group_parameter name="attrs"/>
                  </group_parameter>
                  <group_parameter name="shaders">
                    <string_parameter name="__lastValue" persistant="false" value=""/>
                    <group_parameter name="parameters"/>
                    <group_parameter name="prmanLightShader">
                      <number_parameter name="enable" value="1"/>
                      <string_parameter name="value" value="PxrDomeLight"/>
                      <string_parameter name="type" value="StringAttr"/>
                      <string_parameter name="__lastValue" persistant="false" value="PxrDomeLight"/>
                    </group_parameter>
                    <group_parameter name="prmanLightParams">
                      <group_parameter name="notes" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <string_parameter name="value" value=""/>
                        <string_parameter name="type" value="StringAttr"/>
                      </group_parameter>
                      <group_parameter name="intensity">
                        <number_parameter name="enable" value="1"/>
                        <number_parameter expression="getParam(&quot;rf_Turntable.user.Intensity&quot;)" isexpression="true" name="value"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="exposure">
                        <number_parameter name="enable" value="1"/>
                        <number_parameter expression="getParam(&quot;rf_Turntable.user.Exposure&quot;)" isexpression="true" name="value"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="lightColor" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <numberarray_parameter name="value" size="3" tupleSize="3">
                          <number_parameter name="i0" value="1"/>
                          <number_parameter name="i1" value="1"/>
                          <number_parameter name="i2" value="1"/>
                        </numberarray_parameter>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="lightColorMap">
                        <number_parameter name="enable" value="1"/>
                        <string_parameter expression="getParam(&quot;rf_Turntable.user.HDRIPath&quot;)" name="value"/>
                        <string_parameter name="type" value="StringAttr"/>
                      </group_parameter>
                      <group_parameter name="colorMapGamma" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <numberarray_parameter name="value" size="3" tupleSize="3">
                          <number_parameter name="i0" value="1"/>
                          <number_parameter name="i1" value="1"/>
                          <number_parameter name="i2" value="1"/>
                        </numberarray_parameter>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="colorMapSaturation" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="enableTemperature" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="0"/>
                        <string_parameter name="type" value="IntAttr"/>
                      </group_parameter>
                      <group_parameter name="temperature" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="6500"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="specular" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="diffuse" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="enableShadows" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="IntAttr"/>
                      </group_parameter>
                      <group_parameter name="shadowColor" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <numberarray_parameter name="value" size="3" tupleSize="3">
                          <number_parameter name="i0" value="0"/>
                          <number_parameter name="i1" value="0"/>
                          <number_parameter name="i2" value="0"/>
                        </numberarray_parameter>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="shadowDistance" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="-1"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="shadowFalloff" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="-1"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="shadowFalloffGamma" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="shadowSubset" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <string_parameter name="value" value=""/>
                        <string_parameter name="type" value="StringAttr"/>
                      </group_parameter>
                      <group_parameter name="shadowExcludeSubset" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <string_parameter name="value" value=""/>
                        <string_parameter name="type" value="StringAttr"/>
                      </group_parameter>
                      <group_parameter name="traceLightPaths" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="0"/>
                        <string_parameter name="type" value="IntAttr"/>
                      </group_parameter>
                      <group_parameter name="thinShadow" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="IntAttr"/>
                      </group_parameter>
                      <group_parameter name="visibleInRefractionPath" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="IntAttr"/>
                      </group_parameter>
                      <group_parameter name="cheapCaustics" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="0"/>
                        <string_parameter name="type" value="IntAttr"/>
                      </group_parameter>
                      <group_parameter name="cheapCausticsExcludeGroup" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <string_parameter name="value" value=""/>
                        <string_parameter name="type" value="StringAttr"/>
                      </group_parameter>
                      <group_parameter name="fixedSampleCount" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="0"/>
                        <string_parameter name="type" value="IntAttr"/>
                      </group_parameter>
                      <group_parameter name="lightGroup" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <string_parameter name="value" value=""/>
                        <string_parameter name="type" value="StringAttr"/>
                      </group_parameter>
                      <group_parameter name="importanceMultiplier" persistant="false">
                        <number_parameter name="enable" value="0"/>
                        <number_parameter name="value" value="1"/>
                        <string_parameter name="type" value="FloatAttr"/>
                      </group_parameter>
                      <group_parameter name="__unused"/>
                    </group_parameter>
                  </group_parameter>
                  <number_parameter name="makeInteractiveSpecificToMaterial" value="1"/>
                </group_parameter>
              </node>
              <node baseType="DistantPort" bypassed="true" name="DistantPort1" type="DistantPort" x="0" y="0">
                <port name="out" type="out"/>
                <group_parameter name="DistantPort1">
                  <string_parameter name="node" value=""/>
                  <number_parameter name="portIndex" value="0"/>
                </group_parameter>
              </node>
              <node baseType="OpScript" bypassed="true" name="OpScript1" type="OpScript" x="0.000000" y="-200.000000">
                <port name="i0" source="ViewerObjectSettings1.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="OpScript1">
                  <string_parameter expression="&apos;((%s %s//*))&apos; % (getParam(&apos;OpScript1.user.gafferRootPath&apos;), getParam(&apos;OpScript1.user.gafferRootPath&apos;))" name="CEL"/>
                  <string_parameter name="location" value="/root/world/location"/>
                  <group_parameter name="script">
                    <string_parameter name="lua" value="-- Removes all locations not contributing to the light path&#0010;local lightPath = Interface.GetOpArg(&apos;user.lightPath&apos;):getValue()&#0010;local outputLocationPath = Interface.GetOutputLocationPath()&#0010;local children = Interface.GetPotentialChildren():getNearestSample(0)&#0010;&#0010;for _, childName in pairs(children) do&#0010;    local childLocationPath = outputLocationPath .. &quot;/&quot; .. childName&#0010;    if not PathUtils.IsAncestorOrEqual(childLocationPath, lightPath) then&#0010;        Interface.DeleteChild(childName)&#0010;    end&#0010;end&#0010;&#0010;function findCommonAncestor(path1, path2)&#0010;    local path1Components = pystring.split(path1, &apos;/&apos;)&#0010;    local path2Components = pystring.split(path2, &apos;/&apos;)&#0010;&#0010;    local maxLengthToSearch = math.min(#path1Components, #path2Components)&#0010;&#0010;    local result = &apos;&apos;&#0010;    local i = 1&#0010;    while path1Components[i] == path2Components[i] and i &lt; maxLengthToSearch do&#0010;        if path1Components[i]:len() &gt; 0 then&#0010;            result = result .. &apos;/&apos; .. path1Components[i]&#0010;        end&#0010;&#0010;        i = i + 1&#0010;    end&#0010;    return result&#0010;end&#0010;&#0010;-- Make &apos;inherits&apos; location relative to our location&#0010;local inheritsAttribute = Interface.GetAttr(&apos;inherits&apos;)&#0010;if inheritsAttribute then&#0010;    -- First find the common ancestor between the two locations.&#0010;    local inheritsLocationPath = inheritsAttribute:getValue()&#0010;    local commonAncestor =&#0010;        findCommonAncestor(outputLocationPath, inheritsLocationPath)&#0010;&#0010;    -- Determine the number of &apos;../&apos; we need to append to the common ancestor&#0010;    -- to get from the current location to the common ancestor.&#0010;    local outputLocationPathStem = outputLocationPath:sub(commonAncestor:len() + 2)&#0010;    local numLevelsFromAncestor = pystring.count(outputLocationPathStem, &apos;/&apos;)&#0010;&#0010;    -- Then determine the stem that we will append.&#0010;    local inheritsLocationPathStem =&#0010;        inheritsLocationPath:sub(commonAncestor:len() + 2)&#0010;&#0010;    -- Set the relative location path&#0010;    local relativeLocationPath = &apos;&apos;&#0010;    if numLevelsFromAncestor == 0 then&#0010;        relativeLocationPath = &apos;../&apos; .. inheritsLocationPathStem&#0010;    else&#0010;        relativeLocationPath =&#0010;            pystring.mul(&quot;../&quot;, (numLevelsFromAncestor + 1)) .. inheritsLocationPathStem&#0010;    end&#0010;    Interface.SetAttr(&quot;inherits&quot;, StringAttribute(relativeLocationPath))&#0010;&#0010;    -- Set a local version of the &quot;inherits&quot; location path by stripping&#0010;    -- the Gaffer node&apos;s root location path from it&#0010;    local gafferRootPath = Interface.GetOpArg(&apos;user.gafferRootPath&apos;):getValue()&#0010;    local localInheritsPath = inheritsLocationPath:sub(gafferRootPath:len() + 2)&#0010;    Interface.SetAttr(&quot;info.localInherits&quot;,&#0010;                      StringAttribute(localInheritsPath))&#0010;end"/>
                  </group_parameter>
                  <string_parameter name="executionMode" value="immediate"/>
                  <string_parameter name="applyWhere" value="at locations matching CEL"/>
                  <string_parameter name="applyWhen" value="during op resolve"/>
                  <string_parameter name="modifierNameMode" value="node name"/>
                  <string_parameter name="modifierName" value="modifier"/>
                  <string_parameter name="resolveIds" value=""/>
                  <number_parameter name="recursiveEnable" value="0"/>
                  <string_parameter name="disableAt" value=""/>
                  <string_parameter name="inputBehavior" value="by index"/>
                  <number_parameter name="multisampleUserOpArgs" value="1"/>
                  <group_parameter name="user">
                    <string_parameter expression="=rootPackage1/__gaffer.location" name="gafferRootPath"/>
                    <string_parameter expression="=^/__gaffer.location" name="lightPath"/>
                  </group_parameter>
                </group_parameter>
              </node>
              <node baseType="GenericAssign" name="ViewerObjectSettings1" type="ViewerObjectSettings" x="0.000000" y="-150.000000">
                <port name="input" source="Material1.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="ViewerObjectSettings1">
                  <string_parameter expression="=^/__gaffer.location" name="CEL"/>
                  <string_parameter name="location" value=""/>
                  <group_parameter name="args">
                    <group_parameter name="viewer">
                      <string_parameter name="__hints" persistant="false" value="{&apos;hideTitle&apos;: &apos;True&apos;, &apos;name&apos;: &apos;viewer&apos;}"/>
                      <group_parameter name="default">
                        <string_parameter name="__hints" persistant="false" value="{&apos;hideTitle&apos;: &apos;True&apos;, &apos;name&apos;: &apos;default&apos;}"/>
                        <group_parameter name="drawOptions">
                          <string_parameter name="__hints" persistant="false" value="{&apos;name&apos;: &apos;drawOptions&apos;}"/>
                          <group_parameter name="hide">
                            <number_parameter name="enable" value="0"/>
                            <number_parameter name="value" value="0"/>
                            <number_parameter name="default" value="0"/>
                            <string_parameter name="type" value="IntAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;0&apos;, &apos;int&apos;: &apos;True&apos;, &apos;widget&apos;: &apos;boolean&apos;, &apos;name&apos;: &apos;hide&apos;}"/>
                          </group_parameter>
                          <group_parameter name="fill">
                            <number_parameter name="enable" value="0"/>
                            <string_parameter name="value" value="inherit"/>
                            <string_parameter name="default" value="inherit"/>
                            <string_parameter name="type" value="StringAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;inherit&apos;, &apos;widget&apos;: &apos;popup&apos;, &apos;name&apos;: &apos;fill&apos;, &apos;options&apos;: &apos;points|wireframe|solid&apos;}"/>
                          </group_parameter>
                          <group_parameter name="light">
                            <number_parameter name="enable" value="0"/>
                            <string_parameter name="value" value="inherit"/>
                            <string_parameter name="default" value="inherit"/>
                            <string_parameter name="type" value="StringAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;inherit&apos;, &apos;widget&apos;: &apos;popup&apos;, &apos;name&apos;: &apos;light&apos;, &apos;options&apos;: &apos;default|shaded&apos;}"/>
                          </group_parameter>
                          <group_parameter name="smoothing">
                            <number_parameter name="enable" value="0"/>
                            <string_parameter name="value" value="inherit"/>
                            <string_parameter name="default" value="inherit"/>
                            <string_parameter name="type" value="StringAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;inherit&apos;, &apos;widget&apos;: &apos;popup&apos;, &apos;name&apos;: &apos;smoothing&apos;, &apos;options&apos;: &apos;off|lines|points|both&apos;}"/>
                          </group_parameter>
                          <group_parameter name="windingOrder">
                            <number_parameter name="enable" value="0"/>
                            <string_parameter name="value" value="inherit"/>
                            <string_parameter name="default" value="inherit"/>
                            <string_parameter name="type" value="StringAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;inherit&apos;, &apos;widget&apos;: &apos;popup&apos;, &apos;name&apos;: &apos;windingOrder&apos;, &apos;options&apos;: &apos;clockwise|counterclockwise&apos;}"/>
                          </group_parameter>
                          <group_parameter name="pointSize">
                            <number_parameter name="enable" value="0"/>
                            <number_parameter name="value" value="4"/>
                            <number_parameter name="default" value="4"/>
                            <string_parameter name="type" value="FloatAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;4&apos;, &apos;name&apos;: &apos;pointSize&apos;}"/>
                          </group_parameter>
                          <group_parameter name="color">
                            <number_parameter name="enable" value="0"/>
                            <numberarray_parameter name="value" size="3" tupleSize="1">
                              <number_parameter name="i0" value="0.40000000596"/>
                              <number_parameter name="i1" value="0.40000000596"/>
                              <number_parameter name="i2" value="0.40000000596"/>
                            </numberarray_parameter>
                            <numberarray_parameter name="default" size="3" tupleSize="1">
                              <number_parameter name="i0" value="0.40000000596"/>
                              <number_parameter name="i1" value="0.40000000596"/>
                              <number_parameter name="i2" value="0.40000000596"/>
                            </numberarray_parameter>
                            <string_parameter name="type" value="FloatAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;0.4,0.4,0.4&apos;, &apos;widget&apos;: &apos;color&apos;, &apos;color_restrictComponents&apos;: &apos;True&apos;, &apos;name&apos;: &apos;color&apos;, &apos;size&apos;: &apos;3&apos;}"/>
                          </group_parameter>
                          <group_parameter name="faceCulling">
                            <number_parameter name="enable" value="0"/>
                            <string_parameter name="value" value="inherit"/>
                            <string_parameter name="default" value="inherit"/>
                            <string_parameter name="type" value="StringAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;inherit&apos;, &apos;widget&apos;: &apos;popup&apos;, &apos;name&apos;: &apos;faceCulling&apos;, &apos;options&apos;: &apos;back|front|none&apos;}"/>
                          </group_parameter>
                        </group_parameter>
                        <group_parameter name="annotation">
                          <string_parameter name="__hints" persistant="false" value="{&apos;name&apos;: &apos;annotation&apos;}"/>
                          <group_parameter name="text">
                            <number_parameter name="enable" value="0"/>
                            <string_parameter name="value" value=""/>
                            <string_parameter name="default" value=""/>
                            <string_parameter name="type" value="StringAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;&apos;, &apos;name&apos;: &apos;text&apos;}"/>
                          </group_parameter>
                          <group_parameter name="color">
                            <number_parameter expression="(getParamRelative(self, &quot;../value.i0&quot;), getParamRelative(self, &quot;../value.i1&quot;), getParamRelative(self, &quot;../value.i2&quot;)) != (1.0, 1.0, 1.0)" isexpression="true" name="enable"/>
                            <numberarray_parameter name="value" size="3" tupleSize="1">
                              <number_parameter expression="getParam(&quot;LightCreate1.previewColor.red&quot;)" isexpression="true" name="i0"/>
                              <number_parameter expression="getParam(&quot;LightCreate1.previewColor.green&quot;)" isexpression="true" name="i1"/>
                              <number_parameter expression="getParam(&quot;LightCreate1.previewColor.blue&quot;)" isexpression="true" name="i2"/>
                            </numberarray_parameter>
                            <numberarray_parameter name="default" size="3" tupleSize="1">
                              <number_parameter name="i0" value="0.40000000596"/>
                              <number_parameter name="i1" value="0.40000000596"/>
                              <number_parameter name="i2" value="0.40000000596"/>
                            </numberarray_parameter>
                            <string_parameter name="type" value="FloatAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;0.4,0.4,0.4&apos;, &apos;widget&apos;: &apos;color&apos;, &apos;color_restrictComponents&apos;: &apos;True&apos;, &apos;name&apos;: &apos;color&apos;, &apos;size&apos;: &apos;3&apos;}"/>
                          </group_parameter>
                        </group_parameter>
                        <group_parameter name="pickable">
                          <number_parameter name="enable" value="0"/>
                          <number_parameter name="value" value="1"/>
                          <number_parameter name="default" value="1"/>
                          <string_parameter name="type" value="IntAttr"/>
                          <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;1&apos;, &apos;int&apos;: &apos;True&apos;, &apos;widget&apos;: &apos;boolean&apos;, &apos;name&apos;: &apos;pickable&apos;}"/>
                        </group_parameter>
                        <group_parameter name="resolveMaterialInViewer">
                          <number_parameter name="enable" value="0"/>
                          <string_parameter name="value" value="default"/>
                          <string_parameter name="default" value="default"/>
                          <string_parameter name="type" value="StringAttr"/>
                          <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;default&apos;, &apos;widget&apos;: &apos;popup&apos;, &apos;options&apos;: &apos;default|always|never&apos;, &apos;help&apos;: &apos;Controls whether the viewer should always, never or use default rules to resolve materials.&apos;, &apos;name&apos;: &apos;resolveMaterialInViewer&apos;}"/>
                        </group_parameter>
                        <group_parameter name="lightingTools">
                          <string_parameter name="__hints" persistant="false" value="{&apos;name&apos;: &apos;lightingTools&apos;}"/>
                          <group_parameter name="parameters">
                            <number_parameter name="enable" value="0"/>
                            <stringarray_parameter name="value" size="2" tupleSize="2">
                              <string_parameter name="i0" value=""/>
                              <string_parameter name="i1" value=""/>
                            </stringarray_parameter>
                            <stringarray_parameter name="default" size="2" tupleSize="2">
                              <string_parameter name="i0" value=""/>
                              <string_parameter name="i1" value=""/>
                            </stringarray_parameter>
                            <string_parameter name="type" value="StringAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;widget&apos;: &apos;dynamicArray&apos;, &apos;tupleSize&apos;: &apos;2&apos;, &apos;name&apos;: &apos;parameters&apos;, &apos;default&apos;: &apos;,&apos;, &apos;isDynamicArray&apos;: &apos;1&apos;, &apos;help&apos;: &quot;&lt;help&gt;\nList of extra parameters that will be displayed in the Lighting Tools UI when a light is selected,\nprovided the parameters are present in the light.\n  &lt;br/&gt;\n  &lt;br/&gt;\nThe parameters will be appended after the default pa\nrameters (\n  &lt;b&gt;\n    Intensity\n  &lt;/b&gt;\n, \n  &lt;b&gt;\n    Exposure\n  &lt;/b&gt;\nand \n  &lt;b&gt;\n    Color\n  &lt;/b&gt;\n).\n  &lt;br/&gt;\n  &lt;br/&gt;\nEach entry is compounded of two strings:\n  &lt;br/&gt;\n  &lt;ul&gt;\n    &lt;li&gt;\n        parameter path (e.g. \n      &lt;code&gt;\n            prmanLightParams.intensity\n      &lt;/code&gt;\n        )\n    &lt;/li&gt;\n    &lt;li&gt;\n        label \n      &lt;em&gt;\n            (optional)\n      &lt;/em&gt;\n    &lt;/li&gt;\n  &lt;/ul&gt;\n  &lt;br/&gt;\nIf the label is not provided, the parameter&apos;s o\nriginal label will be used.\n&lt;/help&gt;\n&quot;}"/>
                          </group_parameter>
                          <group_parameter name="hideHandle">
                            <number_parameter name="enable" value="0"/>
                            <number_parameter name="value" value="0"/>
                            <number_parameter name="default" value="0"/>
                            <string_parameter name="type" value="IntAttr"/>
                            <string_parameter name="__hints" persistant="false" value="{&apos;default&apos;: &apos;0&apos;, &apos;int&apos;: &apos;True&apos;, &apos;widget&apos;: &apos;boolean&apos;, &apos;name&apos;: &apos;hideHandle&apos;, &apos;help&apos;: &apos;&lt;help&gt;\nDetermines whether the center of interest arrow handles will be drawn for unselected lights.\n&lt;/help&gt;\n&apos;}"/>
                          </group_parameter>
                        </group_parameter>
                      </group_parameter>
                    </group_parameter>
                  </group_parameter>
                </group_parameter>
              </node>
              <node baseType="Merge" name="Merge11" type="Merge" x="0.000000" y="-250.000000">
                <port name="i0" source="OpScript1.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="Merge11">
                  <string_parameter name="showAdvancedOptions" value="No"/>
                  <group_parameter name="advanced">
                    <string_parameter name="sumBounds" value="No"/>
                    <string_parameter name="preserveWorldSpaceXform" value="No"/>
                    <stringarray_parameter name="preserveInheritedAttributes" size="0" tupleSize="1"/>
                    <group_parameter name="preferredInputAttributes">
                      <stringarray_parameter name="name" size="0" tupleSize="1"/>
                      <numberarray_parameter name="index" size="0" tupleSize="1"/>
                    </group_parameter>
                    <string_parameter name="preferRightmostInputWithAttribute" value=""/>
                    <stringarray_parameter name="mergeGroupAttributes" size="0" tupleSize="1"/>
                  </group_parameter>
                </group_parameter>
              </node>
              <node baseType="LightLinkSetup" name="LightLinkSetup_illumination1" type="LightLinkSetup" x="0.000000" y="-300.000000">
                <port name="in" source="Merge11.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="LightLinkSetup_illumination1">
                  <number_parameter name="clearUnmatched" value="0"/>
                  <string_parameter name="action" value="append linking information"/>
                  <string_parameter name="effect" value="illumination"/>
                  <string_parameter name="customAttrName" value="custom"/>
                  <string_parameter expression="=PxrDomeLight__HDRI__1/__gaffer.location" name="light"/>
                  <number_parameter name="initialState" value="-1"/>
                  <string_parameter name="on" value=""/>
                  <string_parameter name="off" value=""/>
                </group_parameter>
              </node>
              <node baseType="LightLinkSetup" name="LightLinkSetup_shadow1" type="LightLinkSetup" x="0.000000" y="-350.000000">
                <port name="in" source="LightLinkSetup_illumination1.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="LightLinkSetup_shadow1">
                  <number_parameter name="clearUnmatched" value="0"/>
                  <string_parameter name="action" value="append linking information"/>
                  <string_parameter name="effect" value="shadow visibility"/>
                  <string_parameter name="customAttrName" value="custom"/>
                  <string_parameter expression="=PxrDomeLight__HDRI__1/__gaffer.location" name="light"/>
                  <number_parameter name="initialState" value="-1"/>
                  <string_parameter name="on" value=""/>
                  <string_parameter name="off" value=""/>
                </group_parameter>
              </node>
              <node baseType="PrmanLightStatements" name="PrmanLightStatements1" nodetypeversion="5" type="PrmanLightStatements" x="0.000000" y="-400.000000">
                <port name="in" source="LightLinkSetup_shadow1.out" type="in"/>
                <port name="out" type="out"/>
                <group_parameter name="PrmanLightStatements1">
                  <string_parameter name="targetMode" value="location"/>
                  <string_parameter expression="=^/__gaffer.location" name="locationPath"/>
                  <string_parameter name="CEL" value=""/>
                  <group_parameter name="prmanStatements">
                    <group_parameter name="primAttributes">
                      <group_parameter name="dice">
                        <group_parameter name="micropolygonlength">
                          <number_parameter name="enable" value="0"/>
                          <number_parameter name="value" value="1"/>
                          <number_parameter name="default" value="1"/>
                          <string_parameter name="type" value="FloatAttr"/>
                        </group_parameter>
                      </group_parameter>
                    </group_parameter>
                    <group_parameter name="attributes">
                      <group_parameter name="visibility">
                        <group_parameter name="camera">
                          <number_parameter name="enable" value="1"/>
                          <number_parameter name="value" value="0"/>
                          <number_parameter name="default" value="1"/>
                          <string_parameter name="type" value="IntAttr"/>
                        </group_parameter>
                        <group_parameter name="transmission">
                          <number_parameter name="enable" value="0"/>
                          <number_parameter name="value" value="1"/>
                          <number_parameter name="default" value="1"/>
                          <string_parameter name="type" value="IntAttr"/>
                        </group_parameter>
                        <group_parameter name="indirect">
                          <number_parameter name="enable" value="0"/>
                          <number_parameter name="value" value="1"/>
                          <number_parameter name="default" value="1"/>
                          <string_parameter name="type" value="IntAttr"/>
                        </group_parameter>
                      </group_parameter>
                    </group_parameter>
                    <group_parameter name="__unused"/>
                  </group_parameter>
                </group_parameter>
              </node>
              <node baseType="_PrmanViewerSettings" name="_PrmanViewerSettings1" nodetypeversion="1" type="_PrmanViewerSettings" x="0.000000" y="-450.000000">
                <port name="in" source="PrmanLightStatements1.out" type="in"/>
                <port name="out" returns="out" type="out"/>
                <group_parameter name="_PrmanViewerSettings1">
                  <string_parameter name="targetMode" value="location"/>
                  <string_parameter expression="=^/__gaffer.location" name="locationPath"/>
                  <string_parameter name="CEL" value=""/>
                  <group_parameter name="args">
                    <group_parameter name="viewer">
                      <group_parameter name="prman">
                        <group_parameter name="drawOptions">
                          <group_parameter name="radius">
                            <number_parameter name="enable" value="0"/>
                            <number_parameter name="value" value="1000"/>
                            <number_parameter name="default" value="1000"/>
                            <string_parameter name="type" value="FloatAttr"/>
                          </group_parameter>
                          <group_parameter name="drawCone">
                            <number_parameter name="enable" value="1"/>
                            <string_parameter name="value" value="wireframe"/>
                            <string_parameter name="default" value="off"/>
                            <string_parameter name="type" value="StringAttr"/>
                          </group_parameter>
                        </group_parameter>
                      </group_parameter>
                      <group_parameter name="default">
                        <group_parameter name="drawOptions">
                          <group_parameter name="fill">
                            <number_parameter name="enable" value="1"/>
                            <string_parameter name="value" value="solid"/>
                            <string_parameter name="default" value="inherit"/>
                            <string_parameter name="type" value="StringAttr"/>
                          </group_parameter>
                        </group_parameter>
                      </group_parameter>
                    </group_parameter>
                    <group_parameter name="__unused"/>
                  </group_parameter>
                </group_parameter>
              </node>
            </node>
          </node>
        </node>
        <node baseType="VariableSet" name="preMergeView1" ns_basicDisplay="1.000000" type="VariableSet" x="325.000000" y="-120.000000">
          <port name="in" source="Merge12.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="preMergeView1">
            <string_parameter name="variableName" value="gafferState"/>
            <string_parameter name="variableValue" value="ui"/>
          </group_parameter>
        </node>
        <node baseType="Merge" name="Merge_incoming1" type="Merge" x="0.000000" y="-300.000000">
          <port name="i0" source="Dot20.output" type="in"/>
          <port name="i1" source="Merge_packages1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="Merge_incoming1">
            <string_parameter name="showAdvancedOptions" value="Yes"/>
            <group_parameter name="advanced">
              <string_parameter name="sumBounds" value="No"/>
              <string_parameter name="preserveWorldSpaceXform" value="No"/>
              <stringarray_parameter name="preserveInheritedAttributes" size="0" tupleSize="1"/>
              <group_parameter name="preferredInputAttributes">
                <stringarray_parameter name="name" size="0" tupleSize="1"/>
                <numberarray_parameter name="index" size="0" tupleSize="1"/>
              </group_parameter>
              <string_parameter name="preferRightmostInputWithAttribute" value="__gafferPackage"/>
              <stringarray_parameter name="mergeGroupAttributes" size="0" tupleSize="1"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="Dot" name="Dot19" type="Dot" x="-200.000000" y="300.000000">
          <port name="input" source="GafferThree.in" type="in"/>
          <port name="output" type="out"/>
          <group_parameter name="Dot19"/>
        </node>
        <node baseType="VariableDelete" name="VariableDelete1" type="VariableDelete" x="-200.000000" y="250.000000">
          <port name="in" source="Dot19.output" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="VariableDelete1">
            <string_parameter name="variableName" value="gafferState"/>
          </group_parameter>
        </node>
        <node baseType="_GafferTagAdopted" name="_GafferTagAdopted1" nodetypeversion="1" type="_GafferTagAdopted" x="-200.000000" y="200.000000">
          <port name="in" source="VariableDelete1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="_GafferTagAdopted1">
            <string_parameter expression="@GafferThree" name="gafferName"/>
            <group_parameter name="packages"/>
          </group_parameter>
        </node>
        <node baseType="Isolate" name="incomingIsolateForUI1" type="Isolate" x="-100.000000" y="150.000000">
          <port name="input" source="_GafferTagAdopted1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="incomingIsolateForUI1">
            <stringarray_parameter name="isolateLocations" size="1" tupleSize="1">
              <string_parameter expression="=^/rootLocation" name="i0"/>
            </stringarray_parameter>
            <string_parameter name="isolateFrom" value="/root"/>
          </group_parameter>
        </node>
        <node baseType="VariableSwitch" name="VariableSwitch2" type="VariableSwitch" x="-200.000000" y="90.000000">
          <port name="cook" source="_GafferTagAdopted1.out" type="in"/>
          <port name="ui" source="incomingIsolateForUI1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="VariableSwitch2">
            <string_parameter name="variableName" value="gafferState"/>
            <group_parameter name="patterns">
              <string_parameter name="cook" value="cook"/>
              <string_parameter name="ui" value="ui"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="Dot" name="Dot20" type="Dot" x="-200.000000" y="-200.000000">
          <port name="input" source="VariableSwitch2.out" type="in"/>
          <port name="output" type="out"/>
          <group_parameter name="Dot20"/>
        </node>
        <node baseType="GroupStack" name="PostMergeStack1" type="GroupStack" x="-150.000000" y="-350.000000">
          <port name="in" source="Merge_incoming1.out" type="in"/>
          <port name="out" source="PostMergeStack1.in" type="out"/>
          <group_parameter name="PostMergeStack1">
            <group_parameter name="__stackInfo">
              <string_parameter name="__childType" value=""/>
              <string_parameter name="__getDisplayNameExpression" value=""/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="VariableSwitch" name="VariableSwitch3" type="VariableSwitch" x="0.000000" y="-420.000000">
          <port name="cook" source="PostMergeStack1.out" type="in"/>
          <port name="ui" source="Merge_incoming1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="VariableSwitch3">
            <string_parameter name="variableName" value="gafferState"/>
            <group_parameter name="patterns">
              <string_parameter name="cook" value="cook"/>
              <string_parameter name="ui" value="ui"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="GroupStack" name="EditPackageStack1" type="GroupStack" x="0.000000" y="-460.000000">
          <port name="in" source="VariableSwitch3.out" type="in"/>
          <port name="out" source="EditPackageStack1.in" type="out"/>
          <group_parameter name="EditPackageStack1">
            <group_parameter name="__stackInfo">
              <string_parameter name="__childType" value="&lt;multi&gt;"/>
              <string_parameter name="__getDisplayNameExpression" value=""/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="OpScript" name="OpScriptStripNotAdopted1" type="OpScript" x="-250.000000" y="-550.000000">
          <port name="i0" source="EditPackageStack1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="OpScriptStripNotAdopted1">
            <string_parameter expression="&apos;((%(rootLocation)s)) + ((%(rootLocation)s//*))&apos; % {&apos;rootLocation&apos;: getParam(&apos;OpScriptStripNotAdopted1.user.gafferRootLocation&apos;)}" name="CEL"/>
            <string_parameter name="location" value="/root/world/location"/>
            <group_parameter name="script">
              <string_parameter name="lua" value="-- Determines whether or not the given child of the given location&#0010;-- should be deleted. This is done by checking for the existence of&#0010;-- a __gafferPackage attribute (either on the child, or on any of its&#0010;-- descendants) - if the attribute exists, then the child should not be&#0010;-- deleted, if it doesn&apos;t exist (and doesn&apos;t exist on any of its&#0010;-- descendants) then it should be deleted. This attribute is added to&#0010;-- all locally created packages, as well as all adopted packages, so&#0010;-- the end result is that all packages that are neither locally created&#0010;-- nor adopted will be marked for deletion.&#0010;function shouldDelete(currentLocation, childName)&#0010;    local childLocation = currentLocation .. &quot;/&quot; .. childName&#0010;&#0010;    -- Check for the existence of the __gafferPackage attribute on this&#0010;    -- child location.&#0010;    local packageAttr = Interface.GetAttr(&quot;__gafferPackage&quot;,&#0010;                                          childLocation)&#0010;    if nil ~= packageAttr then&#0010;        -- The attribute exists, so don&apos;t delete this child location.&#0010;        return false&#0010;    end&#0010;&#0010;    -- Otherwise, recurse over the children&#0010;    local potentialChildren =&#0010;        Interface.GetPotentialChildren(childLocation):getNearestSample(0.0)&#0010;    for i=1, #potentialChildren do&#0010;        if not shouldDelete(childLocation, potentialChildren[i]) then&#0010;            -- One or more of the children of this location should not&#0010;            -- be deleted, so don&apos;t delete this location either.&#0010;            return false&#0010;        end&#0010;    end&#0010;&#0010;    -- Default to deleting the location.&#0010;    return true&#0010;end&#0010;&#0010;-- Loop over all potential children at the current cook location and&#0010;-- use shouldDelete() to determine whether or not to delete them.&#0010;local potentialChildren = Interface.GetPotentialChildren():getNearestSample(0.0)&#0010;for i=1, #potentialChildren do&#0010;    local childName = potentialChildren[i]&#0010;    if shouldDelete(Interface.GetOutputLocationPath(), childName) then&#0010;        Interface.DeleteChild(childName)&#0010;    end&#0010;end"/>
            </group_parameter>
            <string_parameter name="executionMode" value="immediate"/>
            <string_parameter name="applyWhere" value="at locations matching CEL"/>
            <string_parameter name="applyWhen" value="during op resolve"/>
            <string_parameter name="modifierNameMode" value="node name"/>
            <string_parameter name="modifierName" value="modifier"/>
            <string_parameter name="resolveIds" value=""/>
            <number_parameter name="recursiveEnable" value="0"/>
            <string_parameter name="disableAt" value=""/>
            <string_parameter name="inputBehavior" value="by index"/>
            <number_parameter name="multisampleUserOpArgs" value="1"/>
            <group_parameter name="user">
              <string_parameter expression="=^/rootLocation" name="gafferRootLocation"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="Dot" name="postMergeViewAllUpstream1" type="Dot" x="-200.000000" y="-600.000000">
          <port name="input" source="EditPackageStack1.out" type="in"/>
          <port name="output" type="out"/>
          <group_parameter name="postMergeViewAllUpstream1"/>
        </node>
        <node baseType="Switch" name="StripNotAdoptedSwitch1" type="Switch" x="-250.000000" y="-700.000000">
          <port name="strip" source="OpScriptStripNotAdopted1.out" type="in"/>
          <port name="nostrip" source="postMergeViewAllUpstream1.output" type="in"/>
          <port name="output" type="out"/>
          <group_parameter name="StripNotAdoptedSwitch1">
            <number_parameter expression="=^/showIncomingScene" isexpression="true" name="in"/>
          </group_parameter>
        </node>
        <node baseType="OpScript" name="OpScriptMarkNotInInput1" type="OpScript" x="-250.000000" y="-750.000000">
          <port name="i0" source="StripNotAdoptedSwitch1.output" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="OpScriptMarkNotInInput1">
            <string_parameter expression="&apos;((%s//*))&apos; % getParam(&apos;OpScriptMarkNotInInput1.user.gafferRootLocation&apos;)" name="CEL"/>
            <string_parameter name="location" value="/root/world/location"/>
            <group_parameter name="script">
              <string_parameter name="lua" value="-- Sets an &quot;info.gaffer.notInInput&quot; attribute on the cooked location&#0010;-- if it represents a Gaffer edit package without a corresponding&#0010;-- Gaffer creation package in the incoming scene.&#0010;&#0010;local packageAttr = Interface.GetAttr(&quot;__gafferPackage&quot;)&#0010;local packageClass = Interface.GetAttr(&quot;info.gaffer.packageClass&quot;)&#0010;&#0010;if nil == packageClass and nil ~= packageAttr then&#0010;    Interface.SetAttr(&quot;type&quot;, StringAttribute(&quot;warning&quot;))&#0010;    Interface.SetAttr(&quot;warningMessage&quot;, StringAttribute(&#0010;        &quot;Package adopted but not present in input scene.&quot;))&#0010;    Interface.SetAttr(&quot;info.gaffer.notInInput&quot;, IntAttribute(1))&#0010;end"/>
            </group_parameter>
            <string_parameter name="executionMode" value="immediate"/>
            <string_parameter name="applyWhere" value="at locations matching CEL"/>
            <string_parameter name="applyWhen" value="during op resolve"/>
            <string_parameter name="modifierNameMode" value="node name"/>
            <string_parameter name="modifierName" value="modifier"/>
            <string_parameter name="resolveIds" value=""/>
            <number_parameter name="recursiveEnable" value="0"/>
            <string_parameter name="disableAt" value=""/>
            <string_parameter name="inputBehavior" value="by index"/>
            <number_parameter name="multisampleUserOpArgs" value="1"/>
            <group_parameter name="user">
              <string_parameter expression="=^/rootLocation" name="gafferRootLocation"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="VariableSet" name="VariableSet_gafferState_ui1" type="VariableSet" x="-250.000000" y="-800.000000">
          <port name="in" source="OpScriptMarkNotInInput1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="VariableSet_gafferState_ui1">
            <string_parameter name="variableName" value="gafferState"/>
            <string_parameter name="variableValue" value="ui"/>
          </group_parameter>
        </node>
        <node baseType="OpScript" name="OpScriptStripNotInInput1" type="OpScript" x="0.000000" y="-650.000000">
          <port name="i0" source="EditPackageStack1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="OpScriptStripNotInInput1">
            <string_parameter expression="&apos;((%s//*))&apos; % getParam(&apos;OpScriptMarkNotInInput1.user.gafferRootLocation&apos;)" name="CEL"/>
            <string_parameter name="location" value="/root/world/location"/>
            <group_parameter name="script">
              <string_parameter name="lua" value="-- Deletes the cooked location if it represents a Gaffer edit&#0010;-- package without a corresponding Gaffer creation package in the&#0010;-- incoming scene.&#0010;&#0010;local packageAttr = Interface.GetAttr(&quot;__gafferPackage&quot;)&#0010;local packageClass = Interface.GetAttr(&quot;info.gaffer.packageClass&quot;)&#0010;&#0010;if nil == packageClass and nil ~= packageAttr then&#0010;    Interface.DeleteSelf()&#0010;end"/>
            </group_parameter>
            <string_parameter name="executionMode" value="immediate"/>
            <string_parameter name="applyWhere" value="at locations matching CEL"/>
            <string_parameter name="applyWhen" value="during op resolve"/>
            <string_parameter name="modifierNameMode" value="node name"/>
            <string_parameter name="modifierName" value="modifier"/>
            <string_parameter name="resolveIds" value=""/>
            <number_parameter name="recursiveEnable" value="0"/>
            <string_parameter name="disableAt" value=""/>
            <string_parameter name="inputBehavior" value="by index"/>
            <number_parameter name="multisampleUserOpArgs" value="1"/>
            <group_parameter name="user">
              <string_parameter expression="=^/rootLocation" name="gafferRootLocation"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="GenericOp" name="StripTracking1" type="GenericOp" x="0.000000" y="-700.000000">
          <port name="i0" source="OpScriptStripNotInInput1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="StripTracking1">
            <string_parameter name="opType" value="GafferStripTrackingAttrs"/>
            <group_parameter name="opArgs">
              <string_parameter expression="=^/rootLocation" name="rootLocation"/>
              <string_parameter expression="@GafferThree" name="gafferName"/>
            </group_parameter>
            <number_parameter name="multisampleOpArgs" value="1"/>
            <number_parameter name="addSystemOpArgs" value="0"/>
            <string_parameter name="executionMode" value="immediate"/>
            <string_parameter name="applyWhere" value="at all locations"/>
            <string_parameter name="applyWhen" value="during op resolve"/>
            <string_parameter name="CEL" value=""/>
            <string_parameter name="location" value="/root/world/location"/>
            <string_parameter expression="@StripTracking1" name="name"/>
            <number_parameter name="recursiveEnable" value="0"/>
            <string_parameter name="disableAt" value=""/>
            <string_parameter name="resolveIds" value=""/>
            <string_parameter name="inputBehavior" value="by index"/>
          </group_parameter>
        </node>
        <node baseType="GenericOp" name="AdvertiseSuperTool1" type="GenericOp" x="0.000000" y="-750.000000">
          <port name="i0" source="StripTracking1.out" type="in"/>
          <port name="out" returns="out" type="out"/>
          <group_parameter name="AdvertiseSuperTool1">
            <string_parameter name="opType" value="AttributeExtend"/>
            <group_parameter name="opArgs">
              <string_parameter name="CEL" value="/root/world"/>
              <string_parameter expression="@GafferThree" name="attrValue"/>
              <number_parameter name="groupInherit" value="0"/>
              <string_parameter name="__type__groupInherit" value="IntAttr"/>
              <string_parameter name="attrName" value="globals.itemLists.gaffers"/>
            </group_parameter>
            <number_parameter name="multisampleOpArgs" value="1"/>
            <number_parameter name="addSystemOpArgs" value="0"/>
            <string_parameter name="executionMode" value="immediate"/>
            <string_parameter name="applyWhere" value="at all locations"/>
            <string_parameter name="applyWhen" value="during op resolve"/>
            <string_parameter name="CEL" value=""/>
            <string_parameter name="location" value="/root/world/location"/>
            <string_parameter expression="@AdvertiseSuperTool1" name="name"/>
            <number_parameter name="recursiveEnable" value="0"/>
            <string_parameter name="disableAt" value=""/>
            <string_parameter name="resolveIds" value=""/>
            <string_parameter name="inputBehavior" value="by index"/>
          </group_parameter>
        </node>
        <node baseType="Merge" name="Merge12" type="Merge" x="175.000000" y="-120.000000">
          <port name="i0" source="Merge_packages1.out" type="in"/>
          <port name="i1" source="PruneForMute1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="Merge12">
            <string_parameter name="showAdvancedOptions" value="No"/>
            <group_parameter name="advanced">
              <string_parameter name="sumBounds" value="No"/>
              <string_parameter name="preserveWorldSpaceXform" value="No"/>
              <stringarray_parameter name="preserveInheritedAttributes" size="0" tupleSize="1"/>
              <group_parameter name="preferredInputAttributes">
                <stringarray_parameter name="name" size="0" tupleSize="1"/>
                <numberarray_parameter name="index" size="0" tupleSize="1"/>
              </group_parameter>
              <string_parameter name="preferRightmostInputWithAttribute" value=""/>
              <stringarray_parameter name="mergeGroupAttributes" size="0" tupleSize="1"/>
            </group_parameter>
          </group_parameter>
        </node>
        <node baseType="Isolate" name="IsolateForMute1" type="Isolate" x="200.000000" y="200.000000">
          <port name="input" source="_GafferTagAdopted1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="IsolateForMute1">
            <stringarray_parameter name="isolateLocations" size="1" tupleSize="1">
              <string_parameter name="i0" value="/root/world"/>
            </stringarray_parameter>
            <string_parameter name="isolateFrom" value="/root/world/geo"/>
          </group_parameter>
        </node>
        <node baseType="Prune" name="PruneForMute1" type="Prune" x="200.000000" y="170.000000">
          <port name="A" source="IsolateForMute1.out" type="in"/>
          <port name="out" type="out"/>
          <group_parameter name="PruneForMute1">
            <string_parameter name="cel" value="/root/world//*"/>
          </group_parameter>
        </node>
      </node>
    </node>
  </node>
</katana>



07388935727

  • Twitter
  • 27_Artstation_logo_logos-512

©2020 by Rich Fry