Welcome to
Mod The Sims
Online: 1054
News:
Have an account? Sign in:
pass:
If you don't have an account, why not sign up now? It's free!
Other sites: SimsWiki
Reply  Replies: 29 (Who?), Viewed: 14085 times.
Search this Thread
Old 24th Nov 2016, 7:11 PM DefaultReassigning morphs that have magically disappeared? #1
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Hi,

I've been editing this Store outfit mesh in Milkshape, and I've been saving each edit as a seperate .simgeom. I recently noticed that when I adjust the wearer's fatness/muscle slider, nothing happens. The morphs must be broken. I dont know how, but they're broken. I still have the original mesh, it works just fine. Is there an easy way to copy-paste the morph data from one mesh to the other, preferably in Milkshape? Blender's fine too, but the SimGeom plugin is quite unreliable on my end and regularly refuses to save or load anything.

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 24th Nov 2016, 8:23 PM #2
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


The setup of a store item and a regular sims 3 'item' or... Caspart, are very different. Store items seem to have their bones separated from the mesh, which means you'll have about 6 GEOM files instead of 3 (Well of course it depends on how many groups your mesh has.)
Thing is, I guess EA did this so no one could easily make things BGC (Base game compatible). So, what I usually do is export the mesh (just the high level of details), then redo the morphs, make the LOD (Not really necessary since you could also export the other GEOM LODs and use those) and do the bone assignment.

So... yeaaah the morphs are broken/not really broken but probably EA's way of preventing meshes from being converted to a BGC mesh.
Old 24th Nov 2016, 8:58 PM #3
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


I skip the LODs entirely because the edits I make aren't huge and because they're not gonna be on screen much anyway. Disregarding groups, which I don't understand in the slightest, so how can I take the morphs from these other meshes and apply them to the one I've edited?

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 25th Nov 2016, 10:03 PM #4
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


I think meshtoolkit has an option for GEOM files to make the morphs for you instead. You do need a reference, so I would export the GEOM files from the actual game files as reference. I'm not sure if you've used TSRW before for making CASparts? Making the morph meshes for WSO files is basically the same. (although the morph data gets added automatically or, is used as reference).
Though I guess it's better to follow this tutorial to get a better understanding of the references I am talking about ^-^: http://simswiki.info/wiki.php%3Ftit...orphs_Made_Easy
Old 27th Nov 2016, 11:52 AM #5
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Quote:
Originally Posted by Greenplumbbob
I think meshtoolkit has an option for GEOM files to make the morphs for you instead. You do need a reference, so I would export the GEOM files from the actual game files as reference. I'm not sure if you've used TSRW before for making CASparts? Making the morph meshes for WSO files is basically the same. (although the morph data gets added automatically or, is used as reference).
Though I guess it's better to follow this tutorial to get a better understanding of the references I am talking about ^-^: http://simswiki.info/wiki.php%3Ftit...orphs_Made_Easy

TSRW? Yeah, I have. But it's been completely broken for me ever since TS4 came out. I had an old version on my last PC but since I couldn't get it on this new one, I've just stopped using it entirely. So there's no easy way to just copy-paste the morphs from the original mesh to the slightly edited one? Do you think I can somehow get it approved on MTS without those morphs?

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 28th Nov 2016, 10:34 PM #6
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


For editing CAS parts and objects, you could get this version of TSRW: http://greenplumbboblover.tumblr.co...005426/tsrw-172

It would have been easy to 'copy paste' it if it happened to be a non-store item. Meshtoolkit does has a auto-morph maker, you just need a few GEOM references from the game. In this case, it's not only the base mesh, but also the morphs that the reference has.

Here is a step by step:

- Go to Auto Tools for GEOM> Auto create Morph Mesh
- Click on 'select file' next to the GEOM base mesh to morph (your mesh) and select your base mesh/geom file
- The reference base mesh can be found within the fullbuild/deltabuild but you can also extract it with CTU (which is so much easier)
- The reference morph will make the morphs one at a time. So, you first want to set the fat file, then the fit, then, thin, and if needed, special

