Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Thinking about ZHAO-II...

Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-18-2007 21:46
... what would you like to see? Here are some of my ideas so far.

* Fewer scripts. Back when I wrote this, I don't think idle scripts took up sim time, or they did and I didn't know it. Today, this is common knowledge, which unfortunately means that having individual scripts to handle little tasks is no longer sim-friendly design. I'll try to bring this down to 2-3 scripts total (I don't think I can do it in 1, there isn't enough memory).

* Easier to customize the ZHAO object. No more scripted texture changes. I'll leave the green/red color changes in there, since I think the visual feedback is easy to understand. But you can apply your own textures to the prims, and the script won't touch them.

* A 'Help' button that gives the owner a Help notecard. Hopefully this will reduce the number of people who IM me with the same question :)

* Add the 'next stand' functionality back, and also provide a way to adjust the stand cycle time, or turn off stand cycling. I'd taken this out when I made the ZHAO because I assumed that most people don't use it. While that assumption may be true, I now know that some people did use this feature, and they liked to switch stand animations on their own.

* Fewer buttons, I'm thinking of moving most of the buttons to dialog menus. Right now I only have an on/off button and a menu button. I'm not sure if 'next stand' should be a dedicated button.

* A config notecard that's easier to edit. This one's difficult to do, and where I would like your feedback. One option would be to break with the current format completely, so ZHAO-II won't be backwards compatible with existing notecards. How would you feel about that? What if I provided a converter script that read the old notecard and said the new notecard's contents in chat, which you could then copy-paste into a notecard? (Scripts can't directly write to notecards).

If I want to retain backwards compatibility, then one option is to make the parser work off the slot tokens. Right now, the tokens (by tokens, I mean the " :: [ xxx" lines) are ignored, they are there only to let you know where the animation names go. The script expects specific animations to be in specific lines in the notecard. This is why it breaks if a line is added or deleted anywhere in the notecard. My idea is that the script looks for a token like this:

:: [ Standing 1 ] ::

And then it will look for a standing animation in the next line. If the next line is blank, it's skipped. If the next line is another token, like:

:: [ Standing 1 ] ::
:: [ Sitting 1 ] ::

Then the script will forget about the stand, and will look for a sit animation in the next line. And so on. What this means is:

* Current notecards will work, with no changes
* Adding/deleting lines won't be a problem
* If you're only overriding a few animations, you can have a shorter notecard that only specifies the animations being overridden

I think editing the notecard has always been a point of confusion and frustration, so this would help with that, a little bit.

Or, we go to a brand new notecard format, and then it could be something like:

Stands:anim1,anim2,anim3
Walks:anim1,anim2

Or something like that. That would probably simplify the notecard significantly, but then we have the backwards compatibility problem.

I don't plan to change the core AO 'engine' from Francis' Franimation. It works beautifully, it has a *ton* of "SL is broken if you do this so we must do this to compensate" type of code in it (that Francis figured out and I don't really understand :)), and basically, there's no need to fix what isn't broken, IMO.

Thoughts/comments/ideas welcome.

Thanks,
Ziggy
Foo Spark
alias Bathsheba Dorn
Join date: 8 Nov 2006
Posts: 110
06-18-2007 22:47
Fewer scripts, a slam-dunk.

Easier notecard format sound great to me, I think it'd be well worth breaking compatibility to have the much shorter format that you suggest -- having the whole thing fit on a screen would be a big win for me.

The one change I'd like to see in the core would be the addition of a typing anim override. I hacked my ZHAO to do that, and I don't suppose it's very efficient, but I really feel like it's the finishing touch.

Thanks much!
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-18-2007 23:02
Thanks for the feedback. Typing overrides - don't most of those show/hide prims on a keyboard or some similar attachment? I think it might be better to leave that functionality in that attachment, or it would have to open a listener and wait for the AO to tell it when the person is typing. Also, I thought some stands were designed specifically to allow the typing animation to play over the stand? I don't know too much about how the animation creators handle these things, and what they'd like to see in an AO.

And before I forget, a big 'thank you' to Keiki and Francis for all their help and suggestions so far :)
Broken Xeno
~Fething Alt~
Join date: 9 Mar 2007
Posts: 632
06-18-2007 23:07
I always wished there was a way to go over the five stand limit. I know there's not, but if there was, that'd be what I'd like to have, lol.

Fewer scripts is nice, I do like how open the ZHAO is for customizing. One thing is I noticed on my old ao before SL ate it up, was the more anims that I had in it, the buggier it got. Sometimes it wouldn't work properly, or when I click hide and it folded down, the wrong buttons would appear, or it wouldn't appear at all.
_____________________
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-18-2007 23:13
So... this is kinda embarrassing, and is something I discovered while talking to Francis yesterday. You can put virtually any number of stands in the ZHAO. The format for that is:

anim1|anim2|anim3

In each of the 5 stand slots. The AO will then randomly pick one of the specified animations on each cycle.

Yes, it's always been able to do this. I had no idea :)

If we change the notecard format, then there's no need to even have 5 slots, there would be 1 line with all the stands in it. I'd have to put some limits on there so people don't try to load 100 stands and use up all the script's memory.
Broken Xeno
~Fething Alt~
Join date: 9 Mar 2007
Posts: 632
06-18-2007 23:22
From: Ziggy Puff
So... this is kinda embarrassing, and is something I discovered while talking to Francis yesterday. You can put virtually any number of stands in the ZHAO. The format for that is:

anim1|anim2|anim3

In each of the 5 stand slots. The AO will then randomly pick one of the specified animations on each cycle.

Yes, it's always been able to do this. I had no idea :)

If we change the notecard format, then there's no need to even have 5 slots, there would be 1 line with all the stands in it. I'd have to put some limits on there so people don't try to load 100 stands and use up all the script's memory.



=o holy crap! I didn't even know that. That's good to know!
_____________________
Suzi Sohmers
Registered User
Join date: 4 Oct 2006
Posts: 292
06-19-2007 04:09
A next stand button, along with a way to switch off automatic cycling would be great. Also, if we can have more than 5 stands, it would be great to be able to select the stand by name (from a menu) rather than cycle through them manually.

Personally I wouldn't worry about backwards compatibility. We'll all start messing with the notecard as soon as we get the new AO anyway, and it sounds like the new format will be really easy to do. Also, if it's needed someone will soon come up with a translating script.

And I suggest you leave typing overrides alone. All my stands are tuned for that already and I wouldn't like that to be over-ridden.

/me dreams "If only SL would let us walk backwards instead of turning us around......

Oh, and thanks so much for this. Yours and Francis' work are two of the best contributions to SL that I can think of. Respect.

Love Suzi
Solomon Devoix
Used Register
Join date: 22 Aug 2006
Posts: 496
06-19-2007 07:32
If you're really worried about backwards compatibility, just include a rezzable object with a "converter" script in it. They drop their current config notecard into the converter's inventory, it reads the old style of notecard, and says the new version into chat. All they have to do then is open chat history, select & copy, then paste it into a new config notecard for the new ZHAO-II. Just make sure to include a prominent "Cut Here --> [blank space] [new text] [blank space] <-- Cut Here" type guide formatting. ;)
Brenda Connolly
Un United Avatar
Join date: 10 Jan 2007
Posts: 25,000
06-19-2007 07:54
Being able to switch stands, most definitely. Easier editing as well. Note cards as they are now give me a headache, if they can be done away with even better.
_____________________
Don't you ever try to look behind my eyes. You don't want to know what they have seen.

