Friday, December 28, 2007

Hack your UI!

The decimals allowed in the basic UI make fine tuning alignment a royal pain. But, you can edit the xml files and fix that! This wonderful person tells you how. There are also some other neat things you can do in that blog! (Hint: search for 'name="ColorTrans"' in the tools too, and up the max_val from 90 to 100, and be able to set things ACTUALLY transparent without scripts or textures!)

Tuesday, December 25, 2007

SLImageUploader, oh how I love thee

This sculpt was a test to push the system (basically...every vertex counts, and is required to be reasonably accurate, with this done in a 64x64 mesh, which it was), because my pirate hat...came out lessgood than expected. I also wanted to make this table (someday, I'll actually get around to making the legs, and texturing, and all that stuff). Firstly, I uploaded it with the default uploader, to see how bad that makes it:



Not only does it mush the details and can't manage a flat surface, LOD also wrecks it even more:



Something that is only really easy to tell when you're in SL, at the side seams it often doesn't quite match up. While SL's compression sort of wraps when chopping things into little bits and gluing them back together again, it doesn't do a great job of it. In textures this is generally not something you'll notice- although upload anything that actually depends on real pixel data, and yeah, you will (I've got a small texture I need to upload through SLImageUploader because it has very obvious seams...that aren't actually there).

Here you can also see where the top vertices all pull to one, because the top doesn't technically exist. I didn't have the vertices to spare to pull it all to the center, so I'll have to take care in my texturing. (Note: while this is taken of the default uploaded version, the good one is fairly similar, and identical in the vertex pulling)



Finally, what happener when I used SLImageUploader instead. Flat pristine surfaces, a little distortion but not even close to as much, and a generally much cleaner model. This is something I can work with. The other was something I could give up on sculpties with.



Things to still keep in mind: the interpolation in SL rounds off edges. This is good, in that things aren't all sharp and pointy because we've got limited points. This is bad when you want to make things with...sharp points. This is a problem that can be sort of gotten around by clustering a number of points to remind it you really do want that.

Thursday, December 20, 2007

Code wrangling

Overview I shall try to keep updated of the code bits and bobs that will end up here.

Simple attachment animation code: a simple script to throw in an attachment that you want to always play an animation when held. Good for carrying things around with you.

Network server code: this particular has an object that, when touched, delivers all the items included in the server to the toucher, but also provides the basic framework for objects communicating with a server for other uses. Server code is some deeply guarded secret, and it was a pain finding this.

Ring scripts: code for scripting rings that guess your hand state, and adjust accordingly. I use something that evolved from this in all of my rings- it has more adjustability on the user's part written in, and the right/left bias is written out and adjusted in another script. The version I use is sort of a great huge mess because I'm not a coder, even worse than this one that I'm putting out there to get the theory out for people to use in their own products. I'm...embarrassed to show the full version. This one is messy enough, and that one just adds more crap in- I'm so not a programmer, I'm someone who codes when necessary, so I'm very clunky, as this will show. Introduction, right hand, left hand, and a simple supplemental helper script for getting rotation for hard coding. The same basic theory can be applied to scripting fingernails/claws, as well as even more tenuously applying to intelligent skirts- however this is waaaay overkill for the latter, and I suggest using that free script, AttachmentSet, instead, as it is a far more elegant piece of coding, and the server will thank you for the reduction in processes.

Sculpty corralling

You can use tags to find all of my ramblings on sculpties, but it's kind of word soup in there. So here's an attempt at a handy dandy guide of what's where.


Step by step...badly. Sort of. Tips with no shiny pictures, because I am lazy:

Getting Started: A very quick and dirty crash course in how to get up and running. Use a premapped sphere, and jump straight in to using the modeling tools (the fun part!). This is to get your familiar enough to hit the ground running, it doesn't teach you how to master Blender. Because Blender is evil and complicated, and I don't know how to do most things in it.

UV mapping the hard way: Say you didn't use that premapped sphere to start out with, and in fact, did your sculpting first, and then decided you needed to map it. It ain't pretty, unless you go through a number of seemingly extraneous steps. If you do this, it is imperative you preview your sculpts before uploading, as getting them backwards is really easy.

Texturing sculpts: some quick and dirty tips to get your started in the world of texturing with Blender. Does not include advanced techniques, but at least gets you pointed in a vaguely decent direction to start.

Texturing and the Avatar mesh: how to import the av mesh into Blender, and a few things to do from there, as well as how to be able to paint on a sculpt to line up better with an avatar clothing texture (note: your mileage may vary, since we don't get to play with the real av mesh, just a vague approximation).

Importing Sculpt Maps to Blender: we've covered how to make an object in Blender into a sculpty. But what about taking one of those rainbow maps and making it into an object in Blender we can play with? Here's how.


Awesome things that make life easier:

Link to a pre mapped sphere: Find mapping a pain in the ass? You're in luck! Here, have a sphere to start with that's already had all that crap done to it. You just need to rebake when you've finished your sculpting.

SLImageUploader: example of mush to awesome with SLImageUpload. Also, if you're having some side seam distortion, this should fix it, because it doesn't use the stupid JPEG compression...which is idiotic when we're talking something where every pixel does matter. Yes, even when you tick lossless in the SL client, it lies like a filthy whore.


Extra tips for other problems:

Mirroring: a very brief couple of tips about what to do if you find your sculpt map is inside out in SL. This is why you pretty much always want to preview the sculpt in SL, even if you're then logging out to use SLImageUploader.

Sculpt Mapping: an overview of the different mapping modes you can set for your sculpt in SL. Generally you'll go with the default sphere, but the others do have their uses.

Sizing Sculpties Smaller: Say you need miniprim sculpties for something. Sculpts only natively go down so far, and there's no dimpling to save you. However, adjusting the map in Photoshop can shrink them down nicely.

Sculpt mapping

Sculpty UVs map 4 different ways in SL. Each have uses and pitfalls. To change your mapping mode, you have to insert a script defining the llSetPrimitiveParams:


default
{
state_entry()
{
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "YOUR UUID HERE", PRIM_SCULPT_TYPE_SPHERE]);
}
}


Where PRIM_SCULPT_TYPE_SPHERE is changed to the type you need, and YOUR UUID HERE has been replaced with the UUID of your sculpt map (left click on the texture in inventory, Copy Asset UUID, Paste in script). After it's compiled, you can, and probably should, delete the script from the object's inventory.

PRIM_SCULPT_TYPE_PLANE maps as a plane. The edges do not connect in any way, it's one face and invisible from the back side. Your sculpt is a one sided piece of paper you've done your crumpling or origami to.

PRIM_SCULPT_TYPE_CYLINDER makes the UV map a tube. The sides wrap around and connect to each other. This is the first evidence of why it is 100% necessary to not end up with a sculpt map that's 90 degrees off, although it will screw you in all modes but plane. In cylinder, the top and bottom are open and do not connect to each other in any way, leaving an open hole on either end, through which you can look in and see that there is no inside to your prim, because of the way 3d faces only face one side.

PRIM_SCULPT_TYPE_SPHERE is the default mode. You take your cylinder, and now the ends have stretchy bits that cover them. These pieces do not technically exist in your UV map, so in your texture...they also do not exist. They are beyond the bounds of the texturing you've done in Blender, and wrap from the other side of the texture. Add more data at the top and bottom of your sculpt map if you need these things to have something else! They also wrap sort of oddly, pulling all to one point, which is why generally it is a good idea to keep all the vertices on the poles clustered up into tiny little circles and manipulate the group as if they were single points, to minimize this distortion. Select a sculpty in edit mode in world, and in 90% of the cases you can see exactly how it's pulling the ends with a cluster of lines.

PRIM_SCULPT_TYPE_TORUS also started with the cylinder mapping, sides go to sides. Additionally, top edge goes straight down to meet bottom edge. There is less distortion here, as one vertex matches up with one vertex. However, the texturing rules still apply! Anything in between the vertices at the top and bottom is "dead" space to the way the texture is mapped, so either start out with a torus when you're sculpting and do the extra seaming, or keep this in mind!

