Quantcast
Channel: Marine's
Viewing all 249 articles
Browse latest View live

Upcoming update for the Police Handcuffs

$
0
0
Hi !

I normally don't do that but I want to talk about what I'm working on right now, the update to my oldest commercial product in SL : the Police Handcuffs (and Elbow cuffs, and Legirons, and Prisoner Belt).

It is necessary to tell you that in advance because there will be a change in price, which will go up a tad (not much). Ok, so that's two things I generally don't do for other products.

If you want a summed up version, the price goes up from 870L to 900L and the four sets become only one set (but you're free to contact me if you want to buy only a part of it). However, if you already own the full Police set, you'll be entitled to a full update. If you own the wrists and elbows, you'll be entitled to the arms part of the set. If you own the legirons, you'll get the legs part of the set. The update will be free, of course.


Before going further, I am talking about these four products :



They are so old that they are made with prims, sculpties didn't exist at that time, let alone mesh. It shows on the box pictures that I kept the same from day one, nearly 12 years ago (I released the Police Handcuffs in January 2007, the rest followed shortly after). Old doesn't mean outdated though, I kept updating their scripts and animations over the years, as you know, but I felt they needed some love. So I am redesigning them in mesh.

And since they are one of my best sellers, they are actually getting a lot of love. It's not a redesign, it is a complete rework.

Nickel plating with some dirt and worn edges


A dirty legiron and a shiny handcuff with different angles so you can see how they shine


Nickel, shiny steel and dirty steel are only three of the 16 materials I have made for these cuffs.


But here's the thing. I always thought the Police set was too expensive. It costs 870L in total : 250L for the handcuffs, 250L for the legirons, 150L for the elbow cuffs and 220L for the prisoner belt.

It was fine back then when the stipend was 400L a week, but now that it is 300L a week, the price is a little too high. Plus, the Restrained Elegance set costs 700L and it has more features since it has a collar. More over, the Police set requires some actions on the user's part to install the two addons (elbows and belt) into the right wrist cuff and people don't really like to have to work to install something they just bought, they just want to play.

So something had to be done.

Firstly, enough with the "pay for an addon and install it yourself" stuff. I know it's a pain for you, and you have to do it every time you replace your handcuffs. I did it that way to avoid forcing a sale, because if all you want is a pair of handcuffs to go on your wrists, why pay for elbows and belt, right ? If you liked the handcuffs so much that you wanted to expand, you would pay for the elbows usually and install them. It's not complicated but it's still work to do on your part.

Secondly, the prisoner belt is underwhelming now, and I think clashes with the metal design of the cuffs. I want to turn it into a simple chain with a padlock and integrate it with the rest of the arms animations for a full metal look. But if I turn the belt into a chain, do I include the two belt animations with it ? Or what ?

Thirdly, there's that vertical chain going from the wrists to the ankles. It is made with particles and it is impossible to link a particle chain from the point in the middle of the ankles regardless of the animation. I did a little script back then to move said point (which is part of the right ankle cuff) depending on whether you are standing or sitting, but it's not ideal. It is also impossible to spawn the particle chain from a rigged attachment (or rather, it will spawn from its true position, not from its visual one) so I want to get rid of the particles altogether, and make rigged chains instead. The solution I have found works pretty well, I'm not talking about it yet though because I could still change tactics. But for now, the whole set will use mesh chains, some rigged and some unrigged.


This all leads me to want to make a full set instead of a set with addons. It makes it easier for you, but also for my updater (which has to account for 4 different combinations of arms cuffs for now : wrists, wrists+elbows, wrists+belt, wrists+elbows+belt).


But here lies the problem. If I'm redoing the whole set and make it a full set of arms+legs+belt, the set would cost something like 250L for the wrists, 150L for the elbows (which come with the wrists so 400L for the arms in total), 250L for the ankles and... 220L for the belt ? A simple chain with two animations ? That's where the math doesn't work. 870L for a set that does not feature a collar, while the Restrained Elegance set costs 700L and has a collar, it just doesn't make sense.

I don't want to lower the price for two reasons. First, if you already bought the full set of cuffs, you don't really want your product to lower in price afterwards (notice I don't write "value", as price and value are two entirely different things). You might expect it, but I'm against that practice in general. Second, well, I'm working hard updating those cuffs, this is a project that takes weeks, full time. I don't see why I should be paid less for updating a product for free while I could work on other projects that bring more money.


So this means that the set needs more value added, and that's were comes... a collar. A shock collar, to be exact, but there will be a Spy plugin in it as well. I am still working on it, here it is in SL with a nickel plating, untextured wires and some text on the front LCD :


The white lines in the middle are wires going to the side electrodes that touch the captive's neck. The shock plugin will trigger animations (already done and looking good) and sounds, and will probably show a glowing and scrolling texture on the wires to show that energy is flowing through. All this is still on paper, I haven't begun working on the plugin yet. The collar will also probably contain the Spy plugin, like the Elegance, Serious and Vixen collars.

I've made the collar look institutional, keeping in mind that if a prison used such a device, it would have to be difficult to tamper with, robust, light but also not allow the prisoner to hang themselves with it, nor be used as a weapon should it be forced open somehow. That's why it is made with rigid metal instead of a flexible belt and does not have any sharp edges. Also it should not be able to be locked without the key, but RealRestraint scripts do allow it so don't be surprised by that :)


In my mind, the collar replaces the old prisoner belt (which becomes a simple chain, if I include it at all), but since it has more features than the Elegance collar (which does not have a shock device), it should be more expensive, right ?

So this leads me to increase the price a little bit and to make the Police set a single product with three sets in it : arms, legs and collar, exactly like the Vixen, Serious and Elegance sets.

The pricing will be this :

* Wrists+Elbows+Belt : 400L. To get this set with a replacement, you will need to own the wrists+elbows Police cuffs.

* Legs : 250L. To get them with a replacement, you just need to own the Police Legirons.

* Collar : 250L. To get it, you need to own the wrists+belt Police cuffs (it works if you also have the elbows of course, but you must own at least the wrists and belt). I don't think it should cost only 220L though, and this is the reason for the slight price increase.


Of course, the updates with replacement work only if you have already installed the addons, for example the belt, into the right wrist cuff, turning it into a wrists+elbows, a wrists+belt or a wrists+elbows+belt combo. You won't get the collar if you just bought the belt without the wrists, or if you bought both but did not install the belt.


Please keep in mind that this update is not available yet, and I don't know when it will be, I can't give an ETA, so please don't IM me asking when it will be ready. It is a lot of work, and I'm adding some as I go to make sure the Police set is as good as I think it should be. After all, this is my very first product and the very reason why I opened a business in SL, so it is normal that I take my time.

But this post is to tell you that if you want to get the full set when it's out, knowing that I will discontinue the four Police products and replace them with this one, upping the price a little in the process (for good reason as you saw above), you better buy the Police cuffs and their addons now to pay the old price rather than the new one. It's not much of a discount but it's still 5%.

Lastly, be assured that I will not make a habit of upping the price when I update stuff, even when I add more content and features. That's not how I work. To me, a product should stay updated over time or decrease in price as it gets left behind by other, more up-to-todays-standards products (from the same creator or from competitors). My updates may be free, but I benefit from them indirectly by the exposition they bring, and by keeping my products up to date.


Update : Some people really liked the ability of just buying a pair of good cuffs for the low price of 250L, knowing that they could upgrade later if they so chose. I knew making this product modular was not such a bad idea after all. So I think I will make a special "basic" version of the arms cuffs containing only the wrists and their animations, and an "elbow" addon just like before, and sell them for 250L and 150L respectively. Then later if you want to buy the legs and/or collar, just contact me and I can sell them to you directly.


Have fun !
Marine









Update to the Police set

$
0
0
Hi there,

After nearly a month of work, I am proud to announce the update to the Police set !

An update ? What am I saying. This is a complete rework, that's what it is.








The first part of this blog post demonstrates the Police set and what you get in this update, while the second part is the actual manual for all the specific features.



The update

The Police set was my very first commercial product. The Police Handcuffs were released in January 2007, the Police Elbows addon, the Police Legirons and the Prisoner Transport Belt followed shortly after.

They were made with prims and generic textures (we didn't have mesh, sculpties and materials at the time, everything looked plain and kind of dull compared to nowadays), and although there were many updates just like the rest of my products, getting new animations and features over time, they never changed in looks. This update is meant to correct that.



This is how they used to look until now :



And this is how they look now :



The highlights of this rework are :

* The cuffs are now mesh instead of prims, they are designed from the Hiatts Police handcuffs I own in RL, down to the exact measurements and material. The only difference is that mine are hinged while the SL cuffs have a chain, because a hinge doesn't work well with the many differences in shape we can have in SL.

* Their textures look realistic and use materials for a nice dynamic shine. The shinier metals have a baked environment texture on top of it (although they also shine dynamically), this is to simulate a kind of mirror effect since SL cannot render mirrors or custom environments yet. They would look plain without it.

* There are a lot more animations to increase the quality of life, making the cuffs even more adaptable to any situation you could find yourself into. You can even pose the wrists independently or leave them unconstrained so you can actually use them to work. For example when dusting the place.

* Last but not least, there is a collar now, featuring a zapper for unruly prisoners. The collar is designed to match the cuffs in design and in textures, it is thin but looks robust and functional.



The update is free, but since the original Police set was divided in a pair of handcuffs and two addons (elbow cuffs and prisoner belt) plus independent legirons, what you get when you update your set depends on what you already have. Needless to say, you need to choose "replace" when presented with the option when updating your cuffs. A simple update won't give you the new mesh set.

Unlike the old set, the new set does not feature a "prisoner belt" (although it does contain a belt chain that looks more in line with the rest of the set), but a new Police Collar instead. I'll get into more details below but before I go further, please be aware that the replacement of the belt by the collar increases the total price of the set from L$870 to L$950.



The new pricing

If you don't already own the full set and want to know what the different parts will cost, read on :

- Police Handcuffs : L$250 like before. If you already only own the original basic handcuffs, this is what you'll get when you update your cuffs with a replacement.

- Elbow Cuffs addon : L$150 like before. If you already own the original basic handcuffs and the elbow cuffs addon, you will get the new Police Handcuffs and this addon when you update your cuffs with a replacement. Of course, the elbow animations and notecards must be installed in the right wrist cuff for the updater to recognize your set as such (there is now an automatic installer for that, no need to do it by hand anymore).

- Police Legirons : L$250 like before. If you already own the original Police Legirons, this is what you'll get when you update them with a replacement.

- Police Collar : L$300, it is meant to replace the original Prisoner Belt that costs L$220, and this is the reason for the price increase. If you already own the original Prisoner Belt and have installed its notecards and animations in your original Police Handcuffs, this is what you'll get when you update them, and you won't have to pay anything more even though you paid L$220 instead of L$300.


The Police Collar is independent from the rest of the Police set, actually, and can be bought separately. Its price is halfway between the Elegance Collar and the Vixen Collar, as it has a Zapper plugin, unlike both, but does not change shape like the latter.



How to update

Before going further, if you are eager to update your set already, simply go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes


Once there, click on the updater and follow the instructions. You absolutely need to choose "REPLACE" on the menu instead of "UPDATE" since the objects are completely different. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.



Installation of the Elbow addon

If you get the addon for the Elbows cuffs (either from the update or by buying it later), simply rez your right wrist handcuff (the one labeled "MAIN" in your handcuffs folder), then the installer contained in the elbow addon, then drag and drop the "Police_Elbows_Request" script contained in the same folder into the right wrist cuff you rezzed in-world. Wait a little, and it's ready !

Please note that since the animations are moved from the installer object into the cuff, neither of these two objects can be worn, due to SL's permission securities. They have to be both rezzed in-world, and in the same sim.

Also it doesn't matter which order you rez both objects and when you drop the "request" script into the cuff. As soon as they are both rezzed and the "request" script is in the cuff, the installation starts.

For what it's worth, this installer does exactly what you used to do by hand before, when installing the elbow addon into the old style handcuffs. It just does it automatically now (and yes I know, I should have made this installer years ago :p).



New mesh design

As stated above, the whole set is now made with mesh instead of prims. I've reproduced my RL handcuffs using calipers, so the dimensions and proportions are exact to less than half of a millimeter. They are made to be easy to resize, and most of the set is unrigged so you can adjust the sizes regardless of the body you use, be it mesh or system. You will have to resize the parts individually though, but there are not many of them so it won't be a problem. The whole set is made so you can move rings and chains independently for more precision. This should satisfy even the most OCD among you. *snickers*

Also, the cuffs are now much easier to click on because their root prims are wide cylinders. No more having to pinpoint a tiny cuff on a squirming sub !

 



Materials


That's what gives the cuffs the realistic look they now have. There are 16 materials at your disposal, plus two variations for the Legacy material, exactly like for the Elegance set.


"Nickel clean"



"Nickel worn"



"Steel shiny"



 
"Steel brushed"



 
"Steel matte"



 
"Steel dirty"



 
"Steel old"



 
"Aluminium"



 
"Iron"



 
"Iron rusty"



 
"Paint clean" (tinted green here but white by default)



 
"Paint worn"



 
"Paint scratched"



 
"Paint distressed"



 
"Plastic clean" (tinted blue here but white by default)
(Note : the dark blue area on the top of the cuff is the shadow of a ring that happened to be nearby when I took the picture, it is not part of the texture)



 
"Plastic worn"



 
"Plastic distressed"



 
"Legacy low" (*)



 
"Legacy med" (*)



 
"Legacy high" (*)


(*) The legacy shine refers to the way SL renders a shiny surface without using materials. The "Legacy" materials are there for those among you who can't or don't want to see materials on their cuffs. After all, you probably bought the Police set at a time when materials in SL were not even an idea, and if your computer cannot render materials, your set would be broken by this update if not for these "Legacy" materials.



All these textures can also be tinted, you choose the color and you can adjust the luminosity and saturation afterwards. It works well and lets you choose a good look faster than if you had to enter RGB values yourself (which you can still do, before you ask). The PoliceTex plugin works exactly like the EleganceTex plugin in the Elegance set, so if you are familiar with the latter, you won't have any issues using the former.

You can also choose different materials for the main part of a cuff, another one for the single strand, yet another one for the rivets and yet another one for the key, and the same goes for tinting, so you can get looks like this :

Amethyst-tinted worn plastic on the Main surface, Azure clean plastic on the key, shiny steel on the rivets and single strand.


Police Collar


This collar is new and is the reason for the price increase of the whole Police set. Its purpose is to replace the old Prisoner Belt, which becomes a simple chain used to keep the wrists to the front of the belly without moving too much.

The collar itself is a shock collar, it comes with a Zapper plugin that allows the captor to manually or automatically punish the wearer with strong electricity shocks to the neck.

Bzzzzt !

It can be set to shock the sub whenever she speaks, or moves too far from the captor, or moves too far from a set location. If the latter is set, then the distance is measured globally, meaning you can actually restrict the sub from moving more than, say, 10 kilometers away from a location, so if she's on mainland she can go only a number of sims away before being punished. This option is good if you want to keep the captive inside some kind of facility that spans over several regions.

The shock animations cannot be turned off at the moment, but you can control the faces. Since the faces are Bento, if you find that they do not look good for your own mesh head (they are tested on Lelutka Simone), you can switch from the "total" faces to the "partial" ones, which animate fewer bones, hopefully limiting the deformation. This is especially good for Catwa mesh heads, which are rigged a lot differently from Lelutka, so what works on the latter may not work on the former. It is a matter of taste and shape, really.

Ouch !

It also comes with a Spy plugin that works exactly like the ones in the Elegance, Vixen and Serious collars. The Spy plugin is explained here and allows the captor to keep an eye on the captive's activities even when the former is offline.

Like the cuffs, the collar has 16 different materials (the same ones as the cuffs so it stays assorted) and can be tinted freely. You cannot choose different materials for the front box and the circular parts because they are the same surface, but you can set a material individually for the key. This is due to the fact that we only have 8 faces per mesh in SL, and all the others are already taken by the LEDs, the screen, the wires and the rubber.


The LEDs on the collar indicate if the wearer is using the RLV, if she's "Blocked" by any RealRestraint arm restraint (through its "Block" menu item), if she's currently in Mouselook and if her Spy plugin listener is active. This allows the new Police Collar to do what the old Prisoner Belt used to do, that way you don't lose features when you update.




Chains

The Police set does not use particle chains at all (except for its leashes, of course, and the chains going to furniture, as it is Lockguard and Lockmeister compatible). Instead, it uses mesh chains, some rigged and some not rigged. This allows for a more solid and realistic look than particle chains that are rather limited and plain.

More over, this allows for the vertical chain going from the ankle chain to the wrists to finally stay in the middle. If you noticed, the old Police Legirons used to spawn particle chains from a spot more or less halfway between the ankles, to the wrists when locked in "Taut". However, this worked only for a small number of standing animations. There is a technical reason for this limitation that I will explain below.

Unlike the rest of the chains in the Police set, the vertical chain must stay straight at all times, regardless of the animation of your avatar. This means that there can't be any vertex between its extremities or the chain would curve when you kneel or sit (there is no way around that because when the ankles rotate in relation to the wrists, or the other way around, for example when you bend the knees, the rigging interpolates between the two angles and that produces a curve to interpolate between the two angles). As a result, that chain is a plane. A double plane making a cross, in fact, using a technique that is commonly used in video games, even contemporary ones, with a chain texture with materials on it. Don't worry, it shines dynamically as if it were 3D, you won't see the difference unless you look closely :

The vertical chain is 2D, the horizontal chain and the ring are 3D

A consequence, though, is that unlike the rest of the chains, this one cannot change texture when you change the materials, it can only change its tint. In practice this does not make much difference except when you use the "Iron rusty" material, making all the chains rusty except the vertical one that stays dark but not brown like the rest.

Speaking of the vertical chain, it has always bothered me that we could not choose between a "T" chain (one chain between the ankles, and the vertical chain going up to the wrists) and a single chain between the ankles. So now we have this option and you can finally use your Police Legirons independently from any restraint if you want, like the Elegance, Serious and Vixen legs cuffs.




Animations, locks

I have completely redone all the arms animations and changed the locks. The arms cuffs (with elbows) now feature 8 different locks, all of them featuring many variations for you to choose among, depending on the situation you're in.

Elbows only (in the back) : 18 variations

Maid (like the Deluxe Straps) : 16 variations


 
Hands cuffed on the front : 21 variations


 
Hands cuffed behind the back : 44 variations

Hands cuffed on the front and elbows cuffed behind the back : 16 variations


 
Hands and elbows cuffed behind the back : 20 variations

Hands cuffed on the front with the chain belt, elbows cuffed behind the back : 6x3 variations (*)

U-Shape : 8 variations

(*) There are 6 variations, but you also have the choice between freezing the chest and torso, or just the chest, or not freezing it at all (it depends on what stiffness you prefer for the upper body when you walk, stand or sit, to keep the wrists close to the front part of the waist chain).

This are a lot more variations for each lock than in any of my other restraints because I want to provide you as much control as possible over your arms while you are in cuffs.

I did not change the legs animations at all, they are still the same as before.



Hands and feet

All the arms animations are priority 6 and all the legs animations are priority 5, like in every RealRestraint product. However, the hands are set to priority 2 and the feet are set to priority 3, so those parts can be overridden by your AO. This is on purpose to give your avatar a more life-like stance and more variations. However, there are times when you may want to control the position of your hands yourself, for example when your wrists are cuffed behind your back, you may want to rest one hand over the other instead of clipping through each other because your AO moves them that way. Or you might want to support yourself with your hands if your arms are moved back enough.

Sitting on the ground, arms locked in "H+E back" with the "EBF" variation, Hands plugin active and set to "Support"

To do this, you simply use the Hands plugin in the arms cuffs and the Feet plugin in the legs cuffs. Those plugins allow you to override your hands and feet animations with specific poses. The poses are per-lock based so you can for example decide that the Kneel lock should have its feet frozen straight (which is not the case by default as the cuffs have no way to know if you are wearing high heels or if you are barefoot), or that when locked in "Maid" you should have your hands turned inwards. How to use these plugins is explained in the Manual section of this post.

Legs locked in "Kneel", Feet plugin inactive

Legs locked in "Kneel", Feet plugin inactive and set to "Straight"




Optional chains for armbinders

The old Police Legirons vertical chain used to be able to link to the tip of the RR Armbinder and the RR Highbinder, so the new Police Legirons are able to do the same, even though they don't use particle chains but rigged chains.

The Style plugin contained in the legs cuffs allow you to hide and show those alternate vertical chains so they don't go to the wrists anymore but further down the hands, beyond the fingers, to make them look like they are linked to the bottom ring of the Highbinder. For the Armbinder, same thing except the chains go way up because the RR Armbinder folds the upper arms up instead of hiding them with an alpha.

You are also provided two sets of full perms rings that you can use as a "glue" between the armbinder you are wearing and the tip of the rigged chain.

I haven't tested with armbinders from other brands, but with a little luck this should work as well if they are positioned and/or rigged correctly.

Legs chained to the RR Armbinder

Legs chained to the RR Highbinder



New RealKey design

The old RealKey object (the one given by the plugin of the same name) used to be made of prims, and its design was the same as the key in the original Police Handcuffs, so now that the handcuffs have a new design, it is normal that the RealKey gets one too.

The plugin does not change at all, only the object does, the protocol stays the same so your old RealKeys will still work. But if you get a new RealKey from the updated Police set, you get the new object with the original script, so new RealKeys will also work with older restraints.


The key is also embedded in a bigger transparent cube to make it easier to click on.



That's all for the quick demonstration of the new features of the Police set, the rest of this post is the manual explaining how to use and enjoy these new features.






Manual

The new features of the Police set are the Style plugin, the PoliceTex plugin, the Zapper plugin, the Spy plugin and of course the mesh design, materials, mesh chains and new animations.



Style plugin

The Style plugin lets you decide what parts you want shown and what parts you want hidden, depending on the lock, provided that you have the key and access to the cuffs. All the three parts of the set feature one : the collar, the arms cuffs and the legirons, with different styles for each.

To use it, go to the main menu of a cuff, click on Plugins, then Style (you might have to switch to the next page of the menu if you don't see it). The menu you then see depends entirely on the type of the restraint and on the lock it is set to. For example, the collar can only be "Visible" or "Invisible", while the arms cuffs have many more options, like the ability to hide and show some cuffs and chains to let the sub use the cuffs along with other restraints.

In the arms cuffs, you are given the choice to use the "3 rings" or the single ring for the wrists. This is entirely your choice and it depends on your taste and on your shape. If your shoulders are too wide compared to the length of your arms, you might want to switch "3 rings" on. When you turn it on, the single ring hides itself, and vice versa. This switch is not available for all locks because not all locks feature the wrist link between the wrist cuffs.


Single ring between the wrists, good if your shoulders are narrow

But if your shoulders are wide...

... you might prefer the alternate 3 rings instead



Likewise, in the legs cuffs, you have the ability to show and hide different alternate vertical chains, labeled "Highbinder" and "Armbinder" in the menu. If either of them is active, the normal vertical chain is hidden and replaced by the corresponding alternate version. You also need to choose a style that features the "Chain to hands" for this or you won't see any of those vertical chains at all. These switches are not available for all locks because not all locks feature the vertical chain.


If you use any of these alternate vertical chains to link to, say, an armbinder, you may want to wear one of the provided bonus rings attachments. Those objects are full perms and unscripted so you can modify them at will. The only difference between the two is where they attach. Being full perms does not mean being free to do anything you want with them, you are not allowed to sell them or to give them away.



Unwear what is not needed

At the time of this writing, the whole Police set contains 8 attachments, plus 2 bonus rings for the armbinders (they are not needed for the product to work, they're just here for the looks). That's 1 object for the collar, 5 for the arms and 2 for the legs.

Since we are limited to 38 attachment slots in total, it is a good idea to detach the parts that you don't need, and the RealRestraint system allows you to do that. For example, if your hands are cuffed behind your back but not your elbows, you are able to detach the elbow cuffs and the belt even if you are a RLV user, because those parts are not locked on your avatar until they are needed (i.e. when you are locked in "Elbows only", "Maid", "H+E front", "H+E back", "Belt" or "U-Shape").

Moreover, if your cuffs have changed in looks while some parts were not worn (like the elbows in the example above), therefore not able to register the changes when they occurred, then wearing them later will re-synchronize them so you don't have to apply the materials manually again. For example, if you are locked in "Hnd back", detach your elbow cuffs then switch your handcuffs from "Shiny steel" to "Painted clean" and paint them green, when you reattach your elbow cuffs later they will automatically become "Painted clean" and green without needing you to do anything.

This allows you to spare some attachment slots and to avoid rendering parts that are not needed. The Police belt is needed only in the "Belt" lock, so any other lock lets you detach it. Of course, the right wrist and right ankle cuffs are never detachable when locked, since they are the parts that contain the main scripts. Same for the Police collar which is the only attachment in its own set.

Attention, making a part invisible through the Style plugin does not make it detachable. For example, you cannot detach the elbow cuffs if you are locked in "H+E front" even if you turn them invisible in the Style plugin.



Animations

I highly recommend wearing the contained "RR Anim HUD", which is a HUD that allows you to choose the variations for the lock you are currently in, be it arms or legs. As stated above, the arms cuffs now contain a lot more animations than before, it would be a shame to use only one, right ?

The RR Anim HUD connects to the Anim plugin contained in the cuffs to switch the animations with the arrows. It is all very simple and is explained in detail here.

The Belt lock is special because it involves an unrigged chain belt around the waist as well as cuffs on the wrists and elbows. However, it is impossible in SL to make sure the wrists stay against the belly like this lock is supposed to do, as there is no inverse kinematics available (there used to be such a project but it was shelved by LL). As a result, if the upper body (torso and/or chest bones) moves, then the wrists move away from the belly, sometimes pretty far, and we don't want that. This is why you have 18 variations that look the same, when in Belt lock. The first six are the "ES" variations ("ESA" to "ESE" then "ESX" to "ESZ") that freeze the chest bone and reduce the overall movement of the upper body but not too much. If it is not enough, you have the next six variations labeled "ET" ("ETA" to "ETE" then "ETX" to "ETZ") which freeze both the Chest and the Torso bones, ensuring your arms stay close enough to your belt. But they also make you walk a bit funny, especially if your walk makes your pelvis sway a lot. So if you don't want to freeze the torso at all (for example when walking or sitting on something), you can use the third series of six variations labeled "EF" (like "Elbows Front", these are the same animations used by the "H+E front" lock) which do not freeze the upper body at all.

I tried to make a short rigged chain instead of relying on freezing the torso, but like the front Maid chain it ended up curved and offset and I have no idea why. Maybe when I figure this out I'll update this part.

A quick note about the names of the variations. They are all labeled with 3 letters because that's how I manage to cram so many of them in the Anim plugin, by shortening their names. I understand they are not intuitive but the only thing relevant to you is the last letter of each animation, going from A to something (E, G, P, that depends on the lock), then something else (U, X, once again it depends on the lock) down to Z. Then cycles back to A. Some letters are variations of 5°, others 10°, others are a completely different shape. This is all a bit arbitrary, I admit.


Most of the arms animations leave the hands to priority 2, which means your Animation Overrider will most likely override them. This may or may not be something you want so you can control your hands and feet through the Hands plugin in the arms cuffs and the Feet plugin in the legs cuffs respectively.

Hands plugin menu in the "Hnd back" lock

When not restrained, the AO moves your hand (and Bento AOs may even move your fingers as well)

When in cuffs, your hands are still moved by your AO, which may or may not be what you want

So the Hands plugin helps you set them straight

Or animate them in a way that is consistent with the cuffs

And support you when you need it
And when you want to use your hands for some tasks, just deactivate the Hands plugin to let them move !



The "Active" button lets you switch between three activation modes :

* Not active : the plugin does not animate your hands or feet at all.
* Active if AutoRefresh is active : the plugin only animates your hands or feet if AutoRefresh is on in the same restraints (it is on by default but you can turn it off manually through the RR Anim HUD and the "More" menu of the restraint itself).
* Always active : the plugin animates your hands or feet regardless of the AutoRefresh state, but only if the restraints are locked.

This means that if the plugin is set to "Active if AutoRefresh is active" and you want to deactivate it, you have to press the "Active" button twice.

All the locks have at least the "Straight" option available in the Hands and Feet plugins. For the hands, this means keeping the hands more or less parallel regardless of the lock, and for the feet this means keeping the system feet 90° from the shins. If you are using a mesh body with high heels (and most likely the feet set to "high" or "point"), then this is the setting for you in locks like "Kneel".

The gestures included in the box of legirons do the same thing, if you prefer using gestures than a plugin. Don't forget to activate them first then.

Please note that the "U-Shape" and some of the "Hands back" variations won't benefit from any of the Hands plugin settings since the hands are already priority 6.

By default, "Straight" is the animation set for all the locks, both in the Hands and Feet plugins. However, the plugins are not active by default, you have to activate them yourself.

Please note that the hands animations managed by the Hands plugin are NOT Bento so they won't move the fingers. This is on purpose because most mesh bodies have their own built-in finger poses so you can use that if you want to, say, close your fists in U-Shape.

Also please know that choosing an animation in the list automatically activates the plugin if it was not active before.

Lastly, only the wearer can access those two plugins, and nobody else.



Textures and materials

This is another big highlight of the new Police set, the ability to change the materials and to make the cuffs look realistic.

First of all, please ensure that your viewer is set to render materials. To do this, open your Preferences, go to the Graphics panel, then click on "Advanced" and activate "Advanced Lighting Model" :



If this is too taxing for your graphics card, you can turn the dynamic shadows off and still see materials :



To change the materials of your cuffs and/or collar, go to the "Plugins" menu of your cuffs or collar respectively then click on "PoliceTex".



Through this plugin you can :

* Change the materials
* Choose a tint to replace the built-in tint of the chosen material (like Aluminium which is grey)
* Choose the surface to change the material or tint of
* Adjust the saturation and luminosity
* Dull down the shine (you can't make it brighter since this modifies the shine color, not the glossiness) with the "Shine factor" button
* Deny access to the sub with the "Deny" button
* Choose to apply manually or automatically with the "Live" button
* Reset the tint, saturation and luminosity with the "Defaults" button
* Reset the materials back to "Steel shiny" with the "Reset" button

Some materials come pre-tinted, like "Aluminium" which is blueish by default whereas its texture is actually white. When you tint a surface, its original tint is replaced by the one you chose. However, materials like "Rusty iron" are naturally colored so tinting them would combine their built-in color with the one you pick.

When you have chosen your tint, you may want to adjust its saturation and/or luminosity. This is done independently and if you change the tint later, the saturation and luminosity stay the same. Using the saturation and luminosity is a good way to make a tint look more natural (like above in the pictures with the de-saturated green and blue tints) without having to calculate a custom tint and to enter it manually in with the "CUSTOM" button in the "Tints" sub-menu.


The cuffs and the collar are made of metal, that is a given. This means a lot of things when it comes to rendering, in particular how the shine changes when the surface is tinted. Unlike plastics which shine the same color as the lights around them, metals actually tint the reflected light due to their conductive properties. In fact, the more conductive a material, the more it tints the light it reflects. The human eye is good at telling a metal from a plastic posing as metal, and this is how it manages to do that.

This means that for all the materials except "Painted", "Plastic" and "Legacy", tinting the surface will also tint the reflected shine. However, since most metals also have a natural shine (steel is cold blueish while nickel is yellowish), the resulting shine is some kind of combination of the original shine and the set surface tint. The result is very nice and pleasing to the eye.

"Painted", "Plastic" and "Legacy" materials don't color the shine at all because their surfaces are not considered metallic, even though the core is always metal.



How to resize and adjust your cuffs

Every object has a single regular prim as the root, which contains all the scripts. The mesh objects themselves are generally not scripted, or just contain some slave scripts for the PoliceTex plugin, for example.

This means that in order to adjust your cuffs precisely, you need to edit the mesh parts individually. To do this, when you are editing an object with the SL tools, simply click on "Edit Linked" then on the particular part you want to edit (if you're using the original RLV, the shortcut to toggle this checkbox is Alt-W) :

Select "Edit Linked"...

... and click on a single part of the cuff (here the body of the left handcuff)

Most of the parts are actually invisible, and even clicking on a visible part might be challenging sometimes because some other invisible parts are in front of it. To see invisible parts, press Ctrl-Alt-T and they will appear in red. If you are using the original RLV, press Ctrl-Alt-Shift-V after doing so to force a refresh of all the prims in the vicinity because invisible surfaces are not normally rendered on this viewer, and Ctrl-Alt-T does not refresh them automatically (at the time of this writing).

Press Ctrl-Alt-T to see all the unrigged invisible parts

A good method is also to press Ctrl and one of the two keys to the right of the "M" key to cycle through all the individual parts of an object, making it easier to select them.

Since most of the objects are worn on limbs (arms and legs), it is easier to use the "Local" ruler instead of the "Attachment" one in this drop-down list (if you're using the original RLV, the shortcut is Alt-F) :

Trying to adjust the back elbow chain in "Attachment" mode is cumbersome, just look at how the arrows are oriented.

Switching to "Local" mode orients the arrows in a much better way to make it easier for you to move and resize the chain

Lastly, it is a good idea to disable the camera constraints so you can cam inside your own body, because some cuffs feature additional hidden parts in case the ones you have are not enough. To do this, open the Advanced menu (Ctrl-Alt-D if you don't see it in your top menu bar) then select "Disable Camera Constraints" :



The quickest way to adjust your cuffs is this :

- Lock your arms in "H+E back" (that's the 6th lock, "Elbows only" being the 1st one and "U-Shape" the 8th and last one).

- Adjust your wrist cuffs so they match the rigged ring between your wrists. Please note that since this ring is rigged, you cannot move or resize it, so you have to move the cuffs instead.

- Adjust your elbow cuffs and the middle chain the way you like. If your shoulders are too wide, there are three additional pairs of links hidden inside the left elbow that you can move outwards (set your ruler to "Local" to make it easier to move them into position).


- Lock your arms in "Maid" and adjust the chain and rings. Do NOT adjust the cuffs again, you have already moved them in the step above. Notice that the elbows cuffs did not change at all, they use the same chain as the "H+E back" lock. Only adjust the parts highlighted in green in this picture :


- Lock your arms in "Belt" and adjust the chain belt to your liking. Notice that the padlock and the ring are not integrated in the belt, they are different parts so they need to be adjusted too. This is on purpose so the padlock doesn't deform when you resize the chain belt itself. Don't move anything else, the rest of the visible cuffs were already adjusted in the previous steps.

- Lock your arms in "U-Shape" (it's in the "More..." menu of the arms cuffs), adjust the horizontal chain and the two rings that are not in direct contact with the cuffs, since the others were already adjusted in the step above. Only adjust the parts highlighted in green in this picture :


- Lock your legs in "Taut" and adjust the cuffs and the rings to match the single chain that appears between your ankles. You won't have to do anything else for the legs.

- Lock your collar and adjust the mesh part of the collar the way you like.

- Notice that there are prims looking like pie slices when you highlight the invisible objects in red. Those prims are used by the Leash plugins and by the Lockguard and Lockmeister furniture to spawn particle chains. You may or may not want to adjust these too, knowing that the particles spawn from their tips.


You may think that this is a lot of parts to adjust. The truth is since some parts are rigged (hence cannot be adjusted) and others are not, the rings are there to act as "glue", as I call it, to give you more room for error and not force you to be too precise when it comes to adjusting your stuff between rigged and unrigged parts.

You may also wonder why the whole set is not rigged in the first place. If it were, what mesh body should it be rigged like ? Maitreya ? Slink ? Belleza ? Others ? All of them ? That would take way too long and would be too much work for me. Rigging an object to imitate a mesh body deformation is easy... as long as the object covers adjacent joints and bones, like a piece of clothing does. Restraints are different in the sense that by definition they link unconnected limbs (the wrists together, for example), and that changes everything when it comes to deforming the object both according to the animation and to the shape sliders. It works... ish, and not even all the time. So when we have the opportunity not to rig, let's not rig.

In fact, when designing the Maid wrist chain, I initially tried to make it rigged like the wrist ring. It never worked the way I wanted, even after a dozen of tries with different parameters. It is straight in Blender and stays straight regardless of the position -- not the rotation -- of the wrists, but it becomes curved and offset when uploading to SL, for a reason that eludes me. I still don't know what I'm doing wrong, but of course if one day I figure out a way to keep that chain straight, I will make a rigged version of it. But for now it is unrigged and that works just fine because the animations I made keep the forearms in the same plane. They only move up and down, and always in parallel.

Likewise, it would not make sense to rig the curved elbow chain you see when locked in "H+E front" and "Belt", because it would have to stretch according to the width of the shoulder (that's not a problem), stretch back according to the "Body Fat" slider (now that's a problem) and not clip through the back when bending backwards (I never managed that). Also it would have to stay above clothes if you are wearing any. This is why it is a better idea to keep it unrigged, hence under your control and not SL's.



Police Collar : The Zapper

The Police Collar is an independent restraint in itself, and does not need the cuffs to work. It is meant to look sturdy but light, and as it is meant to be put on dangerous prisoners, it does not have any sharp edges to keep it from being used as a weapon should it be forced open, and is rigid so the prisoner cannot hurt or hang themselves with it, voluntarily or not.

It also features an advanced shock device called a "Zapper". To use it, go to the Plugins page and browse until you find the Zapper plugin, and click on its button to get this menu :


By default the Zapper is inactive but by clicking on the "Zap low", "Zap medium" or "Zap high", you can deliver a powerful shock to the wearer's neck, ensuring compliance.

You can also deliver shocks automatically through three types of monitoring :

* Speech : When active, the captive will be zapped every time she speaks on channel 0 (with or without a gag, but then the gag has to imitate her own name). If a Tolerance is set other than 0, then she can say as many sentences before being zapped, but the number of faults decreases with time (1 sentence every 100 seconds to be exact). For example, if the Tolerance is set to 3, the captive can say three sentences in a row, but if she waits 100 seconds before the second and the third one, she will be allowed to say a fourth one and only get zapped if she speaks for the fifth time in a row.

* Relative position to the keyholder : When active, the plugin monitors the distance between the captive and the keyholder (the person who holds the key to the collar). If that distance exceeds the maximum distance specified for as many seconds as the Tolerance, then the captive gets zapped. Please note that this does not take sim borders into account, but the maximum effective distance is 96 m. This is because a sensor is used when the keyholder is not found in the same sim and could be in a neighboring region.

* Absolute position : When active, the plugin monitors the distance between the captive and the set position (which is the one she is at when clicking on the "Set" button). If that distance exceeds the maximum distance specified for as many seconds as the Tolerance, then the captive gets zapped. Please note that this distance does not take sim borders into account, so you can literally allow the sub to walk through a number of regions before being zapped, if she is on mainland.


The "Face" button lets you choose between the types of "pain faces" when the sub is zapped. "Total" means the lips are animated, "Partial" means they are not (this is useful for mesh heads with extreme rigging for the lips like Catwa for example), "No" means the neck and head are still animated but not the face.

"Total" mode : the lips are stretched to show the teeth

"Partial" mode : the lips are not stretched but the pain is still obvious



Police Collar : The LEDs

The three LEDs on the sides of the Police Collar indicate the following :

* The upper one is red when the Spy plugin is active and listening to the chat.

* The middle one is linked to the RR HUD status and to Mouselook. It is orange when at least one arm restraint is locked (like the arms cuffs but any other arm restraint from RR will do the same), therefore locking the RR HUD. It becomes pink when the sub is "Blocked" (i.e. unable to interact with the environment, this is done with the "Block" button in the "Special" menu of the arms restraints). It turns blue if the sub is not Blocked but is in Mouselook, and green when she is Blocked and in Mouselook (regardless of whether she is forced to stay in Mouselook or not). And it turns red if the RR HUD is not worn. Please note that the changes take some time, they are not immediate but take at most 10 seconds in the worst case.

* The lower LED is green when the sub is using the RLV, red otherwise.


Police Collar : The Screen

The screen on the front side of the Police Collar indicates some information about the status of the Zapper and the collar itself.

Notice the smudge and the fingerprints

The first line indicates that the collar is locked or unlocked.

The second line is the activity of the Zapper. When the collar is unlocked, the Zapper is necessarily in standby mode.

The third line is the mode the Zapper is set to. Speech, Relative Position, Absolute Position or a mix of the three.

The color of the screen is arbitrary and is blue by default, but you can change it yourself if you prefer another color. There is no plugin to do that but you can do so manually and your color will stay.

To do this, edit the collar and switch to "Select Face" mode in the Edit window :


Then click on the screen of the collar, and nowhere else. Select the Texture tab in the Edit window and choose your color. Notice that the black screen stays black, only the text changes color.

The default color is RGB 121 164 188, which is a mildly saturated light blue.

A good golden color would be RGB 255 211 128 and I considered using that color before settling on blue (because police, blue, all that). I also like RGB 128 255 151 for a blueish green, like those old screens. Anyway this is your personal choice and you won't break anything by tweaking the color yourself.



This concludes the manual of the new Police set, I hope you'll enjoy it as much as I do.


Have fun !

Marine


PS : I would have liked to make a full set of handcuffs, elbow cuffs, legirons and collar, all in one box and sell it for the full price like the Vixen, Elegance and Serious sets. However, a lot of people prefer to be able to buy basic handcuffs first, and to later upgrade to full arms cuffs if and when they want to. Likewise, not everyone wants the collar. As a result, I must stick with the "basic product + addon" formula, which means a little more work for you but a lot more flexibility. There is now an automatic installer in the Elbow addon so you don't have to move the notecards and animations by hand anymore.



Hotfix for the Police Legirons

$
0
0
Hi,

There was a bug in the new Police Legirons that would make their vertical chains go all gray without being able to fix it, after resetting or changing materials on the legs' PoliceTex plugin.

This bug slipped past my testing because it occurs to everybody but me (I did test the cuffs with my alt, but not this part apparently), and this is because of a silly permission issue.

The good news is that there is a fix for it, the bad news is that you need to get your legirons replaced to get the fix. When you request an update from any of the RR updaters, please make sure to choose the "REPLACE" option, not the other one or your legirons won't be fixed (this is because the culprit is in one of the child prims of the cuffs, the left ankle one specifically, and the updater does not touch child prim inventories).

Please note that although the bug is also in the Police arms cuffs and even in the Police collar, in practice you won't ever see it happen on these two parts because those do not feature rigged chains in 2D. This bug happens specifically on the 2D vertical chain of the legirons and nowhere else.

You can get the updated pair of legirons from any of the updaters found at these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes



Sorry for the inconvenience,

Marine

Update to the Police Collar

$
0
0
Hi there,

The Police Collar was created during the big update to the Police set as a replacement for the old Prisoner Transport Belt, which itself became a simple chain which is now included with the Elbows addon.

The collar comes with an interesting feature known as a "zapper", letting the keyholder/owner/captor control and punish the wearer/submissive/captive with strong jolts of electricity, either manually or automatically while having the collar monitor speech, relative and/or absolute position.

When I released the collar with the rest of the update, the only effect of the shocks were animations, sounds and lights on the sides of the collar, but nothing more punishing than that.

The update to the Police collar brings RLV effects on top of that, and counts punishments, which can be seen and reset by the keyholder at any time. Each time the sub gets zapped automatically, the corresponding punishment increases by one. For example, if she speaks three times and gets zapped for it three times, there will be a big "3" on the "Speech" line on the menu, and the keyholder will know the sub has been naughty.

See for yourself :


Hi ! I'm Tif--

--WHAAAA !!

What the hell just hap--

--AUGGGHH !!

*shuts up*

Efficient, right ?

Now, when the sub is zapped, her screen becomes tinted red and blurry, and although the color returns to normal when the zap stops, the blurriness wears off progressively over the course of a few seconds, the more blurriness the longer it takes. What's more, the blurriness accumulates with itself if the sub is zapped repeatedly (to be exact it accumulates with half of the previous blurriness, not all of it). Careful, you can literally blind your sub with pain if you keep doing that.


It sure keeps a sub nice and quiet. Don't you agree, Tiffany ?

*no comment*

Good girl.



To update your collar and get these new features, you need to go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes


Once there, click on the updater and follow the instructions. You absolutely need to choose "REPLACE" on the menu instead of "UPDATE" because one of the changes involves a script contained in a child prim, which the updater cannot reach. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.



Have fun !

Marine




RLV 2.9.24

$
0
0
Hi,

Here is the latest version of the RLV, including LL's latest code with Animesh and a few fixes for some annoying or silly bugs. Here's the change list :


- added : A "Refresh Attachments" menu item in "Advanced" (Ctrl-Alt-D to make that menu visible if you don't see it), a feature coming from Firestorm to help when one of your attachments is ghosted after a teleport.

- fixed : We could not move an attachment or part of it while sitting on someting and restricted from teleporting or sit-teleporting.

- fixed : When under @shownames, "Second Life" would appear in the chat history instead of an obfuscated name (thank you Carina Asbrink for the report).

- fixed : One of the debug screens was not affected by @shownames.

- fixed : Hearing emotes said by a personal attachment which imitated the name of an avatar around us, did not have its name obfuscated when under @shownames.

- fixed : RestrainedLoveAvatarShadows level 2 was broken.

- fixed : After changing the Windlight settins through RLV and restoring region defaults via the menu (not via RLV), the sun went on its course at a high speed.




You can grab the Windows version here :
http://www.erestraints.com/realrestraint/


The MD5 hash for the Windows executable is :
8ea8dfca1c5f0c5e437cf83c7877a54d


Have fun !
Marine

Second update to the Police Collar

$
0
0
Hello there,

So I thought I was done with the new Police Collar after the latest update, but... I improved it a little more lately, especially the speech monitoring feature.

Until now it would monitor the speech from the sub and punish her if she sent more lines than she was allowed. But there's a way to be more devious than that : by allowing a certain number of characters per minute !

So the big change is that now the Tolerance for the speech monitoring will be in characters per minute instead of chat lines. This includes characters put between double quotes inside emotes, because those should count as well.

There is also the new concept of "Penalties" added every time the sub is punished for talking too much. In short, every penalty decreases the tolerance, I'll explain below the exact calculations. For now, here is the list of changes and fixes :

- added : Beeps when recovering characters or clearing penalties.

- added : Limited access to the plugin to the sub so that she can check her own stats and turn the sounds on or off if needed.

- changed : Now the speech tolerance is counted in characters per minute, including those between double quotes within an emote.

- changed : Made the plugin menu clearer and more comprehensive when showing stats.

- changed : When punished for talking, the sub is now given a free 10 characters allowance for a limited time to let her "comment" on the zap itself.

- fixed : There should be no monitoring going on while the collar is unlocked.

- fixed : When Absolute monitoring was on, Relative monitoring did not punish for being too far from the keyholder.




To update your collar and get these new features, you need to go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes


Once there, click on the updater and follow the instructions. If you already got the previous update (this one), you can choose "UPDATE" on the menu instead of "REPLACE", which will replace your "*Zapper" script with one named "_Zapper", which is exactly the same script with a different name, and of course the new features detailed above.

If you do not have the last update, you absolutely need to choose "REPLACE" on the menu instead of "UPDATE" because one of the changes involves a script contained in a child prim, which the updater cannot reach. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.



Ok, so what's the deal about penalties and characters per minute ? Let's get into details now.

When speech monitoring is activated, the sub is given a tolerance of 60 characters per minute. If she stays under that limit, fine, she won't get punished. If she send emotes like :

/me says "This is a vocal message"

Then the "This is a vocal message" part counts against the character allowance (but not the double quotes).

If she goes over her limit, then she gets punished, no surprise there. But she also gets one penalty, or more if she goes way over her limit, like twice or three times her allowance.

Each penalty lowers the tolerance like this :

* 1 penalty : Speech tolerance loses 15%.
* 2 penalties : Speech tolerance loses 25%.
* 3 penalties : Speech tolerance loses 50%.
* 4 penalties : Speech tolerance loses 80%.
* 5 penalties : Speech tolerance loses 90%.
* 6 penalties or more : Speech tolerance loses 90% and one character per penalty beyond 5.

For example, if the speech tolerance is 60 (which is the default), then it goes down to 51 characters per minute with one penalty, 45 with two, 30 with three, 12 with four, 6 with five, and then 5, 4, 3, 2 and 1 (you can't go under 1).

Every minute one penalty is removed, so if the sub has talked too much, it may take minutes before she is back to her full allowance.

Also, the intensity of the punishment for talking is now tied to the number of penalties. In other words, one penalty won't hurt much but three and more will be really painful.

The number of characters she is allowed goes up by a sixth of her tolerance (adjusted by the current penalties) every 10 seconds. In other words, if she has no penalty and a 60 character tolerance, she gets back 10 characters every 10 seconds. If she has 1 penalty, she only gets back 8 every 10 seconds and it will stop at 51.

Here is an example when having said 30 characters in a 60-character tolerance (hence 30 characters of allowance left), with no penalty :


And after having been punished twice in a short time, the tolerance goes down to 45, written twice for more clarity, both in the allowance line (marked "Chars left" in the menu) and in the Tolerance line so you see the effect of those two penalties on the initial tolerance :


Note that although the penalties are cleared over time, the number of punishments is not, it must be cleared manually by the keyholder.


When she gets characters back (so every 10 seconds), a short "beep" is heard. When she gets back all her characters (so her allowance is now equal to the adjusted tolerance), four rapid "beeps" are heard.

When she clears one penalty, another "beep" is heard with a different tone, and a two-tone "beep" is heard when all the penalties are cleared.

If all those beeps are annoying for you or the people around you, you can always turn them off yourself or have your keyholder do it for you. The Zapper plugin is now available to the sub even when locked, but she only gets minimal access. It is useful for having a glance at the stats at any time.

When the sub gets zapped, she is given an extra 10 characters allowance if she wants to comment on the punishment and won't be punished again for it. Comment like "Ouch!", "Ow!" etc. Be careful, that's only 10 characters and only one chat message, she cannot hope to cheat through this extra allowance.


You might think that all those rules and constraints are complicated, maybe superfluous. The goal here is to convince the sub that it is better to remain quiet than to try to game the system, as it becomes harsher if she keeps testing it. You can think of the complexity as a way to get some psychological leverage over the sub. Hehe.


Have fun !

Marine

RLV 2.9.24.1

$
0
0
Hi,

Here is the latest version of the RLV with a few bug fixes, including one that is necessary for the upcoming update to v1.31 of the RealRestraints products (once my connection is back to normal, because this week "flaky and unreliable" does not begin to qualify it).

Here is the list of changes :

- fixed : Treat OOC chat messages -- those with "((" and "))" -- like any other chat messages (they used to go through any RLV restriction, then were always blocked even without any restriction at all). This is the fix you will need for RR v1.31 once it's out.

- fixed : When an object speaks and its name ends with " Resident" (with a space), assume it is trying to imitate the name of an avatar and remove the " Resident" part.

- fixed : When selecting any other Windlight setting than "Use Region Settings", then going back to "Use Region Settings", the tick would not go back to this menu item.

- fixed : @recvchat would not prevent chat messages like "test /me tests" from showing, because of the part before "/me".


You can grab the Windows version here :
http://www.erestraints.com/realrestraint/


The MD5 hash for the Windows executable is :
a55541fb9de027dfae91befe9d5c4d69


Have fun !
Marine 

RealRestraint update to v1.31

$
0
0
Hi !

Here is the latest update to v1.31 to all the products in the RealRestraint line, mostly with bug fixes but also with several interesting improvements.

There are many changes, but the main highlights of this update are :

- A fix for the RLV not always being detected upon login. I will explain below the reasons for this bug and the fix so that other designers may have an idea how to track and fix it in their own products too, because this is not restricted to RR.

- The RealRestraint_HUD object no longer being mandatory. This was a long-standing wish of mine, and to make the HUD optional was no trivial task, but now you will be able to completely do without it if you are using a viewer that implements RLV 2.9 completely (not Firestorm at the time of this writing, but the original RLV and Kokua do as well as several other viewers) and if your arms cuffs are not set to "Block". This will therefore let you save an attachment slot even if you are using a RR blindfold.


As for every RR update, you are given the choice between "update" and "replace".

"Update" means the updater merely updates some of the scripts contained inside the main object of your set (for example the right wrist cuff in the Police Handcuff set) and does not touch anything else. It may, depending on your product, add, remove or rename some items inside it but it won't change the shape of the object nor any texture, nothing.

"Replace" means that the product is deactivated, i.e. the contents inside its root prim are removed, and you are given a new one. This is the preferred option but it comes at the cost of having to resize it all again. There are some good news however : only the main object of your set is deactivated, the rest is untouched so you can still use the old secondary objects (left wrist cuff for example) with the new set you are given. This works... except if you are getting a replacement specifically to get new secondary items, of course. For example, if the update modifies the left wrist cuff, you will obviously not use the old left wrist cuff but the new one, which you will have to resize.

The update folder contains two scripts named "Copy Shape" and "Paste Shape", that you can use to transfer the shape of an old object to the corresponding new object. For example, if you don't want to adjust your new left wrist cuff because you've spent a long time adjusting the old one, you can drop the Copy Shape script in the old one and the Paste Shape script in the new one after putting them both on the ground, and if all goes well you will have very minor adjusting work to do, if at all (the scripts do some guesswork as to how each part of the new object has to adjust itself compared to its old counterpart, and it works perfectly unless other parts are too close in position, rotation and size). The way to use the scripts is described here, but I'm afraid the videos are broken because YouTube removed them for some reason and I didn't have a backup. I'll have to shoot them again soon.


So, should you update or replace ?

This is a difficult question and it depends entirely on what product(s) you are updating, what changes have occurred in this update for this product, and whether you really want such or such feature. If a feature requires a replacement but you really don't want to replace and you can do without the new feature, you can safely stick to a soft update.

This is why each feature below has a little code that indicates whether it requires an update or a replacement, and if it requires a replacement, it indicates whether you need to use the whole new set, or if you can use the main object of the new set and keep using the secondary objects of the old set. This is the case for updates that involve changes to scripts contained in a child prim of the main object (for example, a script inside the cuff part of the right wrist Police Handcuff, knowing that the root prim itself is actually an invisible cylinder). Here are the codes :


- "U" : You only need to soft-update, meaning choosing "UPDATE" while wearing your object, this is the nicest option for you.

- "G" : You need to soft-update but you must rez your object on the ground instead of wearing it because some some items inside it that are no-copy need to be updated, most likely animations. If you don't rez your object on the ground, the updater won't break it, it will just notify you that it could not replace some of its contents and that you'll have to retry.

- "R" : You need to have your main item replaced (for example, the right wrist cuff of a set of handcuffs), but you can keep using the older secondary items even though you received new ones, so you don't have to resize it all again. They are not deactivated upon replacement, only the main item is, and this particular enhancement does not break the link between both.

- "A" : You need to replace your whole set, even the secondary items are modified in this one, because this change impacts some or all the objects included in your set. If you keep using the old secondary items, chances are things won't work properly.


Attention, if you are updating your Restrained Elegance set, Police set or Vixen set, the table assumes that you have the mesh versions of them. If you don't, you will need to get a replacement in all cases.

Also, if your product, whatever it is, is v1.26 or below, you will need to replace it in all cases.



On top of the code explained above, each modification included in this update has its own unique identification, like A1, A2, B1 etc. In the table at the end of this post, you will find for each product (one per row) and for each modification (one per column) what choice is the best, update or replacement.


For example, modification "A1" (the fix for RLV not being detected) only requires a soft update ("U") regardless of the product you are updating.




A. All restraints


A1 (U) : Make sure the RLV is detected on log on every time.

This bug was weird and I suspect a change in the simulator software that happened a few months ago and that broke the ability of an object to speak on the chat while you log on. I mean, it had worked flawlessly for years before then. This also disturbs the ability of an object to detect your RLV, as it simply sends an owner message to your viewer and expects a response within a given time. But if the viewer cannot hear the message due to the object not sending it (but not knowing that it did not send it), the restraint waits for the response until it times out and decides there is no RLV on your side.

The fix is simply to send the RLV request once (that's llOwnerSay ("@version=xxxx") ) and then a second time 15 seconds later. In several months of testing, this has never failed to detect my RLV, even under heavy lag and/or with a very poor connection. So if you own a brand of products that need to detect the RLV of your users, I recommend you do it the same way : send one RLV version request at the moment the object rezzes, then another one if the first one times out, some time later. That way, if the RLV is detected right away, fine, the user cannot detach (for example) the product. Otherwise, the second request should act as a fail safe and avoid configuring your product for non-RLV usage while the user clearly has the RLV active and let them think there's a bug in your product.


A2 (U) : Make the RealRestraint HUD completely optional.

Without RLV, this HUD is used for 3 tasks :
- Block your clicks to prevent you from interacting with the environment (arms restraints only).
- Force you to stay in Mouselook by turning your screen black when you're in third person view (arms restraints only).
- Cover your screen with a more or less opaque prim (blindfolds only).

If your RLV implements the RLV API v2.9 (that's the version introducing vision restriction spheres used by blindfolds), and in the case of blindfolds if you set the Blindfold plugin to "Method: RLV" (because you have the choice there), then the restraint won't even rez a RealRestraint HUD anymore and if you are already wearing one, you will be able to detach it and it won't nag you for another one. But when you switch to "Method: HUD" (for blindfolds) or if you activate "Block" (for arms restraints), a HUD will be rezzed and will attach to your screen like before, and become non-detachable until those options are cleared.

This change therefore lets you spare one attachment slot by not wearing the RealRestraint HUD when it is not needed.



A3 (U) : The RealRestraint HUD used to update its own physical status once per second while seated. Not a big deal, but an unnecessary resource consumption nonetheless.



A4 (U) : You could be completely locked out from your own arms cuffs by doing the following :
- Turning /77 off.
- Restricting speaking on private channels, especially channel 77, thanks to the Control plugin.- Restricting "touch self" with the Touch plugin.
- Locking and setting a timer.

When the timer would end, the key would return to you but you wouldn't be able to access the menu of your cuffs.

The fix makes the main script send a signal to Control when the timer ends, and Control no longer restricts you if you have your own key and there is no timer set.



A5 (U) : RR API additions for third-party plugins.

- New link messages from Lockable :
  * -41 : Timer just ran out (ID field is irrelevant).
  * -42 : Timer was just set (ID field contains the time in seconds), also sent right after a -41.
  * -43 : Same as -21 but sent only on request with a "Data" link message sent to Lockable. The NUM field is different so a third-party plugin relying on -21 messages to count time will not be confused by one of them being sent on request from another plugin.

- New link messages to Lockable (strings are case-sensitive, don't include the quotes)) :
  * "Data" : Tells Lockable to resend its latest -21 link message, but with a -43 number instead.
  * "Names" : Tells lockable to resend its latest "Locks" message (not "ForceAnim" to avoid displaying an "Autoref" button on the main menu of a restraint that does not animate the avatar).
  * "Name" : Tells Lockable to set its keyholder display name to the one specified in the ID field. Attention, Lockable does not check that it matches the display name of the avatar whose UUID is the keyholder, you can set what you want.

- Specification of the -21 (and -43) link message sent by Lockable every 10 seconds (the new fields are Keyholder UUID and Name at the end, after a comma) :

TimeInSeconds/TimeLeftInSeconds/BestTimeInSeconds/BestEscapeTimeInSeconds,Gender/ShowingTime/UsingAlarm/TimesCheated/Verbose,Blocked/Mouselooked/Escapes,Keyholder_UUID/Keyholder_Name

- Aliases for "Lock", "Tie", "Unlock" and "Untie". Now when you send a "Cmd:Lock" link message to Lockable, it will work even in the case of a rope (which would expect a "Cmd:Tie" message). Same with "Unlock" and "Untie".

- Aliases for "Take keys", "Tighten", "Leave keys" and "Loosen". Same thing.

Please note that all that is explained above in this modification does not impact you as a user directly, but those changes are relevant to third-party plugin creators, so some of those third-party plugins may later issue updates that require you to update your RR products to v1.31. Don't worry though, if you're updating your RR products to get the other modifications and enhancements, you will get this one automatically too.



A6 (U) : Autolock sometimes forgot the names of the available locks until a reset. Now Autolock sends a "Names" link message (see modification A5 above) upon reset to request the list of locks from Lockable.



B. Blindfolds


B1 (U) : Locking to "Medium", "Thick" or "Opaque" then unlocking or locking to "Blurry", "Very thin", "Thin" or "Lock" used to clear most of the RLV restrictions but not all (for examples @shownames wasn't cleared). Now all of them are cleared as they should be.



C. Gags

C1 (U) : When turning Autorefresh off while wearing another RR gag, the former will do "as if" it were unlocked so that the other gag will animate your mouth, regardless of its type and lock (remember, RR gags negotiate among themselves to find out which one must garble and which one must animate so there is no conflict).

C2 (U) : Fixed the "Anim" field going blank which made the gag stop animating you until it was reset. This was due to another gag superseding this one and then being unworn before it.

C3 (R) : Ball gag & Ring gag : The neck piece is now non-detachable when the gag is just locked with "Lock". If this bothers you, you must detach the neck piece before the gag is locked.

C4 (U) : Added an "OOC" switch in the Gag plugin menu to allow Out-Of-Character chat when gagged (it is off by default). Attention : if you are using the original RLV, this fix requires that you use RLV 2.9.24.1 or above, because prior versions would not let OOC go through at all (this was a bug that needed to be fixed urgently in the RLV, 2.9.24.1 was released only a couple of days before this RR update).

C5 (U) : Now any "Total" lock takes precedence over any other lock in any other RR gag when it comes to garbling, to avoid cheating.

C6 (U) : Now "Typing" is no longer monitored when RLV is active. This is to avoid viewers like Radegast, which triggers the Typing animation even when the chat is redirected, from showing the world map continuously while typing when gagged.

C7 (G) : Deluxe Gag and the Ring Gag : The "Ringgag_Lelutka_Big" animation could be overridden on the upper right lip corner by other Bento animations.

C8 (A) : Deluxe Gag with Bridle : The Bridle would bring up the menu when touched, which was desired but allowed for cheating around /77 restrictions, so it has been removed. I have no idea if this fix was already live or not before this update, so I'm putting it here. Please test with your own Gag+Bridle combo before trying a replacement if you're not sure, by wearing both and clicking on the Bridle HUD. If you get the menu, then this modification is for you.



D. Restrained Elegance set

D1 (A) : The new Restrained Elegance set (the mesh one) was not compatible with Lockmeister at all, meaning it would not let chains spawn to some specific pieces of furniture.

D2 (A) : The particle chains should look better and tighter now on lower spec computers.

D3 (A) : The particle chains are now desaturated and no longer yellowish like before.

D4 (U) : Legs cuffs only : The Style plugin was not "per-lock" so setting the style to "invisible" in a lock would not let the ankle cuffs show again when unlocked.

D5 (A) : The engraving on the elbow cuffs would disappear when unlocked.

D6 (A) : The leash chains would not appear in u-shape.

D7 (A) : Keys reappeared on the secondary cuffs when reattaching them while the keys were taken (attach two cuffs, take the keys, detach the left one, reattach it, the key would reappear on it).



E. Serious Shackles set

E1 (A) : Same as D7.



F. Vixen set

F1 (U) : The "Deny" button was missing from the VixenTex plugin.

F2 (A) : Did a sanity pass on the particle chain scripts to make sure there is no conflict between the chains going between the cuffs and the ones going from the cuffs to pieces of furniture.

F3 (A) : A chain was missing in the "hands to collar" and "r-prayer" locks.

F4 (R) : Added a Style plugin to let you choose whether to hide or show the elbow cuffs in any lock or even unlocked (please note that you can still detach them at will in "Lock", regardless of the style you choose).



G. Police cuffs

G1 (A) : Added several rings hidden inside the wrists, elbows and ankle cuffs to let you adjust the cuffs to the rigged chains more easily if you don't want to stretch the cuffs too much. They're aligned with the rest of the chains so if you want to use them, you need to :

- Edit the cuff you wish to modify, check "Edit Linked" in the edit window.
- Cam inside your body (disable camera constraints if you have to, that's in the Advanced menu, Ctrl Alt D if you don't see it).
- Switch the ruler to "Local" instead of "Attachment" on the drop down list in the edit window.
- Click on the rings you want to move and move them out, aligning them with the rest.

You can see them on these pictures (I've made them glow in the pictures to emphasize them, but they don't glow in the retail product) :

Four rings in the left wrist cuff (four more in the right one too)

Four rings in the left elbow cuff (four more in the right one too)

Four rings in the left ankle cuff (you guessed it, four more in the right one as well)

Attention : This modification implies that since the number of prims changes, there is no way to port the times over the update, sorry about that.

G2 (A) : same as D7.



H. Police Collar

H1 (A) : Added a switch in the Zapper plugin to let the sub activate or deactivate the electric shocks, as some people might find it too hardcore or sadistic. The Zapper plugin is now deactivated by default, the sub has to activate it manually (if the collar is locked by someone else, the keyholder has an "Ask" button). Once activated and locked, the sub cannot deactivate it again until it is unlocked.

H2 (A) : Slightly increased the time for the blurriness effect to clear after being zapped.

H3 (U) : The Style plugin did not distinguish "Lock" and "Unlock".



I. All collars

I1 (U) : The Spy plugin didn't escape URLs, so regions with a space within their name would not give correct slurls.



J. Jammer

J1 (U) : The Jammer would not reset its target nickname upon owner change (you don't have to update your Jammer for this if you don't want to, you can simply reset it from the main menu and the nickname will be reset too).



Here is the table recapitulating all the features :


That's all ! This update is no way mandatory, but as you can see, there are a number of fixes and improvements that will make your life easier.

You can find an updater at the following places in-world :

My little shop

Dark Wishes

Roper's Dark Playground

Chorazin's main store

It looks like an orb floating above a pedestal, just click on it and follow the instructions.

Please note that Pak (where my little shop is) seems very laggy these days, I don't know why yet, and it interferes with the update process. I recommend you try one of the other three slurls in priority. Chorazin's place is the least laggy of all.


Have fun and Merry Christmas in advance !

Marine





Small update to the Need For Seed HUD

$
0
0
Hi !

Here is a small but long standing update for the Need For Seed HUD, which didn't have a "Clear" button to clean yourself up.

Now when you click on the red cross on the bottom right corner of the HUD, you also get to choose which layer to apply the invisible textures to Maitreya to clean your body (if you're a Maitreya user), and it loads the invisible textures to the two Omega scripts, making them ready to apply them on your body (if you're not a Maitreya user), exactly like all the other applier buttons. Then you can click on one of the Omega buttons, and/or one of the Lolas buttons (if you're using Lolas-compatible breasts like the Proud Girls), and you'll be clean again !

Please note that depending on what mesh head you use, you might have to use the Omega button several times, if you've applied cum to several layers. For example, if you've applied cum to the Lipstick and more cum to the Tattoo layers of your Lelutka mesh head, you will have to use the Omega button twice after clicking on the red cross. Once to clear the lipstick part and once to clear the tattoo part.



To update your Need For Seed HUD, simply rez the updater contained in the folder on the ground and wait, you will receive a new box a moment later. Leave the updater alone, it destroys itself after a while. Also no need to update the Feed Her Need For Seed HUD, this one is not impacted by this update at all, so no need to give a new copy to whoever you already gave a copy to.


Have fun !

Marine

Xmas gift - Sheer Camo Latex Catsuits !

$
0
0
Merry Christmas !

So a friend of mine asked me the other day to make sheer versions of the camo latex catsuits for her. I said ok, why not, that's a good idea... but why for you only ?

As a result, here are sheer camo latex catsuits for everyone ! Yes, for you too Ashe, since it was your idea in the first place :)









You can get them from the gift box at my shop in Pak, the box will stay there for two weeks starting today the 24th (*), so if you're a fan of catsuits, be sure to stop by and get yours !

If you are not familiar with the Maison De La Marquise Latex Catsuits, here is how you apply them :

- Wear the neck piece and one of the pairs of boots.
- If you're a Maitreya user, simply click on one of the buttons and choose the layer, and that's it.
- If you wear Proud Girls or other Lolas-compatible breasts, click on the "Bra" or "Top" buttons with a pink "L" underneath to apply the same textures to them as well.
- If you use another mesh body than Maitreya, for example Slink, you need it to be Omega-compatible and you can't use an Omega relay, since those do not relay materials. You click on one of the color buttons, then on the "Tattoo", "Inner" or "Outer" button.

Please note that although there is a neck piece and boots included, they are no-mod unlike the ones included in the retail versions of the catsuits. But if you own the latter, they work just the same and you can freely use them instead of the no-mod ones.


(*) So this means I will remove it Monday the 7th. Unless I forget or I'm too tied up, both of which being very likely.

PS : The military cap is not included. But if you like it, you can find it here.

Third update to the Police Collar

$
0
0
Hello and Happy New Year !


Yes, this is yet another update to the Police Collar, and this one is about popular requests. There are a few of them, plus a few bug fixes, and I will develop for each one of them below.

There's a lot to say so if you don't want to read, here is the "tl;dr" version :

- The Police Collar is now able to suppress your speech after a punishment, even if you are gagged with RR gags. The speech suppression lasts until your vision returns to normal.

- The Police Collar is no longer restricted to just your user name or display name when it comes to finding out if you're speaking or not. The keyholder can now specify additional names to also monitor renamers you could be using (or RR gags with the "rename" function on).

- The Police Collar will no longer punish you when you are trying to struggle out, except when you fail a move (so it will punish you, just not as often).

- The level of punishment is chosen in a smarter way now.

- The relative position monitoring (a.k.a. "Stay close to Mistress, girl") is now working perfectly in all cases, with the right tolerance and all.


To update your collar and get these new features, you need to go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes


Once there, click on the updater and follow the instructions. You need to choose "REPLACE" for this one as both the Zapper plugin and its Zapper_slave script have been modified, and the latter is contained in a child prim so the updater cannot update it without a replacement. Don't forget to save your times. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.




Now that this is out of the way, let's get into the specifics.



Speech suppression

I've often been asked to make it so the collar would suppress the speech after being zapped, and this makes sense as the current goes through the throat, it would be normal to paralyze it for a short time.

Problem is, what about gags ? Suppressing the direct speech is easy, but there is no way for an object to suppress the chat redirection RLV command that most gags use, so the sub would still be able to speak through a gag even after a punishment since when they speak it goes to a private channel instead of channel 0.

Well it works now, as long as the gags you use are RealRestraint gags (Deluxe gag, Ring gag, Ball gag, Tape gag, Isolation Hood or Mummy Gag), because they have a nice feature : they negotiate between each other to find out which one should garble the speech and which one should animate the mouth. If they didn't, wearing more than one gag at the same time would lead to double garbled speak unless all of them but one were set to "silent".

This is what the Police Collar will do from now on as well. When you are zapped, it pretends it is a very tight gag that supersedes all the others for a short time, that way you can't cheat. Even better, the speech suppression does not occur right away, you have 3 seconds during which you can speak and emote at will (this replaces the former allowance of 10 characters and 1 message only). After this delay, if you say something or emote something that goes beyond 20 characters ("/me" included), then whatever you say will be replaced with a predefined, random emote. That way you won't believe there is a bug or some chat lag when you try to say something after being punished, it is clear that your speech is restricted.

If the gag(s) you are using is not RealRestraint, then the speech suppression won't work, obviously, so you have a switch in the Options menu to completely deactivate it so it does not emote automatically.

The speech suppression remains active as long as your vision is blurry. You can speak again as soon as the vision returns to normal.

There is a switch in the Options menu named "Repl. chat" (replace chat). It is on by default but if you turn it off, your chat and your emotes (regardless of length) are suppressed after a punishment and are not replaced with a random emote. This is good for the case when you are using a renamer or a gag that is not from RealRestraint, as those cannot be suppressed by the collar. Keeping the switch on would add a dummy emote after everything you say through the renamer.

 




Tracking renamers

The second popular request was about renamers. RealRestraint gags and some other attachments are able to grab your redirected speech and say it on the public chat channel with another name than your own. For example, if you use a RR ball gag and use its "rename" function in the Gag plugin, you can rename yourself to whatever you want. If you enter "Pony", then whatever you say will be said by the gag under the name "Pony", be it direct chat or emotes.

But then, how does the Police Collar know it is you who's speaking ?

Simple, by letting the keyholder manage a list of names to monitor. By default, your user name and your display name are automatically monitored, meaning that if you speak under that name (or any of your attachments, for example a RR gag which renamer is not set), then the collar will detect that you are speaking and will punish you.

But the keyholder can add more names to that list and remove others (they can't remove the user name and the display name though, those are always monitored). They can do that either by entering the list by hand, with names separated by commas (","), or they can add or remove the name of the last attachment of yours that spoke at that time.

 

In the Speech menu, the keyholder can add a list of names, remove a list of names, set a list of names from scratch (remember, the display name of the wearer is always in the list, it can't be removed), say the list on the private chat, or add or remove the last speaking attachment for ease of use. If "monitored" appears after "Last speaker", this means that this attachment is already in the list.

For memory reasons, the list cannot contains more than 10 names, display name of the wearer not included. It will fail silently if you try to add more.

When your speech is suppressed and you try to speak or make a long emote, the collar will say a random emote instead, with the name that was used last time you were punished. That way, it will look like it is you who's making the emote.

For example, if your gag is set to name you "Pony" and you speak on the chat, your keyholder can just press the "Add last" button on the Speech menu and "Pony" will be added to the list if it is not already there. Next time you speak through that gag, the collar will know it's you and it will punish you. And then if you try to speak again, it will emote instead with the name "Pony", as if you were talking through your gag again (but it won't punish you for it this time).


There is a known limitation due to how the listener is managed. The collar can detect who is speaking only when the Speech restriction is set, otherwise the public listener is off to avoid unnecessarily listening to the chat (listening to public chat requires more script time if the area is busy and everyone is talking on the chat, even if you optimize the listener as much as you can). This means that when the speech is not monitored, when you are punished and your speech is temporarily restricted it will speak for you with your own name, as it cannot guess what name your gag or other renamer may be renaming you to.

When the sub is punished and her speech is momentarily suppressed, as I pointed out above the collar says a random emote on the chat instead... with the name of the last speaking attachment which name is monitored by the collar. Confusing ? Let me give you an example.

Suppose you are gagged and your gag renames you "Pony". If your speech is monitored by the collar and you speak on the chat and it punishes you, then your speech becomes suppressed for a few seconds until your vision is no longer blurry. If you speak during the speech suppression period, then instead of letting you speak or make a long emote, it will say an emote on the chat with the name "Pony". This name is the name of the last attachment of yours that spoke on the chat before the punishment (remember, "Pony" is the name of the gag when it speaks, not yours, and the gag is an attachment, not an avatar, yet it has to pretend to be one) and which name belongs to the list of monitored names. There may be others names, of course, depending on what your keyholder has written in it.

Problem is, if the speech is not monitored, the public listener is off, so the collar has no way to know that "Pony" has been speaking (nor should it care). But if you are punished for another reason, for example for being too far from your keyholder, your speech must be suppressed all the same, meaning that if you speak (through a gag or not), then that chat must be replaced with an emote... but with what name ? The gag does not know if you are speaking or if it is one of your attachments.

So all it does is tell all your worn RR gags "hey, gags, I'm taking over for now so be quiet" and redirect your chat to a particular channel temporarily. When you speak, it detects it and speaks for you on the public chat, either with a random emote or with your own emote if it is less than 20 characters long. If your speech was not monitored (i.e. if you are punished for any other reason), then it will not even try to guess what name you should be renamed to (because it can't know) and will just emote with your own avatar's display name. So don't be surprised if the renaming does not work all the time. It works well when the speech is monitored, and it does not work if it is not monitored, this is a known limitation.

You could ask "how about using the last name that was used by the sub in all circumstances ?", but in that case, what happens when the keyholder deactivates the speech monitoring while the sub was using a renamer, and had her name changed afterwards ? The collar wouldn't know since it wouldn't listen and it would still use the old name. It would be even more confusing than reverting back to the name of the avatar.



Penalties

I have extended the penalties system of the speech monitoring to the other three monitors (relative position, absolute position and tampering). What I mean by that is that now when you get punished for the first time in a while, the punishment is light. The second one is harder and the third and subsequent ones are the hardest. Punishments are level 1 (lowest) to 3 (highest) but penalties can go over 3 so the more you get punished in a short time, the longest it takes to go back to  normal.

Every minute the "heat" goes down a notch until it reaches 1.

For example, if you are restricted to stay within a certain distance from a fixed position with a tolerance of 5 seconds, then the first time you step out of that area for more than 5 seconds you will be punished with a light zap (level 1). If you stay there for 5 more seconds, you will be zapped a second time with a medium zap (level 2). If you keep staying there you will get zapped at the highest level (level 3) every 5 seconds. And if you go back to the allowed area for 1 minute after having been zapped three times then step out again, you will get a medium zap again (and then high zaps while you stay out).

Unlike the speech monitoring, these penalties are not written in the menu because they are more like a dynamic way to choose the level of punishment, but they're there.



Tampering

Until now, trying to struggle out automatically punishes the sub at each try. It is too deterministic so now the collar punishes only failed attempts, but successful attempts go unnoticed.

More over, there is now a switch in the Options menu named "Monit. Tamper.". If it is off, then the collar will not punish the sub for struggling at all.






Bug fixes

- We could get a "@clear" RLV command sent to a viewer with RLV inactive. I haven't seen or heard about this happen but it was possible in the code, so now it's conditioned by the detection of the RLV.

- The relative position monitoring did not work until at least one punishment was issued, if the keyholder was online but in another sim.

- The relative position monitoring did not work with a tolerance higher than 10 seconds.

- The default maximum distance in the absolute distance monitoring is now 20 m instead of 200 m. It was meant to be 20 m by default since the beginning (of course nothing keeps you from setting it back to 200 m manually).

- Fixed a typo when activating the Zapper.



Have fun !
Marine

RLV 2.9.24.2

$
0
0
Hi there,

Here is the latest version of the RLV, with a double fix to bugs that have been annoying me for some time, and I'm sure they've been annoying you too !

Namely, the bug that would sometimes make your outfit a mess when relogging, with attachments being worn again while you remember having detached them in the previous session, and attachments missing (including locked ones) while you were sure you were wearing them before logging off.

Now, I'm not entirely sure if this bug is not my own doing. The RLV has a lot of my code in the appearance manager to speed it up and make it easier to use, especially with scripts (obviously) and one of my changes might have provoked this bug. Or not, I have no idea at all. The fix itself does not fix the bug but sets things straight after changing your outfit, by calling a "rebake textures", which also re-synchronizes your "Current Outfit Folder" (aka "COF") with what you see on your screen.

For example, before this fix, wearing shoes then detaching them immediately, without giving enough time to the viewer to update its COF (compounded by possible lag due to your connection), would sure make your avatar wear the shoes again at the next relog, whether it happens immediately or hours later. This was because when detaching the shoes, the version of the COF containing the link to the shoes hadn't had time to arrive to the viewer from the sim when the shoes were already detached. So when the message finally arrived, it would contain the link to the shoes, effectively "programming" the viewer to reattach them next time it had to synchronize its COF.

When you rebake the textures, and now whenever your outfit changes, the links in the COF are checked against what you are wearing in-world. Doubles are removed, links that point to attachments that are not there are removed, and links are added for attachments that are worn but not in the COF.


The second fix is for another bug that this time I'm sure is my doing. Except that this is not really a bug. It is a fix for a fix, more like.

That fix ensures that whenever the outfit changes on an avatar nearby, your own included, the skeleton of that avatar is reset so there is no odd deformation. These deformations would occur when wearing attachments that trigger Bento animations with bone displacement.

I'm not a fan of the fix itself, but it does the job so it's ok for now. However, there is something I do often, which is wearing an attachment and immediately editing it. Problem is, the new version of the COF is received by the viewer while I'm already editing the attachment, hence the skeleton is reset... and that puts the avatar in a T-Pose, very high above the ground. If I'm trying to position the attachment at that moment, it may disrupt the positioning and I have to do it again. Annoying.

So this second fix will prevent the viewer from resetting the skeleton while you are editing an attachment of yours.


You can grab the Windows version here :
http://www.erestraints.com/realrestraint/


The MD5 hash for the Windows executable is :



Have fun !
Marine


New product : Env Box

$
0
0
Hi !

If you love shiny latex, and/or if you like taking photos in Second Life, you probably already own what is called a "reflection box" to enhance the shine on your suits or on any shiny surface such as metal or plastic.

This product, the Env Box, is meant to go one step further by providing actual environment maps that rotate around you to compensate for your orientation and make the reflection more realistic.

The Env Boxes (because there are several) allow to make the environment reflection go from this :


To this :


And from this :


To this :




The additional shine makes a real difference, doesn't it ?



This post is divided in two sections : the first part demonstrates the product and the second part is the actual manual.



Demonstration

There are many reflection boxes available on the market nowadays, from simple freebies to complex products. Some of them are subtle, others are very bright. Notice that I call them "reflection boxes" while the product I am demonstrating here is called an "environment box" ("Env Box" for short). There is a reason for this that I will explain now.

The Second Life viewer is, at the time of this writing, unable to render real-time reflections of the world around your avatar (*). So for now, when you want something to shine like metal or polished plastic, reflection boxes are your best bet because they project a picture onto your avatar, making the shiny parts "reflect" the projected picture.

It really is an improvement over the stock environment reflection featured by the SL viewer, but as far as I know, all the reflection boxes I tried out only project a single image in all six directions. This is not really an environment where you would expect to see different reflections depending on where you look from. In other words, none of them contains an actual 360° panorama, but the Env Box does.

It projects six different images organized like a cube in a way that there is no gap or seam between them, and those six pictures form a complete environment, hence the name "environment map" or "cube map" used by video games.

These images are 512x512 so they don't take too much video memory (1.5 times a 1024x1024).


What's more, it is able to rotate around you to always face the same direction, so that when you walk around and make a turn, the reflection on your body will actually rotate too in a realistic way.

For example, here I am facing North while wearing an Env Box :



And now facing West with the same Env Box, still worn :


Notice the shine changes, because the Env Box rotated clockwise to compensate and stay aligned with the North regardless of my own orientation. The two big white blobs of light on the latex are the reflection of the sun.


You can also drop your Env Box in-world and it will follow you, keeping its orientation constant so that when you turn the reflection turns as well.


Here are two videos of the "Gdansk" environment rotating around a sphere and around me (I'm wearing the KaS Corset-Dress in the second video, with an Environment value of 60 and a Glossiness value of 255 on its surface). These videos help showing the environment map in its entirety.



 


Notice that this environment is not the same as the one shown in the pictures above. This is because the Env Box contains not one environment, but 20 ! "Corsica" like in the first pictures, "Gdansk" like in the animated pictures here, and 18 more, one for every situation.


Some of them are bright, others are soft, some are fit to be worn outdoors and others indoors. All of the pictures were taken with brightness set to 20% but you can modify the brightness yourself with a click on a menu button, from 5% to 100%. All the pictures in this montage were taken in Second Life without any modification save for adding the names and putting them together in a single picture.

For "Panorama", "Corsica" and "Patio", I oriented the box in order to match the position of the sun in the "Sunset" Windlight setting, knowing that the box is able to rotate itself to keep its global orientation. All the other shots were taken with the "Midnight" Windlight setting, that's why they appear darker.

Some of the environments are marked "tintable" because they are not very saturated (like "Fireplace") or not saturated at all (i.e. in shades of grey, like "Georgentor"), which means that you can use the "Color" menu of the box to tint the environment yourself. Of course, you can tint any environment, but some react better to tinting than others.

For example, the first page of the "Color" menu gives you several colors like "Sunrise" (a light pink), "Sunset" (a light yellow), "Night" (a dark blue) etc. This makes it very easy to tint your environment according to the current time of the day in the sim. If the sun is setting and you are outdoors surrounded by buildings, choosing Bonifacio and tinting it "Sunset" works very well. If you are in a dark room with many red lights around you, choosing "Lights" and tinting red does the trick too.

Substance Painter and Substance Designer users will recognize "Corsica", "Gdansk", "Patio", "Bonifacio" and "Panorama" because they are some of the default environments featured in these two 3D applications.

Please note that since there is no LSL function to change the projectors via a script, this means that the product contains 20 objects, all identical save for the images they project. It is up to you to wear the one you want (only one at a time, of course), they all contain the same script and behave the same way.

A second product called "Environment Probe" (yet to be released at the time of this writing but it will be out soon) will allow you to create your own environments from SL pictures to make your own environment boxes.



That is all with the demonstration of what the Env Boxes can do. You can find the product here on the Marketplace, since it is copy/no-transfer please try the demo first because no refund will be possible if you buy and don't like it, since you won't be able to return it (refunds are possible only for double purchases).




The rest of this post is the actual manual of the Env Box.






Manual

This section of the post explains how to use the Env Box.

First of all, to make sure you can actually see the projections sent by a box, you must turn Advanced Lighting Model on in the graphics preferences of your viewer :


It doesn't matter if you turn the shadows on or not.

Secondly, only surfaces that have an environment value greater than 0 can reflect the images of the Env Box (or any projected picture for that matter). For example, the "Env. sphere test (root)" object contained in the product has a white specular texture, 255 glossiness and 255 environment, which makes it reflect like a mirror, there is no blurriness. If the environment value is set lower, the shine is darker. If you decide to give it a "Low", "Medium" or "High" shine instead of a specular shine (what is called "legacy shine"), it will work too. But if there is no environment value at all (or no shine) and no legacy shine

For example, if the sphere is set to 255/255 with a white shine color, you see this :


It shines like a mirror. Notice the specular lights that come from the projection (you didn't see them in the pictures in the Demonstration chapter because I made the shine color black, but here I made it white to actually show them on purpose). Please note that unlike in the Demonstration chapter, I have set the brightness of the box to 100% instead of 20% to show how bright it can go.

If you decrease the Environment value down to, say, 50, you get this :



It is a lot darker (as if you turned the brightness down to 20%, since 50 is roughly the fifth of 255), and if you set it to zero you get this :



Well, this is interesting. You get no reflection except for the specular shine coming from the projections... with a color that is the average of the projected picture. In plain English, this means that if a picture is roughly blue (like the sky), its specular shine (one of the circular reflections you see above) will be blue.

If you lower the glossiness (the lower the glossiness, the blurrier the reflection), let's say to 80, you get this :


No reflection but blurry specular lights.

And if the surface has some environment value, then you get blurry reflections :

 

But... wait. What are those black gaps ?

They are the result of the surface not being fully glossy. Glossiness is like the inverse of roughness (if you're into 3D design, you must know that SL is not PBR but uses a spec/gloss shader instead of a metal/rough shader), the lower it is the more it blurs the projected pictures. Which is a problem because it also blurs the edges of the pictures, and that's why you get gaps.

There is a way to circumvent that though. The "Optimal Glossiness" menu of the Env Box allows you to close the gaps, literally. I will explain this feature below, when it comes to using menus. For now, see how it looks like with the "Optimal Glossiness" of the box set to 80 :


A blurry reflection with no gaps, as expected. This is very good for latex because latex does not actually reflect like a mirror, it is a bit rough and grainy so its glossiness value should be lower than 255 (I often use 150 to 200 personally).


Now... the bad news. I showed you that a surface needs to have SOME environment value to reflect the projected pictures, and it turns out that Maitreya does not have any. Zero environment value and no way to turn it up. I would really like Onyx LeShelle (owner of Maitreya) to update her popular mesh body to finally let us add environment to the skin, tattoo, underwear and clothing layers (ideally independently), like we can change the glossiness. Feel free to ask her if you want your Latex Catsuits to shine on your Lara mesh body !

There is some consolation though, the Env Box is not completely ineffective on a Maitreya latex suit. Let me show you.

In this picture, I am wearing a deep black MdlM latex suit on my Maitreya Lara mesh body, at midnight, with no light around me and no Env Box worn :


As you can see... well not really, you can't see anything at all.


Now I wear the Gdansk Env Box (ok, it is is a rather bright one, unfit for a night setting, but this is just for the sake of the example) :


It doesn't reflect on the latex, but at least it behaves like normal body lights with colors. It's not bad, but it's not an actual reflection either. If Lara had an environment value on its layers, you would see reflection.


Slink does have this ability though, so let me show you how it looks with it :


See the difference ? This is a Slink Hourglass body with the deep black MdlM catsuit applied to it, an environment value of 40 and a glossiness set to 75 (and optimal glossiness set to 75 in the env box as well to avoid seeing gaps in the reflection).

Here is how it looks at noon (I set the brightness of the box to 100% for this one) :


Now we're talking. Well, it shines a lot more than latex but once again, this is for the sake of the example. You wouldn't normally set the brightness so high, 20% is enough in most cases. The latex is supposed to be black after all, so the reflection should be dark. More like this :


Don't mind the black gloves, they're the Maitreya hands with the latex still applied. That way you can see the difference in shine between Slink (which has environment) and Maitreya (which does not).

Notice that the MdlM Latex Catsuits have a grain, they are not completely smooth, so it is normal that the glossiness is not set to 255. A value of 75 here is plenty, as you can see on this closeup :


But Slink also allows you to clear the normal map, which in the MdlM Latex Catsuits contains both the grain and the seams. Doing so makes the suit completely smooth, so when you do that you can set the glossiness to 255 (and change the optimal glossiness of the env box to 255 too to match and avoid gaps), and you get this :


No creases, no seams, no grain, it looks like a smooth latex skin now.


Now, don't get me wrong, this doesn't mean that Maitreya Lara is incompatible with the Env Box. This simply means that if you are wearing a Maitreya Lara mesh body, and you want to wear latex on it, you you will prefer wearing mesh latex rather than applied latex. For example, a KaS mesh latex dress like I demonstrated at the beginning of this post. I just wish applied latex also had the ability to reflect the environment.

One thing though : alpha-blended textures do not reflect a projected image at all. This means, in plain English, that transparent latex does not reflect reflection lights or the Env Box, unless it is set to Mask Mode (in which case the less transparent parts are fully opaque and the more transparent parts are fully invisible, this works well for stockings, gloves and bodysuits, less so for transparent or clear latex). This is a limitation of the SL rendering engine, there is nothing we can do about it I'm afraid.


The features

Now that everything technical has been explained, let me explain how to use the Env Box.

Firstly, as I pointed out above, since we can't change a projector texture through a script, there are 20 "Env Box" objects in the product. Each one is for a particular setting, some are indoors, others outdoors, some are soft and others are bright, some are tintable and others have built-in colors in them (but you can still tint them if you want).

This means that you wear one, and exactly one Env Box. You can wear more but it will only make the reflections look messy.

The rest of this manual explains the different menus and features but you don't need to know any of this to make your Env Box work, the default settings are more than enough for most users.


Getting the menu

When the box is worn, you can access its menu either by touching it or by saying on the chat :

/456 *

or

/456 env

The channel to access an Env Box is always 456 and you can only access your own Env Box. Each Env Box has an internal prefix, which is "env" by default. If you change the prefix of an Env Box, you access its menu by typing its prefix on channel 456 instead of "env". Saying "*" on channel 456 always works but you may get several menus if several Env Boxes are around.

The menu you get looks like this :


The "Active" switch turns all the lights of the Env Box on and off. It also stops the "follow" mode (see below) when inactive.

You can see the prefix mentioned on the menu.

You may argue that it is difficult to click on the box since it is nowhere to be seen. In fact, when invisible, it looks like this with "Highlight Invisible" mode on (that's Ctrl-Alt-T to highlight invisible surfaces in red) :


That's the small rectangles floating around your body.

If you set it visible in the Options menu, you will see the whole box :


Notice that the box is partially under the ground, this is for two reasons. The first one is that it can light your feet from below, and the second one is that it hides the lower parts nicely when the box is not visible. That way it is unlikely you will click on it by mistake.

Please note that the prims are alpha-masked, fullbright and their texture is invisible. As a result, they do not project shadows and do not interfere with alpha-blended textures on your body or in-world.

Lastly, the box is worn on "root" (a.k.a. "avatar center") because it should stay upright regardless of the rotation of your avatar. If it were worn on any other attachment point, it would rotate and change position as you walk, sit etc. You don't want that so it must be worn on root.


Worn/Rezzed, Follow Mode

Any Env Box actually works whether it is worn or rezzed in-world, and behaves similarly in both modes.

By default, when it is worn, it rotates around your body to always face the same global direction. When it is rezzed in-world, it does not rotate but follows your position while you are in the same sim. By default, if you leave it there, it derezzes after an hour of inactivity.

You can change this behavior in the "Rotation" menu :


If you switch "Follow" off, then if the box is worn it no longer compensates for your avatar's orientation (making the reflection less realistic, looking like the world revolves around you... but it doesn't, does it ?), and if it is rezzed in-world it just stays where it is, it is said to be "static".

If you click on any of the directions you can set an angle for the box (absolute if "Follow" is on or if the box is rezzed, relative to your avatar if it is worn and "Follow" is off). By default, the "Front" prim is oriented towards the North (that's 90° because trigonometry).

The "Walk back" switch depends on your Animation Overrider. Most AOs will make your avatar face the camera when you walk back (using the down arrow key), but some don't and make you walk backwards like Michael Jackson. If you use one of the former, keep "Walk back" on, otherwise turn it off.

For technical reasons (more like an SL limitation), if you are in Mouselook and sitting on something, for example a vehicle, the Env Box won't rotate at all because it cannot tell the rotation of the prim the avatar is sitting on, and its own rotation is superseded by the orientation of the camera when in Mouselook. Maybe I could fix this later, thanks to the "@getsitid" RLV command, but since the Env Box does not require RLV to work at all, and given its script is already quite big, I don't really want to add a feature like this.


Brightness

The "Brightness" menu allows you to set the brightness of the whole box (i.e. the "intensity" factor of all 6 projections) :


There is not much to say, except that the brightness is 20% by default ("0.2" in the text on the menu). SL is not PBR (Physically-Based Rendering, an advanced technique of shading surfaces), so it is up to you to choose the appropriate brightness according to where you are and what you are wearing.

For the "Stars" and "Lights" Env Boxes, I recommend you turn the brightness all the way up to 100% because they are actual lights, so they're supposed to be bright. Of course this is your choice entirely.

"Tokyo" looks good at 50% brightness because it has a lot of lights too.

A good rule of thumb is, if the Env Box features direct lights, its brightness can go up depending on the intensity of said lights.


Color

Being able to tint your Env Box is a nice feature, because it lets you adapt the reflection to the ambient light. Not all places are lit with white lights, some are more intricate than that and some Windlight settings are created to set a particular ambience. Even the four default SL times of the day light the scene differently.

This is why you have a "Color" menu at your disposal :


This menu lets you pick a predefined color or set your own with the "CUSTOM" button (with which you can enter either a RGB value or a vector value). The first page of the menu features the most common colors you will want to set your box to, depending on the ambient light in the sim.

For example, here is me with an Env Box that is not tinted (or more exactly, tinted "White") in a sunrise setting :

 

It does not look bad, but I think it looks better if the Env Box is tinted "Sunrise" :


It is also a good way to tint the tintable indoors environments such as "Fireplace", "Georgentor" and such, because they are weakly saturated or not saturated at all (i.e. they have little to no colors in them) and you want to reproduce the average colors of the walls around you.

Another nice feature is that if you tint the box manually with the SL tools, it will detect the color change and apply it to the projections too. That way instead of clicking on "CUSTOM" and having to guess the RGB values of the color you want, you can simply use the SL tools and set the color with their UI, it is much easier that way.


Size

You don't normally need to change the size of your Env Box, which is 2m x2m x2.5m by default. However, there are cases, for example when lying on the floor or in a bed, where you need a bigger box because otherwise some parts of your body are simply not lit.

The Size menu helps you do this :


There are two caveats to keep in mind though.

Firstly, if your box is smaller than 2.5 m (which is the case by default), it is not a cube because its height remains at 2.5 m and won't go smaller than that. This is because otherwise your standing avatar would not be lit entirely. The effect of this though, is that the reflection is deformed, stretched upwards.

Secondly, if your box is wider than 2 m, it will shrink if it is too close to someone else (down to 2 m) so you won't impose your own reflection onto others. And others using this Env Box won't impose theirs on you either. However, someone who is closer than 2 m away from you is likely ok with having your Env Box shine on their body, that's why the box won't shrink smaller than that.

This means that the box activates a repeated sensor if its size is 2.5 m or more. It is not a heavy sensor, it won't tax the sim as it pings once every 5 seconds, but it's better not to use any sensor at all.

Personally I  recommend leaving the size to 2 m when worn. When rezzed in-world and made to follow you, making it 3 to 5 m is good because otherwise, depending on the sim, you may walk out of the box before it catches up with you, despite its fast timer.

Full disclosure, when "Active" and "Follow" modes are on (which is the case by default), the timer is active and checks your position and rotation twice per second. When it detects a change, it speeds up to 20 times per second to follow you as closely as possible, and slows down again when you stop moving or rotating. The tests showed that this does not increase the avatar's script time significantly, your AO is heavier on the sim by an order of magnitude.


Prefix

This section remains empty for now but the prefix can be changed in order to control one Env Box at a time, in case you have several of them rezzed in the sim.


Optimal Glossiness

I brushed the subject earlier. In a nutshell, the glossier a surface, the crisper its reflections. The less glossy, the blurrier the reflections. Problem is, the reflections are six different textures, so their edges are blurred too and making the surface less glossy therefore creates black gaps between the images.

To address this, you have an "Optim. Gloss." menu :


Simply set it to the same (or roughly the same) glossiness as the surface you are looking at, for example when taking closeup photos, or the one you feel is most important not to show gaps or overlaps. The closer to 255, the more precise it must be. For example, setting the optimal glossiness to 255 while the surface is at 254 will show gaps clearly, while setting it at 80 while the surface is at 75 will barely show any gap.

If the optimal glossiness of the box is lower than the actual glossiness of the surface, you will see overlaps rather than gaps. Images are projected overlapping each other until you correct the optimal glossiness

Some Env Boxes such as "Stars" or "Lights" are very dark on the edges so you won't really notice gaps, which means setting an exact optimal glossiness on these boxes is less important than on realistic bright environments like Gdansk or Panorama, which are supposed to be seamless.


Options

The "Options" menu allows you to tweak the Env Box :


"Visible" lets you show or hide the box, as showed above.
"Defaults" sets all the parameters back to default.
"Alone=derez" (sorry for the caption, I did not find anything clearer and shorter than that) means that if you leave your box alone while rezzed in-world for an hour, it will self-destruct. If you turn this switch off, the box will simply become static, it won't follow you anymore even if you come back, until you reactivate "follow" in the "Rotation" menu.

Finally, "Delete scripts" deletes the scripts, as the name implies (except that there is only one script to delete). Attention, if you do this you won't get any menu or any control anymore, and the box won't follow, change color or anything, it will become an unscripted object.

By the way, there is a small issue with the "Delete scripts" button. It gives you a text box asking if you are sure, it should be two buttons instead. If you type "YES" (in capitals), then the script will be deleted, otherwise it will be ignored. Type "NO" to return to the "Options" menu. It's a silly bug, I noticed it only after the release, and I will fix it later.


Updating your Env Box

I will probably keep working on this product and deliver updates to it in the future. When this happens, I send a notice to my group (RealRestraint Updates & Support, you can join for free) and you can then update your box.

To do this, simply rez the update orb contained in the folder somewhere near you and wait. You will receive the new product shortly. Make sure you are not in "Do Not Disturb" mode or you won't see the delivery. Leave the orb alone, it derezzes itself after 20 seconds.


Have fun !
Marine

(*) There used to be an attempt at rendering Screen Space Reflections a few years ago but it was shelved. There's actually one real-time reflecting surface in SL though, and that is the SL water. You can create a mirror with but it is cumbersome and only useful for photos, not for everyday use.

New product : Env Probe

$
0
0
Hi !

This product is the companion/sibling/compliment of the "Env Box", which is a set of 20 cube maps to make your latex, or any metal object like an armor, shine realistically, as if there was an actual reflection of the world around it.

If you want to go one step further and make your own Second Life environments, and possibly sell them, you need a tool to help you do that. This is the role of the Env Probe that I will explain here.

The purpose of this product is to position your camera in a way that you can take six snapshots of the surroundings and create a seamless cubemap from those pictures. Then you upload those six pictures and set each prim of an empty Env Box (full perms, included). Once the box is loaded with your pictures, it is ready to sell. You may want to write your own scripts to control it, if you are a programmer, before selling it. Or you may want to simply keep it for your own usage, whichever you prefer.

Once this is done, you may or may not want to rez the new Env Box in-world, for example to simulate the reflection of the room around you. When you step out of that room, there is no point in keeping that environment anymore, you might even want to make another one for the next room.

Or you may decide to wear the Env Box you made regardless of where you are. It's entirely your choice.

The Env Probe is a complimentary product to the Env Box, but neither needs the other one to work. They just work better together


There is no demo for this product, but this whole post details it all so you know exactly what to expect.

You can find this product here on the Marketplace and its price is L$240. It contains one HUD, one probe, one example environment (the one we will be demonstrating here), all three are copy/mod/no-trans.

There is also an empty, unscripted Env Box that is full perms and ready to receive your textures and be sold at the price of your choice. The included "EnvBoxPosition" script is used for positioning the box where the probe is, and is copy/no-mod/no-trans. Finally, there is a simple unscripted sphere to help you test your environments.

If you are good, you will quickly recoup your expenses by selling your own environments in no time.


Here is an example of one of the rooms in my house having its own environment made with this product :





What we want to achieve is something like this :





Of course, spheres are all good and well, but we're here for shiny latex, right ?




Yeah, that's what I thought.

I know the reflections are over the top in these pictures, it is on purpose to show you what to expect in the final result, but you can tone the brightness down of course.

The product contains an example Env Box with this very environment.


This post, unlike the others, does not demonstrate the product then details the manual, but rather exposes the procedure step-by-step to take the snapshots and to upload them in SL after a little tweaking. It is meant to be comprehensive so that you don't have to think hard or guess anything every step you take. Just follow the procedure and you'll have your very own environments in no time.

The following procedure assumes that you are making a new environment for a room inside a house, but it works just as well for an outdoors environment. I will use the study room I showed above as an example to illustrate the different steps of the procedure.

Please note that using a RLV is strongly recommended as the included HUD will control your zoom. If you are not a RLV user and do not want to download a viewer supporting RLV capabilities, no problem, you will just have one additional step to take manually.




Before you even begin, there is one thing you need to take care of. You must do this only once, not every time you create a new environment.

You need to download ImageMagick, which is a free software that we will use to flip the pictures horizontally and vertically. Let's get this out of the way now.

To download ImageMagick for Windows, go to this location :

http://www.imagemagick.org/script/download.php#windows

If you are a MacOS user, go there :

http://www.imagemagick.org/script/download.php#macosx

And if you are a Linux user, get it there :

http://www.imagemagick.org/script/download.php#unix


ImageMagick is a well known tool for image manipulation, montage, collage etc. It is very powerful and virus-free (but check with your anti-virus anyway, you can never be too careful). The Windows installation is straightforward and the x64 version with dll included should do just fine, but do read the instructions if you run in any trouble. If you're using Unix, sorry, you're a geek. I don't need to help you, you probably already know more than I do. If you're using MacOS, I uh... don't know. Please don't look at me.

Once it is installed, if you are a Windows user its location should already be in the path. Check it by opening a command prompt (Start menu, type "cmd" then Enter) then type "magick" and press Enter. If you see something that begins with "Usage: magick tool" etc, then your ImageMagick is installed properly.

 
ImageMagick is installed properly.



Now that this is out of the way, you can follow the procedure for every new environment you want to create. Be aware that at some point you will need to upload the pictures you'll take, and that requires to spend L$10 per picture, which means L$60 per environment since there are six pictures per environment.

If you don't want to download and install ImageMagick for any reason, you will need to flip the pictures by hand with Gimp or Photoshop after having taken them. It is easy to do but takes more time since it would have to be manual instead of automatic.



A. Prepare your folder on your hard drive

The first thing to do is to create a folder in a location of your choice. For the sake of the example, let's say you create a folder named "Slenv" at the root of your "C:" hard drive.


You are of course free to put it where you want and to name it what you want.

Once the folder is created, go inside it and create a text file that you will call "flip.bat". The ".bat" is important because it will be a MS-DOS batch file with a very simple set of instructions that will tell ImageMagick to flip the snapshots that you will save in this folder. The name of the file (here, "flip") is not important but the ".bat" extension is.



Answer "Yes" when the system asks you if you really want to change the extension.

Then right-click on this file and select "Edit" to open the text editor.



And now you are going to program. Don't panic ! Just copy the following lines and paste them in the file, then press Ctrl-S to save, and close the editor.

@echo off

mogrify -flop *_F*.jpg
mogrify -flop *_R*.jpg
mogrify -flop *_B*.jpg
mogrify -flop *_L*.jpg

mogrify -flip *_U*.jpg
mogrify -flip *_D*.jpg



The "mogrify" calls are calls to a component of ImageMagick that is in charge of running a command over several files. Here, it takes the "flip" and "flop" parameters to flip two pictures vertically and to flip horizontally four pictures, respectively. Those are the six pictures you are going to take in SL shortly. You might have guessed that the "_F" suffix means "Front", "_R" means "Right", and so on with "Back", "Left", "Up" and "Down". If you hadn't figured that out already, now you know. This also means that you will need to name your snapshots accordingly.

That's it. No more programming.

Of course, if you have already taken this step once, no need to create a new batch file and copy this code in it. Simply copy the "flip.bat" file you've created before to the folder you are using for this new environment.

Now that the file is created, you can go to the next step.



B. Prepare your settings

First of all, you want to make sure that nothing around you moves. No avatars (unless you want them to appear in the pictures), no pets, no moving objects, nothing. The sun must not move either so you can't use a day cycle, it has to be a specific Windlight Setting.

Also make sure that the clouds do not move or you'll see seams in the sky in the resulting cube map. You can use a Windlight setting where the clouds are still (Firestorm has a few) or create your own.

And make sure that you are not inside the room, or in any location that can be seen from inside the room.

Once everything is set, you can go to the next step.



C. Rez the Env Probe

The box contains one Env Probe that looks like a hollow glowing box with a yellow cross in the middle. Rez it somewhere in the room :

 


You can resize it to be the same dimensions as the room, but it is not mandatory. In fact, at this stage of the procedure, the dimensions of the probe do not matter at all, all that matters is where its center is, because that's where your camera will be.

I recommend making it so the center of the probe is roughly at the center of the room (which is why it is a good idea to resize it now, because the cross in the middle of the probe will de facto indicate the center of the room). However, it is a good idea to keep the center around hip level so that the reflections will look normal as seen on a standing avatar. If the ceiling is high (and ceilings in SL are often high), prefer keeping the center of the probe at hip or chest level otherwise the reflections will look like they are seen from above, and the avatars will look taller than they really are.

What you want is the bottom side of the probe to touch the floor, and that each of the four vertical sides to touch each wall (if the room is rectangular, that is). If you are making an outdoors environment, you don't need to bother about resizing the probe, just about positioning it well.




Notice that in this particular room, I pushed the sides of the box to touch the walls on the front and back, but the bookcases instead of the walls on the left and right sides. This is because an avatar cannot walk through the bookcases, making them effectively walls. It doesn't matter though, I could have pushed the sides through the bookcases to touch the walls behind them, the center would have remained roughly at the same spot. I did it this way so you see the "left" and "right" labels on the sides, but where you put the limits is entirely up to you.

The yellow cross in the middle indicates the center of the room :


Please note that although I didn't do it in this example, you can actually rotate the box around its Z axis, in case the room is not aligned with the global grid (or you want the Front side to be turned towards the north direction, for example, as it is turned towards the east here). Just keep in mind that you can rotate it ONLY around the Z axis, because SL does not allow for any camera roll, so rotating around its X or Y axis would not deliver the expected results.

In other words, the "Bottom" side must always be horizontal and below the yellow cross, and the "Top" side must always be horizontal and above the cross. Don't give the box any pitch or roll, only yaw.

Once the probe is positioned and resized the way you want, you can go to the next step.



D. Wear the HUD

The product also contains a HUD which is in charge of controlling your camera. It is very simple to use, you basically always click on the same button, the one labeled "Next".

There should not be any red button on the HUD, otherwise that means that you have rezzed more than one probe, or no probe at all. The HUD needs exactly one probe rezzed in-world in order to work. If you have two probes or more, derez all of them except one, then click on the "Scan Probes" button to set things straight.

HUD with no probe detected


HUD with exactly one probe detected


Now that the buttons are all green or dark yellow, you can go to the next step.



E. Position your camera

Or rather, let your HUD do it for you.

Click on the "Next" button once, and your camera should be moved inside the center of the probe and oriented to look straight through its "Front" side (notice that the probe itself becomes invisible so it does not appear on the pictures). If you are a RLV user, your zoom should automatically change to 90° and you can already go to the next step.

Otherwise you have to change the zoom yourself. Here is how to do it.

Open the Debug Settings window by clicking on "Debug Settings" in the "Advanced" menu on your top menu bar. If you don't see an "Advanced" menu there, press Ctrl-Alt-D to show it :


In the window that appears, type "CameraAngle" (without a space between "Camera" and "Angle") :


This means that your camera currently has a vertical Field Of View of 1.047 radian (that's 60°). Replace "1.047" with "1.5708" (that's exactly 90°) and hit Enter :


It will probably be rounded to 1.571 upon validation but don't mind that, it won't make a difference.

Voila, your Field Of View is now set to 90° and you are ready to take the first snapshot. Go to the next step.

This is what looking through the front side looks like, with 90° FOV.



F. Take a snapshot

Press Ctrl-Shift-S to make the Snapshot window appear. Make sure that the HUDs are not showing, and neither is the Interface.


The snapshot will need to be square so set the dimensions to 512x512, like this (remember to uncheck "Constrain proportions") :


The snapshot preview should now look like this :


Now click on the small arrow to the right of the "Save" button, and choose "Save As..." :


Select the folder you have created in the window that opens and go in it by double-clicking on it :


Then enter the name "Room_F" in the edit field at the bottom of the window :


Press Enter and that's it, your first snapshot is taken. It should be square and in JPG format. Make sure that it didn't save in PNG format because otherwise the batch file won't modify it (unless you want to change all the "jpg" parts in the file into "png") and the textures will take longer to upload.

The resulting file will be named "Room_F_001.jpg" (the SL viewer always renames its snapshots with increasing 3-digit numbers, starting from 001, don't mind that) and look like this :


A square, 512x512 JPG texture taken from a certain spot in the room with a Field of View of 90°... See where this is going ? You are going to do this five more times to fill a full cube.



G. Repeat steps E and F

What you just did in steps E and F (moving your camera then taking the snapshot), you need to do it five more times, once for every side including up and down.

So repeat them by clicking on "Next", refreshing your snapshot preview with Ctrl-Shift-S and saving your snapshot (no need to set the dimensions again, your viewer should have kept your parameters already).

But the name of the file will change depending on the direction you are looking :

- For Right, name it "Room_R".
- For Back, name it "Room_B".
- For Left, name it "Room_L".
- For Up, name it "Room_U".
- For Down, name it "Room_D".

Once the five repetitions are done, go to the next step.

The order of the sides the camera looks through is always Front - Right - Back - Left - Up - Down. Clicking "Next" goes from one side to the next, "Prev" goes back one step. You can also click on any of the direction yourself to orient your camera towards that direction if you missed a shot.

At the end of the repetitions, your folder should look like this :


And your images should look like this (I'm displaying them in the order they were taken) :

Room_F

Room_R

Room_B

Room_L

Room_U

Room_D


If you messed up and took the same shot several times (like I did when writing this post), maybe there will be a file named "002" or even higher, so now might be a good time to review your pictures and see which ones are to be kept. You should end up with 6 pictures in any case, one for each side.

You can rename the files if you want, for example to remove the "001" part, but make sure their names end with a "_" followed by the letter they already had ("F", "R" etc), otherwise the batch file won't modify them. It doesn't matter if there is a number after the "_x" part and what this number is, the batch file doesn't care about it so you can leave it there.



H. Reset your camera

You can now click on the cross to release your camera. If you are a RLV user, your zoom will be set back to normal, otherwise press Ctrl-9 to set it back to normal manually.



I. Run the batch

It is now time to modify your snapshots. If you did not do this, the reflection would look weird because any writing seen in the environment would still be readable (instead of mirrored like it should be, since we are trying to simulate a reflection here), and the up and down pictures would be oriented badly and would not match the rest.

Here is how the pictures we just took would look on a reflecting surface, if we didn't flip them :

 


As you can see, the bottom of the green couch does not match the rest of its body, the brown chairs are inverted (the dark one should be on the left, since it is on the right in-world), the staircase is inverted too (it should go to the left, since it goes to the right in-world), etc.

Nothing matches, so we need to do something about it. This is where the "flip.bat" batch file comes into play.


Simply double-click on the "flip.bat" file that you created or copied earlier :


It will briefly open an MS-DOS window and if everything goes well, you should not see anything appear in it before it closes. If you see anything written there, it is probably an error and something went wrong with the names of your files.

What you just did was flip four pictures horizontally and two pictures vertically. Attention, if you run the file again, it will flip the pictures again and you'll have them back to how they were when you took them. And you'll have to run the batch once more.

The pictures are now ready to be uploaded in SL, go to the next step.



J. Upload the pictures to SL

In your viewer, open the "Upload" menu by clicking on the "Build" menu then on "Upload". Once there, click on "Bulk (L$10 per file)...".


It will open an explorer window, select the folder you are working with, where the six pictures are located. Select all six (not the batch file, obviously) :


Like I pointed out above, be aware that you will spend L$10 per picture, which means creating an environment costs you L$60. Make sure you have the money for that and that you can afford to spend it.



K. Apply to an Env Box

You will now apply the textures you have uploaded (and paid for) to the empty Env Box contained in the product. That one is unscripted but the sibling product, the actual "Env Box", contains scripted boxes. It doesn't matter which one you use for this step, but it will matter for the steps below.

Rez an Env Box (sample or actual, or even one that you made from scratch if you want) and edit it (right-click, "Edit"). It is probably invisible so you need to press Ctrl-Alt-T to see it. If you chose to rez the sample Env Box, then you will see it in red immediately. If you chose to use one of the scripted Env Boxes and you can't see it, then you will want to bring its menu up (say "/456 *" on the chat), go to "Options..." and click on "Visible" to make it visible.


Now tick "Edit Linked" to be able to modify one prim at a time.

Then click on one of the prims, any of them except the root prim which is a small sphere in the middle. Any of the hollow rectangles will do. Let's say you click on the "Front" one.


Check its name in the General tab of the Edit window :

It should show "Front", "Back", "Left", "Right", "Up" or "Down".

Switch to the "Features" tab on the Edit window :


Then drag and drop the appropriate texture onto the right texture square next to the "Light" checkbox :


Alternatively,  you can click on that square and choose the appropriate texture in the window that appears, that works too.

The appropriate texture is :

- Front : Room_F
- Right : Room_R
- Back : Room_B
- Left : Room_L
- Up : Room_U
- Down : Room_D

In the retail Env Boxes, "Up" is named "Sky" and "Down" is named "Ground", but the meanings are the same. The "EnvBox" script just needs those prims to be named "Sky" and "Ground" instead of "Up" and "Down".

That's it, you have created your environment ! If you want to create another one, repeat steps A to K (with E and F being repeated six times), you can choose another name for your pictures instead of "Room" if you want.




L. Position the Env Box

This step is optional and relevant only if you want to use the environment for this room in particular. If you want to wear the Env Box and/or sell it (or give it away) instead, you can skip this step.

If you want your new environment box to be static, i.e. not be worn but rather stay where it is in-world, then you must first drop the script inside it. Edit it, then go to the Content tab, and drag and drop the "EnvBoxPosition" script in it. Wait a little and it will be ready.

Then you click on the "Position" button on the HUD. This has three effects :

- It tells the Env Box to position itself where the probe is, taking its angle and dimensions.
- It hides the Env Box.
- It sets the radius of each projection according to the size.
- It sets the brightness to 50%.
- It removes the EnvBoxPosition script from the box so your box is once again unscripted.

This picture shows you what it does (I made the probe 50% transparent and turned the box visible so you can see it take the same dimensions and position) :




M. Clean after yourself

When you're done, you should derez the probe either by deleting it manually or by clicking on "Derez Probe" on the HUD. Otherwise if you rez a probe later to make another environment, the HUD will complain that it detects more than one probe.


If you've read this far and made your own environment, congratulations ! Let me offer you a little shiny latex dance as a reward :)



Have fun creating and selling your own environments !

Marine



RLV 2.9.25

$
0
0
Hi there,

Here is the latest version of the RLV, with a fixes to several bugs that have been annoying me for some time, and I'm sure they've been annoying you too !

Here is the quick list of changes, I will detail them below :

- Force a rebake whenever we change attachments and wearables.
- Don't let the avatar go into T-Pose while editing an attachment we've been wearing only for a couple seconds.
- When in Mouselook, don't show rigged attachments that are worn on any head attach points (before this fix, unrigged objects worn on the head would not show but rigged ones would, making us see our own teeth, tongue and nose).
- Optimize the rendering of the vision restriction spheres.
- Remove the artificial fartouch restriction when our vision is restricted, because there are cases where we might want to be able to touch something beyond our visual range.
- Include Kokua's RLV windows.



You can grab the Windows version here :
http://www.erestraints.com/realrestraint/


The MD5 hash for the Windows executable is :
728bd5758eb1c318ae9179b023a29810


The rest of this post is details about the changes, if you feel like reading a wall of text.


Force a rebake on outfit change

The first bug is the worst. This bug would sometimes (emphasis on "sometimes", making it particularly hard to track) make your outfit a mess when relogging, with attachments being worn again while you remember having detached them in the previous session, and attachments missing (including locked ones) while you were sure you were wearing them before logging off.
I'm not entirely sure if this bug is my own doing or not. The RLV has a lot of my code in the appearance manager to speed it up and make it easier to use, especially with scripts (obviously) and one of my changes might have provoked this bug. Or not, I have no idea at all. The fix itself does not fix the bug but sets things straight after changing your outfit, by calling a "rebake textures", which also re-synchronizes your "Current Outfit Folder" (aka "COF") with what you see on your screen.

For example, before this fix, wearing shoes then detaching them immediately, without giving enough time to the viewer to update its COF (compounded by possible lag due to your connection), would sure make your avatar wear the shoes again at the next relog, whether it happens immediately or hours later. This was because when detaching the shoes, the version of the COF containing the link to the shoes hadn't had time to arrive to the viewer from the sim when the shoes were already detached. So when the message finally arrived, it would contain the link to the shoes, effectively "programming" the viewer to reattach them next time it had to synchronize its COF.

When you rebake the textures, and now whenever your outfit changes, the links in the COF are checked against what you are wearing in-world. Doubles are removed, links that point to attachments that are not there are removed, and links are added for attachments that are worn but not in the COF.



Don't go in T-Pose while editing

The second fix is for another bug that this time I'm sure is my doing. Except that this is not really a bug. It is a fix for a fix, more like.

That fix ensures that whenever the outfit changes on an avatar nearby, your own included, the skeleton of that avatar is reset so there is no odd deformation. These deformations would occur when wearing attachments that trigger Bento animations with bone displacement.

I'm not a fan of the fix itself, but it does the job so it's ok for now. However, there is something I do often, which is wearing an attachment and immediately editing it. Problem is, the new version of the COF is received by the viewer while I'm already editing the attachment, hence the skeleton is reset... and that puts the avatar in a T-Pose, very high above the ground. If I'm trying to position the attachment at that moment, it may disrupt the positioning and I have to do it again. Annoying.

So this second fix will prevent the viewer from resetting the skeleton while you are editing an attachment of yours.



Don't show rigged attachments in Mouselook

The third fix is something I've been meaning to do for a while. When you are in Mouselook, normally all the attachments you are wearing on your head attach points (skull, chin, ears, nose etc) are not rendered so you can see through your glasses, blindfold or whatever might get in the way.

Problem is, rigged attachments such as a mesh head, which usually comes with tongue and teeth, as well as rigged mesh hair, are still rendered and may very well get in the way.

This fix ensures that none of your rigged or unrigged attachments worn on any head attach point will be rendered while in Mouselook. If you are in Mouselook and want to see one particular rigged attachment that is now hidden, such as your rigged hair for instance, simply wear it on another attach point that is not one of the head, such as chest or spine. It doesn't matter where a rigged attachment is worn, it always looks the same.

Likewise, if you still get some rigged attachments in the way like your mesh head, this would be because it is not worn on the head. Wear it on nose, chin, skull, ear or any other head attach point to make it be invisible while in mouselook.

I might make it an option later if this feature is too bothersome.



Optimize the vision spheres

It has been an annoyance for a while : vision spheres (the spheres that are rendered to block your view when your vision is restricted) slow the viewer down when you are in a crowd.

To be more precise, when you are in a crowd and all the avatars around are rendered as silhouettes. This is due to having 40 alpha-blended spheres stacked upon each other, and the silhouettes being sprites. Graphics cards do not like this at all.

The fix to this issue is multiple. First, avatars and silhouettes are no longer rendered if they are further than the outer sphere and the latter is opaque. In other words, if you are blindfolded without any way to see through the spheres (with RR blindfolds, that means medium, thick and opaque locks, the others let you see through a little bit), then you should notice a speedup.

Second, displaying 40 spheres is good when you want to simulate fog, but most of the time you are just blindfolded, so you don't really need to see so many spheres. Now, the viewer will display 4 spheres for every 10 cm between the inner and the outer sphere, maxed out at 40. This should speed up the rendering as well.



Remove the artificial @fartouch restriction

When your vision was restricted, the RLV used to impose an artificial @fartouch restriction that prevented you from touching any object further than your vision range... But I don't think that kind of artificial restriction is needed, if you need to be prevented from touching further than your vision range, then there is a good chance the script that restricts you imposes the touch restriction anyway. And there are cases where you may want to touch beyond your vision range so this automatic restriction is lifted.



Include Kokua's RLV windows

With the permission of Chorazin Allen and Nicky Perian, this version of the RLV now includes Kokua's RLV windows (debug, console, status and worn status) that look a lot better than the original "List restrictions" action that simply shows all the current RLV restrictions on your private chat. That feature is still there in the RLV menu, but you now have more tools to control what restrictions you are under. You can find these additions in the RLV menu in your top menu bar. Thanks Chorazin and Nicky !

Here is how they look, you can see how much control you have with them :


You will find all the information you need about those windows on the Kokua blog :

http://blog.kokuaviewer.org/2018/12/08/new-rlv-information-windows/



Have fun !

Marine



RLV 2.9.25.1

$
0
0
Hi,

This version of the RLV contains a hotfix for a bug introduced in RLV 2.9.25 and that I didn't see while testing.
This bug would make other avatars not render (except their unrigged attachments) while you are sitting on something and blindfolded. Because of course, the position of a standing avatar and that of a sitting avatar are not calculated the same way.



You can grab the Windows version here :
http://www.erestraints.com/realrestraint/


The MD5 hash for the Windows executable is :
006fa0adc9d78bb723d4050eca21b569





Sorry for the inconvenience,


Marine

RLV 2.9.25.2

$
0
0
Hi there,

As I hinted here, this version of the RLV contains a new debug setting named "RestrainedLoveHeadMouselookRenderRigged" to help you decide whether your head rigged attachments (those attached to "skull", "chin" etc) should render or not while you are in mouselook. The default is "not".

That way if you are having trouble seeing your body because for some reason your mesh body is attached to the head (or your mesh catsuit, or any mesh outfit that covers your body) and you don't want to or can't attach it elsewhere, you can set this debug setting to "true" and it will render again while in mouselook.

To change a debug setting, especially a "RestrainedLove" one, simply open the Advanced menu (press Ctrl Alt D if you don't see it), go to "Debug settings" near the bottom.

 

Type "Restr" then press Enter, this will select the "RestrainedLove" debug setting.

 

Then click on the down arrow to open the list and choose the debug setting you wish to change. Most of them do not require a restart and "RestrainedLoveHeadMouselookRenderRigged" does not either.




Once set to TRUE, your rigged head attachments will show while in mouselook like they did before RLV 2.9.25.



You can grab the Windows version here :
http://www.erestraints.com/realrestraint/


The MD5 hash for the Windows executable is :
a4673435db9c2352691a79e1743eb56a




Have fun !


Marine

RLV 2.9.25.3

$
0
0
Hi,

There's an oops in RLV 2.9.25.2, the RestrainedLoveHeadMouselookRenderRigged debug setting wasn't updated at startup so it was always set to FALSE until you set it to TRUE... during each session. Sorry about that. it now correctly reads the debug setting value which is persistent across sessions.

You can grab the Windows version here :
http://www.erestraints.com/realrestraint/


The MD5 hash for the Windows executable is :
30d6eef1d3d6649fb225c238e6aba764


Sorry for the inconvenience,


Marine

Env Box Controller (update to the Env Probe)

$
0
0
Hi !

Shortly after releasing the Env Box and the Env Probe, I decided to work on improving the latter... a lot.

The point of the Env Probe is to make your own SL environments, which means it is best used for static env boxes, i.e. boxes that you rez somewhere and don't expect to move. What you do expect from them though is to make the shiny surfaces inside it reflect its own projections, like this :



But although that works fine with one room, problems start to arise when you put two env boxes close to each other, like in the next room for instance. The problem is that some of the projections of one env box overlap with the projections of the next, like this :


In case this picture isn't clear, you see the reflection of the kitchen (on the left) overlapping that of the study room, because the shiny ball is located close the kitchen and therefore within its projection radius.

In this post, I will liberally use the term "Env Box" to designate static env boxes that you rez in a room and that stay where you've rezzed them, instead of the Env Box product that features 20 different environments that you wear. So please don't be confused, when I use the term "Env Box" here, I refer to one that is rezzed inside a room and projects six pictures of it to allow it to reflect on whatever shiny surface is located inside it. When I do refer to portable env boxes, I explicitly say so. Whenever there may be a confusion, I use the term "static env box" to refer to a box you've rezzed in a room and "worn env box" to refer to a box you're wearing.

So to work around this issue, I have created what I call an Env Box Controller, which is an additional object and the subject of this big update. Its role is mainly to activate only the Env Boxes in which an avatar is located, and deactivate all the others. It does other things too, but this is what it is meant for in the first place. It is mainly a "rez and forget" kind of tool, but you can control its parameters easily when you want.

This is a big update because the Env Box Controller could very well be its own product, but instead I chose to make it part of the Env Probe, because its point is to manage Boxes created by using the Probe.

Feeling lost ? Let me recap, hopefully making things clearer.

You have the Env Box product that lets you wear an Env Box that shines around your body, making your latex or armor attachments shine in a better, more realistic way (knowing that we don't have actual real time reflections in SL yet, and probably won't ever get them). But those Env Boxes are real life environments, they are not taken in SL locations so they don't actually project what's around you. They project pretty panoramas to add fine details to your shiny clothes. This update here does not concern that product except for one thing : worn Env Boxes are deactivated when you step inside a static Env Box, but you have to update them to get this new feature if you haven't already.

Then
you have the Env Probe that allows you to make your own environments inside SL and make sure what you see in the shine is what you see in the area you're in. And to sell your own environments if you wish. It is still a lot of manual actions because you cannot automate the taking of a snapshot or the upload of the resulting picture to SL, nor the linking of the pictures into a projector, it has to be done by hand. What the Env Probe does is position your camera correctly and let you take snapshots in the easiest manner possible, considering all the technical limitations. It is still a lot easier than to do it all by hand from A to Z.

But then, when you have your static Env Box with the pictures of the room it is in, you'll probably want to do the next room as well. And then the next room, and so on. And since the rooms are adjacent, you will get overlapping like I showed above unless you use the Env Box Controller.


In this blog post, I will explain how to use the Env Box Controller and the Env Box Static object which are now both contained in the Env Probe product. Brace for a long post, as there is much to say about this new controller. But if you are a photographer, or if you need to take good pictures for your products, or if you want to equip your own house with env boxes, or if you want to make and sell your own environments, you'll want to read it all.



Installation

First of all, let me reiterate how to install a static Env Box (not how to take the pictures, flip them, upload them and put them in the projector, this is already explained here). Let's assume you use the "Env Box Static (rez me)" object, which is a blank but scripted env box, you can rename it what you want but please do not change the description field yet (it should show "^env 0 1 0.75 w" for now). We'll discuss later about what the description field is used for.

Just rez the object named "Env Box Static (rez me)" somewhere near you. It looks like a glowing white semi-transparent cube, it is in fact 7 prims (one root and six child prims) and takes 4 LI. It will remain visible until it is set to its final location or you click on it.

You can either resize it yourself with the white handles of the SL tools or use the Env Probe to resize it to the exact dimensions you want. I recommend using the Env Probe as it gives you more control over the shape of your box.

If you step inside this box all your shiny attachments will show a bright white reflection, to really insist on the fact that it is blank. You can then set all the six white projected pictures with the six pictures you've taken while using the Env Probe (see the blog post explaining how to do it).

Once you have set all the pictures, you can position the "Env Box Static" object to its final location.

To do this, rez your Env Probe somewhere near you then position, rotation and resize it to fit the room. Since it is a single prim, unlike the "Env Box Static" object, you can resize it in any direction. Once done, wear your Env Probe HUD if you haven't already, then click on its "Position" button to make your static Env Box take the position, rotation and dimensions of your probe. You can then derez the probe or move it elsewhere. The Env Box Static object becomes invisible after it was moved and resized, and if a controller is already rezzed and uses the same prefix (see below), it is told to scan for all boxes to update its own knowledge of the topology. If you later need to click on the Env Box, press Ctrl-Alt-T to see it in red (as well as all the invisible stuff around you).

If the controller is not rezzed yet, do it now. Rez the Env Box Controller somewhere in the parcel, it has to be in the same parcel as the Env Boxes you want it to control. It looks like a shiny sphere with "ENV BOX CONTROLLER" embossed on its surface :


That's all. You may go back to making more Env Boxes now.


First usage

If you have made several Env Boxes, let's say one per room in your house, you will quickly notice that only the ones in which an avatar is located will be active, the others will be inactive (i.e. they won't project anything). This means that if you are alone in your house, the reflections will be the ones of the room you're in. If someone else is in another room next door, since the Env Box located in their own room will be active too, there is a chance you will see its projections overlap yours, just like on the picture above. That cannot be helped.

And when you move from room to room, you will notice that as soon as you leave a room its own Env Box deactivates itself, and the one you're entering will activate itself at the same time, keeping the reflections around you accurate and avoiding overlapping.

It does not sound like much but it makes a whole lot of difference, and I will demonstrate it now.


This is my house :


You probably recognize it from my movies, most were shot here, and this house is where the name "Maison De La Marquise" comes from.

Let me show you a few rooms with accurate reflections. Not all the rooms, but those that feature enough landmarks to see them reflected on the surface of my dress.

The hallway with the stairs

The study room that you already know, you can see the stairs of the hallway from here even though the hallway's Env Box is deactivated, this is because of the point of view I took when I made the Env Box of the study room

The kitchen, the study room is visible from here but its own Env Box is deactivated otherwise it would overlap

The training room with a big mirror (and you can see the local Env Box reflecting on its surface, the big specular shine comes from a local light, it has nothing to do with the Env Box). Of course, this is not an actual reflection so I do not reflect in the mirror.

The living room

Upstairs, notice the painting reflecting on my dress

The rubber room with its red checker rubber-padded walls


That rubber room will be of special interest to us, as you will see later on.


The fact that only the Env Box of the room I'm in is active, is all due to the Env Box Controller rezzed somewhere in the house.

In the rest of this post, I will sometimes mention the controller's "service volume". This means the total volume occupied by all the static Env Boxes it controls. Usually that means the volume taken by your house, if all your rooms are set with Env Boxes. If an avatar is inside one of its boxes, then it is inside the service volume, otherwise it is outside of it.



Worn Env Boxes

If you are wearing an Env Box with a real life setting, for example Panorama, Corsica, Tokyo or any one you want, you don't want it to be active while you're inside an Env Box controlled by an Env Box Controller. Otherwise, both projections would overlap.

If you haven't done so, please update your Env Box product and your worn Env Boxes will automatically deactivate themselves when a controller takes over, and reactivate when you leave its service volume, TP out, relog or rez them, or when you switch their Active state off and on again.

If you don't update them, you need to detach your Env Box every time you enter the controller's service volume and reattach it when you leave.



Carving

This is the second most important purpose of the Env Box Controller. Some boxes might be inside other boxes, and since you don't want overlapping projections the controller has to be smart and to know which box to activate.

Suppose you're inside a cage and... oh look, what a coincidence, there's a cage in the rubber room :


While inside the cage, you might want the prisoner to reflect the bars around her, and not the cage as seen from the middle of the room (which is what the projections look like when outside the cage).

In other words, you want to see this :


Instead of this :


And certainly not both at the same time :


This is the same sphere at the same location inside the cage, but in the first picture I am with it so it reflects the projections sent by the env box contained inside the cage, in the second picture it reflects those sent by the env box contained inside the room (hence outside the cage), which is bigger. And in the third picture it reflects both which is even worse.

To do this, you need to have an env box inside the cage, obviously, one that projects pictures that were taken from inside the cage, and that's it. The controller handles the rest automatically. In its standpoint, the smaller env box (the one in the cage) carves a hole into the bigger env box (the one occupying the whole rubber room). Therefore, when you are inside the cage, the controller knows that although you are technically inside the rubber room, it must act as if you were only in the cage and not in both.

This works for boxes inside boxes inside boxes, by the way. And boxes inside boxes inside boxes inside boxes... and so on. You get the point.

There is an exception to this rule. If the volume of the smaller box is 90% of the bigger one or more, then the controller won't consider the former to carve the latter, and will instead decide that those two boxes should be mutually exclusive. This is decided by conditions put inside the box parameters, and I will develop this later on because that's an advanced trick.

One word of advice. When you place two static Env Boxes next to each other, for example in two adjacent rooms, please don't make the boxes overlap. If you do and one of them is sufficiently smaller than the other (the 90% I mentioned above), the controller will believe it carves the other one, and it will slow down the periodical checking process (see below) for no real gain.



Menus

Although you can let the controller do its job automatically and never bother tweaking it, you still have a lot of control over its behavior thanks to its menu and the description field of each Env Box under its responsibility.

Simply click on your Env Box Controller to get its menu. Only the owner of the controller can do this.

The menu is fairly simple. The main page looks like this, and from there you can open any of the secondary pages (brightness, time of day...) and return to the main page.

Clicking on "Active" switches the controller on and off. When off, all the env boxes under its responsibility are turned off as well, even those that are set to be "always active" (see below).

Main menu

Each page shows some information about the Env Boxes and the controller itself.

- Region time : It is the local time between 0:00 (aka 12 AM) and 23:59 (aka 11:59 PM). The time is NOT a real time but the time calculated from the sun angle. FYI each SL day lasts 4 hours, 3 of which are day time and 1 is night time. In this picture, "5:23" means early morning so the light of the env boxes will be tinted pink.

- Set time : You can set a time manually in the "Time of day" menu, either by clicking on the corresponding button (see below) or by typing it manually. If set, this supersedes the "region time".

- Brightness : From 0.0 to 1.0, it is simply the global brightness which you set the controller to, knowing that each env box has its own factor to apply to it and calculate its own final brightness (see below).

- Optimal gloss. : From 0 to 255, this number represents the glossiness that will look best with the projections of all the boxes (this is a global setting, not a per-box setting). To make it simple, if a surface has a glossiness set to a different number than the optimal glossiness here, the reflections will have gaps or overlaps because the edges of the projected pictures will be blurry. This works exactly the same way than the worn Env Boxes and will be demonstrated later on.

- Prefix : By default "env", you can change it by modifying the description field of the controller. The controller and env boxes containing the EnvBoxClient script (like the "Env Box Static" object) all talk on the same channel, each command being prefixed by this prefix (here "env"), and any object that uses another prefix will simply ignore those commands. This way you can decide what controller controls what boxes by setting them to the same prefix and exclude others by setting their own prefix to something else.

- Boxes : Indicates the number of boxes detected by the controller that use the same prefix.

- Vars : Shows the number of user variables known by the controller. There is always at least the hour of the day and that's why there is a "1" displayed here. If you add more variables manually (see below), this number increases.

- Avg. check time : Indicates how much time is taken during each check, in average. A check occurs every 30 seconds and every time someone collides with one of the Env Boxes, and is meant to scan all the boxes and decide which ones must be active and which ones must be inactive. This is a rather long process (which grows like the number of avatars multiplied by the number of boxes) and this number shows how much time it has been taking since the last reset of the controller's script. Right now, with two avatars in the house and 17 boxes in a relatively healthy sim, it takes about one second per check. If this is too long for you, you can divide and conquer by rezzing more copies of your controller, each one being given a different prefix, and attribute some of the boxes to one, some to another etc. As long as a box from one controller does not carve into a box from another controller, it will work just fine and the controllers will all work in parallel.

- Last check time : This is the time taken by the latest check, just for reference.



Time of day menu

Time of day menu

If the region you're in uses the normal SL day cycle, then the controller is able to capture the right lighting and apply it to the reflections to make them look even more accurate. This is needed because you took your pictures at a certain time of the day, which means the room was lit a certain way when you took them, which might be different at different times of the day. When the sun is rising, you may want your room to be lit with a very slight pink hue, and when the sun is setting you might want a slight orangeish tint as well. That's what the controller does and this menu lets you decide whether to let it decide of the lighting (by selecting "DYNAMIC") or set the time of day yourself (either by choosing one of the buttons or by clicking "CUSTOM" and entering an hour).

Now... this is all good and well but not all Env Boxes must react to the time of day light equally. Some boxes may be outdoors, others may be in rooms with lights and windows, others may be in rooms with lights and no windows. There is a way to set each box individually so that it is more or less impacted by the light of day depending on the setting you think is best. In practice it is just a factor between 0 and 1 that tells the box "apply all the light of day" and "completely ignore the light of day" respectively. More about that below.



Brightness menu

Brightness menu

Not much to say here, except that the brightness (which is 1.0, or 100% by default) is compounded with the brightness factor of each box to find out how bright each box must be.

The brighter, the more visible the reflection on a surface, but increasing the "environment" value of the surface yields the same result. It's entirely your choice what brightness suits you and your guests best.

Personally I like 50% because in the real world the light does not bounce completely off the walls, a part of it is absorbed so setting to 100% is too much, it is like saying the walls emit light, which they don't. As for the lights themselves, they have their own specular shine that makes like a halo around their picture.



Optimal glossiness menu

Optimal glossiness menu

Not all surfaces shine the same way. Some are glossier than others. Glossy surfaces have sharp reflections, less glossy ones have blurry reflections.

Problem is, a blurry reflection means blurry edges, which means gaps between the different projections of an env box. Changing the optimal glossiness to match that of the surface you want to look at corrects the projections so there is no gap nor overlap.

For example, here are three reflective spheres. The left one has a glossiness of 50 (which is quite rough), the middle one has a glossiness of 150 (so like latex or plastic) and the right one has a glossiness of 255 (the max, it is like a polished mirror) :

Here is how they look when the optimal glossiness is set to 255 :


As you can see, there are black gaps on the two spheres on the left, while the right one has crisp reflections.

Now if you set the optimal glossiness to 150, which matches the glossiness of the middle sphere, you get this :


No more gap on the middle sphere, slightly visible gaps on the left sphere, and overlaps (i.e. projections that overlap each other) on the right sphere.

And if you set the optimal glossiness to 50 to match that of the left sphere, you get this :

 

The left sphere looks good and rough, its reflections are very blurry as expected, the middle sphere has some overlaps but they're not very visible in this room, the right sphere still has crisp reflections (as expected) but obvious overlaps.

For the fun of it, let's give the left sphere 0 glossiness and set the optimal glossiness to 0 :


The left sphere shows how rough you can make a surface (i.e. how blurry its reflection can be). Since the environment value of this sphere is still 255, it looks like a very rough mirror. But you can make it look like shiny plastic if you prefer by lowering its environment value down to 10 or 20 and giving the sphere a tint :


If you wanted actual plastic or rubber, you would set its environment value to 0, but then you wouldn't need any env box at all since the surface wouldn't reflect the projections in the first place. Env Boxes are only useful for shiny surfaces that are supposed to reflect details, not just the specular projections of the local lights. In other words, env boxes are for polished or wet surfaces with an environment value (latex, polished plastic, patent leather, varnished wood, metal, oil...), all the other surfaces (plastic, wood, rubber, leather...) don't need them and won't look different with or without them.


As you can see, there is no ideal number for the optimal glossiness, it all depends on the glossiness of the surface you are most interested in, for example the one you are taking a picture of.

For reference, the surface of the controller changes its glossiness to match the optimal glossiness you chose, so you see what it looks like when inside an env box (you can put the controller anywhere in the parcel, it doesn't matter whether it is inside an env box or not, but in case it is inside one, you then see the reflection change on its surface due to the change in glossiness.



Options menu

Options menu

- "Highlight" will make your env boxes visible (transparent and glowing, the active ones will be white and the others black) in order to make them more easily found.

- "Scan boxes" will force a scan of all the boxes around, in case you just deleted one (rezzing and positioning one will trigger a scan automatically).

- "Get positions" is a useful button to get the physical location of all the boxes controlled by this controller, each location being the position, the rotation and the dimensions of the box. Each message looks like this :



[2019/02/06 06:41] Env Box ~ Office (root): dim <218.56360, 48.02089, 33.68668>^<7.71000, 5.73320, 5.04680>^0.000000

The "dim" part is the command, the first vector is the position of the center of the env box in the sim, the second one is the dimensions in meters, and the third one is the angle around Z in degrees. Simple. If you copy this text to a text file, you can later paste it into the chat in order to set the location of any box (or even a probe) right where this box is.

I will explain below how to position an env box with a "dim" command.

- "Set var" allows you to add or set a user variable into the controller, which will be dispatched to all the boxes so they know whether to hide or show. You enter a variable and a value under the form [variable] = [value] and it will be added into the controller. For example, if you type "x=1" (or "x = 1", spaces are not a concern), then a new variable named "x" will be added to the controller's memory and its value will be "1". If later you enter "x=some_value" then the variable "x" will take the value "some_value" (which is not a number but a string literal, but works just as well). Please don't put spaces in the name of the variable or in the value, as this would not work when writing conditions to test them (see below). Attention, "H" or "h" is reserved for the hour of day. You can change it but it will change back less than 30 seconds later.

- "List vars" : Shows the list of the currently known variables on the chat. There is always at least "h" which is the time of day.

- "Clear vars" : Clears all the variables except "h", the hour of day.

- "Reset" : It just resets the controller. I don't see a real need for it but hey, it's there.



Individual parameters

Now we're getting into the nitty-gritty stuff.

You can actually modify a few parameters in each box individually. Those parameters are contained in the description field of the root prim of any box and look like this :


That's the "^env 0 1 1 w" part. So what does that mean ?

First, the "^" sign is necessary to tell the EnvBoxClient script inside that the description field contains parameters, otherwise it won't read whatever is written there, as a safety.

Second, the script reads what's in the description field (as long as it begins with "^"), but never writes into it, so you are free to enter the parameters you want.

Third, those parameters concern only that env box, if you want to use the same parameters in another one you need to copy the description field of this one to the other one manually. Env Boxes do not talk to each other, only to the controller.

Fourth, each parameter is separated from the others by a space (make sure there's only one space between parameters and not two or more).

Fifth, some additional parameters can be added after the last one ("w" in this example). They are conditions for the activation of the box and they will be developed later on.

Let's review each parameter one by one, from the left to the right.

- Prefix ("env" here) : This value makes the box communicate with any controller (or controllers) which prefix is set to the same word, which cannot have spaces in it. As a reminder, the prefix of the controller is written in its own description field.

- Always active ("0" here) : This value can be either 0 or 1. If set to 1, the box will always be active unless the controller itself is deactivated. This is useful for example if your room is supposed to feature shiny objects (such as animesh avatars, i.e. NPCs) and must reflect on the shiny surfaces even if nobody is in it. If you want the box to always be active regardless of the activity of the controller, well, you can set it to another prefix or remove its EnvBoxClient script altogether.

- Brightness factor ("1" here) : This value can go from -1 to 1 and can be decimal. Remember the Brightness setting of the controller ? If the value is between 0 and 1, it multiplies it to find the final brightness of the projections, so for example 50% and a factor of 0.3 will make a final brightness of 0.15. If the value is between -1 and 0, it sets the brightness to the negative of that value without taking into account the brightness of the controller. In other words, make it negative for absolute, positive for relative.

- Color factor ("1" here) : This value can go from 0 to 1 and can be decimal. This is the factor that is applied to the "time of day" color sent by the controller. It is actually a very important value to consider, because this is the one that determines whether the room is completely outdoors with no artificial lights, or completely indoors with no windows, or anything in the middle. Good values are 0 (completely outdoors without lights, meaning the time of day color will be completely applied to the projections), 1 (completely indoors with no windows, meaning the time of day will not be taken into account by the box at all), 0.5 (indoors with big windows) and 0.75 (indoors with small windows).

- Color ("w" here) : This value is either a RGB vector or "w" which means "white". If your room has a particular color and its projections are tintable, you can change this value but "w" is good for pretty much all boxes. If you do set a custom color, write it like this :1>

<1>1><R,G,B>
<1>
1><1>Where R, G and B are the Red, Green and Blue values respectively, each one from 0 to 1. Do not write spaces (as they are separators for the parameters) before or after the numbers. One example of a custom color would be <1,0,0> for a bright red.1>

If you want to know everything, when the box receives a command from the controller it checks the time of day color and combines it with its own color, attributing the "color factor" value to its own color and 1 minus "color factor" to the time of day color, to determine the final color of the projections. This is why "0" means "outdoors" and "1" means "indoors", it's easier to remember that way.

For example, with a factor of 0 the time of day factor will be 1 and the final color of the projections will be that of the time of day. With a factor of 0.5 (room with lights and big windows), both colors will be combined equally, so if the base color is white (the "w" symbol), then the final color will be a lighter version of the time of day since it is combined 50/50 with white.

This works well for subtly changing the color of the shine indoors depending on the light outside without overdoing it.



Validating the parameters

Whenever you change the parameters of a box, click on it to validate them (otherwise nothing tells it to re-read its parameters, it doesn't do it periodically since most of the time they don't change at all, it would be a waste of resources).

When you click on the box, it also forces a scan of all the boxes in the parcel (in case you just moved or resized it and want to update the controller's knowledge of what boxes carve what other boxes), and allows you to send a "dim" message to it (see below).



The "dim" message

Clicking on a box also opens a listener on channel 456 so you can enter a "dim" message on that channel to reposition the box.

To do this, simply copy one of the "dim" messages you've saved in a text file or anywhere you want, into your clipboard. For example this one :

dim <218.56360, 48.02089, 33.68668>^<7.71000, 5.73320, 5.04680>^0.000000

Remember this line ? This is the "dim" message we got from the "Office" Env Box when we clicked on the "Get positions" button in the Options menu. Let's say you want to position another Env Box at this exact location, maybe after making a mistake and deleting a box you shouldn't have.

Click on the box you want to reposition to open its listener, then say the following line :

/456 env dim <218.56360, 48.02089, 33.68668>^<7.71000, 5.73320, 5.04680>^0.000000

That's "/456 env " followed by the dim message you copied. The "env" part is necessary because like any message received by a box, it must begin with its own prefix, otherwise it will be ignored. Of course, if your box uses another prefix, replace "env" with its prefix.

After 10 seconds or if you click again before that delay, the listener is turned off again.

Attention, clicking on two boxes and sending a "dim" message will reposition both to the same location !

You can use the "dim" message another way too, by sending it to a probe instead of a box. The principle is a little more subtle but works the same way.

Rez your Env Probe if you haven't done so and wear your Env Probe HUD.

Then say the dim message on channel 789 instead of 456, and you do not have to prefix with "env" or anything (but if you do and the HUD uses that prefix, it will work anyway). No need to click on anything. So you say :

/789 dim <218.56360, 48.02089, 33.68668>^<7.71000, 5.73320, 5.04680>^0.000000

... and the probe will take the location and dimensions of those parameters. This is useful if you want to put your probe back where it was after mistakenly derezzing it.

Of course these dim messages are examples, your numbers will be different.



Conditions

If the parameters section were the nitty-gritty stuff, now we're getting into the thick and hairy.

Are you ready ?

You can add more parameters after the color, and those are additional conditions for the activation of the box.

Instead of writing a long-winded abstract explanation, I will show you an example of when those could be useful.

The gazebo does not have an Env Box, but suppose I want to make one for it :



So let's make one real quick.

First I rez a probe and I wear the HUD.


I resize the probe so it is roughly the same size as the gazebo,  like this (it doesn't have to be exact) :


I get out of here to avoid being on the pictures and I start shooting, following the procedure I explained in the Env Probe blog post. After the pictures are taken and flipped, I upload them and set all six to a newly rezzed Env Box Static object that I rename "Env Box ~ Gazebo". I also set the "color factor" to "0" to make it behave like it is outdoors (that's an important part, as you'll see below).

Then I click on that object then on the "Position" button of my Env Probe HUD and the new Env Box goes right where the probe is, ready for use. The controller immediately detects it and starts controlling it. All is well.

I totally did not follow my own advice and let Casper (the cat) get in the way. Cats always get in the way.

In the end I get this reflection :

 

So, all is well, yes, but what happens when it's night time ? This happens :


The color of the projections becomes a very dark blue, darkening the shine. Since the color factor of the box is 0, the whole time of day color is applied.

This may or may not be what you want, but let's assume this is not what I want because the reflected sky is too bright and the rest is too dark. Let's assume during the night I want a clearer decor with a black sky, like it actually looks in-world at that time.

For this, obviously, I need to make a second env box and position it at the same spot, and I need only one of them to be visible at any time, at most.

To do this, after creating the second env box and placing it where the first one is (it is a good idea to stretch the env probe a little to make the second env box a tad bigger so it is easier to select when you want to tweak it), I need to change its parameters, because right now both boxes will show when I step inside as they are both almost exactly the same volume, so the controller will decide there is no carving, hence no exclusion.

In those parameters, I need to tell one box to be active only from 6 am to 9 pm, and the other one to be active only from 9 pm to 6 am. And I need the latter to not react to day light at all because otherwise it will be tinted dark blue by the controller and I will barely see any shine at all.

Let's go.

In the day Gazebo Env Box, the one I made first, I change the parameters in the description field to :

^env 0 1 0 w H>=6&H<=21

Notice the conditions that weren't there before : "H>=6&H<=21". This means "hour is 6 am or more AND hour is 9 pm or less". The "&" part means "AND" and there is no space before or after that sign.

With these parameters, whenever the time of day broadcast by the controller is outside 6 am and 9 pm included (in other words, when it is night time), the box will remain inactive even if someone is inside it.

Now I modify the other box, the night Gazebo one, and I write this in its description field :

^env 0 1 1 w H<6 h>21

Notice there is no "&" sign this time, but a space instead. This is because you can add several conditions (here there are two : "hour less than 6 am" and "hour greater than 9 pm") and if any one of them is true, then the whole condition is considered true. In other words, if "&" means "AND", a space ("") means "OR".

Also notice the "1" number before "w", which means "do not take the controller's time of day color into account at all, act like we are indoors" to avoid having the projections tinted by the controller during night time (which, as I pointed out above, would be very dark and we would barely see a thing in the reflections).

Finally, I commit the changes to the description fields by clicking on both boxes so they re-read their parameters.

After all this work, here is the result :

At sunrise, the projection is tinted pink

At noon, the projection is not tinted

At sunset, the projection is tinted orangeish

And at night, the first Gazebo Env Box is deactivated and the second one is activated instead, not tinted at all due to the "1" color factor in its parameters.


So, to recap :

You can add conditions after the color part of the parameters, those conditions are of the form [variable] [operator] [value]

The "variable" part is sent by the controller and by default there is only "H", which means "hour of the day" and its value goes from 0 to 23 included (0 being midnight and 23 being 11 pm). There may be other variables later because the controller is made to aggregate all the variables sent by other devices to help choose the right env box to activate. The Options menu also lets you set variables manually.


The "operator" part is simple, it can be any of those six :

"=" means equality
"!=" means inequality
"<" means "less than"
">" means "greater than"
"<=" means "less than or equal to"
">=" means "greater than or equal to"

And the "value" part is a number or a string literal. For example, "6" or "garage_door_open" or "rainy" or whatever you can think of.

If ANY of the conditions is TRUE, then the test is valid and the env box will be active if someone is in it. If ALL of them are FALSE, the env box will remain inactive no matter what. You can link two conditions or more so they have to be valid all at the same time, by replacing the spaces between them with "&" signs.

For example, you might have a room that may change its appearance significantly enough for you to want to show a different reflection when it does. Maybe you're in a garage and you want a version of the reflection with the main door closed and another one with the main door open. In fact, I will demonstrate this very example so thing are perfectly clear for you.

First of all, here is the garage, and let's assume I will open only the door on the left (given the size and shape of the garage, it would be best to make two adjacent env boxes, but for the sake of the example let's say the door on the right is jammed and cannot be opened).

Here is how it looks with its left door closed :

 

And here it is with the left door open :



You already know the procedure so I'll make it quick.

Set time to "Midday". Wear Env Probe HUD. Rez Env Probe. Resize Env Probe to the size you want. Move the car out of the way (because it is right in the middle). In fact, move the carts out of the garage too as those are vehicles and they can move. You don't really want them in the reflection since they may or may not be there in the future. And check that the cat is not in the garage. And get out of there as well.


Notice I did not make the probe go all the way up to the ceiling, this is because I want the yellow cross to be about hip-level, since this is where the camera will be when I'll take the snapshots. The reflections will look more natural that way.

Now let's take the snapshots.

Create "Garage" folder. Drag and drop a copy of "flip.bat" in it. Click "Next" on the Env Probe HUD. Set snapshot dimensions to 512x512, take the snapshot, save it as "Garage_F" in the "Garage" folder on the hard drive. Do this five more times for "Garage_R", "Garage_B", "Garage_L", "Garage_U" and "Garage_D" respectively. Yes, "Front" is where the workbench is and "Back" is where the door is. It should be the other way around, but it totally doesn't matter. I just didn't bother to rotate the Env Probe, that's all.

Run "flip.bat" once. Upload all six pictures.

Rez "Env Box Static". Edit it, change its name to something relevant (for example "Env Box ~ Garage (closed)" and add a relevant condition after the parameters in the description field, like "garage_door=closed", like this :


Then modify all its six child prims by dragging and dropping the corresponding texture into their respective projector texture slots, one by one.



Once done, click on the "Position" button on the Env Probe HUD, and the first env box is complete.

 

Now open the door and do all this again. Notice that only the "GarageOpen_B" picture is different from its counterpart, all the others are the same because the shadows do not change inside the garage. So that allows us to upload only this one (after flipping it) and use the other five pictures we've already taken without having to upload them again. Yay, we've saved L$50 in the process.

Before positioning the second env box, stretch the probe a little so it is not exactly the same size as the first one. That way, the env boxes will be easier to select or click on individually.

Edit the second env box and give it a different name (like "Env Box ~ Garage (open)") and more importantly, a different parameter, like "garage_door=open" :


And click on the "Position" button on the Env Probe HUD, and the second env box is complete.


Now what happens after the controller updates all its boxes ? First thing you notice, is that neither of those two boxes is active :



The reason for this is simple : the "garage_door" variable does not exist, and if a variable does not exist, its value is considered to be equal to the name of the variable. Since the word "garage_door" is not equal to the word "open" nor "closed", both boxes stay inactive.

If you're a programmer you must be jumping through the roof right about now... as most interpreted programming languages set a default value to "0" or to an empty string, or raise an error, but none that I know actually pretends that the value of an unknown variable is the very name of that variable.

I made it this way for another simple reason : "garage_door=closed" is interpreted as "Is the value of the variable named 'garage_door' equal to the value of the variable named 'closed' ?". Because "closed" could be the name of another variable after all so this allows dereferencing a variable. Of course, I could have required putting a string literal between quotes and it would have been a lot more consistent with existing languages, but let's not forget that we have only 64 characters in the description field, so every character is precious.

Now, how do we make one of the boxes show and not the other ? Let's test by setting the "garage_door" variable to "closed" in the controller. Click on the controller, go to "Options...", then click on "Set var" and write "garage_door = open" :


And click "Submit".


Tadaa ! There is only one reflection and that's the one with the door open.

Now do the same but enter "garage_door = closed" as the variable :


And here is the result :


This time, the "garage door closed" env box is active, the other one is inactive.

When one box is active, the other is inactive. They are said to be mutually exclusive.



Now, something more fun and that will show you that you seldom have to create several env boxes for the same room.

The three parameters "always active", "brightness factor" and "color factor" are actually expressions, not fixed values. This means that they are evaluated not when they are read in the description field, but when the box status is set by the controller.

In other words, you can write variables instead of numbers in those three fields, and that can prove very useful at times.

For example, let's assume I want the Study Room to be lit the way it is now when the lights are on, but to depend on the light of day when they're off. How do we do that without having to make two env boxes for this room ?

Right now the reflection in the study room during the day looks like this :


At night with the lights on it looks like this :


At night with the lights off the room looks a lot different from the reflection on the sphere :


The overall ambiance is darker but the reflection is just as bright as before, which is to be expected since the projections are barely darkened by the controller because the color factor is 0.75 :


This means that at any time, the final color of the projections is 25% the one decided by the controller and 75% white. So it's mostly always bright.

Wouldn't it be nice if we could condition that factor with the state of the lights in that room ? If we turned the lights off, wouldn't it make sense to darken the room at night ?

Well, it is very easy to do. Replace the "0.75" part with "study_lights*0.75", like this :


Then click on the study room's env box to take these new parameters into account.

And  now the projection is much darker :


The calculated color factor is now 0 because "study_lights" does not exist as a variable yet, so the box interprets the expression "study_lights*0.75" as "study_lights converted to a number" (which is 0) multiplied by a 0.75, which gives 0.

Now if you set the variable "study_lights" to "1" in the controller :



Voilà, the projections are bright again even though it is dark outside. I turned the actual lights of the room on to look better, but for now the controller and the box don't react to them. Yet.

If you set the "study_lights" variable to 0, the projections color will be back to whatever the controller says according to the time of day.

You must be thinking "I don't want to have to enter variables names and values manually in the controller", and you're right, it would be tedious. How about writing a script that does it for you ?

Let's write a script that switches an internal variable between 0 and 1 every time the object it is in is touched by someone. It is, frankly, a trivial script to write, any programmer can do that. If you're not a programmer, don't panic, I will write the source code for you below.

Of course, changing an internal variable when touched is good, but that variable must be exported to the controller when it changes, right ? That's what the script will do.


Let's go.

First thing first, make sure the light is OFF because the script will initially begin with a "0" value in its "light" variable, and we want to make sure it stays in sync with the state of the actual light (since there is no communication between this sample script and the actual script managing the lights).

Here is what the study room light switch looks like when edited :


The "A.E." scripts are not my work but the "Light" script is (I wrote it long ago to control the lights the way I want). We're not going to modify that script now, instead we will create a new one by clicking on the "New Script" button :


Then double-click on that new script to open its source code :


Now copy the following code and paste it over the existing code of the script you've created :

integer nLight = 0; // 0 is off, 1 is on

default {
  state_entry () {
  
  }
 
  touch_start(integer num_detected) {
    nLight = 1 - nLight; // 0 becomes 1, 1 becomes 0
    llRegionSay (-0514220319, "env^set^study_lights^" + (string)nLight); // tell the controller about the change
  }
}


This script is very crude but it gets the job done. Now whenever someone clicks on the light switch, the study room env box switches between "make the projection bright" and "make the projection take the controller's color".

You can verify at any time the value of "study_lights" in the controller by clicking on "List vars" in the Options menu.

The operation is done by sending the line "env^set^study_lights^" followed by the value of the lights (0 for off, 1 for on), on the channel -0514220319, which is a special channel the controller listens to.

If the controller's prefix is not "env" but something else, replace "env" in the script with that something else.

The string is constructed like this :

prefix^command^parameter^parameter^parameter...

And it must be sent on channel -0514220319.

The "^" character is the separator. It is a personal preference of mine as it makes it easier to read when debugging, and it is a character we seldom use ^_^.

In our script the prefix is "env", the command is "set" and there are only two parameters : "study_lights" and the value of the nLight variable.

Of course this script is just an example, but now you know that you can set variables into the controller remotely and automatically, and you know how to do that. There is a copy of it in the product box in case you want to take a look and make your own.



Limitations

There are some limitations to this product that come from SL and that cannot be circumvented.

Firstly, the projections are deformed if your Env Box is too flat in one dimension, they look best when the Env Box is a cube. Naturally, not all rooms are cubes so you do what you can, and the resulting reflections will not look too bad anyway, but do expect a stretch when you make your Env Box too flat.

Secondly, as pointed above, since an Env Box activates itself (unless specified otherwise) when an avatar is inside it, two adjacent Env Boxes may be active at the same time if there is an avatar in each one of them, resulting in overlapping projections on one side.

Thirdly, the maximum distance for a projection is 20 m, so you cannot make your Env Boxes much bigger than that, so forget about making an Env Box that surrounds your whole sim, it won't work. What does work is take pictures of your sim and make a worn Env Box with them, and asks your guests to wear a copy of it when they're in your sim. It's not ideal, but it does the job.



Updating your Boxes and Controller

At some point in the future there might be an update for the Env Probe, the static Env Boxes and the Env Box Controller. If you update your Env Probe you will get a whole new package... but what about all the boxes you've already rezzed and tweaked carefully ?

Don't worry, you won't need to redo all this work again, the Env Probe product comes with an "Env Box Client Updater" object which looks like a shiny black ball with drops of water all over its surface :


This sphere contains two scripts : the updater script and the new EnvBoxClient script, the same one (but the updated version) as the one in each one of your static env boxes.

Simply click on it and wait, and it will update all your static Env Boxes one by one.

Once again, if you use another prefix than "env", please change the description field of the updater to match, because it only updates the boxes which use the same prefix.

The controller itself will likely have to be replaced, but it is just a matter of derezzing the old and rezzing the new in its stead. And perhaps changing its prefix if you need, but nothing more complicated than that.


Whew ! That was a long post. I hope you will have fun creating your own environments !

Marine


Update to RemVision

$
0
0
Hi,

Here is an update to RemVision if you have trouble loading a tape and seeing only a black screen after you do. This was a long-standing bug that required specific circumstances to reproduce.

This update requires you to replace your RemVision product, a simple update won't do (in fact, it will break it if you try).

The symptom of this bug is that you try to load a tape (either one of the six free tapes contained in the box, or any other movie you bought) and despite it appears to copy just fine, your RemVision screen or your sub's screen remains black whatever you do.

This happens when the sim where you load the tape is laggy or slow, for example a homestead. I'm sorry, when I designed this product, I tested it in my sim which is a full region, and I didn't realize the difference in speed. It has taken me a while to track, identify and fix that bug. The technical reason was the encryption which is time-based, and the fact that the track scripts took too long to decrypt messages coming from the tape when loading, and a queue ensued, meaning the timestamps were invalid by the time the new messages were treated. Hence the black screen. After this fix, the track scripts decrypt much faster, fast enough to overcome this problem.


To update your restraint and benefit from this fix, you need to go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes


Once there, click on the updater and follow the instructions. You need to choose "REPLACE". Don't forget to save your times before requesting a replacement. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.




Have fun !
Marine




PS : Thank you Camryn Baxter and Aria Warden for letting me use your homes as testing grounds for this one.
Viewing all 249 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>