Archive for March, 2008

BUZZ: 1-prim interfaces (llDetectedTouchPos)

I just read the most exciting news by Frans Charming on SLOG about a discussion during the Mono Office Hour regarding interactive user interfaces on a single prim face.

Essentially, scripters in Second Life have long wanted to be able to tell exactly where an object has been clicked, rather than simply which object was clicked.  There is currently no way to gather that information, which is why if you look at any HUD attachment with what appears to be multiple buttons in View Transparent (CTRL-ALT-T) mode you’ll see that each button is a different prim.

By creating new LSL functions (NOT just for MONO, despite the fact that this was discussed at a Mono Office Hour) that return both region-relative world coordinates (llDetectedTouchPos) or uv-mapped texture coordinates (llDetectedTouchUV), Second Life content creators will be empowered to make much more functional user interfaces without as many prims.

Already my mind is churning out reams of ideas of how this could make scripter’s lives a little better, but quite naturally the very first thing that occurred to me was that the ability to gather per-pixel touch information on a prim will enable the final stages of html-on-a-prim, which seems to be born out by the actual (heavily edited) transcript :

Periapse Linden: Ok, so our special guest today is Qarl.
Qarl Linden: woo.
Periapse Linden: The Linden who brought you sculpties
Seifert Surface: yay.
Siann Beck: Hello Qarl
Qarl Linden: hey all.
Periapse Linden: He’s back with a great new idea he’d like to get feedback on.
Qarl Linden: so i have to give credit where it’s due -
Periapse Linden: So go ahead Qarl and tell us about Detected Touch
Qarl Linden: Seifert originally asked for this feature a year ago.
Vincent Nacon: yeah I believe I fed him some of those ideas…. if he checked his email :P
Qarl Linden: i got sidetracked and didn’t get to it ’til now.
Qarl Linden: https://wiki.secondlife.com/wiki/LSL_Touch_Position
Qarl Linden: :)
Seifert Surface: i think people have been asking for it from waaay back in the day
Qarl Linden: yeah, true.
Vincent Nacon: yeah I’ve been wondering how that will work
Qarl Linden: what we’ve got here is the ability to get more information about touch events.
Vincent Nacon: by polygon?
Qarl Linden: you get to know where on the surface, and where in world the touch occurs.
Qarl Linden: you get the face number as well.
Vincent Nacon: err… how many faces are there?
Qarl Linden: it’s continually updated as the mouse is held down - so you can implement dragging.
Qarl Linden: 6 faces on a cube - etc.
Seifert Surface: vincent: faces as in faces on a prim
Chance Abattoir: Where on the surface, that’s rad!
Seifert Surface: 1 face on a default torus
Qarl Linden: and the POSITION, as well.
Vincent Nacon: oh was thinking about sculpty part
Vincent Nacon: muhahahaha!
Qarl Linden: texture coordinates, etc.
Siann Beck: That sounds awesome.
Qarl Linden: right now we’re asking for feedback - make sure we don’t miss anything important.
Seifert Surface: presumably if we ever get 2 sided planar sculpties, theyd have 2 faces
Qarl Linden: presumably. :P
Seifert Surface: :P
Vincent Nacon: wait… didn’t we already have something like that
Vincent Nacon: the drag I think
Qarl Linden: there’s a similar call: llDetectedGrab().
Vincent Nacon: yeah
Qarl Linden: but it’s not so good for a variety of reasons…
Rex Cronon: list llDetectedTouchAll()
Vincent Nacon: yeah, tried to make a joystick imput by using that
Vincent Nacon: input*
Qarl Linden: it reports movement relative to the camera position…
Vincent Nacon: yeah
Qarl Linden: not so useful.
Vincent Nacon: it was neat at first but meh
Qarl Linden: now you’ll be able to put an entire GUI into a texture, and determine with the position info which button was clicked.
Qarl Linden: chess boards, for instance - won’t need 64 prims.
Seifert Surface: the continual updating works with the touch event firing lots right?
Siann Beck: That’s awesome. A lot of vendors can be re-designed.
Qarl Linden: exactly.
Vincent Nacon: so… if we’re going to have touch_position on surface, what does it means for html-on-prim?
Seifert Surface: right
Mbrb Rau: 1 prim vendors…
Qarl Linden: yes - that’s one of the motivations for this work -
Qarl Linden: so that prim web browsing will be easier for us to implement.
Vincent Nacon: yeah, figured
Vincent Nacon: well that’s good, hope it won’t be much of a problem with flash
Qarl Linden: naw - it’ll still be controlled with parcel media…
Rex Cronon: could it be possible for a script to load a notecard that has html code on a specific face?
Qarl Linden: flash is hard because mozilla has a truly horrible plugin interface.
Vincent Nacon: now that’s a thought
Qarl Linden: we’re looking at webkit and others for that…
Qarl Linden: maybe notecard->html … but that’s not REALLY useful…
Vincent Nacon: so how the position will work? gobally or local?
Seifert Surface: rex: really you want to be able to alter the webpage on the fly from a script
Qarl Linden: only if you can’t get your own webpage.
Seifert Surface: say for a scoreboard or something
Qarl Linden: yes. exactly.
Qarl Linden: but you can do a LOT by passing parameters to a webpage in the URL.
Rex Cronon: i want to have display that is not connect to a web page
Vincent Nacon: and for non-flat surface… how will that set the local position? based on UV map maybe?
Seifert Surface: html file in a string?
Qarl Linden: i’ve seen an example where HTML is in the parameter…
Qarl Linden: yes - it’s the UV map.
Vincent Nacon: ah ok perfect
Chance Abattoir: When will this script go into testing?
Chance Abattoir: function
Qarl Linden: soon - i’ve got the implementation finished - just a couple more tweaks.
Qarl Linden: a month timeframe, i think.
Qarl Linden: but no promises.
One month.  Wow.  Seems LL has decided to get a whole bunch of internal projects done in a big hurry :)
Finally, another bit of news that might be interesting :
Periapse Linden:  1) We are going to start the Big Merge of Mono with havok4 next week

