Saturday, January 27, 2007

Introducing LoopRez Deluxe

Helpful Links

The original LoopRez is a freely distributed script to simplify placing objects precisely around the perimeter of an ellipse. It's particularly helpful for panel placement in flexi prim skirts. The script has been mentioned in a Natalia Zelmanov's great blog on SL clothing design, and has been used in a TUi class on making skirts in SL.

Although the LoopRez script is fairly easy to use, it isn't optimized for repeated parameter adjustment, to get just the look desired. For example, making the skirts "poof" out a little bit more, changing the number of panels, tweaking how long the skirt is, or adjusting flexi prim properties, all gets rather tedious.

LoopRez Deluxe

LoopRez Deluxe was designed to be as flexible and powerful as possible, streamlining the process, to minimize tedious adjustments and script editing. The goal was to achieve real-time, interactive adjustment of the final product.

Here's a video of LoopRez Deluxe in action.

Ms. Zelmanov trying out the new LoopRez (oh, and the cool Captain's outfit is courtesy of Miss Virrginia Tombola):

Here are some of the new features:

Chat commands

Speaking commands allows on-the-fly modification of all the basic LoopRez parameters. In other words, as you chat a command, the skirt panels will interactive shift and rotate into their new positions, so you can immediately see the adjusted final product.

Parameters that can be changed interactively with chat commands include: number of skirt panels, side-to-side width, forward-to-back depth, how much the panels "flare" outwards, an optional increase in flare angle in back (*NEW!* ) to minimize panels emerging from the upper thighs of avatars.

Panel parameter adjustments: the Parameter Template DropScript

If you've ever wanted to try out different "flexi" properties, lengthen a skirt panel, or change a texture, the Parameter Template DropScript should speed the design process significantly. Just rez a prim, which has some desired primitive property in it, and drop the "template" script onto it. "Touch" the panel, click a button in the resulting dialog window, and your adjustments will be immediately reflected in your skirt.

Nearly every prim property can be adjusted: shape, size, color, texture, flexi, lighting, etc. It's more clear when seen, than when described.

Update with version 0.81: "Edit Linked Parts" on a skirt in progress

With LoopRez Deluxe v0.81, "Edit Linked Parts" can be used to edit a panel of a rezzed skirt in progress; "Touching" the edited panel then propagates the change through the rest of the skirt. For the Commercial Edition, all prim parameter attributes are transfered. However, because of permissions issues, with the Personal Edition, all parameters except texture are transfered. Textures can still be set using the DropScript.

Update with version 0.81: the Skirt Programmer

An in-development "power user" function that is being included in early form with version 0.81, the Skirt Programmer is a tool that allows the use of Notecards to program in smoothly varying skirt panel lengths and color gradients around the circumference of the skirt. This feature may further evolve, and user input for potential new features and uses are always welcome.

Improved panel placement and rotation

Changing the "flare" angle of a skirt (how much it "poofs" outwards) will no longer make the panels embed inside or pull away from the avatar -- it stays nicely anchored at the waistline. This is done performing rotations from the "edge" of a prim skirt panel, rather than from the center.

The previous version of LoopRez would bunch up panels on the "ends" of an ellipse. The more elongated the ellipse was, the more pronounced the effect would be. A new option will insure that panels are placed evenly. This requires simulating some integral calculus in LSL, which is slow and rather memory hungry. This looks better when low "flare" angles are used; letting the panels bunch up on the ends looks better when there is more "flare."

LoopRez Deluxe rezzing the starting panels:

All linked up and ready for modifications:

How will LoopRez Deluxe be distributed?

The original LoopRez script was free and open source, a gift to the SL community. (Yeah, yeah, I know you can see what's coming...) LoopRez Deluxe won't be free. There is a product on the SL market which is being sold at L$5,750. Although few details are publicly available on its features, I suspect that LoopRez Deluxe will compare favorably.

I don't want to charge that much. I would rather that LoopRez Deluxe be available to more people to use and enjoy.

Two versions have been released, both with the same features, as far as functionality goes. Both versions will be COPY / NO TRANSFER, to keep the upgrades simple. All upgrades to both versions will be free.
  • LoopRez Deluxe Personal Edition will create skirts, but the creator name will be stuck as me, and the skirts will be no transfer; i.e., you'll be able to create skirts for yourself, but not give them to others. For personal use only :)
  • LoopRez Deluxe Commercial Edition, has instructions on how to make YOU the creator, and the skirts generated will be full permissions, to distribute as you wish.
I think it would be fair to sell the Personal Edition for L$200, and the Commerical Edition for L$2,000. And if you don't like that, remember there's always the open source free original LoopRez script. I hope this seems fair.

Update: LoopRez Deluxe and the free script are now available at multiple locations.


Finally, feedback is important to me. If there are features you would like to see, and if I'm able to incorporate them, I'd be willing to try. All upgrades will be free.

Helpful Links
There is an open membership "Script Thingies" group now available in Second Life, for product upgrade announcements and support. It is meant to be LOW volume and NO spam.

Again, thanks for your interest, and contact Ged Larsen with any questions!

Acknowledgments: thanks to Strife Onizuka, scripter extraordinaire, for freely providing the code for GetPrimitiveParams(), a function that obtains the primitive parameters for multiple settings at once, and packages it for use in llSetPrimitiveParams. Without this, "morphing" the skirt panels would have been much, much more difficult.