Texturing sculpts

Once you've sculpted your beautiful object, you may want to be able to texture it. The brilliant things about sculpties, is that unlike prims where you either have to recreate the object outside of SL or just have a really good idea of how things will map and hope you're right, you can paint directly onto your object in Blender. It's sex.

Once you've done your mapping and your sculpting, go to Texture Paint mode in the pane with your 3d object (assuming you work in the split 3d View/UV Image Editor with the bottom Buttons Window workspace that I find most useful). In the dropdown next to that, there's the view modes: choose Textured with the odd little nubby thing at the top, so you can see what's going on in your object. Select the entire thing with A, and in the texture view pane, create a new image. This one should be big! Bare minimum of 256x256- I generally work in 1024x1024 with the idea that I will scale it down to 512. I want it to be at least double size of the final product though, because I'm not so good at fine control, and really, shrinking down is always a good thing.

Warning: if you have only one face selected when you add this image, only the painting on that face will show! The rest just won't do anything! This can be useful when you, say, want to work with a cluster of faces and keep them separate from the rest of the object. This is not useful when you accidentally do it and can't figure out why the hell your painting isn't working except for one little square.

Unselect in the 3d view with A again, and your object should now be black, black as my soul, with grey lines denoting the faces. Your image should be similarly black, although without the grid. You can, at this point, just start doodling with the default paintbrush, which is rather large, and set to white. However! Hit F9 to be taken to the Object tool panel at the bottom, and there is a panel there, Paint, that gives you control over your brush! Opacity, mode, size, colour, etc, as well as a couple of different painting modes. Brush on your highlights and shadows! It's magic, not only does it show on your 3d model while you're painting, it also shows you exactly what section of the texture you're painting on. I still find I lack fine control, so I tend to do large markers for myself to use in Photoshop, and save off a number of layers (for instance, I do one image for shadows, another for highlights, in the black/white, and use Channels to pull out the stuff I want). Any time you want to use a new image, save your image off with a useful name, and create a new one in the Image menu of the texture pane again.

Another fun and easy cheat for basic shadows, is Ambient Occlusion. This will light your model with global lighting. Its results are very noisy and gritty, so you may want to do a bit of post processing, but it still gives you a quick and easy baseline that's great for some basic shadowing to start from.

Go back to UV Face Select mode, select all (A), and create a new image again. This also needs to be big really, again bare minimum of twice size (I generally use twice size, and then do a lot of smudging/blurring in PS to tone down the dirtiness). With all still selected, hit Ctrl-Alt-B, and choose Ambient Occlusion from the dropdown. It takes a bit to do all of its interpolation, and you can watch the image being build up in rows. If you've still got Textured selected on your 3d model, you can see exactly how the shades of grey are mapping to your model. Save that image off for use.

It is fully possible to do start to finish texturing in Blender- however I find the tools in PS are easier for me to use, due to familiarity, the vast toolset available there, and the fact I'm not having to worry about rotating a 3d object to get around it in the middle of what I'm doing. There are also a number of other texturing options available- setting up good lighting and doing a Full Render instead of the Ambient Occlusion, for instance, will get you more real baked lighting. Materials let you set things to have inherent reflectiveness for the lighting to play off of as well, so a really well textured shininess is not that difficult. But, these are things that have so far been beyond me- the lighting never seems to listen to me at all, and I ended up with crinkly cellophane looking highlights the time I tried to do a full render. I'm obviously missing a step somewhere, that I'll figure out eventually, once I decide I want something that I can't get otherwise.

You can also open images in the same menu where you create new ones, to do some of this stuff to an image you've already partially prepped (with, say, a pattern), as well as seeing how your current image will map once you've got all of your layers sorted (and paint directly on that, as well- with brush settings you can conceivably paint on some of your detail there).

Sunday, December 16, 2007

Attachment makes with the animation

Ha, I suck. Posted this to the wrong journal first. Please forgive fashion planet, not that you're going to see this there.

This is a simple attachment triggers animation script (things like holding a stuffed animal, or other static thing...like the stocking). I have no idea where it came from, other than the huge bin of random free scripts. This has a timer built in, so if it gets broken, it will re-engage automatically. For use: place your animation (one only please!) into your object, and this script. Attach (or re-attach, as case may be), and things should be golden.

Note: dumping the llGetInventoryName(INVENTORY_ANIMATION,0) into a string variable will be more efficient...I think. But this way is easy and portable.



default
{
attach(key id) {
if(id!=NULL_KEY) {
llRequestPermissions(id,PERMISSION_TRIGGER_ANIMATION);
} else {
llSetTimerEvent(0.0);
if(llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)
llStopAnimation(llGetInventoryName(INVENTORY_ANIMATION,0));
}
}

run_time_permissions(integer perms) {
if(perms) {
llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0));
llSetTimerEvent(5.0);
}
}

timer() {
llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0));
}
}

Tuesday, December 11, 2007

UV the easy way!

It took a bit of hunting (everyone seems to be linking to the Levitsky one in preference to anything else, and it _is_ the best thing out there to walk people who don't know Blender through out there), but I found a pre mapped sphere to download. After you've messed up your sphere, you just go baking when in UV Select mode (you may need to add a new image...I seem really good at managing to lose my images loaded. That's at least reasonably straightforward). Assuming you don't mind doing a bit of work _un_ sculpting, the Levitsky tutorial has the file at the bottom as well, so you can start with almost-a-cylinder that's pre-mapped. I think I found a clean cylinder base somewhere, but arsed if I can find where now.

This should get your map oriented the right way (and, one hopes, not inside out, since they changed the orientation necessary midway through development) so sides are sides and tops are tops, as well as skipping the beastly coord stage, which mostly just sucks with the power of a thousand suns.

Note: sculpt maps are most efficient (and, generally, successful) when the rainbow image map is 64x64, due to LOD and ceilings on vertices.

Saturday, December 8, 2007

Network server stuff

Before I forget! That network vendor code. The forum post is about a concept that simply doesn't work in SL (who would pay 2L for a drink, nevermind a drink that you "finish" and kills itself?), but the posted code in response to the question is beautiful.

Things of MASSIVE NOTE. Do not, ever, take your server into your inventory. If you need to move it, select Wear from the pie menu and attach it to your bod, go where ever you need to, and Drop it. Do NOT detach. You need to keep it in world at all times, because the UUID will change otherwise, which means everything breaks. Everything. So, this is dangerous in a "shit. I got kicked from my land and everything returned to me" kind of way. Just like onRez vendors and such, it has to be existent in world to work- which means attaching it to yourself and wearing it only works so long as you are logged in. The onRez vendors get around the unique UUID thing, but they've also got waaaaay more of a backend, I'm sure it's to do with contacting the outside server, which keeps track of things and updates when necessary (I would assume SLX has the same general rules, but I've only the experience with onRez. No listing fees = love). This only contacts the one thing in world, so it needs to know how to find it, they use a proxy to filter through, I'm sure.

Also note: 2 code chunks here. First chunk = server. Second chunk = on touch give all items from server. This also needs a little modding to work, period, so don't just copypaste and expect magic to happen (it's just plugging in the UUID from yours in the client code though, assuming you want it to work as is). Thankfully it's actually a reasonably straightforward bit of code, other than all that bloody nesting for the item giving, that I ended up stripping out anyway.


Server Code:

// Distributed item giver (I made it to use with my store landmarks, since I kept having to update multiple vendors)
// You do not need to change anything in this script, just put your items in the server prim that you want handed out when the "giver" prim is touched.
//
// NOTE: THE UUID OF THE SERVER MUST NEVER CHANGE! If it does you'll need to update ALL the child scripts. This means you can NEVER pickup the server prim.
// A simple way to move the server is to right-click the prim, and select "wear", "right hand",
// proceed to teleport or fly to your new location, right-click the prim again and select "DROP",
// (NOT DETACH! if you detach it will move into your inventory and the unique UUID will be lost)
//
// Lasivian Leandros

