Home Technical Talk

[MAYA] Surface-Based Asset Generation

1
sublime tool
Offline / Send Message
Fansub sublime tool
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 :smile:

http://image.noelshack.com/fichiers/2016/03/1453593999-workflow.png

Here is test number one,which required only one manual tweak (harden edge) :smile:

http://image.noelshack.com/fichiers/2016/03/1453594312-result.png

And 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.png

Basically,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 Generation

To 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 Generation

The 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 issues

Everything is a mess so far :neutral:

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.

- Goal

The 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 :p
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

  • armagon
    Offline / Send Message
    armagon polycounter lvl 11
    Like this?

  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Yep ! Dark Blender is a huge inspiration for me on this project :)

    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 :p
  • pixaeiro
    Offline / Send Message
    pixaeiro polycounter lvl 8
    I am somehow confused.
    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!
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    I'm trying to find the best way in Maya to automate low poly and UVs creation and once i know how it can be done manually i will start writing tools that help me do it automatically :)


  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Damn,it's been a long time since i haven't updated this thread,too buzy with Quick Pipe these days ^^

    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

  • beefaroni
    Offline / Send Message
    beefaroni sublime tool
    Man all of this stuff is looking really cool. If there's a way to set edge smoothness groups (softer and harder roundness) for shapeshifter that would be amazing. 

    Def going to show this to my co-workers on monday!
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    If there's a way to set edge smoothness groups (softer and harder roundness) for shapeshifter that would be amazing.

    Hmm don't understand,can you elaborate a little bit ? talking about a way to create "Edge Groups" like a PolyGroup but with edges ?

  • PolyHertz
    Offline / Send Message
    PolyHertz polycount lvl 666
    Really neat!
    Are the edges detected by creases / hard edges?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    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 :D

  • artquest
    Offline / Send Message
    artquest polycounter lvl 14
    Fansub said:
    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 :D

    That sounds awesome man! I'll be watching this thread for sure :)  btw there's a plug in written by Rich Diamant that has a really smart way of storing edge selection sets for UV unwrap (second video in the link). If you're looking for inspiration... 
     http://www.rd3d.com/dtools/?page_id=28
  • BigErn
    Offline / Send Message
    BigErn polycounter lvl 11
    Hey FANSUB,  really big fan of what your showing here, and the direction of trying to make any tools for Maya to speed up the processes!   The bevel you did looks fantastic and worth buying whatever you price you put on that alone!   These 'simple' things are what makes working fun, rather than just frustrating,  and Maya has become more and more frustrating over the years.  Are you also an expert on UI by any chance? :)
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    ARTQUEST : Thanks for the link !

    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 ^^

    Are you also an expert on UI by any chance?

    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 !
  • Phoenix995
    Offline / Send Message
    Phoenix995 polycounter
    Hey i really like your script :)
    One Question: in that shapeshifter gif you posted, are you creating support loops or bevels?
  • Psychotic_Mike
    Offline / Send Message
    Psychotic_Mike polycounter lvl 11
    Really nice to see this. Will this be released any time soon?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    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 :p

    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 :p


  • Phoenix995
    Offline / Send Message
    Phoenix995 polycounter
    Fansub said:

    Btw,if you're using Maya 2016,the latest extension has the solid bevel you where looking for so long :p


    haha xD funny you remembered that ^^

    Thanks for the info :)
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Quick comparison between Maya 2016 Extension 2's bevel and ShapeShifter with the same bevel method and settings. The first tests where on some simple cubes but then i used my example mesh which was tailored for this workflow (lots of nasty booleans) and EXT2's bevel ended up breaking the geo really badly on places where you would have lots of booleans.Haven't played enough with the chamfered bevel yet,but will see next time. http://image.noelshack.com/fichiers/2016/16/1461279623-bevel-copy.jpg

    http://image.noelshack.com/fichiers/2016/16/1461279623-bevel-copy.jpg

  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    I would push to by this for our studio and any artists that could use it, if it's features are tight.

    Looks great!
  • CreativeSheep
    Offline / Send Message
    CreativeSheep polycounter lvl 8
    Hrm, I have to see it in further detail on a mesh.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Thanks guys ! All the stuff presented here is still waaaaaaaaaay too early for me to talk about a release/beta,but we will eventually get there and with a lot of new tools. :)
  • Phoenix995
    Offline / Send Message
    Phoenix995 polycounter
  • kohg
    Offline / Send Message
    kohg polycounter lvl 9
    So is this a quad chamfer for maya? Or something more?
  • Joopson
    Offline / Send Message
    Joopson quad damage
    If you ever need, oh, I don't know, someone to test it...........
    .....
    .....
    .....
    I would be willing.

    Seriously, this looks fabulous and mindblowing. It would be a huge improvement to my (and everybody's) workflow.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Thanks guys ! Another test for this workflow,but this time with a low poly+normal map.The workflow was quite simple : duplicate a basic mesh,apply shapeshifter on one and triangulate the other one.AutoUnwrap by hard edges and bake the textures with Xnormal.I might go with Turtle next time,btw.

    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.
  • cookedpeanut
    Offline / Send Message
    cookedpeanut polycounter lvl 13
    Fansub said:
    Damn,it's been a long time since i haven't updated this thread,too buzy with Quick Pipe these days ^^

    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

    Mate, would you mind posting up that model - I'd like to do some testing in Blender to see if I can replicate some similar results... Cheers!
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Should have uploaded the mesh earlier ! Here is a FBX containing a triangulated and non triangulated version :smile:http://www111.zippyshare.com/v/WdMbGDkG/file.html If there are Max,Blender,Modo or anything else users out there that can test this mesh with a bevel on it,please post some screenshots here !
  • Phoenix995
    Offline / Send Message
    Phoenix995 polycounter

    can you show us how it performes on surfaces like this?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    It gives you an expected result from ShapeShifter,like in the image below :

    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 :p
  • Mossbros
    Offline / Send Message
    Mossbros polycounter lvl 9
    Great work you've got going on here Adnan, you keep stating its simple, which it is in theory.
    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?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    The goal here is not only to have a high poly solution but also it's lowpoly+UVs+Baking counterparts,so there is a loooooooooong way to go before someone gets to play with this ^^
  • cookedpeanut
    Offline / Send Message
    cookedpeanut polycounter lvl 13
    Just tested the demo file and it came out, OK. Blender acts strangely with its bevel function, I had to modify the geometry before it stopped acting up and even then it didn't want to bevel the edges on the correct paths. This is the best I could get it, and notice how it tries to bevel multiple edges into a single corner, I think it's a cool function but in most instances I wouldn't want that. Rather if it beveled the edges so corners were rounded, that would be nicer. Unfortunately this means that the shading is a little strange, here's to hoping they advance the modifier...


  • PolyHertz
    Offline / Send Message
    PolyHertz polycount lvl 666
    Edit: nevermind...
  • cid_carlos
    Offline / Send Message
    cid_carlos polycounter lvl 2
    wow this is really cool! when can we buy this? i´m throwing money at the screen and nothing happens  :(
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Will be selling it in a few centuries :)

    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.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Got some time to do some 3D art but ended up improving ShapeShifter.The tool is now a lot more stable and comes with more commands then the previous versions.
    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 :)

  • JamesTKirk
    Offline / Send Message
    JamesTKirk polycounter lvl 8
    Looks fantastic! 
    Will it work with Maya LT?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    No idea about that tbh :/
  • shayleen_hulbert
    Offline / Send Message
    shayleen_hulbert interpolator
    Really loving the progress you are making on this tool. Great work! This will make hard surface modelling a lot more efficient and more enjoyable over all! I love hard surface, but getting the blending between intersecting shapes/booleans is a PAIN and takes an age to get to look the way I want. But this seems to handle it so well! 

    I look forward to seeing more :)
  • xXCrimsonWolfXx
    Offline / Send Message
    xXCrimsonWolfXx polycounter lvl 4
    This honestly looks amazing and I had actually gotten QuickPipes because of how useful it looked, and I had been when it comes to a lot of my models!

    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. 
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Hey guys,thanks for the comments and sorry for the late responses !

    Can it work well with surfaces that have been subdivided many times?

    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.

    How does it compare with sharp edges? If I was to make a corner about less than 15 degrees, could it still bevel well?

    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.


    Another thing is that you should really make it possible to be able to set different strips that can edit the level of bevel.

    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 :D
  • ziwuxin
    Offline / Send Message
    ziwuxin polycounter lvl 7
    Where can I find ShapeShifter in maya 2016?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Just go to the Mesh Menu and under automatic high poly you will find Shape Shifter ! It's only compatible with Maya 7.0,tho :)

    Joking,ShapeShifter is a custom tool that doesn't come with Maya.It is still in it's early dev phase,too.
  • Scruples
    Offline / Send Message
    Scruples polycounter lvl 10
    Should maybe rename the thread Maya-ShapeShifter, I keep thinking it's someone asking about surface based asset generation. Also...you're evil @Fansub
    ^_^
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    The OP presentation was a failure tbh,i didn't explain well what was the intent of the thread,and people only got excited about the idea (well,part of the idea) later on,but there's a lot more to this thread then just SS (Substance-Like baking in Maya,Automatic Unwrapping,Texture presets,etc...).

    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 ^_^
  • LaurentiuN
    Offline / Send Message
    LaurentiuN polycounter
    Please do it for 3ds max to :( pleeeease :))
  • PolyHertz
    Offline / Send Message
    PolyHertz polycount lvl 666
    Shinigami said:
    great, now make it for max :P

    seriously its looking amazing... Something like this wouldve made max 17 a special thing...
    s1dK said:
    Please do it for 3ds max to :( pleeeease :))
    I wrote an equivalent for Max already a few weeks ago. Waiting to see where @fansub goes with the Maya version before polishing it up for release. It's not possible to do as elegantly without the history stack Maya has, but is still relatively easy to get the same end results.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    PolyHertz ah really happy to know that someone else did it ! Now you see why i was saying that it was super easy :-p


  • Demonith
    Offline / Send Message
    Demonith polycounter lvl 6
    What about 3dsma :(
  • Iziaky01
    Offline / Send Message
    Iziaky01 polycounter lvl 7
    Please continue work on this Script!! Will be very usefull for Maya user like me! :3
  • mdualib
    Offline / Send Message
    mdualib null
    Iziaky01 said:
    Please continue work on this Script!! Will be very usefull for Maya user like me! :3
    I second that. :D

    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 :)
1
Sign In or Register to comment.