Monday, June 16, 2014

Restrained Love Viewer v2.9

Hi there,

As promised, here is the latest version of the Restrained Love Viewer (RLV if you lived under a rock for the last 7 years), with the brand new camera-related commands !

I won't detail all the commands here, the RLV API is meant for that kind of technical stuff, but let me just paste the release notes :

- added : @camzoommin and @camzoommax to prevent from zooming in or zooming out too far. This is great in games where the avatar is not supposed to have binoculars integrated directly in the eyes.

- added : @camdistmin and @camdistmax to force the camera to stay within a range, or at a certain distance from the avatar (or both). Set @camdistmax to 0 to force the view to Mouselook, and @camdistmin > 0 to prevent from going to Mouselook at all. This is great for games where you don't want the players to be able to cam around the sim, like in mazes.

- added : @camdrawmin and @camdrawmax to simulate fog or even blindness, by obscuring the world around the avatar (not around the camera like windlight settings do). Best used along with @camtextures. The camera is restricted to be inside @camdrawmin * 0.75 on top of it. This is especially fitting for blindfolds.

- added : @camdrawalphamin and @camdrawalphamax to indicate the closest and farthest opacities of the fog defined by @camdrawmin and @camdrawmax. When @camdrawalphamin is 0 (whicih is the value by default), you are assured that the world beyond @camdrawmax will be behind an opacity of @camdrawalphamax, regardless of the number of spheres rendered (which is decided by the new debug setting "RestrainedLoveCamDistNbGradients", which default value is 10).

- added : @camdrawcolor to set the color of the fog (default is black).

- added : @camunlock to prevent the camera from being unlocked from the avatar (it is unlocked when focusing elsewhere, or panning or orbiting the camera). This is great when you don't want the let the user see through walls.

- added : @camavdist to specify the maximum distance beyond which avatars look like shadows. This is great when blind or partially blind, to let the user know what the other avatars do, but not too clearly.

- added : @camtextures to make the whole world grey, except the avatars and the water. This is great when used along with @camdrawmin/max, to simulate blindness while still having a "feel" for the world immediately around the avatar. Please note that bump mapping and shininess stay untouched, because the avatar can "feel" whether a surface is smopoth, rough or slippery. (thanks Nicky Perian for the help !)

- added : @shownametags act exactly like @shownames, except it does not censor the chat with dummy names (but it does hide the radar, the name tags, prevents from doing things to an avatar through the context menu, etc). This is great for games where you have to find your opponents who may be hidden, and who don't want to be betrayed by their name tags.

- added : 3 more camera presets : left, right, top. This is to account for the lack of freedom we experience when @camunlock is set (since we can't move the camera much in that case).

- changed : now when you minimize a window in your viewer, its minimized shade stays where your window was, and the window reappears where the shade is when you restore it, so that the "Close" and the "Minimize/Restore" buttons stay at the same place. It was annoying when building and scripting to have windows move all over the place when minimized.

- changed : increase the limit of the avatar Z offset from -0.5/+0.5 to -1.0/+1.0.

- fixed : @detachall commands will not make the viewer stall anymore, they are now actually usable even when called on the top of the #RLV folder hierarchy.

- fixed : right click and selecting "Detach" on a temporary item in world did nothing (thanks Kyrah Abattoir for the heads-up).

- fixed : crash under @shownames, when a HUD owned by someone else spoke while imitating the name of its wearer. This was especially irritating when speaking to someone using a translator.

- known issue : RenderResolutionDivisor does not work well when @camdrawmin or @camdrawmax is set. No idea why.

- known issue : @camtextures won't hide the colors of the prim (the tint), only its textures. If someone knows how to fix this, I'm all ears !

Let me tell you a little about the camera restrictions. In essence, the goal is to let a script restrict the camera and the view : how far and how close the camera can go, how clearly and how far the user can see, and whether to let the camera go through walls or not. Here are a few pictures of how it looks with a "RestrainedLoveCamDistNbGradients" debug setting set to 40 :

 From 3 to 10 m, with an alpha going from 0 to 0.8

 From 0 to 10 m, with an alpha going from 0 to 0.5

From 3 to 5 m, with an alpha going from 0 to 1

You can also make all the avatars around look like dark silhouettes (or only beyond a certain distance), you can hide all the textures from sight to remove the visual feeling of the surroundings without cutting the whole picture (after all, a blindfolded captive can rebuild a visual image of her surroundings by the sounds, the touch and the smell, right ?).

As usual, you can grab the viewer here :

And the MD5 hash for the Windows executable is :

On a side note, I am planning on updating all my RR blindfolds with this new feature (but users who are not on a RLV 2.9 will still have the old HUD so the products won't break), but it will take some time. Not because it's difficult (the script is already updated and tested) but because I have many more things to update in my brand, so I will take my time.

Have fun !