string gServerKey = "";
list inventory_types = [INVENTORY_BODYPART,INVENTORY_CLOTHING,INVENTORY_LA NDMARK,INVENTORY_NOTECARD,INVENTORY_OBJECT,INVENTO RY_SCRIPT,INVENTORY_SOUND,INVENTORY_TEXTURE];
integer j;
integer k;
integer type;
integer typecount;
string objectname;



default
{
     on_rez(integer i)
     {
          llResetScript();
     }

     state_entry()
     {
          gServerKey = llGetKey();
          llSetObjectDesc(gServerKey);
          llSetText(llGetObjectName() + "\n Key: "+ gServerKey,<0,1,0>,1.0);
          llSetTimerEvent(2.5); // I would not speed this up beyond one e-mail check per 2.5 seconds, it's laggy enough as it is.
     }

     touch_start(integer total_number)
     {
          gServerKey = llGetKey();
          llSetText(llGetObjectName() + "\n Key: "+ gServerKey,<0,1,0>,1.0);
          llInstantMessage(llDetectedKey(0), "Update Server Key is: " + gServerKey);
     }

     email(string time, string address, string subj, string message, integer num_left)
     {
          key target = subj;
          // This allows you to test the system without getting all the junk it's setup to give out
          if (target == llGetOwner())
          {
               llOwnerSay("Touch received on a client prim from you.");
               //return; // If you want to get copies of the given items yourself uncomment this line
          }

          integer total_number = 1;
          //gMessageList = llParseString2List(message, ["\n", "Object-Name: ", " Update", " System"], []);//Break up the content of the e-mail.
          integer i;
          for (i=0;i < total_number;i++)
          {
               integer inventory_count = llGetListLength(inventory_types);
               string myname = llGetScriptName();
               for (j=0; j < inventory_count;j++)
               {
                    type = llList2Integer(inventory_types,j); // get the next inventory type from the list
                    typecount = llGetInventoryNumber(type); // how many of that kind of inventory is in the box?
                    if (typecount > 0)
                    {
                         for (k=0; k < typecount;k++)
                         {
                              objectname = llGetInventoryName(type,k);
                              if (objectname != myname) // don't give self out so the user doesn't get fifty thousand copies.
                              {
                                   llGiveInventory(target,objectname);
                              }
                         }
                    }
               }
          }
     }

     timer()
     {
          llGetNextEmail("", ""); // check for email with any subject/sender
     }
}




Client Code:


//This half the the setup is dead simple, it just sends the key of the person that touched the prim this script is in off to the server, which then distributes the items inside it.

string gTargetKey = ""; // Update this with the UUID of your server prim.
//string gTargetKey = "b041bc00-3d6a-41f7-f65d-81aa36093fca"; //uncomment out this line to see how it should work if you're having trouble with your own.

default
{
     touch_start(integer total_number)
     {
          llEmail(gTargetKey + "@lsl.secondlife.com", llDetectedKey(0), "");
     }
}

Antlers!

I'm still fighting with Blender, right now my problem is due to not really know _how_ to make the thing that's top priority right now. It's not a fine control issue (it's a simple thing! It doesn't actually need much, it just needs the right not much!), it's entirely a "oh, hey, I...don't even know how to make that look like what it's supposed to" (and texturing is even worse). Bah! I'll get there.

But anyway! Last night I made some antlers to go in the stocking that, if I can get the aforementioned stone out of my shoe, will be released sometime next week, fingers crossed. And by "some" I mean a crapton of colour variants. But, just two types. I learned how to do servery things (way easier than I thought, although some potential for danger and destroying the whole system), which NO ONE EVER TALKS ABOUT. Seriously, it's like it's some desperately guarded secret (because, well, people charge massive amounts for networked vendors, and this is part of how they work. Still, LAME). I've got to snag the code off the forum post and put it here for future reference. I've of course added lots of crap particular to my needs to it (including a "ok, you're this call? Well then, you only send one of these items" so I can have just _one_ thing obsessively checking its email, since again, they do things the opposite of the way I think they ought to be done).

First! The antlers alone- although only versions with stuffs on them are going in the stocking (I love this first picture, and may knock out the background sometime). These are not your girlie understated little antlers, these are antlers for goring people and fighting over mates! It should be reasonably apparent I have a fetish for curlies.







The last two pictures obviously taken in Le Zoo. I sort of love Le Zoo, but on the other hand it just...could be better. I think I'm a little disappointed by only 4 enclosures, not a single bat I could find in the batcave, and the shops mostly just aren't integrated at all (Chapeau, however, with the rhino- beautiful). I still wouldn't mind trying to get a shop there (I'm not optimistic about said possibility), but I'd be likely to blow my prim allotment on rusty old cages. I'm also very torn on the animals- prinimals do get around the "well then, sculpts killed the framerate" but sculpties would make far more impressive animals- especially in some cases. They move though, which I only noticed spending time there taking photos, which is awesome.

The antlers of course come in brown as well. I just...don't do brown. Also, the coat in the pictures will be released in the upcoming week, if all goes well and I finish taking the photos and dropkick it all into Photoshop:



(It's again with my stealth spookiness. It's named the NosferCoat, because it's inspired by the coat worn in Nosferatu. I'm making up a creepshape to take some pictures of it in...although I may decide that's a little too out there for the fashiony set. The first run is 5 dark and semi drab colours, the red is the brightest, but I'm considering a second set of brighter, I have a purple and a green in my head that might be pretty.)

The scarf in the couple of pics is currently sitting in one of the packages under the tree, free for warming your avatar, as is the little tiny black snowflake earring you can kind of see in the photo with the lion. Emee's talked me into selling the boots, another "in this upcoming week," I hope. The necklace...eventually. I've got to resize everything all over again, and it was a pain in the ass the first time (5 sizes I think?), and design my damn HUD, because I suck and can't figure out what it ought to look like.

I splurged a couple of nights ago on Miriel eyes (splurged? They're pretty cheap, really. Got a 4 pack I've been considering for a Very Long Time, long pre September and the Jewelry Expo). I had mostly been hesitant because I've gotten so used to Allegory's bright ass eyes, but it turns out they're tintable! So I was filled with glee. I love these eyes, and got just about everything I wanted in one little pack (Luminous I, which means I've got better purple eyes for shop pics, because I'm a wierdo, and a lovely monochromatic set for funtimes. I suppose _sometime_ I'll find a reason to wear the blue, but they were free anyway). The Eclipse are still a bit tempting as well, I'll have to see what I think about the grey sometime.

Sunday, December 2, 2007

Mirror mirror on the wall

Unfortunately the new way of mapping gets me an inside out object often (ALWAYS PREVIEW YOUR SCULPTS BEFORE UPLOADING! Even if you don't upload them through SL's interface), which means the image needs to be flipped horozontal in post. SL just sometimes get confused what's an inside and what's an outside, since it only textures on one side of the face. (Of course, say you want an inside out texture for a bottle or balloon or something, flip a right side out sculpt map horozontal to get it inside out.)

