Monday 27 January 2014

Fitted Mesh testing and production & Biting my tongue

Looking back in a week in hell

If you were reading the blog last week, you will have noticed my outspoken and quite upset comments about everyone favourite company.
The issues are now resolved finally and I am back (I hope) to business as usual, however you will have noticed that my comments have disappeared.

I did write up a pretty scathing assessment of the situation last week when it was concluded, and needless to say what I was saying wasnt wrong and was very justified.
However it occurred to me shortly after publishing that final assessment that here was a company that had no issue with denying payments to their customers without warning.
The old saying "Dont bite the hand that feeds you" comes to mind - quite literately.

All I can say is fear got the better of me and that is enough. I will bite my tongue.


Fitted Mesh - moving to the next level.

Having to recover from last week hasnt been easy for me as I did end up so stressed I got physically ill. So, on Saturday I thought I would do some tinkering that ended up getting vastly out of control.

Going back to my earlier work, I took one of my prey boots, and did a quick productionised experiment to see if I could get this to behave, and needless to say, that first experiment came out very well really. The boot looked exactly as it should do in world, textured and operated the same as rigged mesh, but it did work well with the soft deformers too.

So I decided to go to the next stage which was full on shape testing to see where the limits were.
I found out, with boots at least, was there were three problem areas.
The first one seems to be a well known bug over the ankle - the joint seems to misbehave.
The second was the knee angle - this slider only seems to move the leg itself left and right which effectively means knee angle is useless.
The final one is bodyfat. It seems bodyfat uses some odd deformers. The outer leg remain fine, however there is quite a heavy (no pun) deformation on the inner leg that the Collision skeleton doesnt like so you get a clip through overhang.

So first genuine look at Fitted Mesh shows that it cures many of the major issues that were absent in Rigged Mesh however it is still an imperfect system.
However from my understanding of things it never could be perfect.
With the SL avatar, its been set up with deformers. These are physical groups of vertices that are programmed to behave in a certain way. This is a very accurate way of getting things to behave right.
Fitted Mesh though uses the collision skeleton. This actually has zero affect on how the SL avatar does its business on deformers. There is no link between the collision skeleton and the deformers.
The purpose of the collisions skeleton is from my understanding, physics. Take away the avatar, the collision skeletons purpose is to stop you walking through walls or falling through the floor.
That all said, while the body deformers are not directly linked to the collisions skeleton, the sliders that operate the deformers are linked to the collision skeleton.
Its a way of recalculating the mass of the avatar so it can judge if your body size is equal to the that of the body mass on the collision skeleton.

How it does this is almost like spheres of influence. There is a mass balloon inside each collision joint. You go from 50 to 100 on the slider, the balloon inflates.
By rigging the mesh to the collision skeleton, you effectively can inherit the properties of the balloon, so if you are looking at the upper leg, it will inherit the properties of the parent bone, therefore offering the same properties you get on rigged mesh, but will then include the mass balloon too, therefore the sliders will work there too.
However that makes the assumption that the deformers behave in the same way as the balloon does.
For muscles its pretty accurate, but for bodyfat, its not as the deformers alter themselves in a different way.

There... my probably inaccurate overview of Fitted mesh and hopefully showing that while a vast improvement, the system is still imperfect.

I did say though my tinkering as always got out of control.
The reason for that is, I now have a full set of production model Prey boots in world. Literately the whole line and the extras have been built, rigged and fully assembled.
The only issue that really affected the boots would have been the ankle joint, however Prey has even on rigged mesh, had a fixed ankle so that instantly cures the ankle as there isnt one.
At the moment, I am testing them but in a lovely way, I could release these tomorrow without even having to wait for the official Fitted Mesh release.
Why?
Well, this is the secondary quirk of Fitted Mesh. While the Fitted Mesh project is still in beta, the collision skeleton isnt new. In fact its always been there right from the start.
Prey boots dont use any of the new bones being introduced in the Fitted Mesh project, therefore, I am wearing the boots right now using an older viewer without fitted mesh and they look, behave and work perfectly.

I have found a few little bugs I didnt spot, which will require some minor reworking, but overall, I am very happy with how these have turned out. With some in world beta testing time, I think by the weekend I could have the Version 4 Prey boots in store and released.

