Home Technical Talk

Convincing 3d that looks like 2d.... Wow

1234568

Replies

  • DireWolf
    Thank you every one contributing in this thread. We've borrowed quite a few idea for our current stylized project.

    This sword animation. The trails are using separate mesh for each frame, idea borrowed from from Guilty Gear Xrd. Thank you Chev for your translation!
    9VEFzfI.gif
    Same as this one.
    gbCcOUh.png

    We have no advance shader really, just plain ol' Maya ramp+Sampler Luminance, rendered mainly with Hardware 2.0 plus a few mask for fine tuning.
    HeTcqnr.png
  • Abyssus
    Offline / Send Message
    Abyssus polycounter lvl 7
    Yadoob wrote: »
    I'm not sure i'am allowed to dig up the thread like that but I made a quick pdf to explain the GuiltyGear Sahder with an example within Blender :

    here's the link to download it https://www.dropbox.com/s/65cwf6kjuezhwdl/GuilltyGearXrd_shader.pdf?dl=0

    And here's an other test i'm working on from a concept by Disney for "Up" :

    I love it, it is the effect I want to recreate on the Unreal Eninge 4 but for now I have not succeeded. I downloaded this model to use as example http://www.blendswap.com/blends/view/50358 and these are my results:
    Zero Effect

    zeroeffect.jpg

    with Post Process Effect

    postprocess.jpg

    Now Guilty Gear Xrd use the UE3 and I think the materials is connected to CustomLighting like in this Tutorial http://media.moddb.com/images/articles/1/29/28341/auto/shader.jpg But I'm not 100% sure, now in the new UE this option no longer exists.
    My question is that, is possible to have the same effect on the UE4??
    In these cases it would be a nice plugin that carry materials directly into the game engine :poly136:
    Thx and sorry for my English.
  • Abyssus
    Offline / Send Message
    Abyssus polycounter lvl 7
  • SkyWay
    Offline / Send Message
    SkyWay polycounter lvl 11
    Thanks for showing the Blender example, I had somehow completely missed the GLSL node editor :P
  • PMango
    The GDC posted this video showing a presentation by Arc System Works on Guilty Gear Xrd's art style for anyone that's interested.

    [ame="
  • ZacD
    Offline / Send Message
    ZacD polycounter
    Great talk, really love when game art really takes advantage of custom normals and vertex colors.
  • AniMoney
    Offline / Send Message
    AniMoney polycounter lvl 5
    This thread is awesome, so much good info here. I think these techniques have a broad use in many types of rendering styles. I personally love the high-contrast comic style of Marvel vs Capcom 3.

    They have a different shading style for the gameplay and their trailers like this one, but both look amazing I think. One of the things I like is how they have a hatching texture. I'm not sure if their look is done with a simple ramp or if they're using some of the normal manipulation and other shader techniques.

    [ame="

    [ame="

    Do you think it is possible to imitate GG Xrd's techniques in Maya and Unity? I've never used Softimage or Unreal.
  • skankerzero
    AniMoney wrote: »
    Do you think it is possible to imitate GG Xrd's techniques in Maya and Unity? I've never used Softimage or Unreal.

    Unity yes. We've already written a shader to emulate the GG:Xrd techniques. We're actually working on ways to improve it as well.

    The biggest thing that attributes to the look is the stretchy bones they use in animation. This isn't supported in Unity to my knowledge.
  • AniMoney
    Offline / Send Message
    AniMoney polycounter lvl 5
    Unity yes. We've already written a shader to emulate the GG:Xrd techniques. We're actually working on ways to improve it as well.

    The biggest thing that attributes to the look is the stretchy bones they use in animation. This isn't supported in Unity to my knowledge.

    Wow that's awesome, I'd love to see it. I'm not as interested in animating the same way as Xrd, but I really like the render style and would love to do something similar.

    What 3D package are you using? I'd love to hear about your process.
  • skankerzero
    We're using 3D Max.

    We're using Normal Thief to project normals based on a reference object.
    The Unity shader thickens and thins the outline based on vertex color.
    We can define shadow and specular colors on a per pixel basis.


    Where we're improving:
    We're using Distance Field Rendering for sharp, inner outlines.
    We're using a reference model as a reference for pushing our cartoon outlines. This eliminates breaking along uv seams.
    We're doing a real-time gradient along the models length.
    We're experimenting with some halftone techniques for shading.

    We don't have anything to show yet but we're working on a demo for it which will hopefully be ready by GDC next year.
  • Funtimes
    Is there anyone who could help me understand how they got the outlines on the hair to work? Hopefully you can dumb it down for me because, as an animatior, it’s kind of beyond me.
  • Chev
    Offline / Send Message
    Chev polycounter lvl 8
    At its core it's a simple trick. But an awesome one!

    It's really easy to explain when you remove perspective from the process:

    Here's an anime hair substitute, ie spikes. It's been duplicated, expanded, its normals flipped and its color set to black, and backface culling is enabled, which gives us the standard polygonal inking effect. It's pretty nice in itself but you can see intersections.

    mG2doC4.png

    The perspective view on the left is there to give you an idea of the scene layout, the orthonormal view on the right is the visual end result.

    Now let's move the outlines behind the original object.

    3fTfBtl.png

    See how stupidly well it works? All the intersections have been removed.

    With a perspective view it's the exact same idea, except you move or scale the vertices away from the origin of the camera:

    9xwFEyb.png

    In-game you do it with a vertex shader, and you use one of the vertex colors as a weight for the scaling so you can decide how far you should go per-vertex. And since it's done in a custom shader, you can ensure the offset doesn't factor into the lighting calculations.

    Note it's the same idea that prevents two characters from intersecting when they are close: the character on the layer that's "behind" is entirely pushed back, outlines and all. That probably mean a similar offset is applied to the background, too, otherwise the characters and outlines would clip into it.


    bPtWQtX.png
    Tomy05W.png

    Speaking of which, a sequel came out in arcades earlier this week. The main technical change in respect to the visuals is they support several lights per character, so you get things like rim lighting or light emitting projectiles. They've also got an extra decal layer to show battle damage.

    [ame]

    [ame]

    Also interesting is that interview about Battle Fantasia, which originated the perspective and animation tricks used by Xrd (but not the cel shading): http://www.siliconera.com/2015/08/26/origins-of-battle-fantasia-and-the-art-of-making-a-2-5d-fighting-game/
  • Funtimes
    Thanks for the response Chev. I still have a couple more questions though. So is there any way in blender to set this up so that the outline will follow the camera? I understand the bits about the duplicated mesh and moving it behind the object instead of on top of it but once I move my camera around the effect breaks because the outline doesn’t move too. Also, if you have time, I’m still confused to how the get the outlines to vary in width.
  • darkmag07
    Offline / Send Message
    darkmag07 polycounter lvl 9
    @Funtimes: I think you are misunderstanding how the outline is made.

    You create a copy of the entire 3D model, scale it up a bit (in edit mode using blender terms, so that you are leaving the object origin the same as the original model), and then invert the normals. (This makes the faces "point" inside the object.) With back face culling enabled faces are only visible from the direction the normal points, so you can then see through the object to what is inside of it.

    The areas that are scaled up outside the original model are not blocked by its geometry, so they look like an outline. By changing the amount of scaling you can control the thickness of a given outline.

    Perhaps the above illustrations confused you, since Chev moved the object to try to demonstrate how it was made. The effect should work from any camera angle so long as you are properly scaling the object. The outline object is not moved from the position of the original. For a simple object like a cube, you would just parent the outline object to the original and then animate the original.

    For something more complex like a character, you would create the outline object at the last stage of the project after you have the original object rigged. The copy should retain all the rigging information of the original and just follow along naturally.
  • Chev
    Offline / Send Message
    Chev polycounter lvl 8
    darkmag07 wrote: »
    Perhaps the above illustrations confused you, since Chev moved the object to try to demonstrate how it was made.
    Nonono, I moved it not to show the general outline principle but specifically how to do the following, which I assumed was what the question was about since it mentioned hair specifically:
    Chev wrote: »
    the green channel controls how much it scales with distance from the camera, and the blue channel is a Z-offset. This offset will push the vertex "back" into the z-buffer, effectively making the outline invisible when in front of close objects. It's used to simplify the outlines of hair and small features, see Chipp's hair without z-offset and with it.

    @funtimes: you can probably use a driver to make the outline mesh scaled relative to a camera (though it'll only work for that specific camera). Scaling each vertex to vary outline width is basically as if you were using a displacement map (though Xrd uses vertex colors), or you can move them manually by scaling along normals (alt-s I think?). To really do it the xrd way you'd need custom GLSL shaders, which Blender doesn't support outside of its game engine.
  • RN
    Offline / Send Message
    RN sublime tool
    If you're going to render your Blender scene to video you can use the Freestyle engine with the Cycles or Blender-Internal renderers, to generate contours:
    http://www.blender.org/manual/render/freestyle/introduction.html
  • Chev
    Offline / Send Message
    Chev polycounter lvl 8
    Guilty Gear Xrd is now out on Steam. Apart from the UI being lower res than the PS4 version and somehow using nearest-neighbor sampling, it's glorious
  • wherewolfjohnson
    Anyone have any luck getting this effect in Maya? It may be possible with a ramp if you could somehow make the vertex normals paintable so you wouldn't have to edit them one by one. Also is animated vertex normals possible?
  • kodde
    Offline / Send Message
    kodde polycounter lvl 16
    I played around with this in Maya a while back. Never really finished that project... yet.



    The face on the left has tweaked normals (transfered from a sphere if I'm not mistaken) and uses vCol.r to deliberately make areas dark/lit, such as under the nose. The face on the right has none of those features, regular lambertian lighting.

    The model is not mine by the way. I'ts Joakims.
  • wherewolfjohnson
    Neat! How would I achieve that effect in Maya? Control over which area is lit versus unlit is sorely needed!
  • kodde
    Offline / Send Message
    kodde polycounter lvl 16
    If I'm not mistaken I just took the vertex color red channel and added that to the diffuse calculation.Sort of like this:

    diffuse = step(0, dot(normal, lightVec) + (vCol.r-0.5)*2.0);

    The step node is just for the two-tone lighting. I think I then used the diffuse data to lerp between a user defined light and dark color.
  • RN
    Offline / Send Message
    RN sublime tool
    jMonkeyEngine has a shader that does image-based outlines -- it's the alternative technique to using that black expanded clone of the mesh, it's done with edge detection based on a normal and depth rendering of the scene rather than with geometry.
    It doesn't do anything out of the ordinary but I think it's useful for reference:


    https://github.com/empirephoenix/JME3D/blob/master/jme3/src/core-effects/Common/MatDefs/Post/CartoonEdge.frag



  • kolayamit
    Offline / Send Message
    kolayamit polycounter lvl 12
    This looks absolutely amazing !!
  • wandrinsheep
    Hello there guys, gals. long time lurker of this forum topic (I'm not sure if its dead). i tried implementing my own toon shader a while back but failed on the whole vertex manipulation to achieve the linework in maya. i recently stumbled upon this masterpiece https://www.youtube.com/watch?v=hVQ_gTZbiIw and in my opinion it is on par or surpasses some of the best works I've seen. does anyone know much about the studio or the technique being used here, particular in regards to shadow biasing. thank you for your time.
  • snake85027
    Offline / Send Message
    snake85027 polycounter lvl 15
    now can somebody please make Goliath from gargoyles using this technique thanks ha
  • GritNZ
    Offline / Send Message
    GritNZ null
    I like what this Guy is doing with 'toon shader' techniques in Blender  

    Here's the 3D walk cycle link: 
    https://youtu.be/26hFCYv-8gg

    Link to tutorial:
    https://youtu.be/6Tm3yQHrqbE

    Link to download the Blend file - can be found in the description below the Youtube video:
    https://youtu.be/tMIBUmoreX4

  • Ccs1989
    Offline / Send Message
    Ccs1989 null
    This is a great thread.
    That Blender character looks amazing. Seems like every program other than Maya has better toon shader options these days. Unfortunately I'm using Maya for my experiments. Altering the normal direction is pretty easy, but I still don't understand the other part, where you create a map for shadow shapes using RGB values? Or something? If someone has a tutorial on that, even if it's for another program, that would be be great. As long as it explains what's happening with the map and the shader.


  • Ccs1989
    Offline / Send Message
    Ccs1989 null
     i recently stumbled upon this masterpiece https://www.youtube.com/watch?v=hVQ_gTZbiIw and in my opinion it is on par or surpasses some of the best works I've seen. does anyone know much about the studio or the technique being used here, particular in regards to shadow biasing. thank you for your time.


    I believe this is from Studio Khara, a Japanese studio that also does the evangelion films. They use Pencil+ plugin for 3dsMax for their toon shading. It's a really great plugin that's used almost exclusively in anime production. Unfortunately it's not available for Maya...
  • Ccs1989
    Offline / Send Message
    Ccs1989 null
    In an effort to revive this thread I'm going to post a bunch of cool stuff I've found about this subject:
    A tutorial on how to do the Guilty Gear-style cell shading: https://www.dropbox.com/s/65cwf6kjuezhwdl/GuilltyGearXrd_shader.pdf?dl=0
    If someone can use this information as a guide and make a tutorial for how to use it in Maya, that would be amazing.

    An closer demo of the Guilty Gear topology and how to get the nice shadow shape under the eye (probably also requires using the guide above and plugging in those vertex color maps, but I'm not completely sure):

    A demo of Houseki no Kuni character turnarounds, showing the eyes as separate geometry that can be slide around the model based on camera angle to allow for art directed looks:



  • discoharuhi
    Hello, I haven't read through the entire thread yet but there's lots of information. I would like to try to revive it as well.

    I am getting into 3DCG just to create this type of style, I'm currently using blender and MAX and purchasing Pencil+4 soon

    I believe technology, or peoples skill, have advanced recently allowing almost perfect 2D like 3D

    Here are some examples of the style I'm going for:

    https://keiichiisozaki.deviantart.com/art/untitled-516388369









    Can anybody tell me how these are being done? The shadows move on the characters in the animations. I suspect they're using Pencil or Blenders NPR but I'm not sure. If anybody wants to help I can equally exchange professional music production information/theory. I am still new but have been doing beginner max tutorials and blender is a bit hard to use but I've been playing with the shader a bit.


  • BlankMauser
    Offline / Send Message
    BlankMauser polycounter lvl 5
    So Dragonball Fighter Z has released and Arc Sys has worked more of their magic.



    What I'm really curious is how they managed to get those extra darker shadows going on near the nose and eyebrows. Those mouth and forehead outlines also seem like extra work compared to just the tiny polygons they modeled for the noses in Guilty Gear. It seems they simplified a bit of stuff by moving more work into simply textures, but boy did they still work a lot of magic!
  • pior
    Offline / Send Message
    pior godlike master sticky
    It sure looks fantastic. And ironically ... one could probably argue that the visuals of this game must  have a been a lot easier for them to work on than Xrd, because the art direction/visual target was extremely well defined in advance (and of course all the technical groundwork was done too, besides the engine switch maybe).

    So yeah, ArcSys + DB really is a perfect match. And the game feels great too ! Awesome work.
  • Alemja
    Offline / Send Message
    Alemja quad damage
    DBZ game looks so good, they just keep getting better with refining the style!

    So I guess kind of on this topic, I saw this on twitter as an interesting way to handle anime's wonky perspectives:

  • RN
    Offline / Send Message
    RN sublime tool
    @Alemja that's cool! I think those faces around the mouth were flipped on their normals. It seems like a nice way to make the "anime side-mouth" look.
    I think it will only work with absolute flat-shading, though. The moment you add some soft shading the illusion would be broken because you would see that the mouth is concave.

    Something similar can be used for eyes:
    https://simonschreibt.de/gat/rei-ayanami-inner-eyes/
  • Scythe
    Offline / Send Message
    Scythe greentooth
    @pior : i think you're both right and not. While the tech and overall workflow has been set up by xrd, I think the difficulty was to actually match up Toriyama art and direct in term of character, while in Guilty gear they might have felt more free to experiment both in tech and overall character direction.

    Needless to say I feel DB is a clear improvement above guilty gear and I'm super happy to see they are sticking to it. So far with Ni no kuni 2 and my little witch academy, it's the best of what we have in term of 3d-2d and uooer cel shading. I wish to see more Jrpg with this direction :O
  • Ccs1989
    Offline / Send Message
    Ccs1989 null
    Land of the Lustrous had some awesome CG, and here's some behind the scenes: http://otakucalendarjapan.com/?p=21979

    [url=https://imgur.com/bcDD3SW][img]http://i.imgur.com/bcDD3SW.jpg[/img][/url]

    They model the eyes and mouth on separate geo that is flush with the original geometry, but can be moved around depending on camera angle. And because of the cell-shading, you don't get weird self-shadows. I don't know if they use normal-tweaking to control the shadows or if Pencil+ plugin uses another method to get clean shadow shapes. I contacted Pencil+ to ask but they just sent back a form letter with a bunch of useless info.

    Here's a long talk in Japanese about using Maya for cell-shaded animation:


    Also here's a blender tutorial about cell shading in the Guilty Gear style. Does anyone know how to use this technique in Maya? Specifically where to plug vertex color maps into the ramp shader to control the shadows?
    https://www.dropbox.com/s/65cwf6kjuezhwdl/GuilltyGearXrd_shader.pdf?dl=0







  • Justo
    Offline / Send Message
    Justo polycounter
    THE KINGS ARE BACK
    https://www.youtube.com/watch?v=eBc4P2rdUqs

    God Bless Daisuke Iwatari, his art team and oh-my-god his music. 
  • Yerus
    Offline / Send Message
    Yerus triangle
    This game is 5 years old. It was produced with Softimage, which is a dead software. They used a plugin called User Normal Translator to modify quickly the vertex normal directionsm and a code for dot-producting the light ray with the object's normals to produce this amazing cel-shading fx. Apart from that, there are also tons of other stuff they did to max out the 2D look.
    I've been studying it for almost 2 years from now.
  • Justo
    Offline / Send Message
    Justo polycounter
    While stylistically I lean towards their ridiculous, over the top character designs in GGxrd than their latest endeavors with Granblue and FighterZ's toriyama style, there's no denying all of those look excellent in their own way and replicate the charm of limited animation in ways no one else has done. I'm also super interested to get some personal art done in this style with an animator - I just think this level of technical art direction holds so many unexplored possibilities nowadays.
  • Yerus
    Offline / Send Message
    Yerus triangle
    I just think this level of technical art direction holds so many unexplored possibilities nowadays.
    I think exactly the same thing! It's not just to offer same old 2D anime style, but to improve, and people don't experiment on that well enough as a philosophy, just as a shader. Although its indeniable beauty, it's not difficult to achieve those results, it's just hard working, that's it.
  • unitzer07
    Offline / Send Message
    unitzer07 polycounter lvl 6
    WOAAAHH!!  I'm so glad this thread is still alive!!  Walking down memory lane in preparation to create a tutorial series in blender to emulate these non-photorealistic rendering techniques along with some stuff I learned in the intervening years.  Here's an example of what I did a few years back using these techniques combined with 2d editing:
    https://www.youtube.com/watch?v=IfCEsJXqoj8
  • Justo
    Offline / Send Message
    Justo polycounter
    @unitzer07 that looks dope! By all means share later this tut when you finish it. The more info the better.
  • Aerth
    Offline / Send Message
    Aerth polycounter lvl 3
    I was playing with this type of shading in UE4, have had a break as recent projects have required more realistic rendering but I hope to go back to it soon. You can find a load of collected studies/experiments here https://bit.ly/2kFftKs


  • Justo
    Offline / Send Message
    Justo polycounter
    Cool use of the grease pencil to create outlines:


    If only this could somehow be converted to normal geo, be exported and be able to instantly swap with other outlines mid-animation, I bet that would yield very cool-looking results...
  • 3D_director
    Offline / Send Message
    3D_director polycounter lvl 3
    Thank you @Justo ! I did that tutorial as a proof of concepts (I do a lot of proofs on my channel). And at that time it was blender grease pencil beta. You can NOW export the meshes that you trace from grease pencil. May you expand on the idea you mentioned? I believe it is possible to do it now, but I´d like more details.
    Meanwhile, for everyone else: I´ve been doing extensive (years-long) research for the Guilty Gear shader look. I'm putting together a series of videos to recreate this look in Blender's EEVEE realtime viewport. Results have been impressive so far.
    We do agree the GGX shader is kind of an "old school" technique like Motomura mentions in his 2015 GDC presentation sliders. But they have past beyond to the amazing technique of directing the lights through masks (threshold factor), and that´s what I'm showing in the videos I´m doing with Blender:


  • 3D_director
    Offline / Send Message
    3D_director polycounter lvl 3
    But the striking results from the shader itself are impressive inside Blender:

    At the end of this video, I'm showing how my own character currently looks going past the Guilty Gear Shader:




  • Scythe
    Offline / Send Message
    Scythe greentooth
    this is rad! thanks man :D
  • Justo
    Offline / Send Message
    Justo polycounter
    Guilty Gear Strive's beta is out and with it a truck full of stylized 3D goodness. Their style is noticeably different than Xrd's, and it looks just as striking. There is an attention to smaller details too, showing just how much they've grown since then. 

    Character intro animations. Take a look in particular at the character Millia's hair (4:52) - it's just so so fabulous:



    Some wacky faces showing just how flexible their rigs and blendshapes are:


  • rollin
    Offline / Send Message
    rollin polycounter
    It's so funny and stupid watching him drive against the shin again and again. X)
    But seriously this is really great 3d-2d. Would love to see a complete tech breakdown on these.
1234568
Sign In or Register to comment.