Monday, August 8, 2022

TranceCaster bugfix, Mesmerizer 1.7.0 and Owner HUD 1.1 Preview

A fairly substantial update that covers multiple products in the CHAOS line is on its way.  But before I talk more about that, there is a minor update to the new TranceCaster.  There was a small bug in TranceCaster 1.0 that prevented the menu from working properly if the TranceCaster contained more than 18 trance scripts.  I've fixed this and put a new version 1.0.1 in vendors.   Get your update from any of my vendors, or any CasperVend vendor by choosing "Redeliver" from the menu.

I do have a somewhat more significant update to the TranceCaster in the works, so if you have any suggestions for new functionality, now would be a great time to let me know.

Now onto the preview announcements.

CHAOS Mesmerizer 1.7.0

There are three important new features in Mesmerizer 1.7.0:  better support for images with parameters, camera control, and improved legibility of on-screen text.

Enhanced image support

In Mesmerizer 1.6.6, I introduced the show2 family of commands that extended the Mesmerizer's image display capability to support non-square images as well as moving images.  show2 commands take an extra parameter that can specify things such as the aspect ratio of the image, its opacity, and for a moving image, how many frames per second should be displayed and how those frames are laid out within the image texture.  So a command to display a moving image might look something like this:

/99 show2 306942ab-2bda-bd53-6d18-5dda710af8a6 "alpha=1.0;animate=7:8:10"

This works, but it's a bit complicated to type.  The CHAOS Visualizer doesn't yet support these "extended" textures (although that's on my to-do list), so you don't really have any option other than to type it each time.  I suppose you could define a macro in the Owner's HUD, but you're limited to only something like 11 macros.  It would be far better to have the images somehow include that parameter information so that it doesn't have to be specified each time. 

Mesmerizer 1.7.0 allows images to be defined by a notecard.  Image notecards are named with a prefix "Image:" and they contain the information in the parameters above that are supplied to show2.  For instance, I could create a notecard in my Mesmerizer called Image:animatedHands that contains the following:

alpha=1.0
animate=7:8:10
texture=306942ab-2bda-bd53-6d18-5dda710af8a6

This would allow me to simply say:

/99 show "animatedHands"

to get the same effect as the show2 command above, without having to type the parameters explicitly.

What's actually going on here is that when you issue a show or show2 command with the first parameter foo, the Mesmerizer will first look for a notecard called Image:foo, and if it finds one, it will use the information in that notecard to find the actual texture as well as display parameters.   If the original command was a show2 family command, the command could specify its own display parameters, which would override those same parameters in the notecard.  So with the notecard above, I could say:

/99 show2 "animatedHands" "alpha=0.6"

to get the same moving image, but with 40% transparency.

The pics command will now display both "raw" textures and Image: notecards.   A new picinfo command displays the contents of an Image: notecard.  It takes the notecard name (without the leading "Image:") as a parameter.   So if the above notecard Image:animatedHands is present, then

/99 picinfo "animated Hands"

would show:

Details for image "animatedHands":
alpha=1.0
animate=7:8:10
texture=306942ab-2bda-bd53-6d18-5dda710af8a6


Camera Control

I've often been in a situation where I want to point out something in-world to a sub.  Whether this is a vendor in a store or a spiral on the wall, I've often wished I could bring my sub's camera to a point of my choosing.   That's what the camera control feature does.

The new lookat command and its slightly simpler lookat2 variant force the sub's camera to focus on a specific thing.   The commands take the following form:

lookat2 target cpos 

lookat target cpos fov

Both commands specify the thing to look at in their first parameter.  This can be an object name, the key of an object, or coordinates.  The second parameter specifies where the camera will be.  This is specified as either relative or absolute coordinates.  lookat takes a third parameter which is the field of view in degrees that should be used; lookat2 uses the sub's current field of view. 

The cpos (camera position) parameter needs more explanation.  In its simplest form, it can be expressed as a set of x,y,z coordinates, e.g. "<23.0, 124, 25>".  You can also express this as a set of relative coordinates, by using + or - symbols in the various coordinate positions.  An omitted coordinate is taken to mean "+0".   For instance, a camera position of "<+1,-1,>" means that the camera is placed 1m East and 1m South of the target, and at the same height as the target.

The angle brackets surrounding coordinates are optional.

When lookat is in effect, the sub's camera is locked in place.  The freecam command will release it.

There is also a new mouselook command that takes a boolean parameter ("on" or "off") to indicate whether to force mouselook.  Note that the behavior of this command is rather different between viewers that implement the original RLV (e.g. Marine's viewer) and those that implement RLVa (e.g Firestorm).  In viewers using the original RLV, this command will activate mouselook; in RLVa viewers, it simply locks the camera to the center of the sub's head.   This looks rather weird, and can best be thought of as a strong encouragement for them to go into "real" mouselook.

The Owner HUD has been enhanced to make use of this new feature as described below.

Improved text legibility

Since its initial release, the Mesmerizer has used hover-text to display on-screen messages (both within and outside of trance).  This has the advantage of simplicity, but the small size of the text can make it difficult to read.   I've made various attempts to alleviate this problem (for instance supporting cycling colors to help make the text more visible against a variety of backgrounds), but the best solution would be to increase the font size.  Mesmerizer 1.7.0 does this, by using the Open Source FURWARE text.  I've used this to create a text display of 8 lines of 128 characters each.  You can switch between the original hover-text and the larger FURWARE text using the new textstyle command, which takes a parameter that is one of "small" or "large":

textstyle large uses FURWARE with a font that lets the lines stretch most of the way across the screen.  This is the default.

textstyle small uses the original hover-text implementation.

I've retained the original hovertext because the FURWARE implementation does have one drawback.  It uses prims to display the text, so when it's in use the middle portion of the screen is covered with those prims, and even if a given prim isn't displaying any text it will still obstruct mouse-clicks.  To alleviate this, when the text is cleared the FURWARE prims are moved off-screen.  But if you wish to leave text visible while the sub is doing something else and may want to interact with in-world objects, you should probably switch to textstyle small so that their mouse won't be obstructed.

All of the commands relating to text work with FURWARE as they did with the original hover-text (even color cycling).

This only affects text written with the text and text2 commands.  Subliminals continue to use hover-text

CHAOS Owner HUD 1.1

As mentioned above, the Owner HUD has been enhanced to support the new camera controls.  CHAOS Owner HUD 1.1 adds buttons (under the "Misc" tab) to send a lookat command based on the owner's current camera.  This allows you to set your own camera to a precise position and then press the "Send Cam" button to move the sub's camera to that same place.  This mostly removes the need to ever bother with constructing a complicated lookat or lookat2 command manually.  There is a corresponding "Free Cam" button to release the targeted sub's camera, as well as a "Free My Cam" button which releases just the wearer's camera, in the event that you were included in the HUD's targets.

Futures


As mentioned above, I intend to add support for "extended" textures to the CHAOS Visualizer.  I haven't yet started on this, but I don't think it will be a major piece of work.  Similarly, the AutoInstaller needs a little work to add support for Image: notecards.

While the Mesmerizer and Owner HUD updates should be in vendors within the next few days, it'll be a little longer before the Visualizer and AutoInstaller get their updates.

No comments:

Post a Comment