It's Time To Meet The Family

Hey everyone, long time no see! I know its been a while, and I haven't been posting as often as I said I would try. Its just really hard to make a post when I don't have too much to show. I've have been making lots of progress, but its all towards my tools, and showing you code would probably just bore you, and scare you away. Maybe it wouldn't though, leave a comment bellow if want to see some code. Just kidding, there is no where to comment. Anyways today I'm going to be telling you all about my tools, and why they are special. Be prepared for a really long post, I have a lot of info about what's coming, you might want to make some popcorn now, you've been warned. In an older post I mentioned I was going to be having a contest soon, I don't have any info today other then you might want to take notes cause you could win one of the extra prizes.

So if you have been following along, I have been working on a set of tools for quite a while now, and I'm finally ready to tell you what they are, and when they will be released. I'm also going to tell you what their features are, and I'll also tell you a little bit of what I had to do to make them all work. I actually have quite a few tools I'm going to be releasing as a pack, and probably a few individuals as well, they will cost some money, but I do have a couple free ones for you guys as well. I've also been working on an asset pack that is made to work with especially well with the tools, but it will be a while released later down the road. I wish I could release the assets at the same time, but I had to finish the tools first, so I knew exactly how what I needed to do to make them work properly with the tools. So anyways, onto the tools, and the first one I will be presenting is....

A Little Variation

So here is the tool that got me started on making the pack. If you look at the picture above, you can see that there is a bunch of variation added to these Lobby Chairs. I'd like to call it an Asset Variation Manager, but it does a lot more then just that. I am actually very confident that these tools along with the asset pack will be the most customizable pack out of anything on the asset store and probably for any game engine, please correct me if I'm wrong. All I know is that this will help you add, "A Little Variation." Hah...

Its main feature is that it will manage all your assets into some lists, and then all you do is place the Tool's GameObject into your scene, and you can pick through the lists of different types of assets. Once you pick an asset, you can pick which parts you want to spawn. So for example the asset in the picture above you can choose from a metal chair, a cushioned chair, a metal table, or a wooden table, and then of course you can change the arm rests as well. Certain parts can be set to be incompatible with another one, so if you try to enable it, depending on what was set it will either turn off the other part, or just not be enabled. It doesn't stop there though, I'm just getting started... 

In this picture you can see how the wood arm rest on the left, the metal loops in the middle, and the metal bar on the right. You will also notice the leather seat on the left, with the one next to it wearing down. In the middle you see a table with mahogany laminate, but you can also change things like cup marks, full on scratches and wear, and bubble gum underneath. On the seat second from the right you will see the leather is different color, and then last is the metal chair on the right. These are just a few things you can change, and I really mean a few.

Now that you have picked your part, you can also choose a Part Variant, which can change anything from additional objects that are spawned or removed, it can change which texture the object uses, it can change how the object functions with events. Each variation can have Editor Events, and Runtime Events, so when the object is enabled it will call a method of your choice, and as well as when it is disabled. It also handles destructibility, so you will have variants for when its in its Normal, damaged, and destroyed state. All you will need to do is plop on a script to tell it when damage is taken. 

In this picture you can see how the wood arm rest on the left, the metal loops in the middle, and the metal bar on the right. You will also notice the leather seat on the left, with the one next to it wearing down. In the middle you see a table with mahogany laminate, but you can also change things like cup marks, full on scratches and wear, and bubble gum underneath. On the seat second from the right you will see the leather is different color, and then last is the metal chair on the right. These are just a few things you can change, and I really mean a few. 

It has a few more features, but my favourite one is the Material Modifiers. Material modifiers allow you to modify the shader, or substance properties right from the tool itself just for what ever objects/parts/variants you want. This may not seem very impressive, but it will automatically instance your materials, and will share them so every modification you make will share your newly instanced materials, reducing draw calls. One you add material mods to your Parts, you can swap through them for which ever variant you would like to use, just with the movement of a slider, or with the increase of a value at runtime. I really can't get too far into this, its really best shown in a video cause there is really just too much to go over, so before its release I will have some videos to show this all off in action, and eventually a tutorial series to go along with it. If anyone has worked with instanced materials, you will know that you can't save prefabs with instanced materials on them, all your assets will end up pink. To combat this, I added a custom Prefab Saver inside the tools, so you can add your modifications and bring them to other scenes and projects. 