And that's how you create your own morphs without having to mesh everything! I would recommend giving it bones though, else... it will turn into a mess.
The tutorial I linked, basically does the same thing, it just requires milkshape to do it. Though I would follow the 'morphmaker' part.

And, sadly, we can't approve downloads without morphs. >-<
Old 29th Nov 2016, 9:07 AM #7
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


What about doing it the other way around? Can't I just take the original Store mesh and copy over the adjusted geometry to it?

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 29th Nov 2016, 1:20 PM #8
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


Quote:
Originally Posted by GrijzePilion
What about doing it the other way around? Can't I just take the original Store mesh and copy over the adjusted geometry to it?


You could try it, though I personally would have done it the way as explained in my previous reply. As mentioned in my first reply, Store items and their setup/ the way EA made them, is very confusing and not as identical as a normal CAS item. For example, the bones are separated from the actual mesh, and because of that, the store item will have more GEOM files. A normal in-game (Even CC clothing) don't have the bones separated from the mesh. The GEOM within that package file will have the bones and mesh both included.
I'm not sure if you have ever tried opening a store item in TSRW? But because of the bones and meshes being separated, TSRW won't be able to read the package.
Old 29th Nov 2016, 4:05 PM #9
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Oh so that's why? Is that the bug where the whole thing turns skin coloured? Maybe TSRW does work then, because I've only been trying to open Store packages with it.

For the record - all this talk of morphs and bones do my avatar great justice. That's how I feel.

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 29th Nov 2016, 9:38 PM #10
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


Quote:
Originally Posted by GrijzePilion
Oh so that's why? Is that the bug where the whole thing turns skin coloured? Maybe TSRW does work then, because I've only been trying to open Store packages with it.

For the record - all this talk of morphs and bones do my avatar great justice. That's how I feel.


Morphs can be confusing. But TSRW won't be able to import store items. Maybe the latest one, but that version is just pretty much broken, so I bet it would be able to import a store CAS item, but not correctly. But no. TSRW won't be able to open your package because it won't be able to read the mesh, because of the separated GEOM files.
But usually TSRW would give you an error that it can't open the package, or something like that. So usually it will either crash, or your 3D window won't show you anything (Because there is nothing in there). The skin coloured issue could be a texture error. Or... well TSRW tend to corrupt packages when you're having the 'no memory' error. Then you'll get that skin coloured CASpart as well.

Unless you meant editing after you redid the morphs? Because that would be fine, and TSRW should be able to read those packages, since it's a normal 'CASpart' ^-^
Old 30th Nov 2016, 2:04 PM #11
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


I don't even know anymore. This outfit is #2 on my MTS upload priority list, whatever that means, so I guess I'll focus on the other one first.

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 2nd Dec 2016, 12:43 PM #12
sweetdevil
Theorist

Join Date: Oct 2009
Posts: 2,043
Thanks: 3757 in 66 Posts
15 Achievements


Dunno if this helps, but I've come across this issue recently. I initially wanted to use CTU but it didn't import the Store .package as-is, I had to clone it first.

Anyway, I noticed that TSRW doesn't export the .package with the fit/fat/thin morphs as well, only the basic one. Here's what I did:

1. Extract the LODs from your .package. Store items often don't have the LODs named, so in order to know what LODs you are using without having to open them in other programs, get Mesh Toolkit, go to the Package Tools tab, find your .package and select "Add Names". This will name the contents of your .package and you'll know which GEOMs are which. Now go to your .package and export all the GEOMs to a folder (you'll notice they are named now).

2. Do whatever work you need on your package in TSRW, export it as a .package.

3. Open Mesh Toolkit again, go to the Package Tools tab and then to the Add Morphs to Clothing/Hair tab. Open your .package, select the Use GEOM Morph Meshes radio button and a lot of options will appear. If you don't see the "Select File" buttons to the right, expand the program window. Now click on the Fat radio button at the top, and select your LOD1, LOD2 and LOD3 in the appropriate fields (you won't have anything under LOD0, that's for accessories). Click the Add Morph to Package button.

After you're done with the fat morph, move on to the fit one and do the same. Same goes for the rest.

Again, you can bypass all this if you only want to do texture edits, by cloning the .package and working with CTU normally.

Edit: forgot a word.

Edit2: forgot that TSRW has the nasty tendency to drop resource names. If so, repeat step 1.

My Simblr | pocci/gardenbreeze CC reupload
If you have concerns about my stuff, please PM me! I see PMs much faster than thread comments :)
Last edited by sweetdevil : 2nd Dec 2016 at 3:56 PM.
Old 10th May 2017, 6:02 PM #13
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Watch out, it's gonna get bumpy.