Mirroring the actual object can be done in Blender as well- ctrl-alt-M if I recall correctly. However it can also be done in post! Assuming you have an image editor that divides up the colour channels, invert the red channel (note: this mirrors on the x axis. Invert one of the other channels to mirror along their axes instead), and then flip the whole thing horozontal (this is to make it not be inside out, and assumes that the before copy wasn't inside out either- to un-inside out something, flip the whole thing horozontal). If your sculpt is inside out, flip it back horozontal.

Saturday, December 1, 2007

Hurdles

So, after finding just the right search terms, I found this (+100 points for the Strangelove reference), which explains how to unwrap _after_ you've done your sculpting (which was the deal).

In text only, with no helpful images like the other people (and I'll be checking this through next time to make sure I haven't missed a step, so approach with caution now, also note that this assumes you've gotten this far on your own, refer to the others for more helpful stuff. This is really just so I have something if they go poof):


Prep model for mapping. If you've got a mesh, make sure you've marked your seams (Edit Mode, select 2 points in the loop you want, ctrl-E, Select Edge Loop, ctrl-E, Mark Seam). It has to unwrap to a square, so you need good edges. You _can_ kill sphere end points after it's UV mapped (and any other niggling things that muck up your nice square grid, if necessary. Finding them can be annoying with the way modes work.)


UV mapping:

Window with object: UV Face Select. Second window: UV/Image Editor

In UV Face Select pane, hit A (select all), hit U, select Project from View (Bounds). This presents you with something fucking terrifying, and my problem before.

Select a face in UV Face Select mode, hit A twice to select all. Hit U, choose Follow Active (Quads)->None. Still a mess, but better. In the UV/Image Editor pane, select Quads Constrained Rectangular from the UVs menu. You _may_ need to hit A on your UV map, and G to move it a little, to get it to pay attention to the next step, it doesn't always unmap properly unless you've reminded it. Back to UV Face Select window, hit U, Follow Active (Quads)->None again. If all has gone well, it's all rectangular!

If you mapped a cylinder first, then sculpted (as in this tutorial), you won't need to force it to be rectangular repeatedly.

Use S (scale, if you hit Y or X after S you can scale in just one direction) and G (move) with A (all) selected to scale and move it within the bounds. In the UVs menu, Layout Clipped to Image size will eventually help.

In Image menu, add new, 64 by 64. (Note: if your model isn't that size with vertices exactly, you may need to burn that larger and shrink down. I had a 63x64 due to miscalculation that worked perfectly when a 256 square was shrunk down, but had white lines at 64).

Note: There is a possibility, depending on how you've gotten your edges together, that the UV map will be at 90 degrees to where it ought to be. Tick off Quads Restrained Rectangular (important! It does nasty bad things if it's still on), select all (A) your grid mesh, and type in R (rotate) and 90 to rotate things nice and easy (you can do this later and rebake the UV map if necessary, since you've set up everything to make it happy to rebake at any time).


Texture mapping:

F5 selects the Shading panel, Materials. In Material, Add New under Links and Pipeline. Things change drastically. Click Texface on in the new Material pane.

Either add 3 textures here under Texture (Add new), or add them in the F6 window (it makes no nevermind, but you have to go to F6 next- Shading, Texture). At each of the 3 textures, set Texture Type to Blend.

Hit F5 to go back to the Materials panel, and in the Texture menu, select the first texture button. Change Map Input to X, blank, blank (vertical); and Map To Red 1.0, Green 0.0, Blue 0.0; select Add from the dropdown. Second texture is Map Input to Y, blank, blank (vertical); and Map To Red 0.0, Green 1.0, Blue 0.0; select Add from the dropdown. Third is Map Input to Z, blank, blank (vertical); and Map To Red 0.0, Green 0.0, Blue 1.0; select Add from the dropdown.

In other words: all textures set to Add. Texture one is the X coords, which stores info in Red channel, two is Y coords in Green, and three is Z coords in Blue. The 2nd and 3rd coord space in each is blank because we're separating out each coord to be translated into colourspace.

Switch to Scene->Render with F10, Choose Bake, click on Textures, and hit the button. If your texture is predominantly white! go back to F5 and make sure you've selected Texface!! I always forget that. If it isn't shiny happy rainbow but has too much white or black, something Bad happened. You can add a new Image texture at any point, and overwrite existings if something goes wrong. However, in theory you have a psychadelic rainbow, so Save the targa in the Image menu in UV/Image mode.


Texture Painting:

Add a new Image in the UV/Image pane, make this one larger (256, 512, whatever. I usually go 1024, so I can shrink down later). Switch the pane with UV Face Select to Texture Paint. Start doodling, and go wheeee! In Panels, hit F9 (Editting), and adjust your brush in Paint. Save your image off once you're done. I only do certain things with this, then bring lots of layers into PS to make things happy and pretty- however, there is a lot you can do here, including texture the model entirely in Blender if you have the stomach for figuring it all out.

Baking up bits that Blender sets up for you can also be really useful. Add a new image in the UV/Image mode. Go back to UV/Face Select mode in the other window, select all, hit ctrl-alt-B and choose from the menu of baking choices. If you can set up nice lighting, you can do some pretty fancy stuff here. Although sometimes it looks like saran wrap and is all crinkly. Ambient Occlusion can give some basic depth.

Thursday, November 22, 2007

Sculpty growling.

On sculpties, I've hit a rather massive (and insanely inconvenient and tedious) roadblock, that lead to 4 hours last night to not even get halfway through...it either taught me a very important (and inconvenient, again!) lesson, or there's a Better Way that I can't find the slightest bit of info about. Partly, this is because Blender is incomprehensible at the best of times. *sigh*

If I can find a way around it that doesn't involve massive amounts of brainless monkeywork, I may be able to lure Max back into making some things for SL. He's very much beyond the general level available, and finds it all ugly and primitive- Windlight, for instance, has the downside that it just shows off how badly built a vast majority of the Grid is (oh, that's right, not supposed to call it that anymore). Sculpties provide the more advanced objects, pair that with competent texturing, and you've opened the door to a lot more exciting...so long as the Grid can handle it, which honestly...it can't _really_. (He also bitches about the crashing and slowing and laments that beautiful Babbage even brings _his_ computer to its knees, which, well, what the hell exactly are they running there? High res textures are some of it, but it can't be the whole problem, can it? Grid stability really does need to be a higher priority than fancy smancy features.)

But then, he plays more games than I do (for reasons beyond simply, "ooo shiny!" but that too)- I don't play much (pre WoW which sucked me in hard, and then I went back to SL), so I haven't lost the wide eyed wonder (I haven't lost, haven't lost, haven't lost that stupid fear of thunder).

But, if I can find an easier way, I've got a few things lined up that will be finished up in the (one hopes) near future, and ideas for more. If I can't, I'll be completely rethinking my workflow to try to plan around it, which has certain less desirable elements to it (aside from scrapping everything I've already started).

Wednesday, November 21, 2007

What's in a name

I've considered getting an alt, now and again. I love Allegory, I really do, but she's a little limiting. You see, there are certain things about her that are strictly defined.

First off, her totem animal is (and has to be, it's wrapped up in her name) the alligator (or crocodile, in this case there is no distinction). Me, I'm much less scaly, more furry, and mostly not much of a predator (not a straight up prey animal like a bunny though, which is a bit better- I don't really need to be more timid). This means a) her colour is most definitely green (alright, brown was an option, but, uh, no. I detest brown), and b) she is way more fierce than I am. While I don't wear skirts often, she wears them less (mostly only to Caledon or Babbage, and even there she often crossdresses). So many pretty frocks I'd flounce about it, just sit in her inventory because they just don't fit. She also looks just plain wrong when I try to put her not in a mohawk- great for everyday, less great for fancy dress parties when you aren't actively crashing (versus invited, not as in "SL crashed again"), or historical sims (that, again, you aren't actively trying to subvert in a way. I don't actually mind wearing the left of normal to Caledon and Babbage that I do though). Add in my own dress sense, which is primarily monochromatic to the dark end of the spectrum, and you've excluded a vast amount of the things out there.

While I don't role play, I do tend to be a little...different when I'm Allegory. Not in a huge way, but I do talk a bit more (I'm not very social, and pretty quiet most of the time), and I tend to let her say more of the things that I tend to not say because I'm not sure how they will be taken (read: she's a smart ass, there are lots of random things that get said, and the occasional lascivious comment happens now and again. Still not as much as I think, because I have a filthy, filthy mind. Nevermind that trying to cybersex me is the fastest way to /ignore).

She does tempt me to upload very odd skins for her (not counting the dramatic makeup, that's perfectly acceptable, and something I'd probably continue with an alt), and make me dearly wish I could manipulate the face mesh (I might, perhaps, hinge her mouth like a snake now and again. But really, generally the limitations put on the avatars irk me- from hand and facial meshes being so limited, as those are THE two places people express themselves, to limitations on animations themselves, hand control being unspecific [and broken], inability to mod anims once they've been uploaded at all [hand position, priority, looping, would all make for a lot more flexibility and ease of use]).

Bleh. And after a day of fighting with my dying mouse (at least some small amount of progress was made...on things I may never finish), I'm out.

Friday, November 16, 2007

To do list

I need to sort these things out in my head. Bleh. Sooooo much stufff....

1) Seam your damn gloves, woman. Seriously. When you close this blog post, open that file. Seam. Test. Seam. Test. No doubt curse the way fingers map, and seam some more. Some day you _are_ going to be releasing that thing, and even if the gloves are just a bonus afterthought, they need to be decent, dammit. Also, you will appreciate the starting point for next time. While you're at it, figure out the damn shading. Right now it's sort of between two things. PICK ONE, and be committed. Plusplus, figure out your shirtsleeves theory for good and all.

Also, proceed to curse about compression formats, and bitch about how they are MAKING YOU upload something twice the proper size, entirely because the compression makes everything crap otherwise. Seriously, you could have 1/4 the file size (entire), if you just didn't turn things to mush. Things only really map to 512 on avs, but having to upload files at 1024 just so stuff matches up is a pain in the ass. It's still being shrunk to 512 to be seen!

2) Speaking of that thing, make a light version and a colour version work. Stop being a lazy ass with the shading, it will take you less than a minute to do it the other way, and you'll be happier. See if things actually work in other shades, and then commit to uploading the black version. See, then you can't change anything! You're stuck! You might actually finish something! It's a good thing! (And then probably rope Nivsy into wearing them for pictures because you're, ahem, lacking in the chest area. And don't even have any good skins for faking it.)

3) Re: the thing that only Subs, Niv, Max, and random peoples at the sandbox where you built it ages ago have seen: SEAMS. Yes, the seam between the upper and lower bodies make the head hurt, because you're talking one pixel matching up to one and a half, but get to the fixing. You're almost there! Well, maybe. The bodysuit is probably sort of done, but decisions need to be made about the openings. Match to neck? Too fussy? Something else? Leave plain? MAKE UP YOUR MIND. Yes, I know they won't ever be seen when someone's wearing the whole deal, but you and I both know (in that we are the same person and all) that you won't be happy unless you've made a real choice and stuck with it. Also, gah, test Windlight. I heard that once upon a time, at least, shiny was out the window. DO NOT MAKE ME CRY. Also, that thing you were making this in preparation for? Yeah, that's right, it's up. You can't make one simple little outfit faster than they can add not one, but two sims. (And then decide what rainbow sherbet flavours it ought to come in, that you will never wear. Although some of the variants are rather purdy. And, there is the whole possibility of green accents, at least.) Also! Prim wrangling! Check your joint-goes-this-way-prims-go-that-way. Gloves at least could do with some tweakage. And girlyboots. You've got the start sitting there, get to it. Rivetting. *twitch*. Speaking of, minus 10 prims per boot while you're at it.

Argh. And then comes the sizing. I seriously hate resizing things. Pains in my ass.

4) AO. *sigh* Sit down with QAv and muck about with walks and non static poses until you find something you can live with. Bonus, the main AO(s?) actually needs a "sloppy" walk that doesn't mesh up the way a _real_ one would, so you don't have to be perfect. However, the secondary AO(s?) do, although it's going to be all clompalicious. I need to get a real concrete idea of how this is going to work. I need to sit down and do something. Trial and error is fine, just start the frigging trials. Speaking of AOs, your default stands still irk you. Figure out how you want to stand. Argh, I still...dunno. This is why I haven't bought an AO either, none of them seem "right." Grumble grumble picky avatar.

5) You finally bought the bullet and uploaded a sculpty the scary way yesterday (after days of being terrified, gah). Good for you. And, even better, they proved there is hope for the sculpty! So now, you need to actually get back to, you know, sculpting, since before you had (rather rightfully, with the regular uploaded version) given up on the system entirely until they made it less massively broken. Pick a thing, start to finish, and actually finish. Picking one thing...yeah, I know, that's the hard part. Maybe Lumpy will get finished up. He has potential, and doesn't push the system too hard, unlike the next one in line (which again, *fear*). Better still, work on the damn legs and texture maps, and you can have a complete thingie. Decide about handles. They wouldn't be impossible now! Of course, then you have to figure out all the colour variants...

And then, there's that other thing that The Way To Do hit you last night. *warm fuzzies*

6) The almost VERY FIRST ARTICLE OF CLOTHING you ever tried to make is still sitting there, not on the grid. Suck up the skirt mesh pain in the asses, it's impossible to ever be perfect with the way it deforms. Stop being wishy washy on the skirt shading, make a choice, and commit. Upload it all. Make up the prim skirt(s?). Wear it around and decide that it really doesn't suck and make with the releasing already. Seriously, this is ridiculous. Of course...decide on the colour variants and blah blah blah.

7) The two that followed soon on its heels are JUST AS BAD. Ok, actually worse. It is time for pants to be made. Figure out what said pants should look like other than "er, black" and do something about it. I swear, waistbands are my nemesis. Not that that's the only problem. Both of these things were supposed to be done before Halloween, after months of being worked on. Are they done? No. Is it after Halloween? Yes. Do you need a kick in the currently nonexistent pants? Possibly.

At least for those you've already got a pretty good idea on colours on launch. The one that's only going to come in one might get more massively different later, but it's going to be a Thing if it does.

8) Garahgrumdra...ads, dammit. Snaps need to be taken of old items with new metals, THAT IS NOT HARD. Shoving everything in to fit might be, but suck it up. You've also got a large folder full of earrings to be listed, and then some more earrings. Make up a Digital Alchemy box. Just rez all the silly boxes you've made, steal one bit from one, and another from another and just do it already. Then fill up the dropbox so you need to get a second one, because you probably can already. Last night you actually did good and started a massive multi sizing push- finish deciding on programmed variants and take some pictures of those puppies. Yes, I'm sure the hat will take longer because oh noes, it needs more textures. Still, they are not supercomplex texture, they are easy one. Do eet.