As you can see from the images, I've created these assets to be highly customizable, from objects, all the way to their textures. When you build assets like this, these tools will really shine. Although even if you don't theres lots of little things that can help you during scene population. Instead of texturing them just in Substance Painter, I've added even more customization in Substance Designer. Substance Designer is mostly used to make highly customizable environment textures, but when you use painter to create masks, and do the actual texturing in designer, you can bring that customizability to unwrapped assets as well. If you look at the chairs above, you can see that the left one has small holes, while the other has large, but that's not all you can do. You can change its shape, the amount, the amount of coverage on the chair. Sky is pretty much the limit, every asset you can add damage, rust, snow, wear on all the fabrics and wood, and if you have your own assets, I've created some substances where you can use your own textures to have all these main features. You can now use the same assets for a modern clean looking city, or you can modify them to look like they have been sitting there for years in a run down apocalyptic setting. Every substance will have global settings including Rust, Snow, Frost, Water/Wetness, Blood, Leather Damage, Fabric Damage, Wood Damage, and more. If you are working on mobile and can't afford to use substances, you can always make the modifications you want to the substance, and export the textures from the substance right inside of unity and use them as replacement materials. I also plan to make some UBER shaders for this tool, it will not be here on release but it is on the road map, because I know Substances aren't capable of achieving everything in real time. Its not guaranteed that it will be an all in one UBER shader, but I do plan to make the same properties as the current ones the substances have. I'm just not the best shader coder, but I did just get a book in the mail, so I will eventually make them.

Replacement materials are another feature, if you just have a different texture you want the object to use, all you need to do is select your replacement materials, and when the part is activated, it will replace your materials automatically. If you want to add material mods after that, that's no problem either.

We also added some handy buttons that will rotate your object with various different degree selections, plus a button to mirror your object if it isn't symmetrical. Also have one to level it with the ground beneath, or a to an object with a layer of your choice. I haven't added these next buttons yet, but it will be done by release. I plan to add snapping tools where you can create a snap point on the object, and with Auto Snap on, when its in range of another point your object will snap into position, this will be especially useful for things like train tracks and wall pieces.

The last feature I will mention is Substance Pre-sets. You can now select any substance attached to the object, and export as an XML, that will save all the properties of the substance, and you'll be able to import them onto another object, in any project or scene, just as long as it is using the same substance. For now you will only be able to do this in the tool, but by the time I release all the tools together I will have a separate tool just for this free for the lot of ya.

I almost forgot, the tool pack will be released on July 31st 2017 at midnight! I like to call it "A Little Tool Pack." It includes pretty much everything below, except for the asset pack.

Here you can see a metal door, you can change pretty much anything on this door, windows, a destroyable vent, all the way to the door closer, knobs and locks, not forgetting the door frame. Some material mods would be all the global ones I explained above, but asset specific ones such as foot prints or dirt on the glass. When using parts like the door closer, if you are using our Logic systems, it will actually make the door automatically close after its opened. There is also a door stopper that will stop the door from closing. These features really have more to do with our asset pack, so I will get into this later.

Here is the same door with a different window, and a kick panel instead of a vent.

Here you can see the double glass door before I've set it up for the tool, here you can see it has many types of handles, push bars, breakable glass, door stoppers, and door closers. Once setup in the tool swapping parts will enable and disable them automatically. One of the special features for this door is when using a push bar, one of its variants is having an alarm, it will not only change the texture to show an alarm on the bar, but can be set to call another script when it is opened so that an alarm will be sound or to alert AI to your position. All the noise on the glass is from the dithered shadow behind it, I'm going to be trying some things to get glass to make tinted shadows, but most likely will just have to disable them for the glass.

Here is some train tracks which will be in one of the demos, those little green boxes are snap points, but are subject to change, probably along the lines of using a gizmo instead of a separate object. And of course the tracks on the left are mossy and rusty, where the ones on right are clean. Like all other assets the intensity of rust and moss can be changed, its just a regular float value.

