[Opensim-dev] Feature Request: osAvatarSit(key avatar, key object, integer options)
dz
dz at bitzend.net
Tue Sep 2 20:04:16 UTC 2014
Assuming you can overcome all of the "other obstacles" and have the
latitude to reset the config params in OpenSim.ini, then there is no reason
why you can't have a single script animate multiple avatars across your
region. You will need access to the INI file if you want to overcome the
current limit on linkset sizes ( how far you can move a linked object from
its root prim ). In my experience, trying to get an admin to enable the
OSSL functions (especially the ones marked Threat level : HIGH ) is harder
than the coding involved.
As for "No pose balls" .. People are more likely to understand the concept
of "sitting on a ball to dance" than they are to comprehend instructions
on how and when to touch something new. The visible feedback also
eliminates playing partner roulette when laggy touches to the dance machine
seat you with the last/next avatar to touch it. Pose balls also have the
advantage of being convenient "handles" when you are trying to position
avatars to build your animation configuration notecards/database.
I'm not sure I understand why a new function is required, since you can
set the default action on the linked objects to "sit". The trick will be
to get the first object to the location before the first partner of the
couple is seated on it, or you may see avatars zipping between the dance
machine and the locations on the floor. As long as you move a pair of
objects to the approximate location, the second avatar should just be able
to sit on the object and be in position. There is another major issue
with letting couples "randomly" choose where to dance.. Many are not
familiar with the space required and opt to rez the pose balls right next
to their neighbors, causing the animations to move the couples on top
of/through each other. A simple solution to this is to have the 'couples
dancing' locations identified by the presence of the pose balls.
The operations sequence could be as simple as;
The dance machine with the scripting is set out.
The linked pose balls are rezzed and re-located to the positions in the
sim you want.
Couples can touch the dance machine to be deposited on the "next" location,
or touch the pose balls to sit/dance at the "couples" location they want.
On Tue, Sep 2, 2014 at 8:16 AM, Aine <aine.caoimhe at rogers.com> wrote:
> I've been considering scripting a new couples dance ball for clubs in busy
> regions where keeping the script count to a minimum and script efficiency
> to a maximum is key.
>
>
>
> The current most popular couples dance machine currently is the venerable
> "Franks Couples Dance System" and its assorted permutations which can
> handle multiple couples but requires one script per **possible** dancer
> (so often this has 12-16 animation handler scripts), plus the master
> controller script, etc...not very efficient at all. The version I envision
> would be a single script that uses OSSL animation functions to handle all
> users simultaneously. The only hurdle to overcome in scripting this is the
> positioning of the couples in x,y axis in the region since they need to be
> effectively on poseballs but I want to make it a completely poseball-free
> system by having them "sit" on the machine itself and then use
> llSetLinkPrimitiveParamsFast() for the positioning.
>
>
>
> Frank's machine rezzes a pair of poseballs near the initial toucher's
> location, then the pair sits and the poseballs are moved to do the
> positioning for each dance. To eliminate the poseball usage but maintain
> the same basic functionality I would need some way to know the couple's
> approximate location *prior* to "sitting" on the dance machine (which then
> makes them part of the linkset and lets me do all the positional dance
> controls). The only solution I can come up with using existing functions is
> one where one dancer has to first touch the machine to say ""I want to
> dance so store my position and then when I sit put me back there" and then
> a right-click sit to actually sit on the machine....not something that's
> very intuitive or user-friendly plus requires multiple clicks. The easiest
> solution I can think of is a function that allows me to "force sit" the
> toucher rather than having him/her have to do so, allowing the first dancer
> to touch the device which then checks the location and then force-sits the
> avi before immediately putting them right back where they were. Then the
> partner touches the machine which repeats the process but puts them in the
> correct location based on the dance selected. Obviously there would be a
> few little tricks to correctly matching couples but I can manage all of
> that stuff with existing functions so the only stumbling block is the lack
> of a force-sit command for avatars.
>
>
>
> The "force sit" function I'm proposing would be identical to the existing
> osNpcSit() function but work on regular agents. You'd specify the UUIDs of
> the avatar, the UUID of the target to sit on, and use the equivalent of
> OS_NPC_SIT_NOW as its option. Since the function exists already in NPC
> form, I was hoping that it might require minimal additional coding to
> enable it to work on a regular avatar -- possibly as simple as commenting
> out the presumable check in the current code that makes sure the agent is
> an NPC before allowing osNpcSit() to do its thing.
>
>
>
> I can envision other applications where this function could very useful
> (to be able to seat someone who touches an object). Needless to say it
> would need to be assigned at least a VeryHigh or even Severe threat level
> due to its potential for abuse unless it initiated a permission request
> check of some sort.
>
>
>
> Is this feasible and is there any interest from someone with the necessary
> coding expertise to implement it? Of can someone think of a clever way
> around this hurdle using existing functions?
>
>
>
> Cheers!
>
>
>
> Aine
>
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20140902/78556b57/attachment-0001.html>
More information about the Opensim-dev
mailing list