Once you've finished the ads, it's time to go through your transaction history. *cringe* Then I have to actually try to talk to people. This will be especially exciting when attempting to converse with the Japanese, I'm sure, but no doubt there are many other languages in my grab bag that are just not going to happen :/. Grumble. I suppose I could dump no trans versions on everyone who doesn't reply, so at least they'd have the replacements. Of course, first it's required to GET OVER YOUR TERROR OF TALKING TO PEOPLE.

9) Decide about the pants. Is there too much ass in your pants? Or is it a reasonable amount of ass? A couple of days of it has not driven you to distraction yet, so that's perhaps a good sign. Finish up that first set of panttats, see if the theory actually works. If you do decide they are worth letting other people have the opportunity to own, you know you still need to work on cuffs a touch. It's not stuff you see, but people who wear actual shoes might sometime. On the other hand, it's plain enough that you may not bother...but still. Finish things up for your own sake.

10) Commissions. In the future, just say no. Especially just say no to things shortly before Halloween. If you say yes, bare minimum of twice your current rate, it's just not worth it otherwise. Yes, most of the headache is probably due to the fact we don't speak the same language so you don't know what he's saying half the time...but ugh. Beating your head against the wall, not worth it.

11) Half napping in the 3+ hour car ride here didn't actually get things done, but did come up with some interesting ideas. Get thee to building, bitch.

I swear, Tableau is so not helping my current voodoo obsession. I <3 the new build, and it's the sort of thing that I could see myself doing something quite similar too (in fact, I've played with building a French Quarter dollhouse on my roof at Gogo's to possibly replace my shop with, since she first said "you can build something else if you want." Erzulie is my current indulgence in the mood, but I'm not sure I want to go whole hog on it and run with it everywhere...hence the not having decorated anywhere else yet. Also the not having replaced my signs with the old/new font yet, since I haven't decided on other decorative elements to go with). It makes me kind of desperately unhappy to know they'll probably bulldoze it and replace it with something entirely new in a while. They've done it before, I'm sure they'll do it again :/.