A Little Group

So here is the next tool in the pack, it actually works right along side A Little Variation, which I will just call ALV for short. While ALV is very good at adding variation to single assets, ALG is good at adding and managingvariation to multiple objects at once in your scene. All you need to do is associate that object with your group, and then you are ready to roll. Also should note that you can use it with any regular game object, does not need to be an ALV object.

ALG's features are material mods, replacement materials, and substance pre-sets just like ALV, except it will apply them to every object in the group instead of just a part variant. A good example for this would be you have a bunch of objects outside, you add them all to a group, and then add a material modifier that adds snow, you change how much snow you want on the object and all of a sudden all your objects have snow on them. Not only that but it manages all the materials on your objects, and makes sure that everything using the same material will be shared, drastically reducing draw calls.

In this image all the chairs are in the same group, but the two on the left are in a different sub-group then the 2 on the right. They are both using a material mod that adds rust, but the two on the right aren't as intense.

One thing it has that ALV does not though is what I call Global Material Mods. In each group, you can create sub-groups, they all share the same material mods as the rest of the group kind of, sub-groups will all have the same material mods, but you can set them to different values. You may be wondering why not just add them to a different group, so you can add different mods. Well this is because of the Global Mods, when a mod is set to global, the main group will have a list of these global values, it basically acts as a limiter/multiplier for the other values. You can set your snow, rust or what ever to the value you want for each subgroup, but if the global mod is set to 0 it will have no affect, and when its set to 1, it will be in full effect to the value set in the sub-group.

Here is a chair with snow, you could easily add more of them to the group and they will still share the same materials. I should also note that if you have baked mesh maps (Position, world normals), the snow will only affect the upright parts of the mesh, and the underpart will have a bit of ice/frost.

Here is the same chair but with ice/frost instead of snow.

Here is same chairs again except with blood on the snow this time.

A Little Meshy

This is one of my free tools I'm going to be releasing, its just a basic mesh brush for painting assets onto objects or terrain. I do not have much to say about it because I actually haven't started to code it yet. But the features I know that will be included are things like random rotations, and random height position. I'm not sure how you will select the assets your going to paint, but you will most likely be able to make a list, then put a value for the chance it has to be spawned, then you can select which list you want to start painting and go from there. I'm open to suggestions, anything that will take a lot of time to implement I could definitely do, but then you should expect a paid version to go along with this free one. This will help your work flow from being "A Little Meshy." Next Tool...

A Little Quicky

Here is one that will be released for free as well, its going to be a quick menu for adding my tools or anything really to the scene, instead of at the top bar. You will be able to add your own options in easily as well, and in the main config file you will be able to choose which options you want on at the time. To see the menu I'm going to try to have it on a hotkey so you can just hold it, a little menu will pop up, you select your option and your done. If I can't figure out how to make a graphical menu popup in the scene view, I will just make a custom editor window instead. For the non coders I will include some prefabs that will automatically add an option to the menu, most likely will be ones that spawn an object, and ones that call methods. Again I am open to suggestions, with big ones may cause a paid version as well. If she won't give you "A Little Quicky," you can get one from me. ;)

A Little Preset

If you read the full details on A Little Variation, you would of seen that I mentioned a free asset that will be for making and importing substance presets. Well this is it. Of course you will be able to select materials from your Project View, but I'm also going to allow you to select instanced materials that are attached to objects. If your not a coder you probably don't think its that amazing, which I guess it isn't, you just have to do a few more things to be able to do that so now you know. This is basically already done, I just need to isolate it from ALV. All I ever wanted was "A Little Preset."

A Little Snappy

ALV will have a small version of this included, but I also plan to make a tool that handles snapping on its own. I don't have really any details for this one maybe other then being able to create snap points, change snap thresholds/radius, and probably a grid system or where you can align objects to the normals of a mesh or terrain. I don't know if this will be free or not, if it isn't it will definitely be pretty cheap like in the range of five bucks or less. Without this tool I could be "A Little Snappy."

