I know I said that the next product releases would be an update of the Noise Canceling Headset and the Owner's HUD. These are still planned for release very soon (and if anyone would like a pre-release version of either, send me an IM in-world). However, Mesmerizer 1.6 has been the focus of my attention recently, and it will probably be released before (or perhaps simultaneously) with those other two product updates.
Mesmerizer 1.6 was planned to be a minor bugfix release. It still will be mostly bugfixes, however there are a few new features that are worth previewing. The main reason I write these preview posts is to allow people to comment or request changes to the functionality before release, so if you dislike anything I talk about in these previews, or have an idea for a better way to achieve the same result, let me know. Once a feature has been released, I'm reluctant to change it in a way that might break trigger rules or EnforcerScript that uses the feature (although I'm happy to extend features in a backwards-compatible way).
Enforcer Events
First, there are new Sit and Stand Enforcer events, fired when the wearer sits on a piece of furniture, or stands up from sitting. The Sit event has access to the name of the object that was sat upon in the $data variable.
Improved reporting
The report command now shows the parcel owner as a clickable link that opens their profile (or the group profile, for group-owned parcels). If the wearer is sitting on an object, the report now includes the owner and creator of the object (also as clickable links).
Similarly, the information returned by the getattachments command now includes a clickable link to the creator of each worn attachment.
Vision Spheres
The main new feature is support of (a subset of) the new RLVa Vision Spheres that finally made it to Firestorm. Vision Spheres are a long-awaited feature that can be used to interfere with the wearer's vision. The initial Mesmerizer implementation provides three different effects: one that simulates fog, another that simulates blurring and a final one that pixelates the image. These effects are distance-based - in other words, nearby objects are unaffected, but the effect gets increasingly stronger for more distant objects.
These effects are currently mutually exclusive - if you create a fog effect, you can't simultaneously use the pixelation effect. This restriction is due to the underlying vision sphere being a property of the viewer - and only a single vision sphere is supported. In addition there is some (unintentional) interaction between overlay and vision spheres in the underlying RLVa. I hope this will be addressed in the next Firestorm update, but for now, you shouldn't try to use overlays and vision spheres at the same time. However, the fact that there is this interaction forced me to modify the Mesmerizer's implementation of overlays so that it relinquishes the screen's overlay when it's not actually displaying anything - it previously grabbed the overlay full time. This change should make the Mesmerizer play much better with other devices that also wish to use the overlay feature, so by forcing me to make that change, the RLVa bug actually made things better.
Like overlays, Vision Spheres are RLVa-specific, or at least the details are. The original RLV (e.g. Marine's viewer) has had its own vision sphere implementation for many years, and RLVa (the implementation used in Firestorm and Catznip) has lagged behind. Now RLVa has implemented the feature, but rather than duplicating the RLV commands for establishing vision spheres, RLVa has its own incompatible set of commands and the underlying sphere implementation is very different too. In Mesmerizer 1.6, I'm focusing on the RLVa version, although there is an attempt at providing some compatibility with RLV, at least for the fog effect. This compatibility layer will be improved in subsequent releases, but due to the very different underlying visual processing, I don't think that full compatibility is possible (unless RLV adopts the RLVa spheres in addition to its own version). So the description below refers to the visual experience when using RLVa - primarily Firestorm or Catznip.
Each Vision Sphere effect has its own command: fog, blur and pixelate. The command syntax for each of these commands is reminiscent of the overlay and overlayslides commands, in that they take a single parameter which is a series of colon-separated keyword=value pairs. However, each effect command can also take a simple on, off, yes, no or default parameter instead of a keyword/value list.
So /99 fog on will enable a fog effect, using whatever the current parameters are. The default parameters result in a mist that gradually increases to maximum at 100m distance. /99 fog default will return all fog parameters to their default values, and will show the resulting mist. Since all three commands use the same underlying vision sphere, specifying the parameter off to any of them will disable all effects.
The following table lists the keywords that can be specified to each of these commands:
| Keyword | Description | Example |
|---|---|---|
| show | Boolean. Whether to show the effect. Default is yes. | show=no |
| origin | Whether the effect should be centered on the avatar or the camera. Default is avatar. | origin=camera |
| ramp | Number of seconds to take to apply the new settings. Default is 3 seconds. | ramp=3.0 |
| maxdist | Distance in meters at which the effect is at its maximum strength. Default is 100 | maxdist=50 |
| mindist | Distance in meters at which the effect is at its minimum strength. Default is 1m | mindist=2.5 |
| color | For fog command only. R/G/B color of fog. Default is a gray, at 0.35/0.35/0.35. A few predefined color keywords may be used instead of RGB values: black, white, gray, pink, red, green, blue. | color=0.5/0.5/0.5 or color=pink |
| min | For fog and blur commands only. The intensity of the effect at mindist, in a range 0-1. Default is 0. | min=0.1 |
| max | For fog and blur commands only. The intensity of the effect at maxdist, in a range 0-1. Default is 0.95 for fog and 1.0 for blur. | max=0.8 |
| width | For pixelate command only. Number of horizontal pixels to pixelate. Default is 15. | width=10 |
| height | For pixelate command only. Number of vertical pixels to pixelate. Default is 15. | height=20 |
These commands set parameters for the corresponding command, and these parameters are remembered on subsequent uses of the command. So for instance, setting a fog color with /99 fog "color=green" will cause subsequent fog commands to produce green fog, until another fog command explicitly changes the color. On a relog, all parameters are reset to their default values.
For instance:
/99 fog "color=pink:mindist=2.5:maxdist=10:ramp=5" will create a thick pink fog that builds up over 5 seconds.
/99 pixelate "mindist=5:width=20:height=20" will cause severe pixelation of everything more than 5m from your avatar (the pixelate command only uses a single distance value - you can use either mindist or maxdist, but if you supply both, then mindist is used).
/99 blur "maxdist=10" will simulate fairly strong myopia. You can set the max strength parameter to a value greater than 1 to distort the image even more, but this results in obvious multiple images, rather than a simple blurring.
The values set by one command are retained for subsequent instances of that same command, so /99 fog "mindist=2" followed by /99 fog "maxdist=20" will have same eventual result as /99 fog "mindist=2:maxdist=20", except that if ramping is enabled (as it is by default) the first form will visibly establish the minimum distance first, and then the maximum distance, whereas the second form will establish them both simultaneously. However, each command (fog, blur and pixelate) retains its own settings, which are unaffected by changes made using another command.
Bugfixes
In addition to the features above, Mesmerizer 1.6 includes some fixes to the overlay and overlayslides commands, as well as a refactoring of the RLV relay to give it more headroom. I will likely continue to tinker with the relay in subsequent releases.
No comments:
Post a Comment