I just want to add, and I don't know why I didn't make note of it previously, that this store item I've been working with does not have separated GEOMs for the morphs. I'm not sure why some CAS items do and others don't, but this one doesn't. It has 3 GEOMs, one for each LOD, and all I've been trying to do is edit one of them (and quite extensively) so. So any tomfoolery with extra GEOMs would be useless in this instance. And, I'm sure that I wouldn't want to have to do the nasty job of shuffling the geometry around on those two GEOMs like I have on the first one. It'd take ages.

And in Milkshape's Joints tab, everything looks to be as it should. The vertex weights have their little colouring and everything. If I upload the .package, can anyone look at it for me?
http://simfileshare.net/download/jW...QpxBlENd19DP2K/
It's also abnormally large, for some reason. Might be the .DDS texture files, which are a megabyte and a half each, and have duplicated for some reason.

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 10th May 2017, 10:27 PM #14
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


GUYS I NEED YOU

I CAN'T DO THIS WITHOUT WITCHCRAFT AND WIZARDRY

@Greenplumbbob
@sweetdevil

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 11th May 2017, 2:52 PM #15
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


@grijzePilion Will look into it! Just got back from London. Unless Sweetdevil's way faster than me lol

Anyway, to answer the 'separated groups' question, one group should have about 63 bones, if it's around the 64 bones or higher, it will explode. or well... the mesh will explode!
Old 12th May 2017, 3:57 PM #16
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


Took a small look at it in S3PE, since I don't really have the time to go all in depth and it seems like the GEOM morph files happen to be 'unlinked' with the actual morph mesh. With that, I basically mean that it uhm... probably never linked your morph mesh with the BBLN files. (besides the base one) Which also means that your BBLN files are empty as well, or... well, simply doesn't have the morph/slider data that's required for it to work properly ^- ~ Meshtoolkit however, has a 'auto-morph' maker for GEOM just like with TSRW. The setup however, looks pretty store-ish, so you miiight be better off recloning a base game item and go with that?

Unless Sweetdevil has some sort of trick to get it to work without a workaround of course ^- ~
Old 12th May 2017, 7:52 PM #17
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Quote:
Originally Posted by Greenplumbbob
Took a small look at it in S3PE, since I don't really have the time to go all in depth and it seems like the GEOM morph files happen to be 'unlinked' with the actual morph mesh. With that, I basically mean that it uhm... probably never linked your morph mesh with the BBLN files. (besides the base one) Which also means that your BBLN files are empty as well, or... well, simply doesn't have the morph/slider data that's required for it to work properly ^- ~ Meshtoolkit however, has a 'auto-morph' maker for GEOM just like with TSRW. The setup however, looks pretty store-ish, so you miiight be better off recloning a base game item and go with that?
Unless Sweetdevil has some sort of trick to get it to work without a workaround of course ^- ~

Sorry to ask, but can you maybe repeat that in English?
I got the part where I need to download Meshtoolkit, click a button and then hope something good comes out of it, but the rest is unintelligible to me. And if there is no morph data, what's the colouring that I see in Milkshape when I enable vertex weights?

@Sweetdevil

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Last edited by GrijzePilion : 12th May 2017 at 8:35 PM.
Old 12th May 2017, 11:22 PM #18
sweetdevil
Theorist

Join Date: Oct 2009
Posts: 2,043
Thanks: 3757 in 66 Posts
15 Achievements


Guys stop summoning me I don't know shit, lol. No really, I haven't gotten very far concerning meshing, so I'm throwing this ball back to Greenie!