And some Extas...

I not only have a bit of extra things that will be included with most of these, but I have a secret Tool that's still in planning stages. I can give you a small hint which is "Frostbite, Assassins Creed." That's all I can say about that for now, but if I can pull it off the way I'm envisioning it, it could revolutionize the way certain scenes are created.Ok, so about my extra little tools. If you have downloaded my "Many Material Shader" that I released quite some time ago, you will know the pain of having to remap channels to get the most out of the shader, such as putting the height map into the albedos alpha. Well I currently have some substances that do that for you, but I also plan to make a tool to make it a bit easier. If you have ever used "Mega Splat," currently the way you need lava textures to be are similar to that, so I plan to make tools to remap your channels or just substances that will help you make custom textures for not only Mega Splat, but other popular assets that require specialized textures as well. If you have any suggestions for assets or textures, I would love to hear it.I'm going to eventually be getting a login system for everyone so they can have their own account here, and I would say go to the forums that are currently not up to tell me your suggestions, but I haven't quite got around to it. It just didn't make sense before with not much traffic on here, but over the last few months I've noticed a steady rise so its something I am planning to get done very soon. I could add a comment box at the bottom here, but to be honest its pretty ugly so I want to get something else going. Getting input from you guys is very important to me, cause I'm not just making this stuff for me, I want everyone to be satisfied.

Asset Pack

I will briefly tell you about my asset pack that I will be releasing sometime after all my tools are done. Its largely based on jail and office assets, but a lot of them could be used in any commercial/industrial environment. I'm going to be having a contest to win all these tools and the asset pack. If you want to enter the contest, I will be having it start on the day I release the asset pack, I'll have more details about it then.

The jail, or prison for the americans, is actually modeled after a real jail which is near where I live, and is almost exactly the same. I do plan on making two versions where one is the replicate, and the other has some added areas just to help with gameplay. So even though the jail is a huge premade building, I'm also going to have premade pieces so you can make your own jail completely from scratch. Every asset will have a huge amount of customization, and will be made to work with all my tools. You won't need my tools for it, but having them could definitely save you a lot of time, and help you get more customization while keeping draw calls down.

Some of the assets included will be things for Jails, Offices, but also things like warehouses, parking lots, change rooms, trees, bushes, things you would see in a doctors office, lobbies, libraries, elevator, cafeteria, kitchen, gyms and pretty much anything you'd see in a jail, plus even the properties next to the jail, which from google maps looks like a steel yard, and a train yard. I'll leave a picture, but I can't tell you what jail it is because that might be part of the contest.

Here is a vending machine I just made. Pretty ain't it?

When I first started working on Society, I realized that its going to take a really long time to make, especially since I am trying for AAA quality. I am totally looking forward too all this, but I also need to pay the bills in between now and release, so I'm actually going to be releasing all my game assets for sale. It really took me a long time to decide to do this, because I didn't want my babies to be in other games before I even get to release mine, so that's why I decided to make these tools and why I'm making the assets with an insane amount of customizability. So even though other people are using my assets, there is a good chance they will look totally different from my final product. Because I'm going for AAA quality, this is going to take twice as long, especially with my team size, by releasing all this stuff it will give me the time to produce my game without worrying about money. I'm one of those people who would rather work on something for 5 or 6 years, maybe more, to get something perfect, and that matches my vision, then quickly pump something out just to make a couple bucks. Although I have to admit there is also that smaller game that is being made along side of Society, so I guess I am kind of quickly pumping one out, but still not rushing it. They also share the same assets so its not getting in the way too much of the way. Sorry I kind of got side tracked, but its time to end this post with some pictures.

You notice anything special about this?

A couple different brands that will be in Society. Making these logos really helpedbrush up my pen tool skills.. Would you try Mountain Man Goo?

Sorry, I only have pictures of this vending machine asset, I will have more pics of the jail soon though.

More angles....

Here is a photo staring through the glass door, with another door on the left, and then the chairs showing off their variants, with the vending machine in the corner. The doors are actually juststanding up in the middle of the room for the photo, shhh.