EDIT : You can get
ShapeShifter right here.
Hey guys
For the past months I've been working around 30 minutes to two hours on a project that involves automatic generation of game assets.This thread will be used to have some feedbacks and update the project at the same time
Keep in mind that i rarely work on this project (four hours a week generally) so updates are not going to be very frequent.
With that said,let's start the real talk !
When working on a mesh for a game,the most important piece is the high poly,because from that piece of geometry you will create your low poly,UVs and textures based on the normal map which is based on the high poly.
The biggest issue here is that low poly creation stage isn't very fast in Maya and automating the process along with UV generation would help me focus a lot more on the most creative tasks : high poly and textures.
From this issues a solution was born :
Surface-Based Asset Generation.When i started this project generating the UVs automatically was my priority,but after looking at
Linko and
RedRogueXIII's posts i got a few ideas on the low poly generation part,which ended up making the UVs generated even better and smarter.
Here is a quick overview of the process
http://image.noelshack.com/fichiers/2016/03/1453593999-workflow.pngHere is test number one,which required only one manual tweak (
harden edge)
http://image.noelshack.com/fichiers/2016/03/1453594312-result.pngAnd test number two which had more complex geometry and required two manual tweaks (
harden edges,merge vertices threshold) :
http://image.noelshack.com/fichiers/2016/03/1453594661-result-02.pngBasically,everything is based on edges - specifically hard edges.To generate the high poly,we set all the 30-45 degree angles to hard and everything else to soft.There might be cases where you want to manually smooth certain edges but you don't need to most of the time.
Once the hard edges are set,everything else goes pretty quickly :
- Low Poly GenerationTo generate the low poly,we use basic commands like Reduce,Triangulate,Quadrangulate and Merge Vertices Threshold.The reduce has three layers : Large,Medium and Small.Each layer targets faces of a specific size.
The idea behind the low poly generation is that you can hit a few buttons until you are satisfied with the actual topology.Setting a certain polycount limit is definitely in my priorities.
The generated low poly works really well with face-weighted vertex normals and I've made a script that makes it even faster to set up this workflow in Maya.
Even though the generation works on any selected high poly,having a crease/weight or a bevel-based high poly workflow will give you better results than the classic SubD workflow.
- UV Map GenerationThe UV generation technique is quite simple but isn't flawless.Basically,it uses hard edges to split your UV shells and then Unfold+Layout with proper texel density and distortion-free UVs.It works quite well but has one issue : face loops splitting detection.
What this means is that when working on something like a cylinder,the script can't find a hard edge since everything is smooth (
except the caps) so you end up selecting certain edges to harden them.Doing this on the low poly will make things faster for every other future step.
- Known issuesEverything is a mess so far
Basically,i need to set up a UI that regroups all the commands required to have this workflow easier and faster.
But not only that,Maya's Reduce command doesn't always give you proper topology on curvy surfaces and you end up setting logically smooth edges to hard edges just so it can put them in the "don"t delete me" list .
I looked through the PolyRemesh command in Maya but it didn't give me expected results,so sticking with the Reduce and improving it's operation parameters is my best bet so far.
- GoalThe goal of this project isn't to have a button that generates a low poly and it's UVs in a single click,and i don't think that it's even possible to simplify the workflow to this point ATM.This project is just a way to generate a low poly and it's UVs with less manual work than usually,and most of the work involved should only concern button clicking,edge selection and sliding sliders.
For a complex piece like a gun,creating it's low poly+UVs in 5 minutes would be more than perfect for what i'm targeting.
Once everything is done i will share the tools with you guys of course,but this isn't going to happen tomorrow morning
Please note that this is NOT going to replace the traditional workflow and it's currently too early to say if it will be able to produce production-ready game assets.I use this workflow primarily on personal projects and will keep doing so until i have results equal to a manual workflow.
With that said,please don't hesitate to give me some suggestions/critiques to help me improve this project
Replies
Of course,it is a more complete package that focus on multiple things,while this project's target is just hard surface game asset generation.
If i happen to find a better method than relying on hard edges this would push the concept to a whole new level,but for now let's stick with simplicity
Are you trying to refine your workflow? Or are you developing a set of tools or scripts to automate this process?
Anyway, it looks interesting!
Anyway,Took a few hours today to work on the High Poly workflow and see how i can automate it.As always,I try to base everything on Hard edges and this new method is no exception.
The biggest advantage here is that you can apply it on any shape,no matter how broken it is and it will always bevel the edges until you reach an intersection.It only works on entire object tho,so you can't apply it on individual components,but will get back to it in a few weeks hopefully.
http://i.giphy.com/3o6ozF4UaVLlzsbQqs.gif
Def going to show this to my co-workers on monday!
Hmm don't understand,can you elaborate a little bit ? talking about a way to create "Edge Groups" like a PolyGroup but with edges ?
Are the edges detected by creases / hard edges?
Hard edges.Maya's creasing system is horrible atm so I'm relying on hard edges,but in the future i would really like to have a better and smarter way of storing edges.Something like selection sets but a lot easier to use.You could for example toggle to Edge Group selection mode and hovering over an edge would highlight all the edges stored in the group it belongs to.
Shouldn't bee too complex,but we'll see
http://www.rd3d.com/dtools/?page_id=28
Thanks for the comment,BIGERN !
I'm actually quite surprised by the overwhelming responses I've got from people across the industry,because the scripts i show are super basic tbh,which makes me almost feel like cheating or something.Let's just hope all these positive vibes help me land my first gig in the industry ^^
Wouldn't say expert,but i never faced an impossible challenge so far,and UI has been the easiest part so far tbh.Made some simple windows here and there for Quick Pipe,which i can't wait to publish !
One Question: in that shapeshifter gif you posted, are you creating support loops or bevels?
Kind of both.It's a layered effect that creates an inset on all hard edges,and adds a bevel on top of it.You can deactivate both,or have one of them.
Btw,if you're using Maya 2016,the latest extension has the solid bevel you where looking for so long
http://area.autodesk.com/blogs/stevenr/maya-2016-extension-2-technical-modeling-improvements
I'll be updating this thread later on with new experiments using the latest bevel of this extension.From what I've seen,it will not be too hard to have some really nice SubD models automatically,but wait and see
haha xD funny you remembered that ^^
Thanks for the info
http://image.noelshack.com/fichiers/2016/16/1461279623-bevel-copy.jpg
Looks great!
.....
.....
.....
I would be willing.
Seriously, this looks fabulous and mindblowing. It would be a huge improvement to my (and everybody's) workflow.
http://image.noelshack.com/fichiers/2016/16/1461350978-screenshot000.jpg
PS : ShapeShifter is not similar to Quad Chamfer,because the results they produce are not the same if you look closely at the bevels.
can you show us how it performes on surfaces like this?
http://image.noelshack.com/fichiers/2016/16/1461409132-000001-copy.jpg
With that said,these type of shapes are probably the most challenging because ShapeShifter can't push back all the geo it meets,just the first ones attached to the hard edges (that's why i deleted an edges in the wireframe). If i can manage to make it shift everything it intersects with,then we'll probably have a lightweight version of Mesh Fusion
But it's the simple stuff that artists want and usually, the thing that coders overlook.
Would really like to test this script on some complex geo and also see how it performs with removing the operations so that you maintain the low poly.
Just wondering what things are you thinking about adding to it?
Seriously tho,ShapeShifter is like in version 0.0001 so take your time on waiting for it.Development will not restart until mid-June because i have other priorities right now (Quick Pipe) .With that said,I'm really happy with the responses and can't wait to restart working on it ! !
If you guys have any feature suggestions,ideas or crits to make on the small bits you've seen please do so,will probably have better ideas than what i already have in mind.
This crate was made in around 15-30 minutes with ShapeShifter.The low poly process is also lighting-speed : Just triangulate all Ngons,auto-set hard and soft angles,unwrap by hard edges and bake the crap out of it.All cylindrical shapes are automatically detected and an edge is selected to cut them.
The main idea is starting to form,now i just need to finish Quick Pipe updates to start working more deeply on it
Will it work with Maya LT?
I look forward to seeing more
ShapeShifter looks like something that could really make things so much easier for us hard surface modelers. There are so many possibilities with it, and I'm wondering what could be made in such little time.
A few things and a few suggestions about the plugin for you to consider. Can it work well with surfaces that have been subdivided many times? I think you may have already thought of this but still. How does it compare with sharp edges? If I was to make a corner about less than 15 degrees, could it still bevel well? Another thing is that you should really make it possible to be able to set different strips that can edit the level of bevel. Much like in Mesh Fusion with strips that can be more chamfered or more smooth than others.
As stated many times in this thread,the tool is still in it's early prototyping (!) phase so I can't say for sure what it will be able to do and not do atm.The current prototype allows you to work on super low to super high geo as long as the hard edges are there.
Edges are either set manually or automatically,so even if you have an edge that should be smooth but set it to hard SS will be applied on it.Certain shapes can give you overlapped edges,but you can easily fix that.
That's already done but keep in mind that SS is object-dependent,not component dependent.So if you want an object to have multiple bevel settings you need to split it.Sucks,but that's how the current prototype works.
As said earlier,i need to finish QP development,make a thread dedicated to SS's development and restart from scratch.I've been thinking about a lot of ways one could make SS a better tool (something like MeshFusion but with round/solid bevels) and all we can do now is wait
Joking,ShapeShifter is a custom tool that doesn't come with Maya.It is still in it's early dev phase,too.
^_^
But on the bright side,I've got some of the best industry guys sending me PM about SS,so there is that,at least ^_^
Just got you qpipe script and loving it so far... Wish I could throw a few more $$ your way for this as well.
Still, I`m very interested in it and really hoping development is going well. Keep up the good work