Popularity: 30% [?]

Havok 4 to be deployed on Monday

Yup, the rumor is true, Havok 4 is to be deployed grid-wide on Monday and Tuesday.

It does not appear that any of the bugs affecting C:SI will be fixed by then, and Linden Lab knows that they are releasing a physics server with many significant changes :

Sidewinder Linden Says:
March 29th, 2008 at 12:33 PM

Please remember - we are here and will be here - we know that you will find some things that behave differently with this version. We will be fixing critical issues as they are raised, and issuing updates as necessary in the short term. Thanks for all of your support! /Sidewinder

Apparently the consideration of whether Havok 4 is more stable than the current simulator code is more important than whether it will break existing content :

As part of our continued effort to increase the stability and reliability of Second Life, we are happy to announce a new simulator that significantly reduces region crashes. This release is the result of the Havok™4 project, a project that updated the physics engine used to determine all movement of objects in Second Life.

….

The Linden Lab Havok4 team will continue to review open issues and work on critical bugs after the release. We know that you will find things that still need attention, and we fully expect that we will continue to do fixes and updates in the period following the release.

With all of the down-time, the almost daily problems with transactions for the last couple of weeks, and everything that has been going horribly wrong lately, I might actually agree with them on that.  I’m not terribly thrilled at being a content creator that will have to field questions and provide support for now-broken products, but this may provide some much-needed stability for everyone in general.

In any case, I am certainly very glad that I’m not the one in charge of making this decision. 

Popularity: 34% [?]

Buzz : Avatar Puppeteering in Second Life®

Last month, when I posted an article on realXtend joining with OpenSim, I mentioned that one of the things that got me truly excited while reading the proposed feature list was the ability to directly script the avatar skeleton.

Here’s what I said at that time :

Ability to script avatar skeletons - Apparently inverse kinematics is on the feature list, but in addition to that developers will have the ability to script fine-grained control of the skeleton’s bones.  While it may not allow for everything that Endorphin would, it would seem to me that this could provide a great deal more spontaneity and interactivity between avatars than Second Life® ever could.   Note, this is not just .bvh animations uploaded like Second Life®, we’re talking scripted access to the skeleton!