http://brenda-connolly.blogspot.com
Learjeff Innis
musician & coder
Join date: 27 Nov 2006
Posts: 817
06-19-2007 09:25
I suggest the following, very simple format:

<button>=<anim>

where <button> is a button name like stand, sit, etc., and <anim> is an animation name. For example:

stand=stand1
stand=myFunkyStand
stand=foot-tapping-stand
sit=normalsit
sit=sitting1

The code to handle this is trivial, and it makes it easy to pull lines from one AO and add them to another. Line order would be unimportant.

You can make a simple object where you drop in an old ZHAO config and it spits out the new one.

Kudos to you Zig, for your significant contribution to SL! We all love you for it.
Learjeff Innis
musician & coder
Join date: 27 Nov 2006
Posts: 817
06-19-2007 09:36
On second thought, since some folks like to put more than one anim on a line, allow this:

<button>=<anim>{,<anim>}

but with the same semantics as above: if we have more than one line for a button, it just adds the items to the list for that button. For example:

stand=stand1,stand2,stand3
stand=stand4,stand5
sit=sit1,sit2
sit=sit3

The code really is simple; just clear the anim lists before reading the card; whenever reading a line where the first part (before the '=') matches a button (well, an 'attitude' or whatever), pass the rest of the line to llCSV2List() and append the result to the list for that button.
Anti Antonelli
Deranged Toymaker
Join date: 25 Apr 2006
Posts: 1,091
06-19-2007 09:38
Sounds great Ziggy! Here's a feature request for you to entertain if you like, though I admit it's a bit far afield from the changes you're talking about so far:

How about adding the ability to load up a Zhao with a list of personal dance animations, perhaps on their own notecard, to be called from a dialog? I know there are already a million dance attachments, but my thinking is that dancing often requires turning off one's AO (plenty of standing animations seem to come in Priority 4, so the stand cycling routine interrupts a dance after a minute or two) so integrating into the AO such that it can be automatically disabled during dancing would seem to be a welcome feature.

Maybe specify a maximum of 12 dances to fill up a single llDialog box, and I'd love to see the script read an additional short "name" string off a notecard for displaying on the llDialog buttons, as Learjeff outlined above.

This is something I've been wanting to toy with myself, but time has not permitted and now that you're thinking about a new version I'm sort of glad I didn't ;) Anyway I know it's kind of an "out there" request for an AO, but regardless thanks for reading :)
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-19-2007 09:45
Francis deserves most of the kudos, all I did was add a little HUD around her script :)

From: someone
and it makes it easy to pull lines from one AO and add them to another


That's a good point. Seems like a good reason to go to a one-line-per-anim format like you suggest. It will result in a longer notecard, but it'll be shorter than the current notecard.

The other thing I'm working on is separating the functionality into a core 'engine' script (that handles the AO stuff) and an 'interface' script (that handles the UI stuff), and set up a link message interface between them. This will allow someone to build a custom AO, with different prim/menu design, and use the ZHAO-II engine by sending it link messages. Hopefully some of you will try it out, and build your own custom AOs with your own interface design. Right now it's all tied together, so you can't do much beyond changing the button textures.

If none of that made any sense, ignore it :)

From: someone
Also, if we can have more than 5 stands, it would be great to be able to select the stand by name (from a menu) rather than cycle through them manually.


I'll look into that. If I give users the freedom to set up as many stands as they want, then managing this menu will take a little more work, but not impossible. So maybe a 'next stand' command and a 'choose stand' command.
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-19-2007 09:50
From: someone
<button>=<anim>{,<anim>}


I could be wrong, but I *think* Franimation currently interprets "anim1,anim2" as "play both these animations together", with the expectation that the animations have been set up to work with each other (e.g. one upper body anim and one lower body anim). I don't have access to the scripts right now, so I could be wrong about that. Either way, it's easy to use different separators to indicate "multiple anims to be played together" vs. "different options for this anim slot", if I need to support both.

From: someone
How about adding the ability to load up a Zhao with a list of personal dance animations, perhaps on their own notecard, to be called from a dialog?


I would do this the other way round. ZHAO-II can be turned off by any other script by sending it a link message (you basically send it the "AO Off" command). So now a dance HUD maker could incorporate ZHAO-II into their product, and turn it on/off as necessary. Not sure if that solves your problem or not :)
Anti Antonelli
Deranged Toymaker
Join date: 25 Apr 2006
Posts: 1,091
06-19-2007 11:44
Thanks for the reply Ziggy, I shall set about making my own personal "dance selector" with hooks to plug into the Zhao. I hope I didn't seem presumptuous with my request; it was just a thought, I actually have no idea how many other people share my desire for a very simple "click for a dialog, click to select a dance" device - I just find the idea of a general-purpose animation player (dances being the most obvious application) integrated into an AO rather attractive.

