Blog

Find out a little about me and my stuff - updates will be sporadic.

Time to show you Monday’s Progress!

Admittedly, it’s not much but that’s cause I’m still trying to master wax like lighting/textures. It’s interesting and yet irritating. I’ve managed to go over these textures twice figuring out how to lay down the colours. Just as I typed that sentence I realised there was another way I could have gone about it -.-

Next time I shall start with the bottom up and use ‘layers’ like I do on my Warhammer paintings. *facepalm* it’s so obvious!

Also side note, today's stream was nice but very quite. I did however manage to snag me another follower so that's pretty awesome. I also have a potential offer coming up that could see me getting paid (I hope it all works out!)

Since Thursday (not including Saturday) I've been working on my schedule, cleaned up my digital work-space and applied all my to do things to Asana. I've now given myself times for working on certain things and times for just doing whatever the heck I want. This will stay this way until I get a job offer (I job search on Saturdays and Sundays now) or until we can no longer afford to stay in the UK (I've got until about April next year - the rate things are going (and that means a lot of ramen noodles).

You can probably see that by the image the red portion is called Bumbabee! Games. It's something that my husband and I are trying to get off the ground. We're hoping to get a small game out as soon as we can. We can only work on it one day a week so far but hopefully as the teaching term progresses and Mouse catches up on the work needed to be done, we'll have more time in the week to work on the games 'studio' together. 

I mentioned in a previous post that I'm going to work on my motivation. Well I've had a thought on that over the weekend and I've realised I don't need motivation, I need dedication. So I'm going to work on my projects, motivation or not. I'm going to get these done and they are going to be done well. 

With that said, I'm off. 

I'll post more later.

Long, Long a go - like a week and a half or so...

Hey guys, 

Sorry about not updating as recently as I had been. A lot of things have happened in the past week and a bit, it's actually really amazing that it's only been that long. 

So to recap what I've done:

Last week I completed these two assets - It took me much less time thanks to the Orc and I'm happy I spent that month or so testing and sculpting. It gave be a good base to work off. 

These characters are not scaled comparatively. They are just one size fits all at the moment. I wanted to leave the size scale up to the buyer - which can be adjusted in game. - I will be considering height changes with the physical prints though.

And tonight, I completed this Fire Pillar. I'm thinking of having it in different colours but at the moment, blue bricks were the only things that would make seeing the characters easier to spot. 

I also went to a digital design show, I got news from my sister, I got news from myself, I got news about my Aunts and Uncles, I hung out with my Cousin and her family, I downloaded and tested a program called MeshMixer for 3D printing,  I managed to go see Jurrasic World and I played at least 1 game (8+hrs) of D&D 5th ed. I'm tired and I think I'm going to go to bed now. 

These assets are going to be available on Gumroad in a matter of days. Base meshes and textures only. All added features will be updated accordingly. 

Good night, and sleep tight all.

Kylie Out.

A long journey though Normal Map Jungle

After a long, long journey of trying to get the body of all the characters 'working' I can finally say that I'm through to the other side. Pretend that this is a sort of Post Mortem of a project just finished. Please note that this will be a long post. And I will sum up my feelings using gifs of American TV Hosts/Comedians and The Muppets. You have been warned. 


Now that I'm looking for jobs in the UK I didn't want to mention the difficulty I was facing with my normal maps before today. However I feel like I've learnt from the whole experience and I should talk through what happened, what I did, what I didn't do and how much I cried or possibly didn't cry (>.>).
I never wanted to admit it before, but this is the first time I've followed this process. Generally I'm very diffuse map driven. I will model a character that I have model sheets for (either drawn by me, or someone else) and then unwrap, texture by hand the details, shading and colours; rig, apply weights and then animate. Voilà! A complete model with absolutely no normal maps.

This is the model sheet of the mesh I'll be talking about. 

This is the model sheet of the mesh I'll be talking about. 

This time around I used unfamiliar programs as well. As you'll know by reading through my blog, I've used Zbrush only a few times before and I've never used Blender or Xnormal before this project. I might be comfortable with Zbrush (I feel my knowledge is beyond beginners) but as for blender, while fairly simple to pick up and work with so far - I've not completed the rigging or animation; I am willing to say that I am still very much a beginner. There are very primitive processes in Blender that would have taken me minutes to work out in 3dsmax compared to hours in Blender (unwrapping is a big example of that). I feel like there isn't much to learning Xnormal, I understand what I'm doing to get what I need but I don't understand how. It was a fast but tough learning curve and I'm still very much a beginner (but a competent beginner). 

As for this journey, the process I followed this time around was to create normal maps, which I've never tried before. The only reason I'm creating these normal maps is so that the buyer of my characters has everything they need, I don't want them missing out on anything. Also with normal maps, it's easy enough to make AO maps, Specular maps (although not entirely reliable) and displacement maps.  

It started when I first created my character's body in zbrush - some of these images you've seen before. 

"The character had little folds in his legs and arms, a cross in his bellybutton, swirls on every elbow, knee and knuckle. I thought he looked quite good"

 

This took a while but after I figured out what hands and the legs should actually look like, I was good to go (I'm not focusing on the orc features - they took longer to zbrush but were finished sooner with my normal maps). The character had little folds in his legs and arms, a cross in his bellybutton, swirls on every elbow, knee and knuckle. I thought he looked quite good. I decimated him and placed him into Blender to work on retopology. 

Retopology

I researched low topology specs for games in iOS, and Android. I wanted to make sure these characters were low enough to have many of them on an Over The Top Tower Defense game like OTTTD or a small RPG like the old final fantasy games. Mostly, I wanted to make them into little sprites for Roll 20 (which is what I was going to use them for). I wanted to make sure that the topology was clean, crisp and essential.

So I found a few Polycount forum posts:
 - Low Poly Hardware Specs
 - Triangle counts for assets from various videogames
 - Polycounts in next gen games thread! (Not very useful to me for this project)
 and beyond3D forum post which has the same name RSART's 'yes but how many polygons' and 'how many polygons in a piece of string' articles.

Here's what really caught my eye:

Hawken said:
iPhone 3G:
suggested polygon count for performance (total visible): 7000
texture memory: 24MB
max texture size: 1024px x 1024px
screen colour depth: 16-bit (65,536 colours)
alpha blending: free! (use PNG)
suggested texture size: under 512 x 512

Nintendo DS:
suggested polygon count for performance (total visible): 2000
texture memory (per screen): 512kb
max texture size: 1024px x 1024px
screen colour depth: 18-bit (260,000 colours)
alpha blending: 5-bit (32 colours)
suggested texture size: under 128 x 128
——
Add3r said:
Windows Phone (Information gathered via Tech demos/Bench Marks):
- Tris on Screen (comfortably): 30k, these were static meshes, using 256*256 textures
- Max Texture Size: 2056, might be higher, I know this number is shared with the xbox 360, as they share many caps when it comes to game development. Obviously the phones cant handle the same loads (this should obviously be common knowledge... I hope)
- Can support up to 72 bones per character
- No Normal map support, just diffuse (not sure about specular, didn’t make it into our benches)
— Low Poly Hardware Specs - Polycount

Now I had a starting point. I knew that iPhone 3G was quite old (3 and a bit generations) so I could have a little leeway with these specs and tailor them more towards the window phone specs. I was happy with this information and got to work.

And I worked faster than I thought I would. Blender has a very interesting snap to feature and it made everything fairly simple. 

And I worked faster than I thought I would. Blender has a very interesting snap to feature and it made everything fairly simple. 

I worked on the topology polycount (triangles) to make sure if I had to add extra loops in for deformation I could do so with ease and without disrupting the polycount too much. I ended up with 688 tris for the main body and 894 tris for the Orc Features a total of 1582 tris for a main character. For me, this was in the right ballpark (throughout this process I've had BitGem as someone I really want to aim to be like - and his/her main characters have a polycount of 2000+). 

Orc Total

Orc Total

I was quite happy with my work. This reminds me, I still need to watch Muppets Most Wanted...

I was quite happy with my work. This reminds me, I still need to watch Muppets Most Wanted...

I then Unwrapped the model, the unwrapping feature in blender is primitive and I would like some more options like 3dsmax has but I was able to make it work, even though I was extremely frustrated with this part of the process. I learnt the hard way that saving, and saving the images you're painting are two different shortcuts. Cue the Normal maps part of this journey.

I started with exporting out the high poly version of my character from Zbrush as an obj. I then exported the lowpoly version from Blender, as an obj. After this I opened Xnormal, imported the highpoly mesh and imported lowpoly mesh. I pressed "Generate Maps" and such a mess came out - there were holes in my map and I didn't understand. 

"Nothing was working."

I tried with a cage and without a cage. I was told that the 'ray distance calculator' would help a bit with my map generating. Nothing was working. Then I noticed that with all the noise showing up on the maps, I should definitely separate the orc features from the main body. There was less of an issue, but I still had holes in the normal maps and I couldn't understand why there were large streaks of colour that seemed out of place.

So I took a break, I worked on a normal map alternative because I couldn't figure out any way to fix these normals. This alternative I was hoping to place in a program like CrazyBump or Ndo and get the normal map from the 'height map' I had created. I took reference from the normal maps I had generated and hoped that this normal map was what I wanted. 

"If you've ever been told to test before you finish, you should do that... Seriously..."

If you've ever been told to test before you finish, you should do that... Seriously... Of course, I was in my own little struggling world but as I finished texturing in the under garments for my orc and started on the little swirls of his knuckles, I decided I should test if this theoretical height map to normal map idea would actually work. To my delight, It sort of did. But not the way I wanted it to. I made a flat normal map from this height map, which would be useful for a ground texture but not any other kind for mesh. *sigh*

So I stopped. I did a little more research and worked on the orc features. Turns out, when I had created the retopology for my character (body and features) I had moved the decimated obj (semi highpoly) down to touch the floor when in Blender *face palm*

This meant that my normal maps weren't getting projected correctly because the two objects were in totally the wrong position *double face palm*. But I knew the problem now and I can work on that. 

This demonstrates the normal map issue

This demonstrates the normal map issue

Ughh I felt so stupid when I found that out. I mean seriously "why didn't I see it when I viewed the normal maps as a diffuse"

Ughh I felt so stupid when I found that out. I mean seriously "why didn't I see it when I viewed the normal maps as a diffuse"

So I went back into Blender. I had an idea "I wonder if  I can get normal maps from Blender" - turns out you can. So I did a bit of research and grabbed the normal maps from the decimated model that was already in Blender. Which worked quite well. I just had fiddly bits to fix. The fingers had seams showing, there were a few seams on the head showing up and some very strong red and green elements around the hands and feet. But this was all in a diffuse view.

I started by trying to play with the head, just smooth those seams a little - it worked a charm then I went down to the finger. This would be harder, so I got colour samples and tried to smooth out the colours by painting a combination of red and green. on the diffuse it seemed to work. but unfortunately as a normal map it wasn't really getting me anywhere. I also realised that I didn't want my fingernails to have as much detail as they did, it wasn't necessary. So tried to blur the finger nails details - this wasn't too bad. but then I noticed that the finger nails weren't in the exact position I wanted them. This would be an issue. At this point I did a test of this texture in the texture slot it was designed for - the normals texture slot. 

The normal maps didn't match the diffuse map *triple facepalm*. So back to the drawing board. Should I draw the normal maps and use my diffuse "height" map as a base? Should I go back to the drawing board? Should I check if these seams are fixable?

 I had seen a video a while back on hand drawing normal maps and off the top of my head it was just making sure my RGB channels had colours of 128, 128, 255 respectively so neutral grey (X), neutral grey (Y) and then white (Z). So I started playing with the maps. I knew that blue would be the easiest, it's just what is indented so I use the 'working' blender normal maps and tried to adjust their channels. It took some time but I figured out that how to make some of the lines straight and clean on the model. Things were looking up. 

The shirt looked much better from behind do I thought that I would place the normal maps into unity with the export for my character. 

 

"I felt happy [...] I had learnt a process by trying, failing, trying, failing, trying and then finally succeeding."

I should have done that long ago. Turns out that my Normals looked inside out *double sigh*. But only in certain directions. I went back do Blender and found that it wasn't just in Unity. There were major seam issues happening under the character too. As much as this would likely never be viewed by anyone, I needed to fix this seam. Research turned up some interesting information about normal maps, sometimes the Y axis needs to be flipped - some programs require that to happen. So I flipped the Y normal in the map and saved it out again. 

At first glance it made one hell of a difference. The normals looked great. But then I focused in on some problems areas and the issue was still there as a whole. 

Sadly, even with the Y axis flipped the seams were still visible. Just not as much.

Sadly, even with the Y axis flipped the seams were still visible. Just not as much.

 
The thing is, I knew not to have overlapping faces on normal maps. I knew it and I did it anyway...

The thing is, I knew not to have overlapping faces on normal maps. I knew it and I did it anyway...

While I was doing research I came across a post saying that you should never have overlaying unwraps. *quadruple face palm*. I had done that to make sure I could have more detail on my height map. No wonder things were going wrong. I had to fix this. 

I re-unwrapped the whole model and made sure that there were no overlapping faces. I checked that the mesh's face normals were the correct way around and I made sure that there was enough space between the islands. 

Once this was done,  made sure that when I exported the character base, I exported it as the same height as original mesh was. I checked that I hadn't made a mistake like the previous times, and then did the normal maps via Xnormal. 

It worked! or at least initially it worked. On closer inspection the under side of the head, and the shoulders were still mangled. I checked the high poly mesh and found the reason. These two areas were intersecting *headdesk*

Urgh! How had I not seen that before! 

I was disappointed that I hadn't figured it out sooner. By this time I knew what had to be done and I could see the light at the end of the tunnel.

Surprisingly accurate feeling at the time. I may have curled up into a ball at that point and then had a break for my birthday.

Surprisingly accurate feeling at the time. I may have curled up into a ball at that point and then had a break for my birthday.

Back to the drawing board. Well the scuplting table at least.

On the plus side, it only took me a day to import my character, divide it, sculpt the details I really wanted (no swirls, no finger nail details) export it, import it into Xnormal, get a normal map, and test everything in Unity. One day of work... It took me weeks to get to this point. 

BacktoZbrush

I was done and I felt happy. Not really because I had finished the problematic part, but more that I had learnt a process by trying, failing, trying, failing, trying and then finally succeeding.

I had redone several weeks of work in a day. I was happy.

I had redone several weeks of work in a day. I was happy.

I have a few niggling things to play with in the orc features and most things really just show up in the ambient occlusion, which I'll leave out of the diffuse map and keep it as a separate option. Enjoy the rest of the images. These are the screenshots of the orc in Unity and Blender. The red arrows are showing where there are small seam issues. 

Sadly, I will have to postpone the selling of the Orc character for the moment. I wish to at least rig the character before I export him and sell him as a complete item. This will take some time.

However, with the orc model complete, I've got a Dwarf and a Tiefling to work on next. 

So here I am, exiting stage left until tomorrow. When I will be working on the sculpting of both characters. Enjoy my streams and I hope to see you there.

Kylie Out.