OpenCollar / opencollar

The Open Source Role Play Device for the Metaverse.
Other
39 stars 87 forks source link

OpenCollar - customize #281

Closed WendyStarfall closed 10 years ago

WendyStarfall commented 10 years ago

OpenCollar - customize

Attached to this issue is a pull request for a script, OpenCollar - customize and minor alterations in main and leashParticle for smooth nesting.

Initially based on a merge of appearance with hide it evolved further in the Virtual Disgrace fork. Instead of choosing if to texture, color or hide, we select the element itself and are presented with options to either hide/show and customization styles. Options to position, rotate and re-size are removed fully.

Best explained with an example, let's take a look at a hypothetical element, Spike.

We navigate from the Main Menu to Customize and are presented with:

Hide/Show Spike BACK

Selecting Spike, gives us:

Hide/Show Gold Silver
Pink Yellow Green
Chrome Rust BACK

We assume the designer is using a dedicated texture for the Rust and the Chrome style, listing it in our existing notecard textures_custom:

Spike~Rust,ab12347f-b1d3-46f7-b555-2ae12345678b5 Spike~Chrome,ab56789f-b1d3-46f7-b555-2ae12345678b5

Next we assume that for Gold and Silver styles, she uses a tint on the Chrome texture and also lists a colour vector:

Spike~Gold,ab56789f-b1d3-46f7-b555-2ae12345678b5,<0.65882, 0.56471, 0.34118> Spike~Silver,ab56789f-b1d3-46f7-b555-2ae12345678b5,<0.70980, 0.77647, 0.81961>

Finally we assume that styles Pink, Yellow and Green don't use any texture at all:

Spike~Yellow,,<1.00000, 1.00000, 0.00000> Spike~Pink,,<1.00000, 0.00000, 0.50196> Spike~Green,,<0.00000, 1.00000, 0.00000>

This take on customization may well be more user friendly as users are not expected to decide method and prior knowledge to creation. In a way, the customization is handed to the designer rather than to the user, with cumbersome menu hopscotch, while still allowing more advanced users to modify in-depth so it fits individually for them.

Size/Rotate/Position:

Removing options to re-size and adjust are, in my personal opinion, a good idea. While in-depth creation knowledge should not be expected of users, the ability to size and adjust an attachment is fundamental to their freedom of decorating their personal avatars. Else, users are bred to become dependant on memory guzzling resizers and remote adjust solutions. This is something we shall not include as it encourages the "no modify" permission and, again in my personal opinion, forbidding a person to paint their own walls the way they wish them to be makes me wail.

Follow-up Todo List in case this gets merged:

This change would effectively mean 233,218 bytes less memory consumed in every collar that currently features colorization and texturization based on installer options. I want to say big thanks to littlemousy for the coding, yet, please understand if this should become reason for heavy arguments, I'm the one to blame as I insisted on this exact specification.

ghost commented 10 years ago

may add 'Shininess' to 'Customize'?

WendyStarfall commented 10 years ago

If we add Shinines, do we specify high/medium/low in the notecard or allow users to just flip through all three options?

Spike~Rust,None,ab12347f-b1d3-46f7-b555-2ae12345678b5 Spike~Chrome,High,ab56789f-b1d3-46f7-b555-2ae12345678b5 Spike~Silver,Low,ab56789f-b1d3-46f7-b555-2ae12345678b5,<0.70980, 0.77647, 0.81961> Spike~Green,,<0.00000, 1.00000, 0.00000>

I think with notecard it would get maybe too complicated, letting it flip through options is what I'd vote for.

ghost commented 10 years ago

I think the use of "customizations set" from notecard are not flexible method. it inconvenient change the notecard every time you want to change the color or texture of a single element. or have a notecard for all possible combinations of textures / colors / hide / shine for all elements. that if the collar has more than 5 - 10 elements? it will be a very big notecard!

and I can't change the notecard in the collar of my pet / submissive!

I prefer the classic method 'Appearance' with texture, color, hide, and shine addition. it is good to combine texture, color and hide in one script, with the possibility of sub-menu additions

WendyStarfall commented 10 years ago

I see it a bit differently. I believe this way, the designer uses her ability to provide beautiful and appealing choices for customization while the user if so desired, can still add their very own preferences for customization as well, without loads of cumbersome menus, countless colours where only ever a very few are used. This is a major usability improvement, in my opinion and the only thing that could improve it yet better was, how mouse recommended, an option to make preset themes that customize multiple elements at once.

ghost commented 10 years ago

how you can make a presets notecard unless you know the elements names are not your collar?

what happens with the appearance, if I do update my 'not-standart' collar ?

ghost commented 10 years ago

I tests customize script.

elements menu shows ALL elements of the collar without considering notexture and nocolor tags! shows even those elements that never appear in the textures and colors menu !

I think that it is necessary to make one new tag 'customize' instead 'nocolor' and 'notexture' tags and build elements list using this 'customize' and 'hide' tags and make styles without 'binds' to elements, like Style,texture_key,color_vector,shine_integer

then selecting an element from the elements menu , you can set its style from the style list

WendyStarfall commented 10 years ago

I see now, this needs a lot more polish. You are right and I like the idea of ~custom and ~nocustom better too, a ~nohide or ~hide tag we still need too

I will push it to SPARE PARTS and let's see if we can work with it or if a merge of the old scripts may be the better idea after all.

ghost commented 10 years ago

may be yet retain the classic method of appearance and add "Style" script, using the 'custom_styles' notecard comprising:

[Style1_name] Element1_name, key_texture, vector_color, integer_hide (, integer_shine) Element2_name, key_texture, vector_color, integer_hide (, integer_shine) ..... ElementN_name, key_texture, vector_color, integer_hide (, integer_shine)

[Style2_name] Element1_name, key_texture, vector_color, integer_hide (, integer_shine) Element2_name, key_texture, vector_color, integer_hide (, integer_shine) ..... ElementN_name, key_texture, vector_color, integer_hide (, integer_shine) e.t.c.

'Style' scrpt read this notecard and allows you to select styles and apply them through the standard appearance scripts

Bondmaster commented 10 years ago

I like the basic idea, but I think the current approach is a bit limited. The style idea is good, but should be expanded for materials (as soon as LSL changes for address them go live) and for different faces of mesh models (original OC scripts never managed that, due to them being done before their introduction)

Mapping faces to an element name should be an header part of custom_styles or a separate notecard (whichever is faster) Something like

[Element1_name] element_properties //To set the nohide, nocolor, notexture etc paramenters if needed Prim1_name, facenumber Prim1_name, otherfacenumber Prim2_name, facenumber

[Element2_name] element_properties Prim2_name, facenumber Prim3_name, * //To include all faces or a sculpt

[ElementN_name] element_properties PrimN_name, facenumber

That approach would replace the current way to change together prims with the same description, that could be a fallback if these settings are not present

Of course, that would require a total rewrite of the current scripts, but it would make possible to have a consistent set of scripts for both mesh and sculpt based collars

Maybe the best would be merging the old script initially, and take some time to work on a total rewrite

ghost commented 10 years ago

it would be too difficult for user

Bondmaster commented 10 years ago

Actually, that would be mostly a creator issue, users should not tamper these settings. All they would see is a list of the "elements" in the appearance menu whose color/style they can change (like they do now), but don't know each of these elements is actually a collection of different faces from different prims. Of course it would make things a bit more complex for creators who need to provide a setting notecard unique to each collar design, and for the unlucky coder that should try to implement the whole thing. It was just to throw the idea for future consideration :)

WendyStarfall commented 10 years ago

superseded by #340