What I didn’t know, and only just now found out from Massively, was that similar features have been on the Linden Lab® lab radar since as far back as last August (according to the Puppeteering wiki page), and according to Moo Money at Massively it’s been talked about in focus group sessions since 2006.

That wiki page mentions that scripted animation - the ability to control joint rotations and figure positions through LSL script rather than the simple playback of animation files - is on the agenda, and if they ever do in fact add that capability I can easily imagine that melee combat like Combat: Samurai Island will take on entirely new and fascinating dimensions.  Combine scripted spontaneous animation with physical avatars, and you have the foundational components for a level of combat interactivity that will truly blow away anything available in-world today.

In order to get a sense of the difference between what we have now and what this could mean for the future, take a quick look at this section from the AvatarPuppeteering website:

 The Physical Avatar

Techniques for animating avatars have come a long way, although they are still largely based on the linear narrative of film technology, whereby character animations are crafted beforehand using keyframing, inbetweening, etc., stored in a file, and then played using various triggers in the context of a dynamic virtual world. The animations look exactly the same each time they are played - which is of course desirable in the case of a feature film - but pretty useless in terms of spontaneous expression in an online world.

To accommodate the novelty and freshness of online virtual worlds, hybrid layers of procedural animation have been introduced, which allow the avatar to adapt to an unpredictable environment and to respond to user intent (although still to a limited degree, in my opinion).


Avatar Puppeteering introduces a completely physics-based means of naturalistically animating the avatar, in which every joint can be pushed, pulled, or rotated in real time for maximum expressivity and responsiveness. The underlying technology for Puppeteering is called "Physical Avatar" - it is called that because it uses forward dynamics to affect the positions of avatar body parts in the virtual world. This is explained in the sections below.

There’s a pretty cool though very limited video demonstrating in-world animation available on YouTube.  It looks to me like it’s mostly a ragdoll/kinematics simulation, but it’s pretty significant that it’s being done in-world rather than via third-party software like DAZ or Poser.

This is very encouraging news, and I’m once again excited about the potential of Second Life®   I can’t wait to get my grubby little hands on a technology preview!  Be sure to check out the AvatarPuppeteering website for more in-depth information and more videos.

Popularity: 41% [?]

Guest Blogger Invite - Showcase your favorite region

regioncount-mar-2008 Since I first asked the question "How many people use C:SI?" on this blog last September, the Combat: Samurai Island community has grown by more than 5000 new active users, and more than 1800 new regions where duels have been fought.  Not all of those regions are active, of course, like Meiji with over 188000 duels at the time of this writing or Samurai Edo at over 100000, but there seem to be quite a few very active regions that I’ve never even heard of.

As an example, looking at the "Most Active Sims This Week" portion of the C:SI Weekly Stats page today, I see that I’ve spent a decent amount of time in only two of the listed regions and have never even heard of two of them.  The rest I’ve either been to only a few times at most (I just started visiting Bloodlines, for instance, and it’s in the top 10 this week) or simply have yet to get off my duff and visit them :

activesims-mar-2008

In a way, this is pretty gratifying.  Part of the satisfaction of being a C:SI developer is seeing how many people use your weapons, and how frequently.  It’s pretty neat to think that there’s just way too many places out there where the weapons are being used to realistically expect to visit even most of them, let alone all.

On the other hand, I’m pretty sure I’m missing out on some neat stuff :)

So what I’d like to do, and I don’t know how many people are going to take me up on this but I hope that at least a few people are interested, is offer everyone the chance to send me an article about their favorite region for C:SI combat, which I will publish (with full attribution of course) here or on the Combat: Samurai Island website (or both if you prefer). 

You don’t have to be a great writer (just look at me, for example, just pitiful hah) or particularly articulate, just enthusiastic enough to write more than a paragraph or two :)  I’d really love to hear about your favorite region and why you think it’s so great. Screenshots are encouraged, of course, and a teleport location would be appreciated.

If you are interested, feel free to drop me (RobbyRacoon Olmstead) a notecard in-world with your article, or email me at this domain (Robby at DaikonForge).

Popularity: 26% [?]



Bad Behavior has blocked 58 access attempts in the last 7 days.

Close
E-mail It