The stuff they do with the z-offset and modified perspective is both simple (well, for a programmer) and crazy. You can effectively use as many layers as you want as long as you're careful with z-buffer depth. I thought they'd be rendering to offscreen surfaces but this is way more efficient. On the other hand the z-offsets mean you can't do deferred lighting because the depth buffer's all wrong. You'd have to maintain a second depth buffer with non-offset values and need some tweaking. But of course since they never have more than one light per object this is fine.
Without the z stuff which appeals to me as a programmer Motomura lines would easily be the best trick they've shared as far as I'm concerned.
This is the kind of process that can really only be born when you have 2d artists, 3d artists and programmers/tech artists sitting together. It's cool how cross-discipline it is.
Let it be forever known that UE3 can do way more than just brown space marines.
Final vertex color use is R: ambient occlusion, G: outline scaling, B: outline Z-offset, A: outline width.
Final texture population is:
-Base (RGB, diffuse colors)
-SSS (RGB, shadow multiplier)
-ILM (RGBA, lighting control, R: specular intensity, G:shadow bias, B:specular size, A: inner lines)
-decals (greyscale)
Now I think of it, I wonder where the illumination info for glowy bits is.
There are some secondary textures you can see in screenshots (notably the pool ball textures for Venom's instant kill) but they aren't as important. Note that the base and SSS textures are the only ones that really contain color information so they're the ones you need to change to make different character palettes.
For such a workflow to really be efficient I think a modeling/animation program that can use custom pixel shaders directly in the viewport must be absolutely necessary, since the lighting formula and the outline stuff are very nonstandard. As a Blender user I'm very jealous of that function of Softimage.
There's really a lot of work that went into this but the results are there.. I'm curious to see how fast they'll iterate, ie add characters. The one they've added since release is the previously unplayable boss, and the next one already had his model present in the game in cutscenes.
Thanks for the thanks (and beer offers)! It was time consuming but fun to do! Of course the real persons to thank are the Xrd team and the article author Zenji Nishikawa, especially since I get the impression japanese devs are usually less likely to share such information.
oh guys, i'm really happy to know this game is made with xsi!! , im a old xsi user and i really appreciate some of the trick i learn reading this articles,
i will to show you my 5 mouth old fighting prototype game made with unity (and xsi), based only on what i see on first GGxrd trailers
I get the impression japanese devs are usually less likely to share such information.
They do not. Everyone that is not in your company is a competitor. Keep your cards close. Even when artist meet up, how to do things is hardly discussed, if it is, very superficial stuff.
If you get someone one on one and they are a friend, they will tell some stuff.
They do not. Everyone that is not in your company is a competitor. Keep your cards close. Even when artist meet up, how to do things is hardly discussed, if it is, very superficial stuff.
If you get someone one on one and they are a friend, they will tell some stuff.
Saddest part though that is not just other companies, employees in the same company can sometimes be very secretive with there knowledge, no one is ever really relaxed even at their own company.
Saddest part though that is not just other companies, employees in the same company can sometimes be very secretive with there knowledge, no one is ever really relaxed even at their own company.
I read/heard from co-workers about stuff like that.
Where I am at now there was a guy like that. There was a guy like that.
This years CG World 2014 mega-issue will have more of GG. Will be about $60, but well worth it.
The scene budget is about 800K polygons, 550K for the background and 250K for the characters, but each actual character is about 40K, the remainder is for all the stuff they can spawn on-screen.
Ah. Missed it. But man that's a massive amount of tris. I mean, I'm no expert on 3D modeling, but I was expecting much lower than that.
Not really actually. Games last gen were pushing 30 - 40k already. In Ghostbusters, Egon was our heaviest character and he weighed in at around 27k with all his equipment.
It's also a fighting game, so the characters are the most important thing on screen by far, and take up a lot of screen space. Making things clean and sharp requires a lot of tris.
It's basically their own, unique way of precisely controlling the hues and values of areas in shadows. If you look closely at colored mangas and anime, the colors of the shadows do not come from a uniform "multiply" on top of everything, but rather, a carefully defined set of shadow colors for each material. It's a clever way of faking a wide array of physical properties from the real world, and the team working on GGXrd had to emulate that for their characters to look vibrant.
Really cool! So with these specific textures, how must they be handled to give specific shadow values? If the SSS texture is B, what influences the way the shadow works? Same with D (ILM), how does that effect the specularity?
Shadows are manually manipulated by editing the way normals face for each frame. They also have a map that makes the shadows 'more likely' to shade certain areas.
I'm not even sure if it is using the same technique. I can't tell if the above is using a shader or the shadows are baked.
The shadows are painted on and the outlines are made using the 'push + normal flip' method, no shaders used. Most of the Japanese 3DCG community don't model with games in mind just 3D viewers like this so they don't restrict themselves in texturing symmetrically.
They are pretty good at making these kinds of dioramas.
The shadows are painted on and the outlines are made using the 'push + normal flip' method, no shaders used. Most of the Japanese 3DCG community don't model with games in mind just 3D viewers like this so they don't restrict themselves in texturing symmetrically.
They are pretty good at making these kinds of dioramas.
Pardon my ignorance, but is pushing/flipping normals a technique that can be utilized for in-game models?
Has anyone ever considered using normal maps to remove shading detail as opposed to adding detail? It seems plausible just thinking about it (though would probably make a ton of shading errors).
With with star ocean i think they did a far better job on the main 2 characters than the rest, the little girl on the far right is creepy as hell. Same with cat girl. I think maybe it worked better because the characters were sci-fi?
You used to have to use the technique sparingly, because pushing/flipping normals would double the size of your model in most cases. Back in the day, polycounts were king and you always wanted to shave them down as much as possible.
With modern rendering technology, this has become much less of an issue. Number of triangles is rarely the rendering bottleneck, so making use of this technique would probably not screw anything up. This is especially true if you aren't using a ton of extra rendering effects.
But I believe outlines on most modern models are achieved using specific shaders, not the push/flip trick. It's possible to achieve more impressive results that scale more effectively with modern programmable shaders.
Actually scalability is a problem with the post-effect shader method. The number of texture fetches will be very directly dependent on the maximum line width you want, and selectively hiding or showing outlines or doing art-directable variable width requires tons of checks with the surrounding pixels. Small details will also be hard to outline since it works based on what's effectively rendered.
In contrast, the polygon hull method which Xrd went with, while having double the fillrate requirements compared to the hull-less model, only requires information about the current vertex and so it's simple to do pretty much anything you want in a vertex shader (thus the variable outline width, variable scaling with distance, etc). Heck, I didn't even think hiding outlines in a vertex shader could be possible until they explained the z-offset trick, and it requires zero in-shader comparisons!
On the other had, of course, you can't do detail smaller than a polygon. Though tesselation may help with that in the future... Also some corners will give away the hull nature of the outline.
What's more, a post-effect shader wouldn't be quite like what Pencil does, because Pencil's great thing is it has the notion of strokes, ie rather than doing it per-pixel it'll extract edge information and create brush strokes based on that. To do that in real time a pixel shader is too local, you need a geometry or compute shader (which could happen soon, I mean, Infamous 2 uses compute shader to do better skinning, and geometry shader outlines are described in GPU pro).
Yeah, GPU-wise it's actually changing the culling criterion so it can be set in the render state, but 3D programs abstract it away as flipping normals and culling can even be an optional thing (blender's default settings for example will have double-sided faces so you first have to enable culling before you can play with outlines), but it can be set up. In blender the solidify modifier with the lfip normals flag set and backface culling on will give you a basic outline.
if it's the same as zbrush, then a matcap is basically a fancier camera-relative environment map, ie the lighting will always come from the upper left no matter what, contrary to other shaders that'd allow for variations.
The faces are perhaps just 2D elements overlayed on the 3D meshes.
The "anime style" step\quantised animation seen in the original post reminds me of the Nicelanders, characters from the film Wreck-it Ralph that also have that snappy, step-keyframe quality:
The shadows are painted on and the outlines are made using the 'push + normal flip' method, no shaders used. Most of the Japanese 3DCG community don't model with games in mind just 3D viewers like this so they don't restrict themselves in texturing symmetrically.
They are pretty good at making these kinds of dioramas.
On that link actually I don't think most of the shadows are painted on, with closer inspection you can see that they follow the edges of the mesh perfectly, I'm thinking that it's probably vertex colors for a lot of the shadows. Particularly on the skin and hair. Which makes sense, I remember a few older games that used geometry instead of textures for scalability with details since the textures required for the alternative would be massive.
You can see where the shadows are painted and which ones are vertex color or a different material by zooming in and seeing which ones get blurry on the edges. It also looks like some of the outlines they use are actually just floating black polygon strips by using the single sided polygons you can see the nose gets an interesting anime line effect as well.
On that link actually I don't think most of the shadows are painted on, with closer inspection you can see that they follow the edges of the mesh perfectly, I'm thinking that it's probably vertex colors for a lot of the shadows. Particularly on the skin and hair. Which makes sense, I remember a few older games that used geometry instead of textures for scalability with details since the textures required for the alternative would be massive.
You can see where the shadows are painted and which ones are vertex color or a different material by zooming in and seeing which ones get blurry on the edges. It also looks like some of the outlines they use are actually just floating black polygon strips by using the single sided polygons you can see the nose gets an interesting anime line effect as well.
Yeah you're right. I use the site a lot and the viewer is pretty simple, I'm fairly confident it doesn't support vertex colours so I don't think that's it.
What I reckon Usami-san did was use two textures, one with normal colours and one with darker colours, all using the same UVs etc. and changed which polygons used which texture.
I think I might try that technique for my next model.
Yeah I'm assuming that's how it was done too, it's much easier to get those sharp edges that way. Though I did assume the viewer supported vertex colors since it seems to be the Unity webplayer.
(Sorry for the late answer but the link isn't working for me. Are you sure it's right. I'm in japan right now so if I have a precise reference it'll be esay to bring it back.)
EDIT: scratch that, it works now!
It's worth checking youtube or twitch right now, a ps4 demo of the game is out in japan so there's plenty of hi res footage around!
(Sorry for the late answer but the link isn't working for me. Are you sure it's right. I'm in japan right now so if I have a precise reference it'll be esay to bring it back.)
EDIT: scratch that, it works now!
It's worth checking youtube or twitch right now, a ps4 demo of the game is out in japan so there's plenty of hi res footage around!
Yeah, I tried many times to fix it but the forum keeps butchering the hyperlink. Instead of '/dp/' it changed it to 'd/p'.
Anyway the book is great, some nice stuff in there. Obviously you won't be able to get much out of the text if you can't read Japanese haha but most of the pictures are a bit informative.
So, after seeing posts like Justin Time, the unity hatsune miku model and the guilty gear video previews, why was DISNEY so excited to present their new engines that emulates 2D?
You know, the one they used for their Paperman'' and ''Feast'' short films.
They made it sound like it was big leap in terms of visuals when actually it looks like a regular toon shading engine..
I believe a lot of it involves the technique and overall look of the end result. Disney's method allows for convincing textured strokes rather than just a normal solid line. I could be wrong but I also think their focus on on getting the render engine to get most if not all of the shading done, where there is a lot of micro managing of the way light reacts and whatnot for the GG characters. And for the Miku model a lot that sells that is the shading that isn't dynamic at all and it's flat shading, it wouldn't translate well into something animated as is.
Disney's Meander is the conceptual inverse of cel shading: instead of making 3d models look like 2d drawings, it enables 2d drawings to tween like (and based on) 3d models, which gets rid of the old "flash look" of automatic 2d inbetweening. In other words, don't be mistaken, it covers a completely different use case, it is in the end a tool for augmenting 2d animation, not making 3d animation.
The real kicker is it basically produces a moving canvas, so any drawing and line style will work with the tech. Pencils, watercolor, oil painting, all of them can be tweened using that system (and while it was great it's kind of a pity Paperman chose such a low key style).
Concretely, you only need basic 3d models and everything else can be drawings, so it's also quite unlike prepping models for cel shading, which as we've seen involves a number of tricks to be well done.
Interesting article and breakdown. Nice, the simple work around they've developed for getting the stylized 3/4 view. One of the things that can be over looked in 3d when trying to emulated 2d, getting stylized angles. Fighting the preciseness of 3d. http://www.cgmeetup.net/home/creating-childrens-cartoons-3ds-max/
Replies
The stuff they do with the z-offset and modified perspective is both simple (well, for a programmer) and crazy. You can effectively use as many layers as you want as long as you're careful with z-buffer depth. I thought they'd be rendering to offscreen surfaces but this is way more efficient. On the other hand the z-offsets mean you can't do deferred lighting because the depth buffer's all wrong. You'd have to maintain a second depth buffer with non-offset values and need some tweaking. But of course since they never have more than one light per object this is fine.
Without the z stuff which appeals to me as a programmer Motomura lines would easily be the best trick they've shared as far as I'm concerned.
This is the kind of process that can really only be born when you have 2d artists, 3d artists and programmers/tech artists sitting together. It's cool how cross-discipline it is.
Let it be forever known that UE3 can do way more than just brown space marines.
Final vertex color use is R: ambient occlusion, G: outline scaling, B: outline Z-offset, A: outline width.
Final texture population is:
-Base (RGB, diffuse colors)
-SSS (RGB, shadow multiplier)
-ILM (RGBA, lighting control, R: specular intensity, G:shadow bias, B:specular size, A: inner lines)
-decals (greyscale)
Now I think of it, I wonder where the illumination info for glowy bits is.
There are some secondary textures you can see in screenshots (notably the pool ball textures for Venom's instant kill) but they aren't as important. Note that the base and SSS textures are the only ones that really contain color information so they're the ones you need to change to make different character palettes.
For such a workflow to really be efficient I think a modeling/animation program that can use custom pixel shaders directly in the viewport must be absolutely necessary, since the lighting formula and the outline stuff are very nonstandard. As a Blender user I'm very jealous of that function of Softimage.
There's really a lot of work that went into this but the results are there.. I'm curious to see how fast they'll iterate, ie add characters. The one they've added since release is the previously unplayable boss, and the next one already had his model present in the game in cutscenes.
Thanks for the thanks (and beer offers)! It was time consuming but fun to do! Of course the real persons to thank are the Xrd team and the article author Zenji Nishikawa, especially since I get the impression japanese devs are usually less likely to share such information.
i will to show you my 5 mouth old fighting prototype game made with unity (and xsi), based only on what i see on first GGxrd trailers
on this i dont use a realtime toon but only a simple imagelit shader
https://www.youtube.com/watch?v=AHC3VuX4aVM
as you think?
now i need to rework on this whit all this new reference!
p.s. sry for bad english
found that, looks good too
If you get someone one on one and they are a friend, they will tell some stuff.
Saddest part though that is not just other companies, employees in the same company can sometimes be very secretive with there knowledge, no one is ever really relaxed even at their own company.
Where I am at now there was a guy like that. There was a guy like that.
This years CG World 2014 mega-issue will have more of GG. Will be about $60, but well worth it.
page before
Ah. Missed it. But man that's a massive amount of tris. I mean, I'm no expert on 3D modeling, but I was expecting much lower than that.
Not really actually. Games last gen were pushing 30 - 40k already. In Ghostbusters, Egon was our heaviest character and he weighed in at around 27k with all his equipment.
Shadows are manually manipulated by editing the way normals face for each frame. They also have a map that makes the shadows 'more likely' to shade certain areas.
I'm not even sure if it is using the same technique. I can't tell if the above is using a shader or the shadows are baked.
OH wow, this is awesome! Thx for posting.
It does look almost as neat as the game render except this probably uses less complex shading stuff since it runs so smooth in Unity render.:-)
This is pretty much the level of the cel shading they use in the naruto games.
They are pretty good at making these kinds of dioramas.
Pardon my ignorance, but is pushing/flipping normals a technique that can be utilized for in-game models?
Yes. This practice has been used since way back in the days of Quake 3.
With with star ocean i think they did a far better job on the main 2 characters than the rest, the little girl on the far right is creepy as hell. Same with cat girl. I think maybe it worked better because the characters were sci-fi?
With modern rendering technology, this has become much less of an issue. Number of triangles is rarely the rendering bottleneck, so making use of this technique would probably not screw anything up. This is especially true if you aren't using a ton of extra rendering effects.
But I believe outlines on most modern models are achieved using specific shaders, not the push/flip trick. It's possible to achieve more impressive results that scale more effectively with modern programmable shaders.
In contrast, the polygon hull method which Xrd went with, while having double the fillrate requirements compared to the hull-less model, only requires information about the current vertex and so it's simple to do pretty much anything you want in a vertex shader (thus the variable outline width, variable scaling with distance, etc). Heck, I didn't even think hiding outlines in a vertex shader could be possible until they explained the z-offset trick, and it requires zero in-shader comparisons!
On the other had, of course, you can't do detail smaller than a polygon. Though tesselation may help with that in the future... Also some corners will give away the hull nature of the outline.
What's more, a post-effect shader wouldn't be quite like what Pencil does, because Pencil's great thing is it has the notion of strokes, ie rather than doing it per-pixel it'll extract edge information and create brush strokes based on that. To do that in real time a pixel shader is too local, you need a geometry or compute shader (which could happen soon, I mean, Infamous 2 uses compute shader to do better skinning, and geometry shader outlines are described in GPU pro).
When does it come out? I may be in Tokyo late october/early november so maybe I can grab one.
[ame="http://www.amazon.co.jp/dp/4862671691/"]www.amazon.co.jp/dp/4862671691/[/ame]
you can do it manually in the 3D modeling engine or you can make it a part of the shader like this https://www.assetstore.unity3d.com/en/#!/content/7449
What would be the difference between that matcap shader and a typical standard shader that comes with Unity?
[ame="http://www.youtube.com/watch?v=Ojnt2x8ZLeY"]Justin Time You Forgot to Say ARRGH Full Episode - YouTube[/ame]
The faces are perhaps just 2D elements overlayed on the 3D meshes.
The "anime style" step\quantised animation seen in the original post reminds me of the Nicelanders, characters from the film Wreck-it Ralph that also have that snappy, step-keyframe quality:
On that link actually I don't think most of the shadows are painted on, with closer inspection you can see that they follow the edges of the mesh perfectly, I'm thinking that it's probably vertex colors for a lot of the shadows. Particularly on the skin and hair. Which makes sense, I remember a few older games that used geometry instead of textures for scalability with details since the textures required for the alternative would be massive.
You can see where the shadows are painted and which ones are vertex color or a different material by zooming in and seeing which ones get blurry on the edges. It also looks like some of the outlines they use are actually just floating black polygon strips by using the single sided polygons you can see the nose gets an interesting anime line effect as well.
What I reckon Usami-san did was use two textures, one with normal colours and one with darker colours, all using the same UVs etc. and changed which polygons used which texture.
I think I might try that technique for my next model.
(Sorry for the late answer but the link isn't working for me. Are you sure it's right. I'm in japan right now so if I have a precise reference it'll be esay to bring it back.)
EDIT: scratch that, it works now!
It's worth checking youtube or twitch right now, a ps4 demo of the game is out in japan so there's plenty of hi res footage around!
it works in your quote, not his original post
Anyway the book is great, some nice stuff in there. Obviously you won't be able to get much out of the text if you can't read Japanese haha but most of the pictures are a bit informative.
You know, the one they used for their Paperman'' and ''Feast'' short films.
They made it sound like it was big leap in terms of visuals when actually it looks like a regular toon shading engine..
The real kicker is it basically produces a moving canvas, so any drawing and line style will work with the tech. Pencils, watercolor, oil painting, all of them can be tweened using that system (and while it was great it's kind of a pity Paperman chose such a low key style).
Concretely, you only need basic 3d models and everything else can be drawings, so it's also quite unlike prepping models for cel shading, which as we've seen involves a number of tricks to be well done.
http://www.cgmeetup.net/home/creating-childrens-cartoons-3ds-max/
https://www.youtube.com/watch?v=I6qigc1XLLE
more GGXrd
One of the more convincing attempts i've seen at video CGI-2d