My Simblr | pocci/gardenbreeze CC reupload
If you have concerns about my stuff, please PM me! I see PMs much faster than thread comments :)
Old 12th May 2017, 11:32 PM #19
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Quote:
Originally Posted by sweetdevil
Guys stop summoning me I don't know shit, lol. No really, I haven't gotten very far concerning meshing, so I'm throwing this ball back to Greenie!

Sorry. Can we be "don't know shit" buddies?

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 13th May 2017, 1:36 AM #20
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


Damnit Sweetdevil! I was just trying to run away from my problems! (I'm kidding of course XD)

Buuut you did the vertex part right so I'd just ignore the bits of that one, but I think the problem here's that, due to having some really hard-to-follow- morph tutorials, you miiight have forgotten to let meshtoolkit generate stuff for you.

Just uhm... keep in mind that this is like 2 years ago for me, then I just went all 'screw this' and switched to TSRW which, I guess I might switch back to CTU because I guess it's just so much more comfortable to work. So I might screw this up XD I'm pretty much reffering to this tutorial though, so you could follow this: https://web.archive.org/web/2014032...ad.php?t=397260 (using web,archive just for the sake of images).

Or....

Greenie's ultimate guide for people who don't know shit on how to make morphs the good ol fashioned way! :D

- First things first, let's get those meshes! So open up CTU, and choose a random full body mesh, female in your case.
- Click the magical 'extract meshes' button and delete the VXPY just for the sake of organizing.

Let's get magical here! Open Meshtoolkit...

- Go to auto tools for Morph making under the 'Auto tools for GEOM' tab

Allrighty, here things get quite confusing because no one really tells you that you have to repeat this progress over and over again for EVERY. SINGLE. MORPH. Unlike TSRW of course. Lemme explain the bits that no one really seemed to have covered in their tutorials:

1. The "GEOM base mesh to morph' is your base mesh!, meaning, Meshtoolkit will use your mesh to see how and where it should tweak the mesh to make your mesh look properly fit or thin or fat, etc.
2. 'reference base mesh' is your REFERENCE base mesh! This one's basically the reference morph's helper on understanding how to properly copy it to your mesh!
3. 'reference morph' is your REFERENCE mesh's GEOM file (or BGEO, but I'd go with GEOM). you know how in S3PE it says 'LOD_1_FAT, like here? :



(Thanks whiterider/nysha for the reference!)

in the reference base mesh section thingy, you NEED to add the reference mesh where we just extracted the meshes from its GEOM LOD_MORPH NAME. Again, this progress is a one-by-one progress, so after you did the FAT lod, you need to replace it with the thin, etc. depending on what morph you're working on. I guess when you set up everything, the only thing you have to change each time is the 'reference base mesh'

- Let's get started with the fat morph. So you should have set it up like this now:

1. GEOM base mesh to morph has your base GEOM mesh (To be precise, LOD_1)
2. Reference base mesh has the extracted base GEOM mesh (To be precise, LOD_1)
3. Reference morph should have the GEOM LOD_1_FAT

- Let's generate our fat morph! click the 'Create morph mesh' button.
- Now save it and call it something like 'Fatmorphmesh_lod_1' so you know what you just exported.

Redo the entire progress for the:
1. fit
2. thin
3. Special (optional of course, this is the maternity mesh!)

Now let's move to the BGEO tab, it's basically the same progress. Since we're not making any hair meshes or accessories, do NEVER but really, NEVER use the LOD_0 part of it. LOD_2 is the medium level of details (Which, if you wanna, and I would suggest you do, have to make morphs for too, so if you didn't do the same entire progress but with the LOD_2 and LOD_3 version of everything ^- ~) And LOD_3 is the low level of details.

I'd follow step 5 of this tutorial for the BGEO part. Can't explain it any better!

Aaaand now I'd just use the Package tools> Add morphs to clothing/hair. and open your package, and from there you basically override (If I believe, it does override your GEOM files, else I guess you could delete them and do that instead, but do try the overriding thing first). And import them.

Hope that helps!
Old 13th May 2017, 12:45 PM #21
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Quote:
Originally Posted by Greenplumbbob
- Let's get started with the fat morph. So you should have set it up like this now:

1. GEOM base mesh to morph has your base GEOM mesh (To be precise, LOD_1)
2. Reference base mesh has the extracted base GEOM mesh (To be precise, LOD_1)
3. Reference morph should have the GEOM LOD_1_FAT

- Let's generate our fat morph! click the 'Create morph mesh' button.
- Now save it and call it something like 'Fatmorphmesh_lod_1' so you know what you just exported.

Riiiiight, so here's the thing. There's no FAT lod. There's LOD1, LOD1_1, LOD2, LOD2_1 and so forth. It doesn't accept any of them, because "the reference morph mesh is not a valid morph mesh". I've checked, none of the 5 reference full body outfits I've looked at have any sort of "FIT" or "FAT" mesh.
And to whomever came up with the words "morph mesh", I hate you. Mooble gooble mish mash morph mesh.

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Last edited by GrijzePilion : 13th May 2017 at 12:57 PM.
Old 13th May 2017, 4:14 PM #22
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


Well there's a work around where you don't have to exactly... well, have to use Mesh toolkit but I used to do it like that because it's just way faster. Which is explained in the web archived version of the tutorial I referred to. Where you just have to do it manually in Milkshape. Which is great when you're working with pregnancy morphs but I rarely do it for all those other morphs.

Howeverrrr the reason why might be due to most later-ish CASparts (Like after Pets I think) And the common 'GEOM morphs' which you wanna select in your reference morph' part, some of them seem, especially store items, happen to only have the BGEO files for the morphs. Maybe that's causing the error? Ooor check in Milkshape whether the comments in the mesh/GEOM/Group is actually there, just to check the reference mesh and your base mesh.

Eeeelse I guess I should go try it out again since it's like 2 years ago for me, I think 4 to be fair?
Old 13th May 2017, 4:54 PM #23
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Quote:
Originally Posted by Greenplumbbob
Well there's a work around where you don't have to exactly... well, have to use Mesh toolkit but I used to do it like that because it's just way faster. Which is explained in the web archived version of the tutorial I referred to. Where you just have to do it manually in Milkshape. Which is great when you're working with pregnancy morphs but I rarely do it for all those other morphs.
Howeverrrr the reason why might be due to most later-ish CASparts (Like after Pets I think) And the common 'GEOM morphs' which you wanna select in your reference morph' part, some of them seem, especially store items, happen to only have the BGEO files for the morphs. Maybe that's causing the error? Ooor check in Milkshape whether the comments in the mesh/GEOM/Group is actually there, just to check the reference mesh and your base mesh.
Eeeelse I guess I should go try it out again since it's like 2 years ago for me, I think 4 to be fair?

So some CAS parts do have separate GEOM morphs and others don't? Because I only have the base game ones in Meshtoolkit and they do not have the separated morphs.

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Old 14th May 2017, 3:27 PM #24
Lyralei
MakeNeedsStaticOn



Join Date: Dec 2013
Posts: 1,554
Thanks: 404 in 6 Posts
8 Achievements


well some reference CASparts (Existing EA meshes) Don't appear to have them. Guess it's a 'save the space!' thingy. But to save you from uhm... crashing your brain?

But just making something sure here, you did extract the meshes with CTU- the reference meshes. NOT your meshes, right? And then used those exported meshes as your reference mesh. Elsee you could try just cloning an existing EA CASpart with CTU, save the package, export the BGEO and the GEOM and use those as reference instead of getting CTU to export everything
Old 6th Jun 2017, 8:54 PM #25
GrijzePilion
Original Poster

Mad Poster

Join Date: Jun 2012
Posts: 3,522
Thanks: 496 in 5 Posts
6 Achievements


Greenie, I know it's a huge favour to ask of you, but can you maybe untangle this whole thing for me? I've tried all sorts of crap, all without result, and it hasn't worked.
And I have all these other things that are 99% done, that I want to upload, but I have a certain order for my uploads and this one's first on the list.

This is the unmodified Store mesh: link
And this is the modified and improved but broken one: link

Overlord of Plumbit, the subreddit for the serious Simmer.
We're constructive, creative and drama-free™.

(Oh, and follow me on my Tumblr.)
Reply


Section jump:


Powered by MariaDB Some icons by http://dryicons.com.