Home 3D Art Showcase & Critiques

Creating Uncharted 4's Libertalia (Unity)

greentooth
Offline / Send Message
Pinned
Jakro greentooth
I'm a huge fan of the work done for Uncharted 4 by the artists over at Naughty Dog. I've isolated an area within the game that I believe embodies the 'Naughty Dog spirit'. By that I mean that there's a ton of vegetation, textures, ruined buildings and storytelling. 

Most Recent:


Reference:



Disclaimer. This is the first, large, playable environment I've done. Prior to this I've worked on relatively small projects like weapons, props and dioramas. I marvel at the way the artists at Naughty Dog construct their level, this project will serve a study of these techniques. This is also my first time using unity and I look forward to learning what it has to offer.

Extra Disclaimer. I post this to share progression updates with the hope of inspiring others about a project that I'm very passionate about. I would be thrilled to receive advice/critique that will help me improve the art. I am not however looking to start a debate on whether imitation of art is creative or not.

Replies

  • Jakro
    Options
    Offline / Send Message
    Jakro greentooth
    I began by gather a ton of reference for the level.



    I also took a close look at the shaders used to texture the scene. This wall seems to blend 5 different materials. That is likely to be done completely through the shader. I will have to experiment with how to achieve this. I have an idea regarding vertex blending and channel splitting though some experimentation will be required.


    ***

    The next day I blocked out the scene in Blender. My goal was to get the scale and proportions of the scene right.


    ***

    The next day I got the got it all into unity and got a character controller in so that I could run around in third person just like Nate and get a feel for the proportions of the scene. I went through a great deal of iteration for the blockout, tweaking and improving. Walking/Running around the scene is super important for me so that I can make sure it feels believable and nice to explore.


    I then began adding props and replacing parts in the blockout. I experimented with prefabs, lighting and of course tweaking the blockout in areas that didn't feel right.


     When blocking out I have need for quick basic UVs for lightmapping. I created a quick python script that fulfils this need(executes on all selected objects)

  • Yura_Vorobiev
    Options
    Offline / Send Message
    Yura_Vorobiev interpolator
    This is a great environment, looking forward to see final piece. Good luck!
  • Doxturtle
  • Jakro
    Options
    Offline / Send Message
    Jakro greentooth
    @Doxturtle Great work! I actually studied at a university with @Stavaas last year and got to see this awesome scene come together. 
  • Stavaas
    Options
    Offline / Send Message
    Stavaas polycounter lvl 3
    Hey bud, looks like a nice start! Gonna be super fun to see your take on Libertalia come together! :)
  • Ashervisalis
    Options
    Offline / Send Message
    Ashervisalis grand marshal polycounter
    Looking foward to the outcome! This might be a silly question, but for your blockout phase, are you creating your models in UE4? Or modeling in a different program and bringing in the basic model into UE4?
  • RustySpannerz
    Options
    Offline / Send Message
    RustySpannerz polycounter lvl 14
    Nice to see a full environment from you Jakro, looking forward to seeing the end result! 
  • Jakro
    Options
    Offline / Send Message
    Jakro greentooth
    I've held off on responding until I had more to show of this scene. At the moment I'm focusing on getting all the underlying foundations set up. For example, shaders, basic materials/textures, lighting ect. I've also been doing a bunch of research into proper lightmapping and other engine stuff that previously I got to ignore while using marmoset!  :D

    @Ashervisalis
    Thanks! I blocked out everything in blender while using the unreal character model as a scale reference. Then i brought over the whole blockout as one mesh. Then i got a character controller set up and working so that i could run around the scene and view is as close to how Nathan drake would. This helped me spot any issues with placements of buildings/proportions. 

    @RustySpannerz
    Thanks! Yeah this has been a long time coming! Really excited to get a big scene done and to learn everything I can from the guys over at Naughty Dog. There's some really interesting design/tech in this scene! 

    Shaders!

    Wood

    I noticed while looking at the uncharted scene that the wooden planks were hollow and appeared to be using some sort of an alpha to create the splintered look. This surprised me as it's not the prettiest result up close. But that's the key I guess, uncharted is a third person game where your not going to view it up close. So to use the same technique too, if it proves to cause issues later i can always change it. The way I have it set up requires 2 separate UV channels, one projects the alpha cutout. the other serves to apply a tiling texture. This results in a very low triangle count and only 2 small textures. It also allows for adjustment of each textures tiling without breaking anything. I did however need to have a duplicate and inverted version of the mesh. this mesh ahs the same shader with the exception that it has flat lighting and an option to pick the color. This creates the illusion that the plank isn't hollow.



    Ground Shader

    I started by grabbing a few megascan textures to create the ground shader. This shader blends between 3 separate texture sets using height and vertex color. 

    I plan on having a shader that blends 4 sets of textures. This presents a problem as unity shaders have a limit on how many textures you can input. To get around this I will be breaking down my materials into two textures. One texture will contain BaseColor+AO. BaseColor will be stored in RGB and AO will be stored in the alpha channel. The other texture will contain Normal+Height+Roughness. Normal map will use R+G Channels(Blue is discarded), Height will be stored in the Blue channel, Roughness will be stored in the alpha channel.

    To make these textures work and behave properly there's a little bit of set up. First each texture type must be set Default, next set the Normal+Height+Roughness texture linear color (Disable sRGB). To get the normal map to work correctly we must use the 'unpack scale normal' node inside of Amplify Shader Editor. 

    Wall Shader

    I then sculpted out a tiling brick wall in zbrush. 
     Using substance designer I baked out the mesh information to a 2048*2048 plane. I then textured and packed my textures into the appropriate channels using substance designer's 'channels shuffle' node. This node is fantastic and removes any manual texture packing needed. Here's is the end result as viewed in SD's viewport:

    I then started a new shader that works very similarly to the ground shader. This shader allows me to paint on moss using the height map and vcols.
     

    For now I'm just using the grass texture to imitate moss but I'll be creating a material for moss soon. I have also taken a leaf from naughty dogs book regarding moss and using Fresnel to lighten the moss at certain angles. This imitates the way moss catches light.


    Will keep chipping away at the scene and will hopefully have some buildings done soon. Each building requires a variety of shaders though so i may end up spending another week working on textures/shaders!  :#

  • Katori
    Options
    Offline / Send Message
    Katori polycounter lvl 7
    This is looking really spiffy! Love the custom shader work. What character controller is that, the Unity default one or a custom one?
  • Jakro
    Options
    Offline / Send Message
    Jakro greentooth
    Thanks @Katori! I'm using this one https://www.assetstore.unity3d.com/en/#!/content/82048 It's really awesome and easy to set up :)  
Sign In or Register to comment.