LScript v2.8 Release Notes

Features | Bug Fixes

New Features

      In order to support the new global camera settings in LightWave® 9, the following CS commands
      have been added to the language:

        GlobalFrameSize()
        GlobalResolutionMultiplier()
        GlobalPixelAspect()
        GlobalApertureHeight()
        GlobalMotionBlur()
        GlobalParticleBlur()
        GlobalBlurLength()
        GlobalMaskPosition()

      The arguments to these new functions are identical to their non-global counterparts.  Using these
      commands causes the settings in the scene's global camera to be modified, not the currently
      selected camera (please see the LightWave® SDK documentation for more information).
      These CS commands have been added in order to allow access to a camera's global-redirection settings:

          UseGlobalResolution(<state>)

              Sets the <state> of the camera's global-redirection for resolution settings.
              A value of 1 will redirect these settings to the global camera; a value of 0 will
              make the camera's own settings effective.

          UseGlobalBlur(<state>)

              Sets the <state> of the camera's global-redirection for motion blur settings.
              A value of 1 will redirect these settings to the global camera; a value of 0 will
              make the camera's own settings effective.

          UseGlobalMask(<state>)

              Sets the <state> of the camera's global-redirection for mask boundary settings.
              A value of 1 will redirect these settings to the global camera; a value of 0 will
              make the camera's own settings effective.  (Note: the "Use Mask" setting must be
              enabled for a camera's mask boundary settings to be effective.)
      The LScript Camera Object Agent now has the following new methods in order to support camera
      global-redirection:

          globalResolution()

              Returns an integer value that represents the state of the camera's global-redirection
              setting for resolution.  A value of 1 indicates that the setting is active (resolution
              settings for the camera come from the "global" camera); a value of 0 means that the
              camera's own resolution settings are active.

          globalBlur()

              Returns an integer value that represents the state of the camera's global-redirection
              setting for motion blur.  A value of 1 indicates that the setting is active (motion
              blur settings for the camera come from the "global" camera); a value of 0 means that
              the camera's own motion blur settings are active.

          globalMask()

              Returns an integer value that represents the state of the camera's global-redirection
              setting for mask boundary.  A value of 1 indicates that the setting is active (mask
              boundary settings for the camera come from the "global" camera); a value of 0 means that
              the camera's own mask boundary settings are active.
      LScript's internal list for the Mesh Object Agent's server() method has been updated to
      include AnimUV, Camera and Node handlers and interface server types.
      The new types are defined in the script environment by the names SERVER_ANIMUV_H,
      SERVER_ANIMUV_I, SERVER_CAMERA_H, SERVER_CAMERA_I, SERVER_NODE_H,
      and SERVER_NODE_I.
      LScript's Image Object Agent now sports the following new method:

          replace(<imageFile>)

              Given a valid image file, this method will cause the current image for which the Agent
              serves as a proxy to be replaced with the image data within the file.  The following
              is a usage example of the new method (the loaded image being processed is called
              "layers.bmp"):

                  @version 2.8
                  @warnings

                  generic
                  {
                      if((replacementName = getfile("Please select replacement image...","*.*",".",true)) == nil)
                          return;

                      if(replacementName.contains("layers.bmp"))
                          return;     // same file that's currently loaded?

                      image = Image("layers.bmp");
                      image.replace(replacementName) || error("Replacement failed!");

                      info("New image: " + image.filename(0));
                  }

| Bug Fixes | (top)

      The Envelope Object Agent's constructor had an issue where it would cause the Graph Editor to
      display an invalid channel group, which would cause a crash when the entry was clicked.
      Icons used in LScript Requester panels were being trashed internally when a panel that used
      them was opened a second time, leading eventually to a crash of the application.