Sadly though I will have to wait to do more work as above the thight, you will need to have the full fitted mesh viewer enabled and how long thats going to take is a different story.

Tuesday 21 January 2014

Issues of Pride and Sloth

This last weekend had been quite annoying for me, sometimes in a good way, but more over in a bad way.

An Issue of Pride.
We are of course going back to Fitted Mesh here, and following my repeated headbanging last week over this, you can assume that I didnt drop the subject.

Teaching yourself something is always key to being very good at what you do. Without knowledge, you will constantly slip up, get stuck, and either fail, or bug the crap out of friends as you stumble along.
Having worked with rigged mesh for two years now, and listening to the fact that the "workflow is the same as rigged mesh" when it comes to fitted, I assumed this was a logical progression.
I never claimed to be an expert or a guru on rigging - its something I am still learning about day by day, but fundamentally I learnt about rigging through a process of trail and error, but most importantly, learning from other people who have been kind enough to share their knowledge.

As of right now, I have Hemi in world, wearing a fitted mesh boot - the same boot I was using for experimental purposes. Although it still needs vast amounts of weight painting work, that boot is pure fitted mesh, it behaves as expected with the sliders although I have to say, the one size fits all theory isnt true - fitted mesh isnt a magic pill for curing fitment problems and you may still end up with 2-3 different items depending on how the items are rigged.
In short - it works and the reason it works is because after looking at Fitted Mesh for a week, I realised that my pride was the weak point. I thought I could do this by myself, but as I said above, I am not an expert or guru. So, I swallowed my pride, and turned to someone who is an expert and the very first test I have done with new knowledge and tools, has worked out.

Where now? Sadly, nowhere. Fitted mesh is still in beta, and its now the process of waiting for things to progess to actual release. So, that project is now on hold.
Quite a shame really, as the boot itself, works both in the Experimental viewer, and the regular viewer.


An Issue of Sloth
This one is not actually directly related to SL at all atlhough it is indirectly causing me massive trouble.
In the UK, the gatekeepers our of internet services are British Telecom - a company who for those that have dealt with them, are pretty much loathed.
Having worked on the internet since 1996, I have sadly had a lot of expiernece with BT, and its fair to say I would rather shove wasps up my backside that deal with them ever again.
They are unpleasant to say the least, and sadly even when you dont deal with them directly, they are the gatekeepers, and even through the many service providers, they still cause you problems.
I was with Sky for a long time... then one day, I couldnt use the internet on an evening properly. I bought Unlimited Broadband from them. BT had imposed a 40 Gig download limit per month on them, and because they were having to use BT's services, I got data restrictions. In the end I had to move.
I moved to O2 Unlimited... everything worked well for a year or two... and then BT once again started causing trouble resulting in me being forced off their service!
I then moved to Talk Talk, who have in fairness been very good, but this time BT has caused an even larger problem that isnt just affecting me that has been coming slowly to a head now for nearly a decade.
In 2002, I moved to Sky broadband and I was told "sorry, you cant have our full service as the local exchange is still under BT's control and we cant put our equipment in - they have said they will be unbundling that exchange soon."
I kept checking on the status of that upgrade to the exchange, and sadly nothing happened.
Back then, the exchange in question was dealing with probably 1000 houses, of which remembering the year, not many of them had the internet.
Since that time, a lot has happened. Due to the proliferation of the internet, the % of people using the internet has gone up massively - in my area 90% of homes now have broadband. So that would be roughly 300 to 900 connections.
Except, there is a secondary issue - local development. over the last 12 years, huge housing developments have been going on local to me adding more and more to the load on that exchange. In fact its closer to 3500 houses now. That is 3150 houses, all trying to get online through an exchange that was originally developed in the 1990's, for at max 1000 homes.
The result is quite frankly horrifying. At 10am in the morning, I am getting a stable speed test of 6 megabits a second. What I should be getting from my connection.
However as you move through the day that speed slows and slow, until at 9pm in the evening, I can only get 0.3 megabits a second.
This, is similar to doing 60 MPH on a motorway, and then at peak times dropping to 3 MPH.
The sad thing is, it has taken me 12 phone calls to talk talk and 2 engineer visits to actually explain what the problem is.
BT have known this was going to be a problem now for over a decade, and going back to Sloth, they did nothing about it until now, as it seems, it has taken a member of parliment (government) and the head of the Fibreoptic Openreach project to have to get involved in a panic.
The largest irony is, most of where I live is on Fibre Boardband - 100 Megabits per second or more.
It is just this one area where its not been deployed due to that exchange not been upgraded.
They are currently doing an emergency deployment of Fibre to our area as the problem has now moved to critical... and after 6 weeks of shouting and grumbling, I finally find out that by the end of Feb, fibre boardband may be availabe to me, and not in the nick of time.
The funny thing is, the exchange in question is still not being upgraded and is actually being bypassed with the fibre system going to the master exchage nearly 10 miles away.
Sadly though, this means my SL connection is almost untennable on an evening - at speeds less than dial up due to the sheer congestion of the current network, SL struggles to work.
That of course means that by 5pm, I have no choice but to stop working on SL - its physically impossible to do more than get IM's.
Roll on March please...