12) That thing you built 2 nights ago? FINISH. Then code up the earrings you've had since before the Jewelry Expo to match, and decide whether you're going to go for a necklace to go with or not. Speaking of, SPECTACLES. Seriously, you wear them all the time, sort out your theory on glass tints, find a nice steampunk-but-not-too-busy background, and list.

Thursday, November 1, 2007

Happy Hallowe'en!

Today (or, I suppose, yesterday now), being Hallowe'en, meant that there were a great number of things going on. I've been scurrying all over for the past few weeks on and off with treasure hunting (and have gotten some very nice things out of it, including the lovely rust silent sparrow coat I've been wearing with my pumpkin head, and the lovely red dress and Gritty Kitty hat I was wearing for a bit before that as a witch)...and it did really get to the point that there was just _too_ much of it and I got a bit burnt out.

However, I took in some of the New Babbage activities. I missed the parades and such as I wasn't around at the proper time for it, but today I first went to the barrel race. Flaming barrels are flung around by the racers, trying not to drop them in the drink as they navigate the streets of New Babbage. It was great fun. At first I was the only adult participating (it was, I suppose, stated as an activity for the urchins), but then I was joined by a gentleman as well- we had more spectators than participants! I was doing quite well with my barrel...except for crossing into Port Babbage, whereupon it blipped out of existence. I gave up the search eventually, and found out that one of the others brought mine in with them instead of their own! (Sadly, sim crossings were quite detrimental and ate a few barrels.) Afterwards, we flew back to the theatre on Loki's airship, to ride the carousel. Unfortuantely, I got stuck (on sim crossing!), and crashed. At least I'd had the chance to ride it earlier, when going along the ghost tour.



A fair bit later in the evening I heard about Professor Nishi overseeing a Samhain ceremony. It was not very well attended, but it was quite magnificent, and the intimate little group really did make it more special. I do feel that I need to make a better marshmallow on a stick that the huge and not-so-awesome freebie I had, which I shared with the young Ms. Paine- especially as Bonfire Night is coming up soon, and I've heard that New Babbage shall have festivities for that as well.







Later still, I cleaned out all of the Hallowe'en decorations around La Reina and Le Cadre', the shops look so sad and sterile now, it is quite depressing. So much so that I whipped up a quick (and really a bit sad, honestly- next year I shall have to think ahead and be ready. And by then I shall have either given up on sculpties ever being fixed, or they will have fixed them, so I shan't be using the library skull as a base) sugar skull so the La Reina store wouldn't be completely bereft of everything. The coffin with the treat bucket shall be available until the 4th, as the Ohana Isle treasure hunt ends then, and I had included a landmark with a note about picking up a treat bucket. The pumpkins and the cauldron are gone though, so the pink brooms and the chewy eyeballs and martini and the spooky facelights are now unobtainable (some things will probably be available next year, but some may not. The brooms, for instance, will be overhauled if I do brooms again next year). Do make sure you get your bucket while you still can, as I do not believe I shall offer it again next year (something else perhaps, but not it).

Wednesday, October 31, 2007

Port Seraphine and the Dangers of Sculpties

I'm quite saddened by the Port Seraphine build. Even when I'm only sharing the sim with two other people, I can't move, I get stuck in terrain, I'm lagged to hell, etc. So, yeah, from now on it's a place I shan't ever be going. I rather liked the old build. Maybe it wasn't as flashy as this, but it was still rather cute, and I could, you know, actually look at the shops in it.

This is why one should not make their entire sim out of lots of sculpties. Technology can't handle it at this point, at all.

Tuesday, October 16, 2007

HAHAHAHA

So, I say that "oh dear, no one loves me, I haven't been added to the fashionplanet feeds yet" before I LOOK at the feeds in the sidebar. D'oh. At least I didn't post that to that blog. And scrolling down further, there's one more post about the treat bucket!

So, yeah. Today is awesome so far.

Le Cadre’ shop!

Holy carp! I signed up for this thing on a lark, seeing the last call for submissions on fashionplanet (which, I tried to get the store blog added to and have heard nothing back. Maybe he hasn't had time yet. Assuming you're supposed to email him and ask even, since I couldn't find anything that actually told me how to get added). I totally didn't expect to be accepted, but I figured I ought to send out an app anyway... AND I GOT IN. I'm blown away. So, soon there will be a third location! There are bigger spots open in Ohana Isle too (or at least were as of a couple of days ago), and I wouldn't mind moving in to something bigger there, with the treasure hunts it gets some nice traffic, and I do really like the area. But I so don't have the time for setting that up right now, so I'm going to have to wait for the next round. I have to finish my treasure hunt goodie too- it's not going to be anything super awesome this time, but kind of cutesy, at least.

I need to look at the area and see what the style's like, so I can try to get a handle on how exactly I'm dressing up my shops (I finally installed my floor in La Reina last night, but I'm sure whether I'm going to bring that vévé over or not. I chose it specifically for that location, I think she'd like the pink beaches. And, I've sort of been plotting building a French Quarter dollhouse on the roof and seeing if G. would mind if I replaced the shop with it. Not that I've had the time to get started yet [way too much happening way too fast! Before this even! I want to do some of the Halloween fun, but I also have this huge ass commission I need to finish, decorating and outfitting the shop in La Reina, and of course I get the "ZOMG MUST MAKE" bug biting me every so often. Sending things off to bloggers to be reviewed takes time- of course, it's the bucket, so I'm kind of antsy that most of them haven't said head or tails about it yet since it will be going away in a couple of weeks, and wouldn't be surprised if they ignore me entirely anyway since it isn't fashion-fashion. Got to say, it's been a bit disheartening as well as a pain in the ass hunting down the people to submit things to and the format they each want, and I'm seriously considering not even trying for anything ever again. I'm sure it gets easier once you've done it a few times, but starting up? Gah. On the bright side, getting in to Le Cadre' is a massive ego boost, so I don't feel quite so "I'm not good enough for them, they're ignoring me"]).

And I HAVE to get the ad together of the thing I just made yesterday and the day before now. I want to add another piece (thank you insomnia?) but I think I'll release the bits I've got now as one set, and have it be an extra, like the long eyeball necklace and the arachnophobia tiara. With that much space...I need to take picture of way more stuff I've already got made up. The crown earrings will be going in La Reina, at least, as well as the matching crown, and if I do end up expanding like this I may start offering different things in different locations more...

Thursday, October 11, 2007

Sizing Sculpties Smaller

I'm working on a (somewhat huge) commission right now, and one necessity to do things right is a small sculpted item. It, however, has to be smaller than the .01x.01x.01 you can get to with just uploading a normal sculpty. Prim torture doesn't work for the workaround for sculpts, the texture itself has be altered to get things smaller.

Considering I'm primarily obsessed with jewelry now, this is a wall I would be running into regardless eventually. I've been avoiding sculpties because they tend towards massive lumpiness, as well as criminal inefficiency in most cases (all the vertices need to be interpolated, and we're talking way more than on a regular prim, and it makes quite a lot of sense that some people are sitting there chugging away with spheres where sculpties should be while they load the things that could have been done in 2 regular prims, which would have loaded far faster and easier). A big part of the problem is we're talking about giving shiny toys to people who don't understand the real practicality behind them (at the Jewelry Exposition, someone was fighting about the exclusion of sculpties in our builds, because "they're the great new thing! She's an idiot to not let us use them! We can just give one of our texture allowances to them!" not realizing that it works on a substantially different principle, and does add more to lag. Also there was a bit of "why can't I do _that_, it just adds to client side lag?" while ignoring the fact that client or server side, LAG IS LAG when it comes to the people who are trying to actually look around. But, I digress). Another big part of the problem is that the system already has serious constraints without adding yet another big imposition on it. Sculpties are marvelous and fabulous and let us do things we couldn't before...and technologically we're not really ready for them, except in ideal conditions. Add in the people who are using them entirely to cheat their prim limits on their sims...and yeah. It isn't a system breaker, but it certainly does mean things run less smoothly than they could.

But yeah, off the soapbox, and back to useful things. Johanna Hyacinth was the only reference I could find to anyone even suggesting cheating the size limit on sculpties. However, I needed to do some trial and error to figure out how to cut the channels- this is how it's done in Photoshop:

Open your sculpt texture.

Open Levels. Move Output Levels more towards the middle, in this case, I chose 60, 195. The more towards the middle you go, the smaller your sculpt (also, as she points out, the more detail that gets lost! So don't go too far! And really, you can't actually make things out well once they're too small anyway), but this ought to be sufficient for my needs.

Save, import, voila! An (almost) identical sculpted item, at a smaller size!

Of rather useful note: the UV mapping will be the same as if it were at the larger size- it doesn't do the thing with inner hollows and the percentage texture thing (Robin Sojourner has a great tutorial book in world on figuring all that out, close to the place to pick up her avatar uv maps).

(Yes, this is extremely basic, but I'm good at forgetting what I've done, and then being stupid trying to figure it out and ignoring the obvious.)

Bucket notes

This is for me to keep track of the way in which I developed the bucket code. This isn't really of interest to anyone else, and mostly is just so for the future I don't waste as much time trying to do things that can't be done (although, with Mono someday maybe, ha!, soon, some of this may be obsolete before I try anything like this again- although most of the problem was with the permissions system). Also, it serves as some insight into how I feature creep, because, well, I have a tendency to.

At first inception the bucket was to: hand out items to anyone that touched it, have an arm animation for holding it standing, and have an animation to hold it out to say Trick or Treat. The sound was pretty much included as something I wanted from the beginning, even though I tend to avoid sound, and in fact usually have my computer sound off (a habit I got into long ago when I had a particular roommate, and after that year all the burps and whistles annoyed me since I'd become used to not hearing them).

I decided I wanted the items handed out to be no copy. This serves a few purposes- one, it means that once the bucket is not present, you're stuck with the few items you have, and you have to give away items, not just share them. It's an analog world recreation, since with digital replication it makes far less sense. However, it has the advantage to making it a game as to who gets what ("Awww, I wanted those horns!" "I'll trade you for that hat!"), as well as reducing inventory clutter a little- giving away your candy means you don't now have the copy. Again a having-cake-and-eating-it situation makes more sense in digital, this was to suggest real world conditions.

Now, with the way SL deals with permissions, this means that only I can easily do the system this way. Giving the distributor out to people means that I really need to be able to set a second generation of permissions (items in bucket- copy, taken out of bucket- no copy). That simply isn't possible with how the system is currently structured, there is no way to program more restrictive permissions beyond setting it in the properties tab for one next owner. Telling people to set all the copies in the bucket no copy by hand? Neither a solution that would happen, nor a solution that has any appeal for, well, anyone.

This gave rise to no-copy/transfer items in the bucket. Contents are effectively unlimited (apparently), so I could cram multiple copies of everything into the bucket, so it would take a very long time to run out (there are quite a few distinct items [over 40 if I recall correctly, although a number are just hue shift candies], and I'd gotten up to 20 copies of each and the system was lagging on loading the contents terribly...and really, that's going to last just about anyone a good long time). If it's going to run out...it needs to actually tell you it's running out. So, I coded the attachment to have the "contents" of the bucket slowly sink, then start disappearing (it got quite spectacularly complex as I was doing a check to see if there were any lollies or apples left to take away the lolly and the apple when they ran out, as well as each individual candy of the...34, I think it is, to disappear one by one at the end- and that made for massive headaches and almost impossible testing, as the candy doesn't run out for me, so it was touch to load the script, open and delete item, touch again, for 40+ times. The very last "pull" was to be a unique item to each bucket, the worm "bracelet", as the worm would be the very last thing to disappear. The bucket would then appear empty, and touches would now turn the lights on and off instead- the animations and "Trick or Treat!" would still happen as usual).

So I coded all of that up, massive headache that it was, since each candy had to have a distinct script- llGetObjectName does not have an associated function for getting the names of child prims to make life easier, so it was pretty miserable.

Then I finally talked Max into making an appearance so I could make sure it worked...and every touch regaled me with a script error. @$#%&*! Now, this could have been avoided if I actually did read through all of the text on the wiki ("No-copy objects can not be given from attachments."), but, well, I tend to skim things a lot so I missed that crucial point of information.

Which meant that the objects given out had to be copy/transfer. Period. Otherwise you wouldn't be able to give things out to anyone (and copy/no transfer was never something I wanted for the contents, they should be shared). All of the headache over the lowering candy level and checking for the last apples and lollies, and candy disappearing one by one at the end...now needed to be thrown out. None of it would work, unless I decided to delete the contents as they were being given out, which would just be mean, really. It made sense while items would be no copy, but once they are? It ceases to make sense, since they are infinite outside of the bucket, they ought to be infinite inside it as well.

Which all meant that it could have been finished at least a week ago, maybe 2, if I would have just gotten down to doing the recording sooner. (After scouring the net for a good royalty free "Trick or Treat!" sound from a gang of children, I finally gave up, and just recorded myself saying it a few times, pitch shifted some, and layered it all. I think it actually came out rather well, even if it is just me masquerading as a gang of children, and not actual kids. Thankfully I did it before my voice got quite so wrecked by this cold, as well.)

I did end up adding a mini AO as well so when sitting (or crouching), the arm is not held out straight, but instead holds the bucket up in your lap (and around that general area, mostly it tends to be inside your leg a lot, but that's partly to keep wrists from being bent at horribly ugly pointy angles).

Wednesday, October 10, 2007

Touch my bucket!

So, I've been working on this treat bucket forever. Numerous hurdles presented themselves, which eventually led to me doing it the easy way and bypassing all of the hurdles entirely, so it should have been done weeks ago- it was making the hard way work that took so long.



(That's the eyeball bracelet from My Mother's Eyes- I've been wearing lots of the pieces of it recently often.)

Come to La Reina, and buy the great big coffin gift box for $0, for a bucket of your very own.

(For personal reference: ATTACHMENTS CANNOT GIVE OUT NO COPY ITEMS! Even if they are transfer. It won't do it. It refuses to take them out of the inventory and give them out, as expected. So in the future, ignore all thoughts of "I could make it like a trading card game" and "this would help keep inventory clutter down" because it ain't gonna let you. Remember this for the next time you do something like this. Please. It will save you weeks and weeks of headaches.)

Mostly for my reference so I don't forget, because I didn't actually document this code (yeah, I know. Bad girl), functionality: on touch, the bucket hands out one of the (many) items it contains, which are some sort of candy (some of which is not friendly candy) or costume items. Everything is meant to be worn. Also, upon addressing the bucket in chat channel 13 it will: hold out the bucket and say "Trick or Treat!" both audibly and in chat (/13 tot, /13 trick, /13 treat, /13 trick or treat); extinguish the lights (/13 dark); light up (/13 light). Included is a very rudimentary AO which holds the arm straight when holding the bucket, and holds it tucked up when sitting. And, crap, I think the AO overrides the holding the bucket out. I'll have to figure out a workaround for that...at least it isn't horrible breakage, and most people won't notice it- but it will irk me if I don't fix it.

Today, I ironed out (what I thought were) the last kinks (caused by over engineering expecting it to work the other way until I got an unsuspecting other-than-me person to help test it), and started distributing it. First, G. got one, and I tested hers out just in case to make sure it all was working. Once I knew I had a working copy, I knew I could load up the coffin that I was very happy that no one had noticed and gotten a copy out of while it was broken overnight.

G's a bad influence on me, by the way. I spent most of the day in a new _pink_ mohawk.



G. started inviting people to the shop (while I was...a very scary drag queen on the roof fitting something for a guy shape), and I came down to say hi instead of just being a disembodied voice once I'd gotten that done with. I sent out a group notice, since I was finally ready (and I love my bucket, I'm really quite proud of it). I got to meet some really neat new people, including one of the people who joined my group during the Jewelry Exposition (ok, _the_ person, although someone has joined since!) and we talked about Doctor Who for a while, as well as other this and thats.

In return, once everyone left and the place was empty, I checked out her groups, and found Octoberville.

!!!!!!!!

Pure awesomeness. A scavenger hunt around an entire Halloween themed sim (so you have a reason to actually get your hands dirty and explore), which 100 random things you have to find. The downside is that it is quite popular, so the lag can be somewhat brutal. But it is something I highly recommend. Although I still haven't figured out how to get past the first room of the haunted house!



(The horns I'm wearing while roasting marshmallows there? They're in the bucket.)

Monday, October 8, 2007

IBM SOA adventure Island Haunted House

I've been remiss about my haunted houses. I haven't been to all that many- I've been far too distracted by making little nothings and setting up my shop and all.

However, IBM SOA Adventure Island has a rather neat maze. The ways to get through it are not always readily apparent, which is totally awesome. I really loved the prim ghosts, they were very nicely done.



I saw the best sculpty skull I've seen yet there- a Light Waves, of course.



It's not all spooktacular, but it's rather well done and pretty (it was filled with butterflies in one grotto when I went, due to an event, which sort of downplayed the spookiness factor).

Saturday, October 6, 2007

New Shop!



I've set up a new shop in La Reina- currently both my shop and the sim itself are in the process of being built, but I've got a start of it with things from the Jewelry Exposition.

I'm really excited! And I've started putting pumpkins and jack o'lanterns all over for Halloween.

Thursday, September 27, 2007

Limitations of the System

There are a number of technical constraints to SL that drive me nuts. I'm not talking about lag here (although that does indeed drive me nuts- but there are very good reasons for lag to exist, unfortunately). My current largest headaches:

The avatar mesh...gah. I wish they'd thought things through a bit more when they decided to use these things. The head is the most problematic, as things are jammed together too close together. The inner mouth is shoved right up against the back of the head, so either you get head seam or flesh tongue. The eyelashes are up against the scalp, giving a black edge when you've zoomed out enough that it downsamples (also see head seam). Only one arm for the torso puts some severe limitations on what's allowed in shirts/jackets/tattoos. And only one foot...why? You've got ample space for two. I know, you've already got one arm, you might as well have a more efficient foot mapping, and that is even more likely to be symmetric than the arms, but still, limits what you can do severely. There's no fixing that at this point, without just scrapping it for an entirely new UV map, which will just piss everyone off- people with custom skins will find their skins useless, and skin makers will just have people bitching to them for free upgrades. At that point they might as well just go with an entirely new mesh anyway, since while this one does work reasonably well, it's older tech- plus the mesh was associated sort of messily, when you look at how things deform badly at not-even-out-of-the-ordinary sizes (look at skinny people's shoulderblades, my nose and cheekbones could cut glass, my knees are ridiculously nobby, and the entire neck shoulder area on the male model just makes me cringe. I don't actually care that large breasts become boxy though, I admit- it certainly doesn't seem to stop people). Some of that is a limitation in making it stretch so large to small, but it still could be done better.

Worse, whoever figured out the alpha for clothing items...*sigh* Have you noticed that bastard seam that will show skin through around the middle unless you've got something in the jacket layer covering it up? Because that's entirely because the alpha was halfassed. Aside from the fact the lines don't match up in the least anywhere (and no, there really isn't any reason for as much of that as there is other than "I couldn't be arsed to care"), you can put all your sliders to maximum coverage, and still skin shows through because of messy alpha edges. That could be fixed, now, with minimal pain to the system. But they aren't going to do it, but it's a "minor detail issue" and see previous "can't be arsed to care."

And the skirt mesh...ugh. That's just a massive headache.

There are also many suggestions that while possibly a good idea have negative ramifications. I'd love to see more layers, so you could have skin tone, makeup and tattoos all in a "skin" layer, both for the problematic head area and so you aren't using up slots on the body, but remember lag? Yeah, that just adds to it. Every extra layer is just a little bit harder you're making the system work, and the system already has issues with how hard it is working. More attachment points fall into the same "it would be nice but just going to cause problems" as well.

Animations could do with a bit of an overhaul. Placing more control over them in LSL (or Mono) would be ideal really. The hand position glitch has been a problem for a while and no one cares, so it isn't going to be fixed. Only 6 votes? That's rather disappointing. Really, I'd far prefer to be able to dictate hand position in the programming language anyway though, I can already fix the expression glitch (since it also blips and goes away, if it even starts at all). It appears as if it's an uploading glitch as well, not a reading glitch, which means everything that people upload now? Broken. Will need to be uploaded again if they ever actually bother to do anything about it. That really pisses me off. You're talking hundreds of wasted files.

I'd also like to see in general more animation control- in world control over priority would be awesome (instead of having to upload the same pose 4 times, upload one and assign them in world). The ability to adjust centre point would also be a boon- consider all of the custom sits which fail horribly if you don't have the perfect height avatar, the ability to add a modifier to the hip location would make things far more feasible. In general, the animation system gives you only just barely what you need, and not what you want, which really isn't helpful.

Monday, September 24, 2007

KillTower Halloween

Halloween is coming up, so it's time to hit the haunted houses. KillTower Park came up in a search, so I figured I'd check it out.

They've got a fair amount of activities, first thing I did was walk up the hill to the big tower. There isn't much you can do there, although I did electrocute myself, and checked out the (occupied) lethal camping.




Taking the 'port to one of the boat rides and the maze, I took the blood river ride first. Very county fair dark ride (at least of the sort we get here). The maze is diabolical- you can't see where you're going at all. Pumpkins are provided as markers, but it's easy to get turned around and going the wrong way (I ended up going in a circle once). It's close enough to the ride that occasionally you camera through the walls. It had become quite apparent by this point that they heavily recycle decorations, mostly flat cut-outs (however, most of them moan if you click on them, which is pretty cute). I'm generally a tad disappointed by haunted houses even in FL, as I prefer a bit more sophistication in my effects that rarely happens. However, still and all, not a waste of my time.

Next I 'ported back to the main area and checked out the blood falls ride- which does have a charge, albeit nominal. The log ride, which loops over most of the area, doesn't currently though. It did get a little stuck once on one of the ups, but it managed to unstick itself fairly quickly.

Wednesday, September 19, 2007

Transaction History

So, ha, after deciding there was no way for me to have any idea who was buying what, or how much of anything was selling (mostly useful so I knew if something just wasn't selling so I could not bother with it) unless I was logged in at the time to see the little message, I found the transaction history. Joy! It's pretty awesome and useful, and something I never would have found without seeing another vendor's "how to give no transfer items as gifts" sign. I'm pretty blown out of the water. Over 150 things!

And because I totally already had to go hunting for how I found it, in SL, World->Account History sends a message to your trusty web browser of choice to load the page.

Tuesday, September 18, 2007

Freebies: Pirate Hat, Helios

Incentive to join the Schadenfreude Enterprises group: I've released my first work-free freebie (since you have to find Helios, and really I have already been slowly distributing this to people for a while). A sculpted tricorne hat. I'm freebieing it because while it is still not too bad, it isn't perfect. The loss of detail with the JPEG2000 compression irks me horribly, and it was my first sculpty after all, so it was expected it wouldn't be perfect. I'll probably release head scarves for it at some point, but I doubt I'll texture it. However, anyone can request the sculpt map, and they can export it to texture their own (I do ask that you not reup the sculpt map just so you can sell the hat yourself, because that's rather tacky). I rather like my shiny black vinyl pirate hat, but that's because I actually have a shiny black vinyl pirate hat.


Picture taken on board The Black Sparrow in the Blackspot Shipyard on the Isle of Tao, one of the finest ships you might ever have the opportunity to sail upon.

I've been searching for treasure hunt items at the Exposition (and is it a pain! While most follow the in plain sight rule, the boxes are tiny!), and discovered that Helios is being distributed no modify. That was not intended, I must have accidentally given her the wrong permissions. Please contact me to get full mod versions of what you've found. (That goes for everything I've released so far, by the way- so if you've got something that's no mod, please let me know so I can fix it!)