*gets off lazy rear end and does something about it* :o
Bree Giffen
♥♣♦♠ Furrtune Hunter ♠♦♣♥
Join date: 22 Jun 2006
Posts: 2,715
06-19-2007 13:47
A new Zhao sounds great! I can't think of anything else to add to what has already been suggested. Maybe if there was a way to load anims without dragging it to the ground? I guess that's not possible. It's just nerve wracking dragging no copy anims to something on the ground.
_____________________
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-19-2007 15:18
I don't know of a way around that, I think it's an SL limitation/feature that prevents moving no-copy inventory to a worn attachment.
Broken Xeno
~Fething Alt~
Join date: 9 Mar 2007
Posts: 632
06-19-2007 23:47
Just a heads-up on the more than five animation thing.

I tested this out, like so;

[::Stand 1::]
anim1|anim2|anim3
[::Stand 2::]
anim1|anim2|anim3
ect...

It only partially worked. It would do it maybe twice, and then switch to the standard poses that all avatars have. I couldn't figure out why, but it was annoying enough that I just switched back to normal. Not sure if I entered in the animation things wrong or misunderstood what you were describing?

Anyway, it was a nifty idea, and if I did it wrong and you can correct me, I'd greatly appreciate it!
_____________________
Broken Xeno
~Fething Alt~
Join date: 9 Mar 2007
Posts: 632
06-19-2007 23:48
From: Bree Giffen
A new Zhao sounds great! I can't think of anything else to add to what has already been suggested. Maybe if there was a way to load anims without dragging it to the ground? I guess that's not possible. It's just nerve wracking dragging no copy anims to something on the ground.



On top of I just don't trust putting things on the ground anymore. That, coupled with the fear of losing something that is no-copy is enough for me to just not ever update my AO.
_____________________
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-19-2007 23:59
Thanks for the heads-up. I believe that's how it's supposed to work, but I've never tried it, since I found out about this yesterday :) Anyway, I've decided to go with a new and simpler notecard format, so all of this will be different now.
Keiki Lemieux
I make HUDDLES
Join date: 8 Jul 2005
Posts: 1,490
06-20-2007 22:29
From: Bree Giffen
A new Zhao sounds great! I can't think of anything else to add to what has already been suggested. Maybe if there was a way to load anims without dragging it to the ground? I guess that's not possible. It's just nerve wracking dragging no copy anims to something on the ground.

This is a restriction of SL. Only full permissions animations can be loaded into any object while it is attached. No copy animations can only be moved into an attachment if the attachment is sitting on the ground. Nothing Ziggy can do about it.

This wasn't a problem until the last 6 months or so when inventory issues became so prevalent. I think the best thing that we can do is encourage animators who make AO animations to make them "copy/no transfer" by default. That way they are way harder to lose and if you do, the creator can replace them without worrying if they are being ripped off.
_____________________
imakehuddles.com/wordpress/
Keiki Lemieux
I make HUDDLES
Join date: 8 Jul 2005
Posts: 1,490
06-20-2007 22:35
Ziggy, I have a suggestion. A random mode for stands. Right now they cycle in order. I would like to see stands cycle in a random order, similar to how my dance HUD cycles animations in order or randomly.
_____________________
imakehuddles.com/wordpress/
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-20-2007 22:55
That's a good idea.

*walks away grumbling about people giving him more work* ;)
Teddy Qinan
Registered User
Join date: 10 Mar 2007
Posts: 34
06-21-2007 18:31
From: Ziggy Puff
If I give users the freedom to set up as many stands as they want, then managing this menu will take a little more work, but not impossible. So maybe a 'next stand' command and a 'choose stand' command.


Can you add stands that can be accessed via the 'choose stand' menu but won't show up in the standard rotation? So I could add the edit attachment pose for instance, and never need a pose stand again.

Oh, and great job, I love my ZHAO! :)
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
06-21-2007 18:38
LOL.... um, that would get a little tricky. It is just an AO, after all :) And after a point, the more features I try to add, the slower and more bloated the script becomes.

You could probably have someone make you a custom AO with another button prim, where if you click that button, it turns off the main AO and plays the pose you want, or something like that.
1 2 3