Friday 17 January 2014

Drawing a line under Fitted Mesh... for the moment

I do suffer from a dislike of being outwitted by inanimate objects, and generally I will keep hammering at them until I get them right, even at the cost of my own sanity.

Even after I threw in the towel yesterday I didnt stop messing around. I even tried to take some time away to reset my brain, but a puzzle is a puzzle, and this one was getting on my nerves.

Rigged mesh is pretty complicated to deal with. Well, it is if you are intent on doing it right, and often it will drive you crackers trying to track back this or that little weight that is out but causing you all sorts of problems.
For the most part, I have got that down to a good work flow - I know the pitfalls, I know the quirks.

Fitted mesh, as it seems, is a whole new ball game. Linden Labs said the work flow is exactly the same as with Rigged. Perhaps on the most basic of levels, it is. However how you get there, is utterly different and extremely confusing and complicated.
I know there is a solution to Fitted Mesh - this has already been commercially proven in world by several companies and once you have it right, it works quite well.

The piece that is missing here though, is a master template for weights. What would be the be all and end all of the SL avatar. A mesh you could, out of the box, upload to SL, and it would behave in the same way that the SL body does.
This could then be used to create the basics of the rigging you need on other objects.

Except this file isnt available, outside of those who have figured Fitted mesh out, and somewhere deep inside Linden Labs never to see the light of day,

Of course, I could spend weeks working this out, and countless uploads / failed uploads, trying to work out why this system is being such a pig and come up with my own master template.
Then again, I could wait and hope Linden Labs see the light of day and release an accurate master file, but I think everyone will agree, that would be a common sense and logical thing to do... and thats not what we usually get from the Labs.


Which comes back to the title... and drawing a line under this for the moment. I am not chomping at the bit anymore though. More like grinding my teeth in frustration.

Thursday 16 January 2014

Fitted for a Straight Jacket?

Yesterday, I was chomping at the bit, eager to get to grips with Fitted Mesh, and even though I said briefly that I wasnt going to start farting around with this until something was in RC, I decided... stupidly... to start farting around with it.

My process of learning is a fairly straight forward method - I sit down, research a subject, play around and test for time, and slowly I get to grips with how something is supposed to work.
I dont have a tutor, I dont have people to help me. And honestly, this has served me well over the years. Learn from example and its fair to say while I am not a guru on Mesh and rigged mesh, I know enough to be compentant over how it works and how to get things to behave themselves.

So... surely Fitted Mesh should just be learning a new series of tools and workflows based on what came in the original Rigged Mesh.

I will quote from the Second Life Wiki on Fitted Mesh.

"What is Fitted Mesh?
Fitted Mesh is a technique in which an avatar's collision bones are used to add further deformation detail to an avatar or clothing. The benefit of this technique is that it allows Mesh Clothing and avatars to be adjusted using an avatar's Body Shape sliders in the Appearance Editor. This results in clothing that can adjust and fit to your avatar's own personal body shape and style.
For content creators, the key difference between a Fitted Mesh skeleton and the previous standard skeleton is that a Fitted Mesh skeleton has more bones. The rigging workflow is the same except that the additional collision bones are also included in the skinning/binding process. Note that unlike the mBones, you do not need to include all of the collision bones, rather only the ones you wish to use."

That is a straight forward introduction there. The one key phrase included should answer my question about learning the new tools.
"The rigging workflow is the same except that the additional collision bones are also included in the skinning/binding process."

 Also included on the page is a download ZIP which includes relevant files to use as examples.

When you are learning, information is key to what you are doing and its fair to say correct information, not half arsed, half baked information.

So what other information can be found in this page?
1/ A list of the Collision bones... literately, thats it.
2/ Rigging using the Fitted Mesh technique - all this contains is a copy / paste job on how to upload a rigged mesh, with a few words changed.
3/ Additional Resources - a list of links to stuff not actually directly related to Fitted Mesh.

What's the definition of half arsed again?
This page has two potentially useful pieces on it. The first is the downloadable file which should be a accuate guide to the weights and how to create weighted mesh correct for Fitted. The second is that the workflow is almost the same but with more bones.

At this point you take your available information, and move to the playing around stage. Often I call this "hitting something with a big hammer until it works.

First job - grab a standard boot from my inventory, copy the weight values from the Linden Labs mesh to the boot - check the weights over... upload.

The boot I was trying to replicate was one of my Vipers but with Fitted weighting - they should look like this
And this is what happens when you apply fitted Mesh weighting
Not so much a boot, but a Number 7 Iron.
From what I can see, the mesh has collapsed in on itself and is warping out of shape.
I then experimented with it, to try and find out what I was doing wrong, and doubled the weighting up adding in both collsion and mbones and got this result






Okay... I've got nothing. I followed the work flow for rigging with the extra bones, and unless you are a stick insect, that doesnt work.

So, whats the problem? If you fail, its best to check the source of the information - go back to basics before you move on.
And as basic as it is, the original file is the one that should provide the information required for the meshes above, so its worth checking that out before you move on.

Using Blender 2.69 - latest model, you open the original, unaltered Blender file from Linden Labs, select the mesh, and export. Upload is via the experimental Fitted Viewer.
The expected result should in world, be what you see in Blender.
This is actually the result


On the left, is the standard SL body as uploaded and rezzed out in world (unrigged because its rezzed).
On the right, is the same mesh, but worn and instantly, you can see there are serious problems with the mesh effectively collapsing in on itself.
In fact I could almost theorise, the mesh isnt collapsing, but is fitting itself not to SL body, but the skeleton itself.

Now, either I am missing something so blantantly obvious its silly.
Or with their usual flair, the two useful pieces of information in the desert of their Fitted Mesh page and incorrect and broken! The Blender (and Collada file too - I tested that as well) as both acting up in the most terrible way, and / or the Workflow isnt the same as rigged mesh.

Needless to say, as usual when it comes to these things I have wasted a whole day.

Next in line for the Straight Jacket please...

- - - - - -
Addendum
I was just musing while cleaning up the house and doing my dishes why the mesh seemed to be collapsing effectively to the skeleton, and I couldnt work it out until I had a vague thought that perhaps my working methodology workflow was wrong.
The issue I had coming to mind, was what I said earlier - the mesh seemed to be rigging to the skeleton, rahter than looking as it should. I have a vague theory that rather than following the workflow used to rig with (new mesh & Prerigged mesh > Bone Weight copy one to other > select new mesh and skeleton > Parent), that I should be for some reason making the base file as the parent to the new object - in other words the SL avatar base.
I honestly dont have a clue what the answer is. I guess I will just have to wait and pray that someone out there will be good enough to share this, as I dont expect such kindness from Linden Labs.

Wednesday 15 January 2014

Chomping at the bit

In early November, I ended up having a nice lunch of my words when Linden Labs in a shock move announced their "fitted mesh" project. Seriously - Fitted Mesh. I liked Liquid Mesh better, but Spiffing Mesh would be just as good. Fitted sounds soooo dull.

November and December have now been and gone, and I have been waiting with baited breath for further news on this project.
From an official stand point, in the usual way Linden Labs works, their last news was the initial announcement (helpful as always), so you are forced to dig through the official JIRA on the project to get any information.
The first disappointment, considering the vast majority of designers in SL use Blender, is that for the first two months of testing, Linden Labs didnt release either a DAE or Blender version of their new skeleton to test with so only people with other supported packages could really test.
You could of course get a copy of the blender file from good and wise people who have been kind enough to create a version but as always Linden Labs utter contempt for its userbase really should be addressed.

RTFM...
Those that arnt familiar with that term it means Read The F***ing Manual and this is the second area that really should be addressed by Linden Labs.
On the Wiki pages for SL, you can find lots of useful information... nah... you cant. Its effectively a "here it is, sod off and do it yourself".
Any information that is often on the wiki comes from users, with very little technical details actually being posted by Linden Labs.

With Fitted Mesh though, it seems even the wise and the good are struggling with it, as am I. Having downloaded the official LL's file, I was confused by the fact, and after reading other people research, that the main skeleton didnt have any bone weights on the included mesh.
From the dozen or so resources I had found, everyone seemed to be convinced that Fitted Mesh was going to cause a massive headache. I will try to explain.
According to what we know, 1 face can hold 4 weights. Most of the time on the SL body, thats not a problem however you get to a cross over point on multiple areas, you can get 3 weights. Shoulders / Chest / Upper arms are one such zone.
With Fitted Mesh, you are utilising the second skeleton on the avatar - the collision skeleton.
And from everything I had read so far, this is an additional to the SL skeleton, hence you double your weights up. Fine if an area has 2 weights, as doubling up, means 4. But in those cross over zones, you end up with 6 which... well, it doesnt work.

Every article I have read so far agrees with that which brings me back to RTFM.

Having downloaded the official blender file, I found a strange issue. The collision skeleton was fully weighted on the mesh, but, the primary skeleton which we have used to rig with since mesh arrived... that wasnt weighted at all.
What is odd though, is even without those weights, you run the skeleton through a series of poses, it behaves 100% as it should do. Move the primary skeleton leg, the leg moves without issue and this got me questioning things. After all it did seem rather silly for Linden Labs to release technology that is flawed - they could have done that years ago!
Hence I went back to my research, trying to find out more information... as usual, the Wiki was a waste of time nothing more than the usual here it is, sod off.
Everything I read, was still arguing the same points about double weighting with some people complaining bitterly about how painful the process was.
Until I scrolled further down to find one person making a well balanced comment on one posting, saying what I was trying to confirm.
Fitted Mesh uses Collision skeleton weights only, as they are interconnected to the main skeleton. As long as the vertice groups use the skeleton, everything else is fine.
This was a revalation only backed up by bitter realisation that this is once again a case where Linden Labs, in 3 or 4 paragraphs, could have told us this.
And yet they are simply giving us the "thingamabobby" tool, and we are having to learn what it does ourselves through experimentation and then end up ranting about it on the internet.

However... even I cant confirm this is the case. Why? I haven't tested it yet as I have two issues.
1/ Until this is in RC beta, I wont spend time on it as things can and often do change at the drop of a hat, and I have other projects to get on with.
2/ I wont touch the test Viewer... I already have enough issues using viewer 3, without adding another migrane to it.

I may however do a classic Liquid mesh test to see if that works - by that, I mean strip out the extra weight groups added to the Fitted Mesh project and see what happens - I will addendum this with what I find out.

I just wish Linden Labs would do two things though. Hurry up... and please, for the love of god, put up some more detailed information on how things work.

__________________________________________

Addendum

First time I read up on this subject, I had a very specific reaction to how it works... I will come to that in a while.

Short version as this has been going now for near enough 5 hours in actual testing mode.
All I seem to be able to get Liquid mesh to do, is explode really.
I started off trying to make a set of prototype boots work... failed. They started off as shrunken sticks, and the more I tested playing with weights and multiple weights, it just got worse.
I thought it was me being daft to be honest...
Downloaded the "project viewer"... that didnt work.
Reweighted it all... that didnt work...
Thought it may have been a version issue (I use blender 2.49... oh hush... I am used to it)... 2.66 didnt make any difference
I then... in desparation, tried to upload the SL out of the box rigged model to test with.

That didnt work... so right now, all I have is a migrane and I am no closer to understand what or how fitted rigged mesh works.

Hence... my initital reaction to this was...