Organic Modeling with Blender and Gimp to Unreal Engine 4

Please note that this article is still work is progress. Approved for Blender Versions: 2.78c Approved for Gimp Versions: 2.8.20 Organic Modeling with Blender and Gimp to Unreal Engine 4. 1. What i...

Updated about 4 years ago Edit Page Revisions

The tutorial on how to create an organic model with Blender and display it in Unreal Engine 4 has been updated and moved to my homepage.

https://jokerminator.joomla.com/index.php/wiki/3d/organic-modeling

-----

1\. What it is about

This workflow tutorial will explain an ambitious beginner how to:

  • Set up Blender for efficient modeling.

  • Blender's important hotkeys and controls.

  • Sculpt a 3D model of a statue.

  • Create different levels of detail of the model.

  • UV map the model.

  • Bake normal, ambient occlusion and displacement images.

  • Paint the 3D model with colors, speculars and emissions.

  • Rig and animate the model.

  • Set up Gimp for efficient image editing.

  • Create and edit images.

  • Use Unreal Engine 4 to display the statue.

  • Add the animation and physics to the model.

  • Build an executable application.

-----

table of contents

-----

2\. What you need

  • Blender for 3D modeling, UV mapping, image painting and baking, rigging and animating ( 4 free )

  • Gimp for image creation, editing and polishing ( 4 free )

  • Unreal Engine 4 to make it alive ( 4 free )

Optional:

  • Graphics tablet ( Starts at about 30 $/€ or even less if you buy it used. )

You should save ( as... with a new name ) your model / work from time to time, even when it is not explicitly mentioned in this tutorial to be able to change back to an older version if this is necessary. I recommend to use a revision control system like GitHub. A tutorial about this topic can be found here: GitHub Desktop

-----

table of contents

-----

3\. Blender

Although this workflow tutorial can be completed without any knowledge of Blender I recommend to watch some basic tutorials to learn the user interface and general behavior before you start blending here. Please keep in mind that some controls may differ because of the changes made in the Blender settings. Examples of basic video tutorials:

3.1. Prepare Blender and the Project File

First prepare Blender. Install and open Blender.

3.1.1. GUI

I recommend to do the following changes in Blender to improve the look and feel. These changes are optional but this workflow tutorial assumes you made these changes. ( hotkeys, tabs, windows etc. )

In the Blender's menu bar -\> File -\> User Preferences...-window -\> change to:

A nice gray / orange epic like theme.
Themes tab -\> Presets -\> choose Elsyiun

For clearly visible vertices in Edit Mode.
Themes tab -\> 3D View -\> set Vertex: color to e.g. purple and Vertex Size: to 6.

Transparent Tool Shelf panel's background for a better overview.
System tab -\> enable Region Overlap

More Unreal Engine-like controls and graphics tablet compatibility.
Input tab -\> Select With: -\> Left

Menu to change between the different object interaction modes with the tab key.
Add-ons -\> Categories: Pie Menu -\> enable Pie Menu: UI Pie Menus Official

Dynamic menu to make various settings with the spacebar key.
Add-ons -\> Categories: 3D View -\> enable 3D View: Dynamic Context Menu

3.1.2. Retopology

Speed up retopology tremendously.
Add-ons -\> Categories: Mesh -\> enable Mesh: Bsurfaces GPL Edition

3.1.3. LoopTools

Easily connect vertices.
Add-ons -\> Categories: Mesh -\> enable Mesh: LoopTools

3.1.4. Relax

Distribute meshes evenly.
Add-ons -\> Categories: Mesh -\> enable Mesh: Relax

3.1.5. Save

Click Save User Settings to save your changes and close the Blender User Preferences window.
In the next steps the default project file will be prepared. You can use this as a blueprint for future projects too.

3.1.6. Shading

Nicer and more expressive shading in Solid method.
In the 3D View, that shows all 3D objects, press N to open ( or close ) the Properties panel -\> Shading section -\>

  • Switch from Multitexture to GLSL rendering.

  • *enable Matcap -\> *Click the grey sphere to select a material to work with. I use the reddish, third from last in the first row.

3.1.7. Render

To get a cleaner look.
Properties panel ( N )* -\> Display -\> disable Grid Floor and all three axis.*

3.1.8. Delete

Delete all objects in the project because you don't need them.
In the 3D View -\> select all objects by pressing A key ( twice ) then press the Del key and confirm the command with the Enter key or Left-Click the pop-up to delete all objects.

3.1.9. Scale

In the Scene tab file:OM_SceneTab.JPG of the Properties Editor set the Units from Unit Presets to Centimeters, which equals the Unreal Engine scale.

3.1.6. View

Closer look at even large objects.
In the 3D View, that shows all 3D objects, press N to open ( or close ) the Properties panel -\> View section -\>

  • Set the Clip: -\> Start: to 1 mm.

  • Set the Clip: -\> End: to 25 m.

3.1.10. Save

To save this project blueprint you have two options:

  1. Blender's menu bar -\> File -\> click Save Startup file -\> Enter or left-click to confirm that you want to use these project settings for all projects as default.

  2. Save this project as a blueprint file for this tutorial and other new projects. Blender's menu bar -\> File -\> Save As... -\> EmptyProjectBlueprint.blend to save the complete project and its settings to the \*.blend-file.

You can also download the file here: file:EmptyProjectBlueprint_B278.zip

3.1.11. Graphics Tablets

I use the graphics tablet only to sculpt and paint. For all the rest I use my mouse. This chapter will show you how I set up ''my'' graphics tablet. '''But''' in general this tutorial will only explain the mouse controls. Please transfer these mouse controls of to your individual graphics tablet setup if you use one.

  1. General Settings:

    • De/Activate the pressure sensibility with the

File:FingerIcon.JPG

button for sculpting / painting in Blender. You can find this button on the right side of a lot of different settings and the pressure sensibilities can even be combined like e.g. radius and strength of a tool. 2. Huion NEW 1060 Pro - Please note that this tablet is not 100% compatible with Blender. The value for money ratio is still good\! Problems are: - Shift key is not supported. ( Tips to fix this are very welcome\! ) - 16 soft keys are not supported. ( Outside Blenders working space, so they don't send the commands to Blender I guess.. ) - You can only have one button setup for all applications / uses. ( Though your settings are saved in the file tabletconfig.ini. For example K0MainKey=84 means that tablet button K1 = key T. ) - Sculpting: - move pen: sculpt bumps ( key: left mouse button ) - move pen + tablet button K12: sculpt dents ( keys: Ctrl + left mouse button ) - hover pen + first pen button: rotate around the object ( key: middle mouse button ) - tablet button K11: undo ( keys: Ctrl + Z ) - tablet button K7 / K8 : zoom out / in ( keys: Numpad- / Numpad+ ) - hover pen + K9: move view to pen pointer position ( keys: Alt + F ) - hover pen + K10: change brush size ( key: F ) - K5: SculptDraw brush ( key: X ) - K6: Smooth brush ( key: S ) - K3: Pie Mode menu ( key: TAB ) - K4: Pie View menu ( key: Q ) - K1: toggle Tool Shelf ( key: T ) - K2: toggle Properties Shelf ( key: N ) - Painting ( differences only ): - move pen: paint primary color - move pen + tablet button K12: paint secondary color - K5: toggle primary - secondary colors - hover pen + K6: simple color picker

-----

table of contents

-----

3.2. Important Hotkeys and Controls

Blender uses a lot of hotkeys ( aka shortcuts ) and in general you can just press spacebar in the 3D View and search will show the hotkeys after the search result on the right side. Hovering over buttons in the user interface will show them too. Alternatively you can have a look at File -\> User Preferences... -\> Input tab and search for special commands by name or change the hotkeys.

A general hotkey mapper is available at Waldo Bronchart's GitHub site.

Here I have listed the most common hotkeys and commands I use as reference, that are compatible with the changes made in chapter 3.1.

3.2.1. General

Commands are '''confirmed with''' a '''left-click''' or the '''Enter'''-key. You can cancel them with a '''right-click''' or the '''ESC'''-key.

  • Changes:

    • Ctrl + Z: undo the last change

    • Shift + Ctrl + Z: redo the last undo

  • Selection:

    • Right-click: select an object, vertex, edge, face etc. / Shift + right-clicks: select more than one object etc.

    • B + left mouse button & drag: select multible object/s, faces or mask out

    • C then left click to select vertices, faces etc. / hold Shift to deselect / mouse wheel change the radius / then right click to deactivate selection mode.

    • Shift + D: dublicate selected object/s, faces etc.

  • View / Camera:

    • Numpad Comma / Dot to center view at and zoom to selected object in 3D View

    • Alt + F to center view at mouse cursor in 3D View

    • Mouse Wheel: zoom in/out

    • Middle Mouse button then move: orbit around the selected object

    • Shift + Middle Mouse button then move: move / pan view along the view plane

    • Alt + B: Select a rectangle you want to show and the rest of the scene will be hidden. Display all by pressing Alt + B again.

  • Menus:

    • T: Tool Shelf toggle

    • N: Properties panel toggle

    • Spacebar: powerful dynamic menu

  • Pie: ( left-click to select; right-click to leave )

    • TAB: mode menu

    • Q: view menu

    • Z: shading menu

  • 3D Cursor:

    • Shift + C: center the 3D Cursor at the origin of the world space ( and focus object if one is selected )

    • Shift + S: e.g. center the selection to the 3D Cursor

  • G: Move an object along the view plane.

    • Then press X, Y or Z to move along only this axis.

    • Or press Shift + X, Y or Z to exclude this axis.

  • S: Scale an object in all axis. ( Hold Shift while in scale mode to scale more precise. )

    • Then press X, Y or Z to scale only this axis.

    • Or press Shift + X, Y or Z to exclude this axis.

  • R: Rotate an object around the view axis.

    • Then press R again to rotate freely around all axis.

    • Or press X, Y or Z to rotate only around this axis.

  • Layers:

File:Layers.JPG

// except Edit Mode - Left-click: display a layer / Shift + left-clicks: display more than one layer - M then left-click: move selection(s) to layer / M then Shift + left-click: move selection(s) to layers

3.2.2. Edit Mode

  • Selection:

    • Right Click the first vertex, edge, face then CTRL + right click the last one: selects all in between automatically

    • ALT + right-click: loop select vertex, edge, face

    • L: select mesh island while hovering

  • Menus:

    • P: seperation

    • U: unwrap

    • W -\> LoopTools -\> Bridge: connect vertices

  • E: extrude

  • CTRL + Right Click: extrude ( to mouse pointer )

  • Select three - four vertices then press F: fill with a face

  • G \* 2: slide the vertices, edge

  • ALT + M: Merge menu

  • CTRL + R then moves and left clicks: select and apply a loop cut

  • CTRL + T: triangulate selection

3.2.3. Metaballs

  • ALT + C then Mesh from Curve/Meta/Surf/Text: convert to mesh

3.2.4. Sculpting

  • Left Mouse button: add brush shape

  • CTRL + left mouse button: subtract brush shape

  • Shift + left mouse button: smooth brush

  • F: set sculpting radius

  • Shift + F: set sculpting strength

  • CTRL + F: interactively rotate brush image

  • Brushes:

    • 1 - 0 and Shift + 1 - 0 or

    • C: clay

    • X: draw

    • G: grab

    • I: inflate

    • P: pinch / magnify

    • S: smooth

    • L: layer

    • K: snake hook

    • M: mask ( Shift: unmask / ALT + M: unmask all )

    • Shift + T: flatten / contrast brush

  • Dynamic Topology

    • Ctrl + D: toggle dyntopo

    • Shift + D then left-click: set detail size

3.2.5. Grease Pencil

  • Hold D + left-click: draw

  • Hold D + right-click: delete drawn

3.2.6. UV / Image Editor

  • Select and press G key and move the mouse to move vertices / edges

  • L: select UV island while hovering

  • Q: toggle UV sculpt

3.2.7. Image Painting

  • Left Mouse button: add brush's first color

  • CTRL + left mouse button: add brush's second color

  • F: draw radius

  • F + Shift: draw strength

  • S: color picker

-----

table of contents

-----

3.3 Modeling

The rules of thumb in modeling are:

  • Avoid sharp edges smaller than an angle of 90.0001°. Smaller angles of edges result in slower performance because the model is cut into several 3D models at this edge internally.

  • Avoid much UV islands. Each UV island is cut into a separate 3D model as well.

  • Less polygons perform better than more polygons.

3.3.1. Metaballs ( aka Meta Objects )

There is a '''difference''' between the ''Properties'' '''panel''' ( N-key ) and the ''Properties'' '''Editor''' file:PropertiesWindow.JPG ( at the far right ) which is an editor area type.

  1. Set the Viewport Shading ( Z ) to Solid. ( default mode )

  2. Switch to Object Mode. ( default mode, if not: TAB -\> select Object Mode )

  3. Use Shift + C to center the 3D Cursor at the origin. The 3D Cursor sets e.g. the position where new objects are created. You can also move objects to the center with Alt + G when you have already created them.thumb

  4. If you want to add a reference / blueprint image: In the 3D View, that shows all 3D objects, press N to open the Properties panel -\> Background Images section -\> Add Image -\> Open. The background image is only visible in orthographic view in e.g. top view.

  5. Create a Metaball: Spacebar -\> Add Object Menu -\> Add Metaball -\> select the one you want to add. Try a Ball and set its Radius to about 15 cm in the Add Metaball section of the Tool Shelf ( T ).

  6. In the Properties Editor file:PropertiesWindow.JPG select the Data tab file:MB_DataTab.JPG and set Metaballs -\> Resolution: -\> View: to 1 cm to subdivide the mesh for more detail. The next metaballs you add will inherit this setting.

  7. Center the view at the selected object with the number pad comma / dot key. Orbit around the object with Middle Mouse button. Zoom in / out with the Mouse Wheel.

  8. Create another metaball.

  9. Select a single, unselected metaball by Left Clicking the thin, black circle around it.

  10. Press G key to position, R-key to rotate and S-key to scale the objects. Then move the mouse cursor to change the value.
    Switch between the Transform Orientations e.g. Local and Global for different rotation behaviors. file:RotationBehavior.JPG

  11. Dublicate the metaballs if you need more of this kind with Shift + D.

  12. In Edit Mode ( TAB ) you can substract metaballs from other metaballs. In the Properties Editor file:PropertiesWindow.JPG select the Data tab file:MB_DataTab.JPG -\> Active Element -\> enable Negative

  13. Now you know the basic keys and commands. Try to create something with the general outlines of an 'abstract statue'. If you need inspration use a search engine to get some pictures. Please keep in mind that this statue will also be animated with an idle animation later but you don't need to create it in the t-pose. The size should equal the size of a human. Always try to avoid to model "butterflys" which are just mirrored models in the middle. It looks boring and very synthetic.

  14. Save the raw metaball project: Blender's menu bar -\> File -\> Save As... -\> MetaballStatue.blend

  15. When you have arranged all your meta objects of your raw statue convert the objects to a mesh to be able to sculpt them later: ALT + C -\> Convert to -\> Mesh from Curve/Meta/Surf/Text: convert to mesh. Once you've converted the metaballs to a mesh you can not convert the mesh back to metaballs. That's the reason why you just saved the raw metaballs file.

  16. Select all black circles that are left from metaballs by Shift + Left-Clicking and delete them with the Del key.

  17. Name the statue object Statue file:StatueName.JPG in the Outliner Editor file:OutlinerWindow.JPG with a Double-Left-Click.

  18. Now save the meshed statue's project: Blender's menu bar -\> File -\> Save As... -\> MetaballToMeshStatue.blend

-----

table of contents

-----

3.3.2. Sculpting

In the first step sculpt the rough shape of the statue with rough details. In the next chapter you'll sculpt the fine details.

  1. Center the view at the selected object ( in Object Mode ) with Numpad Comma / Dot and then hold the Middle Mouse button to orbit around your statue.

  2. At the Tool Shelf -\> Tools tab ( T ) panel change the object Shading to Smooth because it is closer to the final shading in Unreal Engine. Then activate Auto Smooth with a maximum Angle: of 90.1° to sharpen edges and spikes in the Data file:OM_PropertiesEditorDataTab.JPG tab of the Properties Editor file:PropertiesWindow.JPG.

  3. Switch to Sculpt Mode ( TAB ) and start sculpting ( optionally with your tablet ).

    1. Choose a Brush ( in the Tools tab of the Tool Shelf ( T )) by clicking the brush browser preview brush picture thumb to display all types of brushes. You can also select the brushes with the keys 1 - 0 and Shift + 1 - 0.

    2. Set the sculpting radius with F and set the sculpting strength with Shift + F. If you use a tablet make sure to activate the pressure sensibility

File:FingerIcon.JPG

for e.g. sculpting strength. In general I recommend a strength value of 0.25 - 0.75 for rough sculpting. 3. You can also change the smoothing behavior by setting the Brush -\> Autosmooth amount. In general I recommend an autosmooth value of 0.1 for rough sculpting. 4. With Tool Shelf ( T ) -\> Tools -\> Stroke -\> Smooth Stroke enabled you can create more steady lines. 5. To sculpt asymmetrical: Tool Shelf ( T ) -\> Tools -\> Symmetry / Lock -\> Mirror: Disable all axis to not mirror the changes made by the brush along the axis. For organic modeling it's a good move to deactivate this feature to get a natural and asymmetric look. 6. Hold the Left Mouse button and Ctrl + Left Mouse button to subtract volume. 7. Activate Brush -\> Front Faces Only that the brush only effects the faces pointing to your view. This is helpful if you sculpt very thin / filigran parts of the model. 8. Use the Mask brush to exclude areas / polygons that can't be edited when masked. Activate it with the M key or the brush browser. Include polygons you have excluded before with the Shift key. Delete the mask(s) with ALT + M. 9. To change the brush shape with a curve: Tool Shelf -\> Tools -\> Curve -\> Select a predefined brush curve or create your own. 10. By very patient with the Grab and Thumb brush. These brushes stretch the existing mesh. 11. DON'T use the Snake Hook brush to create horns or tails in this chapter. Use it in the next chapter with dynamic typology enabled. Dynamic typology will make sure that new polygons are created instead of stretching the existing polygons. 12. To hide everything outside an area use Alt + B to select a rectangle. Display all by pressing Alt + B again. 13. To smooth the object as a final polishing use the Smooth brush. Use the Shift + Left Mouse button. 4. Relax the whole mesh ( A key ) in Edit Mode ( TAB key ) to make it more uniform before you save it with: W -\> Relax with Relax Iterations set to 5 in the Tool Shelf. 5. Play around with all the tools and then reload the MetaballToMeshStatue.blend project when you are ready to start seriously. 6. Try to sculpt a raw / rough statue. 7. When you are satisfied with your raw statue save the project as SculptedStatue.blend.

-----

table of contents

-----

3.3.3. Dynamic Topology

Dyntopo ( dynamic topology ) dynamically adds more detailed geometry to your mesh. You can see this later when you switch to Viewport Shading ( Z ) -\> Wireframe. ( Set the viewport shading back to Solid when you saw it. )

Dyntopo is automatically turned off every time you leave the Sculpt Mode ( TAB-key ). ''And'' not all brushes are 100% compatible with dynamic topology. Some of them stretch the mesh without to add / substract polygones uniformly.

  1. In the second sculpting step sculpt the details with dynamic topology enabled: Tool Shelf ( T ) -\> Tools -\> Dyntopo -\> Enable Dyntopo

  2. Change to Tool Shelf ( T ) -\> Tools -\> Dyntopo -\> Smooth Shading if you want a smooth, not so technical look that is closer to the final shading of your model in Unreal Engine. When you enable Dyntopo the first time Blender automatically switches to Flat Shading.

  3. Check out these settings: Tool Shelf -\> Dyntopo

    • -\> Detail Size: The length in pixels on the screen of the added topology ( edges ). The lower you set the px value the higher the detail.

    • -\> Dyntopo mode: Sets where to subdivide the mesh. Subdivide Collapse seems to work very well.

    • -\> Detail Type Method: Change Relative Detail to Constant Detail ( recommended ) if you don't want a brush that creates the topology based on the pixels on the screen. That means: In Relative Detail mode the closer you zoom in the more detail will be added by the brush. In Constant Detail mode the amount of detail drawn will remain the same regardless of how close you look at the object.

  4. Now you can use the Snake Hook brush to create horns or tails. Dynamic typology will make sure that new polygons are created instead of stretching the existing polygons. To smooth it out use the Fill/Deepen brush with Dyntopo disabled. ( Also see 6. )

  5. To use an image for your sculpting brush shape after you selected your brush: Tool Shelf ( T ) -\> Tools -\> Texture

    • + New -\> Rename the texture from Texture to SinusExampleBrush. thumb

    • Angle: -\> Enable Rake if you want the texture always face the movement vector of the brush. This will look more interesting because you can rotate the texture.

    • Switch to the Properties Editor ( at the far right ) -\> There switch to the Texture tab file:TextureTab.JPG.

    • At the Texture tab switch to the data textures sub-tab. ( Looks like the Texture tab icon. )

    • Select the SinusExampleBrush as target. ( Looks like the Texture tab icon too. )

    • Select the Type: Image or Movie.thumb

    • Image -\> Open to load the example image on the right side of this page.

    • Use the SculptDraw brush, the Strength to 0.3 and the brush's Radius to about 70 px and the Dyntopo's Detail Size to about 5 px. Set Dyntopo mode to Subdivide Edges. The ROUND or MAX Curve seem to work well. You can also switch from Brush Mapping: View Plane to Tiled in the Texture section to paint tiled images like fish scales.

    • If you use a graphics tablet set the Tool Shelf -\> Tools -\> Stroke -\> Stroke Method: from Space to Dots to make it easier to "stamp" the texture to your statue with your pen.

    • You can find a tutorial how to create your own sculpting brushes in / for Blender in my GitHub project wiki about organic modeling. Find more of my brushes here. Use the XYZ Final.png image files.

  6. To reduce the detail of your model you can use the Fill/Deepen brush and set its Strength and Autosmooth to 0.01 with a Constant Detail. Use the pipette file:OM_ConstantDetailPipette.JPG to sample the mesh detail in an area where you like the detail of your mesh. ( Switch to Viewport Shading: Wireframe with the Z key to see the mesh. ) Then paint the area where you want to reduce / higher the detail.

  7. Feel free to relax the whole mesh ( A key ) in Edit Mode ( TAB key ) again to make it more uniform before you save it with: W -\> Relax with Relax Iterations set to 5 in the Tool Shelf.

  8. To smooth the object as a final polishing use the Smooth brush. Use the Shift + Left Mouse button to smooth the surface.

  9. Play around with all the tools and reload the SculptedStatue.blend project when you are ready to seriously start to improve your statue with more details.

  10. Try to sculpt a detailed statue. You should aim for about 1,000,000 triangles for your final sculpting model. More would cause performance issues and result in files bigger than 100 MB which are not supported by e.g. GitHub.

  11. Save the project as DetailedStatue.blend.

-----

table of contents

-----

3.3.4. Fixing Proportions

The Lattice modifier helps to slightly correct wrong proportions like a too long arm or a too big head. If you are happy with the proportions you can skip this chapter.

  1. Change to Object Mode ( TAB ) and use Shift + C to center the 3D Cursor at the origin and zoom.

  2. Create a Lattice: Spacebar -\> Add Object Menu -\> Lattice and name it StatueProportions file:LatticeObjectName.JPG in the Outliner Editor file:OutlinerWindow.JPG with a double-left-click.

  3. To tweak the resolution of the Lattice in the Properties Editor file:PropertiesWindow.JPG select the Data tab file:LatticeDataTab.JPG and change the values of the Lattice -\> U, V, and W to e.g. 3 to subdivide the Lattice into more areas for more flexibility. The change of each area effects only the part of the statue inside or very close to this area.

  4. Scale ( S then X, Y or Z ) the Lattice that the Lattice box completely encases your statue or at least the parts of your statue where you want to correct the distortion.

  5. Select the statue object with a left click in the 3D View and add a Lattice modifier. To do this switch to the Modifiers tab file:ModiefiersTab.JPG in the Properties Editor file:PropertiesWindow.JPG * -\> Add Modifier -\> Lattice*.

  6. Now you need to connect the Lattice object to the Lattice modifier to effect the statue with a special Lattice. In the modifier settings under Object: left-click and choose the Lattice object called StatueProportions you have created earlier to connect it with the statue.

  7. Select the Lattice and change to Edit Mode ( TAB ). Enable Proportional Editing file:ProportionalEditingOff.JPG and e.g. select Connected and Smooth file:ProportionalEditingSmooth.JPG to position more than one vertex. Change the radius of effect / falloff by using the mouse wheel while you position a vertex of the Lattice.thumb

  8. The changes made with the Lattice modifier are not used until you Apply this modifier. Change to Object Mode and select the statue. In the Properties Editor select the Modifiers tab and click the Apply button.

  9. You can now delete the Lattice StatueProportions by selecting it and pressing the x-key. ( Remember that all commands are confirmed with Enter or left-click. )

  10. Save the fixed statue project as FixedDetailedStatue.blend.

-----

table of contents

-----

3.4. Retopology

You are going to create one other version of the model with a different polygon count because the sculpted statue model is too detailed for real time applications.

3.4.1. Retopo the High Poly Model

The lower resolution model is created with a technique called retopology or retopo for short. This word comes from "remaking topology".

  1. The original statue is on the first layer. Create the retopo on the second layer. First select the second layer by left-clicking the 3D Viewport’s second layer button.file:SecondLayer.JPG

  2. Add a plane to the second layer: Spacebar -\> Add Object Menu -\> Add Mesh -\> Plane thumb

  3. Name the plane RetopoStatue in the Properties Editor -\> select the Object tab.

  4. Select the first and second layer file:OM_BothLayers.JPG with Shift + left-click to multi select the layers on the layer button and see both objects: The statue and the plane.

  5. Apply Object Transfrom: thumb To apply the object transform switch to Object Mode in the 3D View. Then click 3D View's menu bar -\> Object -\> Apply -\> Rotation & Scale. Make sure to enable Location as well in the Tool Shelf. This is important to for example get a proper scaling, UV mapping and to remove doubled vertices.

  6. Back in Edit Mode scale ( S ) the plane down that it looks really small compared to your statue and covers only a very small part of it. The pane should have a size of 1 / 60 of your statues size ( height, width or depth.. which ever is the biggest in size ). This is an area of about 3 cm \* 3cm.

  7. You can center the view at the selected object with the number pad comma / dot key. Orbit around the object with Middle Mouse button. Zoom in / out with the Mouse Wheel.

  8. Select the plane, switch to Edit Mode with TAB and disable Proportional Editing. file:ProportionalEditingOff.JPG

  9. Enable the Snap ( magnet symbol file:MagnetTool.JPG ) tool with Shift + TAB and select Face as Snap Type to snap to faces and not to e.g. vertices because this wouldn't be precise enough. And disable Snap onto itself. file:MagnetToolAdvanced.JPG

  10. Enable Project individual elements on the surface of other objects that all selected vertices of the plane snap to the statue's surface. file:MagnetToolAll.JPG

  11. Make sure the Limit selection to visible button is turned on. file:limitSelectionToVisible.JPG

  12. To see the plane model better and all the time activate X-Ray: Edit Mode -\> Properties Editor -\> select the Object tab -\> Display -\> enable X-Ray. I recommend to disable X-Ray from time to time to see where your statue overlaps your retopo.

  13. To know the statue from the retopo better switch off Matcap: Properties panel -\> Shading -\> disable Matcap. Select the retopo and add a new material with an other color than the statue: Properties Editor -\> Material tab -\> + New. Set your color in the Diffuse section and the Intensity to 1.000. Also set the color and the Intensity in the Specular section to 0.100. thumb And name the material RetopoMat. file:RetopoMat.JPG

  14. Push and move selected vertices of the plane to the statue's surface by pressing the G key and then left click.

  15. With the Grease Pencil tool you can draw in the 3D View. It can be found in the Tool Shelf ( T ) -\> Grease Pencil tab on the left side.

    1. Change the following settings:

      • Enable Continues Drawing to draw more than one stroke.

      • Enable Object as Data Source or the strokes are not detected by Bsurfaces.

      • Set the Stroke Placement to Surface to directly paint on the surface of the model.

    2. Draw strokes by pressing and holding the D key to active the brush AND press and hold the left mouse button to draw. Hold the right mouse button to delete the drawn. ESC-key to leave the draw mode. Note that the direction you draw the strokes matters for Bsurfaces. ( Shown in the animated graphics below. )

  16. Now have a look at the Bsurfaces add-on and deactivate Tool Shelf ( T ) -\> Tools -\> Bsurfaces -\> Automatic join.

    1. Draw uniform polygon quad webs and convert them to a mesh with the Tool Shelf ( T ) -\> Tools -\> Bsurfaces -\> Add Surface. Quads instead of triangles are more flexible for now. ( Shown in the animated graphics below. ) thumb
  17. Use the LoopTools to connect two mesh pieces or a grease pencil stroke and a mesh.

    1. Select ( first all edges of one piece, than all edges of the other piece you want to connect ) the outside Edges file:Edges.JPG of both pieces, ideally with the same edge count, you want to connect to each other, then press Spacebar-key -\> Specials -\> LoopTools -\> Bridge or press the W key* -\> LoopTools -\> Bridge.* ( Shown in the animated graphics. ) If the bridged connection is twisted set the Twist count in the Tool Shelf to e.g. 1 or -1 or enable Reverse. You can also change the Segments count to add polygons. thumb Alternatively you can also use W key* -\> Bridge Edge Loops.*

    2. To connect a grease pencil stroke with a mesh change the following settings in the Tool Shelf ( T ) -\> Tools -\> LoopTools -\> Gstrech * options: Method: Spread and Delete strokes enabled. Then you need to select edges, extrude these with the E key and draw one line with the Grease Pencil. Finally press the W key and select * -\> LoopTools -\> Gstrech to create polygons between the stroke and the selected edges.

  18. Extrude selected Edges with the E key. ( Shown in the animated graphics below. ) You can also extrude vertices and automatically merge them with other vertices near by.

  19. Convert selected vertices to an edge or a face by pressing the F-key.

  20. Loop select vertices with ALT + right-click.

  21. Merge two or more vertices to one vertex with ALT + M or merge them automatically when they are closer to each other than a specific distance by enabling Automatically merge vertices moved to the same location in the 3D View's menu bar. Set the distance in the Options of the Tool Shelf: Double Threshold. For a easier selection you can switch off the visual Translate, Rotate and Scale manipulators by clicking the manipulator widget file:OM_ManipulatorWidget.JPG button. You can also remove doubles with a Merge Distance set to about 1 cm. ( Shown in the animated graphics below. )

  22. If you have repeating shapes like spikes you've created with a sculpting brush, just retopo the shape once and duplicate it with Shift + D and move / rotate as you need it.

  23. Small dents don't need to be retopologiesed. Just cover them with polygons and the baked normal and displacement textures will mimic and add these dents later.

  24. To retopologize e.g. the eyes or other very detailed areas use a spider web like geometry that looks detailed inside and rougher to the outsides. thumb

  25. Add more detail with CTRL + R and move the mouse to select the loop cut position. Use the mouse wheel to higher or lower the amount of cuts. Click the left mouse button to set the amount of cuts and change the exact position of the cut(s) by moving the mouse. Click the left mouse button again to apply the cut(s).

  26. You can also add more detail by loop selecting edges with ALT + right click and then use the bevel feature with CTRL + B to round edges.

  27. Remove detail by selecting the edge(s) you want to delete with Edge select mode file:Edges.JPG enabled. ( General Note: Choose edges that are no seams and edges that will not destroy the shape / contours of the model. )

    • Right-click the first vertex, edge, face then CTRL + right click the last one: selects all in between automatically.

    • ALT + right click: loop select vertex, edge, face

    • C then left click to select vertices, faces etc. / Shift to deselect / then right click to deactivate selection mode

    • Press the X key and click Dissolve Edges

    • Make sure that there are no holes in the model and that the polygons don't consist of more than four vertices:

To fix possible polygons / faces with more than the four vertices ( called ngoc ): In Edit Mode unselect all polygons with the A-key. In the 3D View -\> menu bar -\> Select -\> Select All By Trait -\> click Select Faces by Sides and in the Tool Shelf set Number of Vertices: 4 and the Type: Greater Than . All selected polygons are n-gons with more than four vertices. Delete these with X key -\> Only Faces. Then you need to fix their polygon count to three - four by selecting three - four vertices or two edges you want to connect and hit the F key to add a face. In Blenders menu bar file:OM_menuBar_ngoc.JPG you can see how much vertices are n-gons. After your fix run the check again and the count should show zero. thumb

Make sure that the mesh is closed when you finish retopologizing. To see and select all holes or double faces go to the 3D View -\> menu bar -\> Select -\> Select All by Trait -\> click Non Manifold or press the keys Shift + CTRL + ALT + M in Edit Mode. ( This is also an important check if you want to print your statue with a 3D printer at a later date. ) Delete these vertices with X key -\> Vertices. Then you need to fix the holes by selecting three - four vertices or two edges you want to connect and hit the F key to add a face. Run the check again to find the next hole and close it until your mesh is manifold.

Save the retopo statue project as RetopoStatue.blend.

-----

table of contents

-----

3.4.2. Make It Tight

To make sure the optimized retopo, you've just created, clings to the sculpted model as good as possible you need to shrinkwrap it to the high resolution statue's surface. If you did a good job this step will have ( nearly ) no visible effect.

  1. To see the overlap of the retopo model select it and deactivate X-Ray: Properties Editor -\> select the Object tab -\> Display -\> disable X-Ray.

  2. In Object Mode select the retopo model and switch to the Modifiers file:ModiefiersTab.JPG tab and pick a Properties Editor -\> Add Modifier -\> Shrinkwrap modifier. thumb

    • Set the Target of the modifier to the sculpted statue.

    • Set the Mode to Nearest Surface Point.

    • Set the Offset to 0.00. ( Or up to 0.01. )

    • Click: Apply

  3. Save the this statue project as TightStatue.blend.

-----

table of contents

-----

3.4.3. Triangulate

Most platforms use triangles to store and display 3D models. Unreal can convert the mesh to triangles too but it is safer to do it in Blender to be able to fix / edit the mesh if triangulation doesn't do exactly what you want.

  1. Switch to Object Mode in the 3D View and select the statue mesh RetopoStatue. Switch to Edit Mode and select all vertices. Then in the 3D View's menu bar -\> Mesh -\> Faces -\> click Triangulate Faces.

  2. Check the mesh if there are any holes or other errors and fix them.

Save this statue project as TriangulatedStatue.blend.

-----

table of contents

-----

3.4.4. Apply Object Transfrom

This is important to, for example, get a proper UV mapping.

thumb To apply the object transform switch to Object Mode in the 3D View and select the retopo statue. Then click 3D View's menu bar -\> Object -\> Apply -\> Rotation & Scale. Make sure to enable Location as well in the Tool Shelf. Also apply the transform to the sculpted statue.

Save this statue project as AppliedTransfromStatue.blend.

-----

table of contents

-----

3.4.5. Check the Normals

Because most materials in the virtual world are only one-sided you need to check if the normals point to the outside of the model. Otherwise you'd be able to look inside your statue or get very dark and light areas on normally uniform surface.

  1. Switch to Edit Mode to check the normal directions of your retopo statue.

  2. In the Properties panel ( N ) go to Mesh Display -\> Normals -\> enable the Display face normals as lines-button and set the Size to something between 1 - 2 cm. file:DisplayNormals.JPG

  3. If not all normals point to the outside, away from the middle, of the object: Select all vertices, edges or faces with the A-key. Then recalculate the outside with CTRL + N. You can also select some faces and flip their normals manually with: W-key* -\> Flip Normals*

  4. When all normals point to the outside deactivate the Mesh Display -\> Normals -\> Display face normals as lines-button in the Properties panel ( N ).

  5. Save the this statue project as NormalStatue.blend.

-----

table of contents

-----

3.5. UV Mapping

Now you add the UV map to the retopo statue that provides the information where the image ( skin ) is located in the model. Edges marked as seams are the lines where the UV map is sliced and unfolded. The rules of thumb for UV mapping are:

  • Create less separate UV islands per UV map to get a better performance and easier image editing in Gimp.

  • Create no overlaps. Overlapping polygons of the UV map share the same part of the image so you can't color or shade these pieces individually.

  • Avoid distortion of the UV data. Make sure it looks like your relaxed mesh.

  • Scale UV islands with important areas up ( like e.g. the face ) to get more details. However, you should keep the texel density in mind if you plan to use tools like Substance Designer ( or Painter )\! In Blender, you can use the Texel Density Checker to calculate and set the density. Here are additional videos on this topic: v1: UE4 v2: Substance Painter

thumb

  1. Split the 3D View vertically and set the Editor Type of the second ( right ) area to UV / Image Editor. file:UVImageEditor.JPG

  2. Optional: Select the retopologized model and switch to Edit Mode in the first ( left ) 3D View area and in the Tool Shelf ( T )* -\> Options tab -\> enable Live Unwrap*. Then you see the changes you make in the 3D View immediately in the UV / Image Editor.

  3. In the 3D View switch Edit Mode and activate Edge select mode. file:Edges.JPG

  4. Select edges:

    • One single edge: Left click the edge you want to select.

    • Multiselect: Shift + left click the edges you want to select.

    • Multiselect connected: Left click the first edge then CTRL + left click the last edge and all edges in between are selected automatically.

    • Loop select edges with ALT + left click.

    • Automatically select sharp edges with 3D View's -\> menu bar -\> Select -\> Sharp Edges with a Sharpness set to 89.9°. Sharp edges are well-suited for seams because the one 3D model is cut into pieces at sharp edges and edges marked as seams. In other words: Each UV island is handles as a separate 3D model from the 3D graphics card internally, so it is a good plan to cut the model as less as possible to create less UV islands.

  5. Mark the selected edges as seam with CTRL + E* -\> Mark Seam*.

  6. To see the UV map in the UV / Image Editor you need to unwrap it. In 3D View select all edges ( A ) then press the U-key* -\> Unwrap*. And set the Margin to an useful value in the Tool Shelf that the UV islands don't overlap even at a low mip mapping level. Note: you need to select the edges you want to see in the UV / Image Editor before in the 3D View. Advanced: You can use a Margin of 0.0, scale all islands up by about 10% and rearrange all islands by hand for a uniform scale and optimal UV map usage.

  7. Check the proportions of the UV map with: Properties panel ( N ) of the UV / Image Editor -\> Display -\> UVs: -\> enable Stretch and Smooth. A blue hue means everything is fine. Green & yellow ( or even red ) colors mean that the map is distorted and the relative scale is wrong in some places. Unwrap the UV map as similar to the polygon mesh proportions as possible to avoid distortion.

  8. To move vertices, edges or islands ( select with L key while hovering ) in the UV / Image Editor press the G key to grab and then hold down CTRL and move the mouse. You can also rotate ( R key ) and scale ( S key ) the islands. Make sure the edges, faces and islands are not overlapping\!

  9. To select faces and whole islands ( L key ) in the 3D View from the UV/Image Editor enable Keep UV and Edit Mode mesh selection in sync with the buttton file:OM_UVKeepInSync.PNG in the UV/Image Editor menu bar.

  10. Create a color grid image to check the final UV map for distortions.

    • In the UV / Image Editor's menu bar click + New file:+New.JPG to create a new image.

    • Name it UVCheckWithColor, disable the Alpha channel, select Color Grid as Generated Type and click OK.

    • In the UV / Image Editor's menu bar click Image\* file:BlenderImageMenu.JPG -\> Save As Image -\> make sure you are in your project's folder -\> click the Save As Image-button.

    • To see the grid image change the Viewport Shading ( Z ) to Texture.

    • Then select the Texture tab in the Properties panel and then the sub tab Show material textures and click the +New button.

    • In the Image section of the Texture tab click the Open button and select your grid image.

    • In the Influence section of the Texture tab enable Shading: Emit:.

    • Check the UV map for distortion and fix it with e.g. more cuts at the distorted areas.

    • Set the view Viewport Shading ( Z ) to Solid.

  • Save the project as UVStatue.blend.

  • You can also save the UV layout as an image in the UV/Image Editor menu bar -\> UVs -\> Export UV Layout with Fill Opacity set to 0.0.

-----

table of contents

-----

3.6. Edge Splitting

You need to mark all parts of the statue with a very sharp look like incisor teeth, spikes, fingernails as sharp because the (PN) tesselation in Unreal would later automatically smooth all the statue's edges. Even the displacement image won't prevent this.

  1. To cut the mesh where the edges are marked as sharp select the statue object with a left click in the 3D View and add a Edge Split modifier. To do this switch to the Modifiers tab file:ModiefiersTab.JPG in the Properties Editor file:PropertiesWindow.JPG * -\> Add Modifier -\> Edge Split*. You can do this in Edit or Object Mode. You should NOT Apply the modifier\!

    • Disable Edge Angle

    • Make sure Sharp Edges is enabled.

  2. Select the edges you want to mark as sharp in Edit Mode in the 3D View.

  3. Mark the selected edges as sharp with CTRL + E* -\> Mark Sharp*.

  4. When you did a good job a lot of your seams will also be marked as sharp.

To continue please disable the modifier by disabling its '''Sharp Edges''' option. This is an important step to bake clean and proper images in the next step(s).

  • Save the sharpened statue project as SharpenedStatue.blend.

-----

table of contents

-----

3.6. Image Baking

Blender can be used to bake information from the sculpted, high polygon model to a image that can be used on the retopo model. With the baked images the retopo model will look as detailed as the sculpted high resolution model but it will perform a lot better.

3.6.1. Normal Image

To create your normal image to display all details from the sculpted, high polygon model on the model with lower resolution, you need to bake a normal image from the sculpted model to the retopo model:

  1. In Object Mode delete the RetopoMat material of the retopo model: Properties Editor -\> Material tab -\> X file:OM_DeleteColorGrid.JPG button. Then add a new material: Properties Editor -\> Material tab -\> + New. Set the Intensity to 1.000 in the Diffuse section. Set the Intensity in the Specular section to 1.000 and enable Emit in the Shading section by setting it to 1.00. Name the material StatueMaterial.

  2. Enable both layers file:OM_BothLayers.JPG with the sculpted model and the retopo model with Shift + click.

  3. Both models should still be at the same position. If not make sure they are exactly at the same position.

  4. Set both the sculpted and the retopo model to Tool Shelf -\> Shading: -\> Smooth.

  5. Select the retopo model and enter Edit Mode. Select all polygons to assign their UV map to an image in the next step.

  6. In the UV / Image Editor's -\> menu bar -\> Image -\> click New Image and name it BakedImagesTemp. Set the Width and Height to 4096 px ( pixels ). Make sure that 32 bit Float is disabled. Set the Color to pure white, disable Alpha and click OK. Save the image as .png: Image\ -\> Save as Image*

  7. Back in Object Mode select sculpted model first and then Shift select the retopo model in the Outliner Editor file:OutlinerWindow.JPG that both models are selected. This selection will tell Blender to bake the normal image from the scuplted to the retopo model.

  8. In the Properties Editor select the Render tab file:OM_RenderTab.JPG -\> Bake

    • Set the Bake Mode: to Normals. thumb

    • Enable Selected to Active.

    • Make sure Clear is enabled.

    • Hit the Bake button.

  9. Save the generated image in the UV / Image Editor again: Image\ -\> Save As Image -\>* NormalImage.png

-----

table of contents

-----

3.6.2. Displacement Image

The displacement image will be used for tessellation to add even more detail to the model than the normal image does.

  1. Keep the selections / settings from the chapter before.

  2. In the Properties Editor select the Render tab -\> Bake

    • Set the Bake Mode: to Displacement:

    • Enable Normalized.

    • Enable Selected to Active.

    • Make sure Clear is enabled.

    • Hit the Bake button.

  3. Save the generated image in the UV / Image Editor again: Image\ -\> Save As Image -\>* DisplacementImage.png

-----

table of contents

-----

3.6.3. Ambient Occlusion Image

AO will create some nice shadowing effect in dark corners of the model where the light can't reach the mesh so good.

  1. Keep the selections / settings from the chapter before.

  2. In the Properties Editor select the World tab -\>

    • Enable Ambient Occlusion.

    • Under Gather set the Samples to at least 25.

  3. In the Properties Editor select the Render tab -\> Bake

    • Set the Bake Mode: to Ambient Occlusion.

    • Enable Normalized.

    • Make sure Selected to Active and Clear are still enabled.

  4. Hit the Bake button.

4\. Save the image in the UV / Image Editor again: Image\ -\> Save As Image -\>* AmbientOcclusionImage.png

  • Save the project as BakedStatue.blend.

-----

table of contents

-----

3.7. Image Painting

In this chapter you'll learn how to paint different layers of images to color your retopo model, make it partly shiny and even let it glow in the darkness.

3.7.1. Prepare the Project

Add some textures and images to your retopo model, that it looks as detailed as the sculpted model.

  1. In the 3D View window select the layer with your retopo model to paint on.

  2. Place a Hemi light pointing in the direction of your view and move it a little bit up and to the side that it doesn't block your view with Object Mode -\> 3D View's -\> menu bar -\> Add -\> Lamp -\> Hemi.

  3. Set the Viewport Shading ( Z ) to Material.

  4. Add an image to paint colors on to the model:

    • In the Properties Editor select the Texture tab and then the Show material textures sub tab.

    • Select an unused slot and click + New.

    • Name it ColorTexture.

    • In the Image section click + New. Name the new image ColorImage. Set the Width and Height to 4096. Disable Alpha. Make sure that 32 bit Float is disabled. Set the Color to white. ( Or any other color you are not going to use to paint the image. This will be important later to cut out the background in Gimp. ). Click OK.

    • In Image Sampling section disable Alpha: -\> Use, MIP Map and Interpolation.

    • In the section Influence -\> set Blend: -\> Mix.

    • Select and save your image as UV / Image Editor -\> Save As Image -\> ColorImage.png.

  5. Add an image to display the normals of the sculted model:

    • In the Properties Editor select the Texture tab and the Show material textures sub tab.

    • Select an unused slot and click + New.

    • Name it NormalTexture.

    • In the Image section click Open and select the normal image NormalImage.png you have created earlier. Name it NormalImage.

    • In Image Sampling section enable Normal Map. Disable Alpha: -\> Use, MIP Map and Interpolation.

    • In the Influence section -\> Geometry: enable Normal and disable Color in the Diffuse: section.

    • In the section Influence -\> set Blend: -\> Mix.

  6. Add an image to display the ambient occlusion of the model:

    • In the Properties Editor select the Texture tab and the Show material textures sub tab.

    • Select an unused slot and click + New.

    • Name it AmbientOcclusionTexture.

    • In the Image section click Open and select the AO image AmbientOcclusionImage.png you have created earlier. Name it AmbientOcclusionImage.

    • In Image Sampling section disable Alpha: -\> Use, MIP Map and Interpolation.

    • In the section Influence -\> set Blend: -\> Multiply.

  7. Add an image to display the specular areas of the model that reflect light:

    • In the Properties Editor select the Texture tab and then the Show material textures sub tab.

    • Select an unused slot and click + New.

    • Name it SpecularTexture.

    • In the Image section click + New. Name the new image SpecularImage. Set the Width and Height to 4096. Disable Alpha. Make sure that 32 bit Float is disabled. Set the Color to black. Click OK.

    • In Image Sampling section disable Alpha: -\> Use, MIP Map and Interpolation.

    • In the section Influence -\> set Blend -\> Mix, disable Color in the Diffuse: section and enable Color in the Specular: section.

    • Select and save your image as UV / Image Editor -\> Save As Image -\> SpecularImage.png.

  8. Add an image to display the emission areas of the model that are glowing in the darkness:

    • In the Properties Editor select the Texture tab and then the Show material textures sub tab.

    • Select an unused slot and click + New.

    • Name it EmissionTexture.

    • In the Image section click + New. Name the new image EmissionImage. Set the Width and Height to 4096. Disable Alpha. Make sure that 32 bit Float is disabled. Set the Color to black. Click OK. thumb

    • In Image Sampling section disable Alpha: -\> Use, MIP Map and Interpolation.

    • In the section Influence -\> set Blend -\> Multiply, disable Color in the Diffuse: section and enable Shading: -\> Emit: and set it to 1.000.

    • Select and save your image as UV / Image Editor -\> Save As Image -\> EmissionImage.png.

  9. Save the this statue project as PreparedForPaintingStatue.blend.

-----

table of contents

-----

3.7.2. Color Image Painting

To create a colorful skin for your statue you can use the 3D image painting feature of Blender. Instead of painting on a flat surface like a piece of paper you directly paint on the 3D surface of your model.

The perspective while drawing matters. Make sure you use an ''orthogonal point of view'' to the surface you are painting on. Once you've changed your point of view it's not possible to return to the exact point of view again.( If I am wrong, please let me know! ) So make sure you painted all details with one special brush to your color, specular and emission image before you change the POV.

You don't need to paint any highlights or shadows to the color image. Unreal Engine will automatically do this for you.

In this chapter you should first paint the rough colors of your statue like the skin and the surface structure. Then you should save your ColorImage.png and add details like makeup, spotty wear etc. in a second step. Start to paint the protrude parts of your model because you'll probably overspray to other parts of the model.

  1. Change to Texture Paint mode with the TAB-key in the 3D View.

  2. Switch to the Slots tab of the Tool Shelf to select the Available Paint Slot to paint on. Select the ColorImage slot for now. Here you can also disable the ambient occlusion image while painting.. if you don't want to see it.

  3. You can set the colors etc. in the Brush section of the Tool Shelf -\> Tools tab. Play around with the settings of the different sections. They work much like the tools you used to sculpted the statue except that you now draw colors instead of bumps and dents. Optional: If you use a graphics tablet make sure the preasure sensibility file:FingerIcon.JPG is enabled for the Strength of the brushes.

  4. If you want to paint the color structure of an image you have two choices that can be combined with each other:

    • Brush Masks:

      • You can find some brush masks to download at GitHub.

      • Check out this additional tutorial how to create your own brush masks in Gimp for Blender.

      • To add the mask in Blender click the Properties Editor -\> Texture tab -\> Show other data textures

        • Select Brush Mask. And click + New to add you image. Name it BM\YourName. *BM\* is the prefix for brush mask. Make sure to enable Save this data-block even if it has no users file:OM_SaveToProject.PNG that Blender remembers the brush the next time you load the project. ( To add more masks later click the + on the right side next to the name. )

        • In the Image section click open and select your brush mask image.

      • To select / change this and other masks click Tool shelf -\> Tools -\> Texture Mask -\> the image preview. To disable the brush mask click the X below the brush mask preview image.

      • To finalize the brush configuration select Tool shelf -\> Tools -\> Texture Mask -\> Mask Mapping: View Plane and feel free to enable mask Rake to automatically face the movement direction of your pointer.

      • Change the Tool shelf -\> Tools -\> Stroke -\> Stroke Method: from Space to Airbrush to get a more time based spray style.

      • With Tool Shelf ( T ) -\> Tools -\> Stroke -\> Smooth Stroke enabled you can create more steady / straight lines.

    • Tileable Brush Images:

      • You can find some brush masks to download at GitHub.

      • Check out this additional tutorial how to create your own tileable brushes in Gimp for Blender.

      • To add the mask in Blender click the Properties Editor -\> Texture tab -\> Show other data textures

        • Select Brush. And click + New to add you image. Name it TB\YourName. *TB\* is the prefix for tileable brush. Make sure to enable Save this data-block even if it has no users file:OM_SaveToProject.PNG that Blender remembers the brush the next time you load the project. ( To add more brushes later click the + on the right side next to the name. )

        • In the Image section click open and select your tileable brush image.

      • To select / change this and other masks click Tool shelf -\> Tools -\> Texture -\> the image preview. To disable the brush click the X below the brush preview image.

      • To finalize the brush configuration make sure Tool shelf -\> Tools -\> Texture -\> Brush Mapping: Tiled is selected and change the Angle and the Size. ( To find out a good size for your brush image use a checkerboard image to do some test painting. )

      • The image is colored by the primary color you picked for the brush. Choose white to use the original image colors.

        • If you want to color these areas later you should check out Tool shelf -\> Tools -\> Brush -\> Blend: Darken instead of Mix. This will add your additional color without to completely destroy the original coloring. thumb
  5. Use the Clone brush to copy an area you have already painted to an other area. Set the 3D cursor with a right click to the area you want to copy then left click the area you want to paint on with the Clone brush selected.

  6. To get a nice color palette, that you can use on any image to change the color of your brush, Split Area of your UV / Image Editor horizontally, open an image with UV / Image Editor's menu bar -\> Image -\> Open Image. Then click UV / Image Editor's menu bar -\> View -\> Draw Texture Paint UVs to disable the UV grid. Finally enable the Display current image regardless of object selection file:OM_PinImage.JPG to pin the image even if you change the displayed images in an other UV / Image Editor. To pick a color just click the primary or secondary color in the Tool Shelf and then the pipette button like shown in the right picture. thumb

  7. To save the current primary color click the + button in the Tool shelf -\> Tools -\> Brush section above the primary color.

  8. To 2D paint the image directly in the UV / Image Editor you only need to change from View mode file:OM_UVViewMode.JPG to Paint mode of the image you want to paint on. The brush setting are changed under 3D View -\> Tool Shelf -\> Tools -\> Brush too.

  9. To mask out some areas of your model and only paint on selected areas activate the Face selection masking for painting file:OM_FaceSelectionMask.JPG in the 3D View.

    • Select the faces you do NOT want to paint on with

      • Shift + right click

      • C then Shift + left click

      • B then Shift + left click

    • Deselect with

      • Shift + right click

      • C then left click

      • B then left click

  10. After painting save your painting in the UV / Image Editor -\> Save Image. ( Or choose Save All Images. )

  • Save the project as ColorPaintedStatue.blend.

-----

table of contents

-----

3.4.3. Specular Image Painting

The specular image defines ( through the brightness ) where the statue looks reflective, slick / wet. Bright shades reflect and black doesn't reflect the light at all.

  1. It works like the color painting. Just select the SpecularImage slot in the Tool Shelf and paint the image with grayscale shades. Rotate the model to see reflection of the light and where the surface is shiny.

  2. After painting save your image as UV / Image Editor -\> Save As Image -\> SpecularImage.png.

  • Save the project as SpecularPaintedStatue.blend.

TODO: Workflow to make specular map more visible for easier painting.

-----

table of contents

-----

3.4.3. Emission Image Painting

The emission image sets the areas of the statue that are glowing in the dark like a light. The lighter the grayscale colors are the more it'll glow.

  1. It works like the color painting. Just select the EmissionImage slot in the Tool Shelf and paint the image with grayscale colors.

  2. To better notice the emission of your image you can turn down the light Energy. Select the Hemi light in the Outliner file:OutlinerWindow.JPG and then select the Data tab file:OM_LightDataTab.JPG in the Properties Editor to turn down the Energy to e.g. 0.05.

  3. After painting save your image as UV / Image Editor -\> Save As Image -\> EmissionImage.png and set the Energy back to 1.0.

You can now close all areas in Blender except the 3D View.

  • Save the project as EmissionPaintedStatue.blend.

-----

table of contents

-----

3.4.5. Pivot Point

To create a proper origin for your statue you'll need to adjust the pivot point of the model. thumb

  1. First select and set the object to the origin of the project with Alt + G in 3D View.

  2. Then set the geometry to the origin with 3D View -\> Tool Shelf -\> Tools -\> Edit -\> Set Origin

    • Type: Geometry to Origin

    • Center: Bounds Center

  3. Switch to Edit Mode, select all polygons ( A ) and move the whole statue up that the pivot point is on the level of the lowest part of the model ( e.g. at the feet ). Then move the statue to the side that the pivot point is right under the base foot of the statue. This will help you later to position the statue easier in the Unreal Engine. You can switch between orthographical and perspective view with Numpad 5 and to side view with Numpad 1 or Numpad 3 and to top or bottom view with Numpad 7 or Numpad 9.

  4. Save the this statue project as PivotPointStatue.blend.

-----

table of contents

-----

Skeletal Animation

To create a nice idle skeletal animation for you statue you need to add some bones ( aka armatures ) to the model. These bones are just like bones of humans. They define were the joints are. This process is called rigging for short.

Rigging

First you should think about where you want to add joints to your model to animate it. The bones will move the surrounding mesh with the animation. For more information about bones please check out the Blender documentation.

TODO: Why are not all bodies / constraints ( e.g. fingers & eyes ) imported proper into UE4 ?

Add bones to all areas of the statue you want to animate or react to physics, like a ball that hits the statue.

  1. Switch to Solid shading / display mode file:OM_SolidShading.JPG in the 3D View with the Z key.

  2. In Object Mode select the statue and enable Properties Editor -\> Object tab -\> Display -\> Wire and Draw All Edges to always see the wire frame of your statue.

  3. Use Shift + C to move the 3D Cursor to the pivot point of the statue.

  4. In Object Mode use 3D View -\> menu bar -\> Add -\> Armature -\> Single Bone to add your first bone. This bone is the root / parent bone of all other bones. All other bones will directly or indirectly be connected to this bone. thumb

  5. Name the Armature object StatueSkeleton in the Properties Editor -\> Object tab. And name its only bone RootBone.

  6. The big root of the bone should now be and remain at the pivot point of the statue. The slim tip of this first bone should be ( moved ) at the heel of the statue's base foot. Use this tip as a start point to add all bones to it and rig all the areas of the statue you want to animate. You are going to lock the transform of this base bone later.

  7. To always see the bones, select the bone and in the Properties Editor -\> Object tab -\> Display -\> enable X-Ray.

  8. Select the bone and switch to Edit Mode and drag the start ( root ) or end ( tip ) of bone to scale it. Press X-, Y- or Z key while dragging to limit the movement to one axis.

    • Make sure Snap during transform file:OM_SnapToNext.JPG is disabled.

    • You can switch between orthographical and perspective view with Numpad 5 and to side view with Numpad 1 & Numpad 3 and to top or bottom view with Numpad 7 & Numpad 9.

  9. Press E key in Edit Mode to extrude a new bone which is connected to the selected bone.

    • If you select the root ( the big start ) of a bone you can create an other bone starting at the same origin with the same level in the hierarchy.

    • If you select the tip ( the thin end ) of a bone you can create an other bone starting at the tip with a lower level in the hierarchy.

  10. Press W key and then Subdivide in Edit Mode to create two or more bones out of one or more selected bones. Set the number of cuts in the Tool Shelf. thumb

  • As a final step apply the object transform by switching to Object Mode in the 3D View. Select the bones object and then click 3D View's menu bar -\> Object -\> Apply -\> Rotation & Scale. Make sure to enable Location as well in the Tool Shelf.

  • Save the project as StatueRigged.blend.

-----

table of contents

-----

Weight Painting

The weight painting determines which part of the statue will be influenced by the movement of one specific bone. The warmer the weight paint color is the more the statue mesh is influenced by the specific bone. A dark blue color means that the mesh isn't animated by this specific bone at all.

Normally one area of the mesh should only be effected by one bone, except the mesh areas that are located between two bones. The sum of influence should always be 100% ( weight of 1 )! So one area of the mesh should not be influenced by e.g. two bones with 100% from each bone ( sum of 200% ) because both bones would animate this area. On the other hand all areas of the mesh should be influenced by at least one bone ( with some % ) or this part of the mesh can't be move at all by any animation.

  1. In 3D View -\> Object Mode select the statue object first and then Shift + select ( right click ) the bones / armature object. To link the statue to the bones click 3D View -\> menu bar -\> Object -\> Parent -\> Armature Deform -\> With Automatic Weights. Sometimes the automatic weighting doesn't work proper / perfect enough so you'll need to fix the weight of some bones manually. --If you want to add more bones later you need select the statue and the bones again and then choose 3D View -\> menu bar -\> Object -\> Parent -\> Armature Deform -\> With Empty Groups instead to keep your weight painting and connect the new bones to the mesh.

  2. In 3D View -\> Object Mode select the bones object and set it to Pose Mode with the TAB key.

  3. Select a bone and press the R key to rotate the bone and all its children around the bone's origin. Use the rotation to check if all bones move the intended piece of mesh. Press ESC to cancel the rotation\! Don't apply any of these rotations. The mesh and rig should stay where it was when you set it up\! You can use the base bone to check if the whole mesh is rotated to make sure all vertices are assigned to a bone.

  4. If some bones do not animate the mesh exactly like you want it, first select the bone of the bones object in Pose Mode you want o fix then the statue object and set it to Weight Paint mode with the TAB key to paint the bone's mesh ( vertices ).

  5. Activate the Tool Shelf to find the Brush settings on the Tools tab. It works basically like all the other brushes you have already used.

    • The Weight of the brush sets the animation weight directly when you use the Draw brush. Although it is influenced by the Strength value. A weight of 0 will draw dark blue ( no influence ) and a weight of 1 will draw a dark red ( full influence ).

    • To add more weight to an existing weight value use the Add brush. It adds animation weight to all weights except solid red which is already at 100%.

    • To subtract weight from an existing weight value use the Subtract brush.

    • For a fluent passage between two weights use the Blur brush.

  6. To temporary hide the bones while you are painting just Properties Editor -\> Object tab -\> Display -\> enable X-Ray. You should disable the statue's X-Ray before you select the next bone.

  • When you are happy with the bones' influence to the mesh save the project as StatueWeightPainted.blend.

-----

table of contents

-----

Animating

This part of the tutorial needs to be reworked. TODO: Action Editor, Inverted Keyframes

Now you are going to create a four seconds long idle animation for your statue. Have a look at this video to learn the basics of a good, natural animation. thumb

Prepare:

  1. Split the 3D View area ( at the right side ) to add two other editors just above the Timeline Editor. First add and set a Dope Sheet Editor then a Graph Editor on top below the 3D View.

  2. In the Properties Editor -\> Render tab -\> Dimensions -\>

    • Frame Range: -\> Start Frame: 60

    • Frame Range: -\> End Frame: 300

    • Frame Rate: 30 FPS

  3. Switch to the Object Mode and select the bones object in the 3D View then switch to the Pose Mode.

    • Add Bone Constraints to the base bone and the bone(s) of your statue's base foot to lock their transforms. These bones won't be able to rotate, scale or move at all.

      • Select the bone you want to lock.

      • Properties Editor -\> Bone Constraints tab -\> Add Bone Constraint -\> Limit Rotation

      • Enable Limit X, Limit Y, Limit Z

      • Convert: Local Space

      • Properties Editor -\> Bone Constraints tab -\> Add Bone Constraint -\> Limit Scale

      • Enable Minimum X, Minimum Y, Minimum Z, Maximum X, Maximum Y, Maximum Z and set their scale limit to 1.

      • Convert: Local Space

      • Properties Editor -\> Bone Constraints tab -\> Add Bone Constraint -\> Limit Location

      • Enable Minimum X, Minimum Y, Minimum Z, Maximum X, Maximum Y, Maximum Z and set their location limit to 0.

      • Convert: Local Space

  4. In the menu bar of the Timeline Editor enable the Automatic keyframe insertion for Objects and Bones to automatically set the keyframes after you've rotated or scaled a bone and set the Active Keying Set to RotScale. file:RecordAnimation2.JPG ( Scroll down with the mouse wheel if you don't see RotScale in the upper part of the list. )

Create:

It may seem a little bit weird to start the animation with frame 60 but you want a seamless looping idle animation. Normally when you start with frame 1 and end at frame 240 the first and last frames don't know each other so this will cause a hiccup when the animation loops from frame 240 to frame 1. To terminate this behavior you need to create some kind of intro and outro animation just by copying and pasting some parts of your animation before the start and after the end of your used animation length of 60 to 300.

  1. Set Current Frame to 60 in the Timeline Editor's menu bar.

  2. Select the whole armature object with all bones ( A ) and add keyframes for all these bones with the Active Keying Set file:OM_ActiveKeyingSet.JPG button. The animation interpolation should be set to F-Curve -\> Bezier by default. You can check this in the Properties panel ( N ) of the Graph Editor in the Active Keyframe section after you've selected any bone(s) in the 3D View. The Handles should be set to Auto Clamped.

  3. Set Current Frame to +60 in the Timeline Editor's menu bar and select a certain bone to change its rotation and / or scale. These changes are saved automatically.

    • Use the R key to rotate bones. Switch between the Transform Orientations e.g. local and global for different rotation behaviours. file:RotationBehavior.JPG

    • Use the S key to scale bones.

  4. Repeat the previous step until you reach frame 240.

  5. To make the animation loopable you need to copy the keyframes from the start frame (60) to frame 300, the end of the animation.

    • Select the whole armature object with all bones ( A ) and then select the start frames' keyframes with a left click in the Dope Sheet editor to frame 60 of the Dope Sheet Summary row.

    • Then copy these keyframes with CTRL + C, select frame 300 and paste the keyframes with CTRL + V. thumb

  6. To get the seamless looping idle animation mentioned at the beginning:

    • Copy and paste all keyframes at frame 120 to 360.

    • Then copy and paste all keyframes at frame 240 to 0.

  7. For a more organic look select keyframe(s) at frame 120, 180, 240 and use the G key to move selected keyframes in the timeline between frame 90 - 270 of the Dope Sheet Editor.

  8. Finally you need to normalize the weights of each bone in the 3D View to make sure the vertices don't get influenced by too much bones at the same time with Tool Shelf -\> Tools -\> Weight Tools -\> Normalize All.

  • Save the project as StatueSkeletalAnimated.blend.

-----

table of contents

-----

Export

Export the model to an Unreal Engine friendly format:

To continue please enable the ''Edge Split'' modifier by enabling its '''Sharp Edges''' option. This is an important step to see the edges you marked as sharp.

  1. Switch to Object Mode in the 3D View. Select the bones object StatueSkeleton and the bones object RetopoStatue in the Outliner. file:OM_FinalModelOutliner2.PNG

  2. In Blender's main menu bar click File -\> Export -\> FBX (.fbx)

  3. In the Tool Shelf in the Export FBX section change the settings to

    • Main -\>

      • Enable Selected Objects

      • Forward: X Forward

      • Up: Z Up

    • Geometrie -\>

      • Smoothing: Edge

      • Enable Tangent Space

    • Armatures -\> Disable Add Leaf Bones

  4. Save the statue as OrganicStatue.fbx. You going to import this file to Unreal Engine later.

  • Save the project as OrganicStatue.blend.

-----

table of contents

-----

4\. Gimp

Gimp ( GNU Image Manipulation Program ) is an image processing tool you are going to use to improve the images you've already baked and painted in Blender.

4.1. Prepare

4.1.1. Theme

Watch the movie and download her great themes in the description for Gimp 2.8. I use the theme called Acid. Restart Gimp to see your new theme.

4.1.2. Single-Window

Enable Gimp's menu bar -\> Windows -\> Single-Window Mode

4.2. Images

In this chapter you'll improve the images created in Blender.

4.4.1. Color

  1. Start Gimp and open ColorImage.png.

  2. Select the ColorImage.png layer and boost the colors by using the menu bar -\> Colors -\> Hue-Saturation window to set the Saturation to a value of e.g. about 15.

  3. You can also use the AmbientOcclusionImage to add some color to the dent areas with a lot ambient occlusion.

    • First open ( as layers... ), select and invert the AmbientOcclusionImage.png layer's colors with menu bar -\> Colors -\> Invert to add some colors to the areas with dents.

    • To set the color click menu bar -\> Colors -\> Map -\> Rotate Colors -\> Gray Options tab -\> Gray section: Move the circle with the mouse to the color you like and click OK.

    • In Layers editor set the Mode to Lighten only and the Opacity to about 50% - 100%. Make sure the AmbientOcclusionImage.png layer is on top of the ColorImage.png layer. You can change the layer stack with the green arrow buttons.

  4. Export the two visible layers with menu bar -\> File -\> Export As... and name the file ColorImageFinal.png.

  5. To prevent chapped textures at the UV seams by mip mapping and/or compression in UE4 you need to frame each isle with the same color of the isle's border. You are going to use the free tool Substance Player with the Dilate: Color utility for this.

    • Select the area with the background color. Remember.. in Blender you set the Color to white ( or the color you probably didn't plan to use ). In Gimp select the Fuzzy Select Tool ( U ) and the ColorImage.png layer. Set the Threshold in the Tool Options on the left to 0 and click the background to select the whole ( white ) background. If you have more than one isolated ( white ) background areas Shift + click the areas to multi select them.thumb

    • Set the Foreground or Background color to black on the left. Then add a black layer by clicking menu bar -\> Layer -\> New Layer..., name it AntiChappingFrames, set the Layer Fill Type that the layer is filled black, click OK, change the layer stack with the green arrow buttons and deactivate the first two layers' visibility with the eye symbol buttons like shown on the picture to the right.

    • Fill the ( still active ) selection of the AntiChappingFrames layer with white ( foreground color ). Use the Bucket Fill Tool ( Shift + B ) to do this. Then delete your selection with menu bar -\> Select -\> None. Finally invert this layer with menu bar -\> Colors -\> Invert that the painted areas appear white and the unpainted areas are black. This will be the alpha map for the Dilate Color utility.

  6. Export the visible layer with menu bar -\> File -\> Export As... and name the file AntiChappingFrames.png.

  7. Download and install Substance Player and the Dilate: Color utility.

    • Start Substance Player and open the file dilate-color.sbsar.

    • On the right side change the following settings:

      • Output Size: 4096

      • Input: ColorImageFinal.png

      • Alpha: AntiChappingFrames.png

    • Then click Export As Bitmap... button below the menu bar.

      • Set the Format to png.

      • Set the Base name pattern to ColorImage\_UE4.

      • Disable Substance metadata.

      • Click Export.

  • Save the image as Gimp image StatueImages.xcf.

-----

table of contents

-----

4.4.2. Specular

The specular image sets the shininess of the skin. Bright colors represents very shiny and dark colors very dull areas.

In Unreal Engine you'll however use the '''Roughness''' channel of the material, so you'll have to invert the gray shading later.

  1. Open the file StatueImages.xcf in Gimp.

  2. Deactivate all layers' visibility with the eye symbol buttons.

  3. You can also use the AmbientOcclusionImage to add some shininess, that looks like wetness, to the dent areas with a lot ambient occlusion.

  4. First open ( as layers... ) the SpecularImage.png.

  5. Then open ( as layers... ), select and invert the AmbientOcclusionImage.png layer's colors with menu bar -\> Colors -\> Invert to add some more shininess to the areas with dents.

    • In Layers editor set the Mode to Lighten only and the Opacity to about 50% - 100%. Make sure the AmbientOcclusionImage.png \#1 layer is on top of the SpecularImage.png layer. You can change the layer stack with the green arrow buttons.

    • Now merge the two layers with menu bar -\> Image -\> Merge Visible Layers... -\> Merge. The new layer's name should be SpecularImage.png.

    • Select and invert the SpecularImage.png layer's colors with menu bar -\> Colors -\> Invert.

  6. Export the visible layer with menu bar -\> File -\> Export As... and name the file SpecularImageFinal.png.

  7. To prevent chapped textures in UE4 you need to frame each isle with the same color of the isle's border also for the specular image.

    • Start Substance Player and open the file dilate-color.sbsar.

    • On the right side change the following settings:

      • Output Size: 4096

      • Input: SpecularImageFinal.png

      • Alpha: AntiChappingFrames.png

    • Then click Export As Bitmap... button below the menu bar.

      • Set the Format to png.

      • Set the Base name pattern to SpecularImage\_UE4.

      • Disable Substance metadata.

      • Click Export.

  • Save the image as Gimp image StatueImages.xcf.

-----

table of contents

-----

4.4.2. Emission

The emission image sets the self-luminous behavior of the skin. Bright colors represents very glowing and dark colors very dark areas.

First create an effect image to improve the emission glow. This image will be animated in Unreal and add a nice pulsating effect to the statue's emissive skin. ( Feel free to use a smaller resolution, like 1024 \* 1024, for this image.. )

  1. Open the file StatueImages.xcf in Gimp.

  2. Deactivate all layers' visibility with the eye symbol buttons.

  3. Then add a new, white layer by clicking menu bar -\> Layer -\> New Layer..., name it EmissionClouds, set the Layer Fill Type to white, click OK, change the layer stack with the green arrow buttons that this layer is the lowest.

  4. Create a cloudy layer with menu bar -\> Filters -\> Render -\> Clouds -\> Difference Clouds.

    • Set the X size and Y size to 16.

    • Enable Tilable.

  5. Export the visible layer with menu bar -\> File -\> Export As... and name the file EmissionClouds.png.

  • Save the image as Gimp image StatueImages.xcf.

The next step is ( again ) to prevent the chaps / cracks at the UV seams.

  1. Start Substance Player and open the file dilate-color.sbsar.

  2. On the right side change the following settings:

    • Output Size: 4096

    • Input: EmissionImage.png

    • Alpha: AntiChappingFrames.png

  3. Then click Export As Bitmap... button below the menu bar.

    • Set the Format to png.

    • Set the Base name pattern to EmissionImage\_UE4.

    • Disable Substance metadata.

    • Click Export.

You can probably combine the grayscale specular, emission, ambient occlusion and displacement image into one single RGBA image. Feel free to test this as an optimization with your own material.

-----

table of contents

-----

5\. Unreal Engine 4

In this chapter you are going to import the statue model to Unreal Engine 4, animate it and create the material for it.

  1. Open Unreal Editor and create a New Project -\> Blueprint -\> First Person.

  2. Use the default settings:

    • Desktop / Console

    • Maximum Quality

    • No Starter Content

  3. Name it OrganicStatue.

  4. Then click Create Project.

Import

  1. Copy & paste the following files from your Blender modeling folder to the Content folder of your UE4 project:

    • OrganicStatue.fbx

    • EmissionImage\_UE4.png

    • EmissionClouds.png

    • SpecularImage\_UE4.png

    • ColorImage\_UE4.png

    • NormalImage.png

    • DisplacementImage.png

    • AmbientOcclusionImage.png

  2. When you switch back to the Unreal Editor a window will show up. Click Import. file:OM_Import7Changes.png

  3. Set up the FBX Import Options as shown in the picture right below: thumb

  4. Don't ignore the Warning Warning skeletal mesh influence count of X exceeds max count of 8. Influence truncation will occur. Maximum Ignored Weight 0. This causes some animation hick ups when the animation ends and restarts. Make sure that one special vertex is "only" influenced by up to eight bones.

  5. Double click the imported images, make these changes in the Texture Editor and Save:

    • EmissionImage\_UE4

      • Compression Settings: Grayscale (R8, RGB8 sRGB)
    • EmissionClouds.png

      • Compression Settings: Grayscale (R8, RGB8 sRGB)
    • SpecularImage\_UE4

      • Compression Settings: Masks (no sRGB)
    • NormalImage Normalmap / Flip Green

      • Compression Settings: Normalmap (DXT5, BC5 on DX11)

      • Texture ( advanced ( click arrow down )): Enable Flip Green Channel

    • DisplacementImage

      • Compression Settings: VectorDisplacementmap (RGBA8)

      • Texture -\> Disable sRGB.

    • AmbientOcclusionImage

      • Compression Settings: Grayscale (R8, RGB8 sRGB)
  6. Create a Material called OrganicStatueMaterial in the Content folder of the Content Browser by right clicking -\> Material.

  7. Save all assets with main menu bar -\> File -\> Save All.

-----

table of contents

-----

Material

Now you have imported all pieces you need to display the statue. All you need to do to display the images at the statue is to create a material, that describes how you want the statue to show up.

Material Code

  1. To create a new material right click in the Content Browser and click Material. Name it OrganicStatueMat.

  2. To open the Material Editor double click the OrganicStatueMat material.

  3. All you material currently has is a Result node, called OrganicStatueMat with a lot of unused pins.

  4. Select the Result node with a left click and change the settings in the Details panel on the left side to enable Tessellation:

    • Tessellation

      • D3D11Tessellation Mode: PN Triangles

      • Enable Crack Free Displacement

  5. Copy the code below to the clipboard and paste it left of the Result node in the Material Editor.

Begin Object Class=MaterialGraphNode_Knot Name="MaterialGraphNode_Knot_0"
   Begin Object Class=MaterialExpressionReroute Name="MaterialExpressionReroute_4"
   End Object
   Begin Object Name="MaterialExpressionReroute_4"
      Input=(Expression=MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_9.MaterialExpressionTextureSampleParameter2D_19',Mask=1,MaskR=1,MaskG=1,MaskB=1)
      MaterialExpressionEditorX=96
      MaterialExpressionEditorY=-208
      MaterialExpressionGuid=85181F224F8DB6CFAB33B1BE3D7541E5
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
      Desc="Base Color"
      bCommentBubbleVisible=True
   End Object
   MaterialExpression=MaterialExpressionReroute'MaterialExpressionReroute_4'
   NodePosX=16
   NodePosY=-208
   bCanRenameNode=False
   NodeComment="Base Color"
   bCommentBubbleVisible=True
   NodeGuid=BD9C83C94F4C34EF109C4B92C929FB11
   CustomProperties Pin (PinId=9326FB7E43F97196CE5F03B71C93C5DC,PinName="InputPin",PinType.PinCategory="wildcard",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_9 C04A996B4A508A072E3B0796E89FBAE4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,)
   CustomProperties Pin (PinId=D297B8A4481B421E0B988988C7967F42,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="wildcard",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Root_0 B375CDF84A78D708C4AD22BE2F0DBD6C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_0"
   Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_10"
   End Object
   Begin Object Name="MaterialExpressionMultiply_10"
      A=(Expression=MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_11.MaterialExpressionTextureSampleParameter2D_21',Mask=1,MaskR=1,MaskG=1,MaskB=1)
      B=(Expression=MaterialExpressionScalarParameter'MaterialGraphNode_8.MaterialExpressionScalarParameter_13')
      MaterialExpressionEditorX=-272
      MaterialExpressionEditorY=-16
      MaterialExpressionGuid=77ACDA4842999151C177D5973A67A2A5
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
      Desc="Roughness"
      bCommentBubbleVisible=True
   End Object
   MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_10'
   NodePosX=-272
   NodePosY=-16
   NodeComment="Roughness"
   bCommentBubbleVisible=True
   NodeGuid=3ECB9F0C47BD2EC8A56A43A7CE33A2AD
   CustomProperties Pin (PinId=3B229B48487AB0E90948C0A1E1C802AD,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_11 66AEF80941FF4F9F186485B1811AC5AE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=1946676A4AC9584FCDF13B8983D002F1,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_8 797C24D54F60C8982F8971B89BF76CB9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=ACCC5EEB419C2E7A9F4D00B8F6C3055C,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Root_0 B96AAF6C478151115753D8B3AC711CCC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_1"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_16"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_16"
      ParameterName="NormalImage"
      ExpressionGUID=1BC149AA4CD8852112BAC48B9601B345
      Group="Textures"
      Texture=Texture2D'/Game/NormalImage.NormalImage'
      SamplerType=SAMPLERTYPE_Normal
      MaterialExpressionEditorX=-224
      MaterialExpressionEditorY=128
      MaterialExpressionGuid=C4D8ECA74BAF3AAFF65EF59BA44FFE7A
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
      Desc="Normal"
      bCommentBubbleVisible=True
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_16'
   NodePosX=-224
   NodePosY=128
   bCanRenameNode=True
   NodeComment="Normal"
   bCommentBubbleVisible=True
   NodeGuid=086990C243F4FBFCDFE7DB8C25976DB9
   CustomProperties Pin (PinId=033B416149746E0658D46296FA2E2D43,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=3C4E1F8047F95C34B68D4C9C138AD5FC,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Root_0 3AF700874BE9197612F03F8D09E5F3E6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=B25729BA46C2D75722BCE8850D2CA57D,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=F2D1822145FED9F444BE9F9800D87A8F,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=98C6D028435EE623DC72E08DC2061E2A,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=DE1AF06349DFC9DBCBC2A2A2678C98E7,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_2"
   Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_11"
   End Object
   Begin Object Name="MaterialExpressionMultiply_11"
      A=(Expression=MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_9.MaterialExpressionTextureSampleParameter2D_19',Mask=1,MaskR=1,MaskG=1,MaskB=1)
      B=(Expression=MaterialExpressionMultiply'MaterialGraphNode_6.MaterialExpressionMultiply_12')
      MaterialExpressionEditorX=-208
      MaterialExpressionEditorY=-176
      MaterialExpressionGuid=F2B98DF74522312A60C17B8FD8E88D44
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
      Desc="Emission Color"
      bCommentBubbleVisible=True
   End Object
   MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_11'
   NodePosX=-208
   NodePosY=-176
   NodeComment="Emission Color"
   bCommentBubbleVisible=True
   NodeGuid=9CC824764D65AFCF3E146F94887A66E4
   CustomProperties Pin (PinId=712B47644FDF5165F88A38AAA8052037,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_9 C04A996B4A508A072E3B0796E89FBAE4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=FCDD2BBD459F61E6AEF667A3FD9E9893,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_6 031F88FA493B79C4FB62FAA177AAC402,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=100C61634835009E5F0F7C89FEA34BC3,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Root_0 79BAB73B4825DAB048047A9EFCFF2F12,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_3"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_17"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_17"
      ParameterName="DisplacementImage"
      ExpressionGUID=10C9819D4F97E1DC3A27228C8733A3BD
      Group="Textures"
      Texture=Texture2D'/Game/DisplacementImage.DisplacementImage'
      SamplerType=SAMPLERTYPE_LinearColor
      MaterialExpressionEditorX=-32
      MaterialExpressionEditorY=288
      MaterialExpressionGuid=2E5D25DF42CC721B06BABBB9E0E16785
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
      Desc="World Displacement"
      bCommentBubbleVisible=True
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_17'
   NodePosX=-32
   NodePosY=288
   bCanRenameNode=True
   NodeComment="World Displacement"
   bCommentBubbleVisible=True
   NodeGuid=A85268234909383068AD19A9A125C28F
   CustomProperties Pin (PinId=2BAB27C846CE7816AFC4059B5E1EE249,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=ED9BF1AF470DFF7F5150F198D3B6D391,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Root_0 FA0B7AB54D2AB453C0E305AB2DD68739,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=B41DC2BD47FAA2A57ECCD78151B003A0,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=1181900D4FEC7E72ADC6F2AF99475898,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=FED1A643496DCD33FE070DA28395BBDA,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=D138F9FD4C17EB6B416799BCCC5945FE,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode_Knot Name="MaterialGraphNode_Knot_1"
   Begin Object Class=MaterialExpressionReroute Name="MaterialExpressionReroute_5"
   End Object
   Begin Object Name="MaterialExpressionReroute_5"
      Input=(Expression=MaterialExpressionLinearInterpolate'MaterialGraphNode_5.MaterialExpressionLinearInterpolate_2')
      MaterialExpressionEditorX=96
      MaterialExpressionEditorY=480
      MaterialExpressionGuid=DA598AE248D9AC2B6B46A68B1F53BCF9
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
      Desc="Tessellation Multiplier"
      bCommentBubbleVisible=True
   End Object
   MaterialExpression=MaterialExpressionReroute'MaterialExpressionReroute_5'
   NodePosX=32
   NodePosY=528
   bCanRenameNode=False
   NodeComment="Tessellation Multiplier"
   bCommentBubbleVisible=True
   NodeGuid=0D8CCF0F478E51F47C7DDBA71FA92665
   CustomProperties Pin (PinId=CF5ABED5410F0D00C6DA73BD1EE431AE,PinName="InputPin",PinType.PinCategory="wildcard",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 2ABBE7BD4FF8D2F24CEB0EAD688309F6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,)
   CustomProperties Pin (PinId=2CD209FA411D0AD850860997BEE29BAA,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="wildcard",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Root_0 5E015F23424D4E0EA36835916B9D0AA4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_4"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_18"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_18"
      ParameterName="AmbientOcclusionImage"
      ExpressionGUID=268EAD3E488D3A47CA6E7E94E03E829E
      Group="Textures"
      Texture=Texture2D'/Game/AmbientOcclusionImage.AmbientOcclusionImage'
      SamplerType=SAMPLERTYPE_Grayscale
      MaterialExpressionEditorX=-32
      MaterialExpressionEditorY=624
      MaterialExpressionGuid=67BCEDFF4E047DB3C34395B4F3D9E59F
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
      Desc="Ambient Occlusion"
      bCommentBubbleVisible=True
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_18'
   NodePosX=-32
   NodePosY=624
   bCanRenameNode=True
   NodeComment="Ambient Occlusion"
   bCommentBubbleVisible=True
   NodeGuid=39C947ED44C0375AFF1BDD8194145563
   CustomProperties Pin (PinId=6EEA5CAA44925DBFAD3C79893F8A2581,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=A04066D14FA70DBF42A5618D63860C75,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Root_0 F494724F420CA351BB4622BD487E6360,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=424C18924A821755FCC4F7A3165E9F1D,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=9C2BDE2041DA798FBA4CE4B68CC56EB4,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=F70FFEB2477C049E2D34729FD54445F5,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=C799907C425A0AE36B9185AAC974A0CE,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_5"
   Begin Object Class=MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_2"
   End Object
   Begin Object Name="MaterialExpressionLinearInterpolate_2"
      A=(Expression=MaterialExpressionScalarParameter'MaterialGraphNode_20.MaterialExpressionScalarParameter_16')
      B=(Expression=MaterialExpressionScalarParameter'MaterialGraphNode_21.MaterialExpressionScalarParameter_17')
      Alpha=(Expression=MaterialExpressionClamp'MaterialGraphNode_19.MaterialExpressionClamp_2')
      MaterialExpressionEditorX=-414
      MaterialExpressionEditorY=530
      MaterialExpressionGuid=B2EFFB344B7F1CC0739F97A1335334D3
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_2'
   NodePosX=-414
   NodePosY=530
   NodeGuid=99F32A7E42BD008F06E2DCA47D973418
   CustomProperties Pin (PinId=2AD762F64919D437F09374860B0EE802,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_20 EBCF2C7540E027496914A183685A245A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=691E34C14489E45206FBBEA3691AB520,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_21 127A1AEF47FCAB5EF600E8A3F8BEE432,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=936D235444FD873CAAF7C6A252DDAA80,PinName="Alpha",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_19 1064D6944D5B8828FD4CC2BEC99C3F87,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=2ABBE7BD4FF8D2F24CEB0EAD688309F6,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Knot_1 CF5ABED5410F0D00C6DA73BD1EE431AE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_6"
   Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_12"
   End Object
   Begin Object Name="MaterialExpressionMultiply_12"
      A=(Expression=MaterialExpressionMultiply'MaterialGraphNode_22.MaterialExpressionMultiply_13')
      B=(Expression=MaterialExpressionScalarParameter'MaterialGraphNode_7.MaterialExpressionScalarParameter_12')
      MaterialExpressionEditorX=-762
      MaterialExpressionEditorY=-176
      MaterialExpressionGuid=E1EBE17144A517E5FFF1AC854725444F
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_12'
   NodePosX=-762
   NodePosY=-176
   NodeGuid=7565C1EE4B078E65A0D61E9F3F990DC2
   CustomProperties Pin (PinId=77E6CFAE4B75383D7AD394849B6F11B4,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_22 64B9EEEF4B69E9B5DF82309DD1053ACC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=05B5869F4C700CE5B66A7EAE2715E779,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_7 E2E2F2EA46BFA3BC351747A030676356,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=031F88FA493B79C4FB62FAA177AAC402,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_2 FCDD2BBD459F61E6AEF667A3FD9E9893,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_7"
   Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_12"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_12"
      DefaultValue=1.000000
      SliderMin=0.100000
      SliderMax=5.000000
      ParameterName="EmissionPower"
      ExpressionGUID=D9832FD947C30EE79FE1618E03E20092
      Group="Main"
      MaterialExpressionEditorX=-944
      MaterialExpressionGuid=F7D3609D418BA2616732908D78B84B1B
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_12'
   NodePosX=-944
   bCanRenameNode=True
   NodeGuid=739CAB814093A3ECBF024D895F3468E8
   CustomProperties Pin (PinId=E2E2F2EA46BFA3BC351747A030676356,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_6 05B5869F4C700CE5B66A7EAE2715E779,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_8"
   Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_13"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_13"
      DefaultValue=1.000000
      SliderMin=0.100000
      SliderMax=5.000000
      ParameterName="Roughness"
      ExpressionGUID=E42987F44E8BEB2B7B8615A274902ED0
      Group="Main"
      MaterialExpressionEditorX=-528
      MaterialExpressionEditorY=208
      MaterialExpressionGuid=CA4FCAD6483E466D92D067BD0CABA154
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_13'
   NodePosX=-528
   NodePosY=208
   bCanRenameNode=True
   NodeGuid=25FA4B984D2AEF85E303CC9F93B64E28
   CustomProperties Pin (PinId=797C24D54F60C8982F8971B89BF76CB9,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_0 1946676A4AC9584FCDF13B8983D002F1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_9"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_19"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_19"
      ParameterName="ColorImage"
      ExpressionGUID=DAFFEBCD4B662E7B4842D8B7D080467D
      Group="Textures"
      Texture=Texture2D'/Game/ColorImage_UE4.ColorImage_UE4'
      MaterialExpressionEditorX=-480
      MaterialExpressionEditorY=-416
      MaterialExpressionGuid=03E9657643F4B066CFB6EE849110E82F
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_19'
   NodePosX=-480
   NodePosY=-416
   bCanRenameNode=True
   NodeGuid=2C79706C475E68F88C752DA3590B0A24
   CustomProperties Pin (PinId=0FEFE0B94A928BDE70748C9F054C4D9F,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=C04A996B4A508A072E3B0796E89FBAE4,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_Knot_0 9326FB7E43F97196CE5F03B71C93C5DC,MaterialGraphNode_2 712B47644FDF5165F88A38AAA8052037,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=3894EF7E418BBACF34355C827A3CAAAC,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=8BFE1DAF4C16550172715D904A462DB8,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=E964B4344FC987D1E354ABBDE9A365F6,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=43F11EFC42C6105E06C6ABAF6CA79CBC,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_10"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_20"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_20"
      ParameterName="EmissionImage"
      ExpressionGUID=134D208C473C65D3ADBE31AB438B4DBC
      Group="Textures"
      Texture=Texture2D'/Game/EmissionImage_UE4.EmissionImage_UE4'
      SamplerType=SAMPLERTYPE_Masks
      MaterialExpressionEditorX=-1274
      MaterialExpressionEditorY=-320
      MaterialExpressionGuid=9984C3424AC443421EBD378FFD72D97F
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_20'
   NodePosX=-1274
   NodePosY=-320
   bCanRenameNode=True
   NodeGuid=DB3885B2413FE43A82448B9B555522E8
   CustomProperties Pin (PinId=CDFAB3714BBF957AB6A8D5A1163EA962,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=9E42365D40C74CE42D79CFB205C03ECB,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_22 C8EFB564457A3B174D662DB68E4CC95A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=A5D08167423BD377384B5E8555F2EDFF,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=02ED59454721AC4CB5A0598C8A3C27BD,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=88704E544B7932EE4A72698B72B085A6,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=3F29B3994BBA95E55593E5940EEDF9B1,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_11"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_21"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_21"
      ParameterName="RoughnessImage"
      ExpressionGUID=B8E1648840A31092DA03FA976EB70F6D
      Group="Textures"
      Texture=Texture2D'/Game/SpecularImage_UE4.SpecularImage_UE4'
      SamplerType=SAMPLERTYPE_Grayscale
      MaterialExpressionEditorX=-544
      MaterialExpressionEditorY=-32
      MaterialExpressionGuid=33985B7049C2CDD1ACFECEBDD004CF69
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_21'
   NodePosX=-544
   NodePosY=-32
   bCanRenameNode=True
   NodeGuid=8D04B7414B1FF70241979AA77CD7AC8E
   CustomProperties Pin (PinId=B674587A4C9FC76CAED85EB5C4AEBDA0,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=66AEF80941FF4F9F186485B1811AC5AE,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_0 3B229B48487AB0E90948C0A1E1C802AD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=9214F97D4A5E43E5D171D8956C07AA49,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=549E1F774FBABD55530AC4A0C71BB6B3,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=BD78864A450359F9FD11828A108C9D0A,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=2979061D4D3043749605259DF087968F,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_12"
   Begin Object Class=MaterialExpressionCameraPositionWS Name="MaterialExpressionCameraPositionWS_2"
   End Object
   Begin Object Name="MaterialExpressionCameraPositionWS_2"
      MaterialExpressionEditorX=-1646
      MaterialExpressionEditorY=610
      MaterialExpressionGuid=507426D046066997F9D011A7CB8FE624
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionCameraPositionWS'MaterialExpressionCameraPositionWS_2'
   NodePosX=-1646
   NodePosY=610
   NodeGuid=62791C5046C37A0C63C711A486C5DE1D
   CustomProperties Pin (PinId=6396B6C244416A70881A75BF307A1B7E,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 C040AE0546B1253C520A4E8477648D95,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_13"
   Begin Object Class=MaterialExpressionActorPositionWS Name="MaterialExpressionActorPositionWS_2"
   End Object
   Begin Object Name="MaterialExpressionActorPositionWS_2"
      MaterialExpressionEditorX=-1630
      MaterialExpressionEditorY=722
      MaterialExpressionGuid=5167649847E7CCF4184EA68D1A57D85A
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionActorPositionWS'MaterialExpressionActorPositionWS_2'
   NodePosX=-1630
   NodePosY=722
   NodeGuid=2CF1633041C387C98E66D4BE8328D8E5
   CustomProperties Pin (PinId=885BC0864F8E8ACADAEC47BC72CD673A,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 D0661DC649F8B3D2C1449580E259E7CC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_14"
   Begin Object Class=MaterialExpressionDistance Name="MaterialExpressionDistance_2"
   End Object
   Begin Object Name="MaterialExpressionDistance_2"
      A=(Expression=MaterialExpressionCameraPositionWS'MaterialGraphNode_12.MaterialExpressionCameraPositionWS_2')
      B=(Expression=MaterialExpressionActorPositionWS'MaterialGraphNode_13.MaterialExpressionActorPositionWS_2')
      MaterialExpressionEditorX=-1406
      MaterialExpressionEditorY=658
      MaterialExpressionGuid=E45F12DC466B06F19B6F0FAF45336ADE
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionDistance'MaterialExpressionDistance_2'
   NodePosX=-1406
   NodePosY=658
   NodeGuid=CE5C8F3A439AFC420C9AF98EF9156E1D
   CustomProperties Pin (PinId=C040AE0546B1253C520A4E8477648D95,PinName="A",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_12 6396B6C244416A70881A75BF307A1B7E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=D0661DC649F8B3D2C1449580E259E7CC,PinName="B",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_13 885BC0864F8E8ACADAEC47BC72CD673A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=6ABAFD33458E1AC2CE16C69528C615EF,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_15 2955609748900CDCEB1058A9606F587A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_15"
   Begin Object Class=MaterialExpressionSubtract Name="MaterialExpressionSubtract_2"
   End Object
   Begin Object Name="MaterialExpressionSubtract_2"
      A=(Expression=MaterialExpressionDistance'MaterialGraphNode_14.MaterialExpressionDistance_2')
      B=(Expression=MaterialExpressionScalarParameter'MaterialGraphNode_16.MaterialExpressionScalarParameter_14')
      MaterialExpressionEditorX=-1198
      MaterialExpressionEditorY=658
      MaterialExpressionGuid=AFAA273A4CE2EC8816C068A2F36D699A
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionSubtract'MaterialExpressionSubtract_2'
   NodePosX=-1198
   NodePosY=658
   NodeGuid=BB2528A4426A6923B64EE18B878460CD
   CustomProperties Pin (PinId=2955609748900CDCEB1058A9606F587A,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 6ABAFD33458E1AC2CE16C69528C615EF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=3A0C1FFE4AB7C6527FC0B7AE5004C258,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_16 0CAE044B42A635BF3916049E5179513D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=3700DADB486008509FFFC69081F343B8,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_17 D3D85DFB49606878FD3CFB8846536F3E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_16"
   Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_14"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_14"
      DefaultValue=1000.000000
      SliderMin=1.000000
      SliderMax=5000.000000
      ParameterName="FarDistance"
      ExpressionGUID=1D22C46146150C6B2CAC8E8FF0B609F3
      Group="Tesselation"
      MaterialExpressionEditorX=-1374
      MaterialExpressionEditorY=786
      MaterialExpressionGuid=F467CFE54E2F4A5CB41F0CA3FF4129D8
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_14'
   NodePosX=-1374
   NodePosY=786
   bCanRenameNode=True
   NodeGuid=B02876474948D6D216288E9FE08CF28A
   CustomProperties Pin (PinId=0CAE044B42A635BF3916049E5179513D,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_15 3A0C1FFE4AB7C6527FC0B7AE5004C258,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_17"
   Begin Object Class=MaterialExpressionDivide Name="MaterialExpressionDivide_2"
   End Object
   Begin Object Name="MaterialExpressionDivide_2"
      A=(Expression=MaterialExpressionSubtract'MaterialGraphNode_15.MaterialExpressionSubtract_2')
      B=(Expression=MaterialExpressionScalarParameter'MaterialGraphNode_18.MaterialExpressionScalarParameter_15')
      MaterialExpressionEditorX=-990
      MaterialExpressionEditorY=658
      MaterialExpressionGuid=50DAC9DF49BDEAFDF3DB6FAEB9DC708F
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionDivide'MaterialExpressionDivide_2'
   NodePosX=-990
   NodePosY=658
   NodeGuid=80BF33834AD408C20142D7B965AB1EFD
   CustomProperties Pin (PinId=D3D85DFB49606878FD3CFB8846536F3E,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_15 3700DADB486008509FFFC69081F343B8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=09AF4246432DB6EC23FE53B5B4D1834E,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_18 EF25DA5D479BC1CDB54400990270A3C9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=DCA669DF4E3A95FE027EDB93DC56D176,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_19 71005EF84721049EB5B7DA90F1BBB1E2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_18"
   Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_15"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_15"
      DefaultValue=700.000000
      SliderMin=1.000000
      SliderMax=4500.000000
      ParameterName="NearDistance"
      ExpressionGUID=28339BAB4FC6CD57E24B03927C51BD4D
      Group="Tesselation"
      MaterialExpressionEditorX=-1166
      MaterialExpressionEditorY=786
      MaterialExpressionGuid=66AFE76047FB42B98418E2BC14F0BF25
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_15'
   NodePosX=-1166
   NodePosY=786
   bCanRenameNode=True
   NodeGuid=264B8DD84ACBE3F365FA6FB200DB3C8A
   CustomProperties Pin (PinId=EF25DA5D479BC1CDB54400990270A3C9,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_17 09AF4246432DB6EC23FE53B5B4D1834E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_19"
   Begin Object Class=MaterialExpressionClamp Name="MaterialExpressionClamp_2"
   End Object
   Begin Object Name="MaterialExpressionClamp_2"
      Input=(Expression=MaterialExpressionDivide'MaterialGraphNode_17.MaterialExpressionDivide_2')
      MaterialExpressionEditorX=-798
      MaterialExpressionEditorY=658
      MaterialExpressionGuid=DD79F8D243B615D496921AA7EDD1D1E8
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionClamp'MaterialExpressionClamp_2'
   NodePosX=-798
   NodePosY=658
   NodeGuid=B47A428248F8814CC08FD48D967911DE
   CustomProperties Pin (PinId=71005EF84721049EB5B7DA90F1BBB1E2,PinName="Input",PinFriendlyName=" ",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_17 DCA669DF4E3A95FE027EDB93DC56D176,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=FD83A29944484C7BB5E51DA5469EB4CC,PinName="Min",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=D5795F6240A51ED0C97F838058A7B576,PinName="Max",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=1064D6944D5B8828FD4CC2BEC99C3F87,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 936D235444FD873CAAF7C6A252DDAA80,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_20"
   Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_16"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_16"
      DefaultValue=2.000000
      SliderMin=0.100000
      SliderMax=5.000000
      ParameterName="NearResolution"
      ExpressionGUID=AB578D644E81789EA4F751881F624661
      Group="Tesselation"
      MaterialExpressionEditorX=-766
      MaterialExpressionEditorY=434
      MaterialExpressionGuid=E3F37F84472FFCC437906E896F05D8DF
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_16'
   NodePosX=-766
   NodePosY=434
   bCanRenameNode=True
   NodeGuid=028BDC504FA8BB464A624293046650D8
   CustomProperties Pin (PinId=EBCF2C7540E027496914A183685A245A,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 2AD762F64919D437F09374860B0EE802,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_21"
   Begin Object Class=MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_17"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_17"
      SliderMax=2.000000
      ParameterName="FarResolution"
      ExpressionGUID=87CF6B214B229EF5BA2D03B4E4E9F3C8
      Group="Tesselation"
      MaterialExpressionEditorX=-761
      MaterialExpressionEditorY=536
      MaterialExpressionGuid=5395CD2946717B20B8FEB598F8DFF556
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_17'
   NodePosX=-761
   NodePosY=536
   bCanRenameNode=True
   NodeGuid=7E5B9229491134888D7F1F918715A0D3
   CustomProperties Pin (PinId=127A1AEF47FCAB5EF600E8A3F8BEE432,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 691E34C14489E45206FBBEA3691AB520,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_22"
   Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_13"
   End Object
   Begin Object Name="MaterialExpressionMultiply_13"
      A=(Expression=MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_10.MaterialExpressionTextureSampleParameter2D_20',Mask=1,MaskR=1,MaskG=1,MaskB=1)
      B=(Expression=MaterialExpressionMultiply'MaterialGraphNode_26.MaterialExpressionMultiply_14')
      MaterialExpressionEditorX=-986
      MaterialExpressionEditorY=-160
      MaterialExpressionGuid=16E7B4C54BF576D6CE065C92B5BF5C2E
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_13'
   NodePosX=-986
   NodePosY=-160
   NodeGuid=0FF1B0C749406EA4142DD98648DF3AC3
   CustomProperties Pin (PinId=C8EFB564457A3B174D662DB68E4CC95A,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_10 9E42365D40C74CE42D79CFB205C03ECB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=C0A5A89C46319396905AC99A815BDB0F,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_26 261418CD4E055D2246A122808C998DE2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=64B9EEEF4B69E9B5DF82309DD1053ACC,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_6 77E6CFAE4B75383D7AD394849B6F11B4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_23"
   Begin Object Class=MaterialExpressionPanner Name="MaterialExpressionPanner_4"
   End Object
   Begin Object Name="MaterialExpressionPanner_4"
      SpeedX=0.100000
      SpeedY=0.050000
      MaterialExpressionEditorX=-1642
      MaterialExpressionEditorY=-80
      MaterialExpressionGuid=AFCCD6374293E666D3F1D38849758831
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionPanner'MaterialExpressionPanner_4'
   NodePosX=-1642
   NodePosY=-80
   NodeGuid=539EB9A14D993CB4CF85159B2B56A399
   CustomProperties Pin (PinId=0483529247D96A6720CFC48DB638FF63,PinName="Coordinate",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=6CE4658A469BBF1F021BBAA39407A5F4,PinName="Time",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=E08338C8446D7502AD822998DDB4B71C,PinName="Speed",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=DE685E8346FC3F8EFEFED080A7704117,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_24 358804DF43BC0DEE88D336B31931A0A5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_24"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_22"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_22"
      ParameterName="EmissionEffectImage1"
      ExpressionGUID=FEB91AC74E28E9F1F45408A7DA315D9D
      Group="Textures"
      Coordinates=(Expression=MaterialExpressionPanner'MaterialGraphNode_23.MaterialExpressionPanner_4')
      Texture=Texture2D'/Game/EmissionClouds.EmissionClouds'
      SamplerType=SAMPLERTYPE_Grayscale
      MaterialExpressionEditorX=-1386
      MaterialExpressionEditorY=-80
      MaterialExpressionGuid=134D97D34ACC57C91DB1C3B94996BCBD
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_22'
   NodePosX=-1386
   NodePosY=-80
   bCanRenameNode=True
   NodeGuid=D56C1E6648947557676C76BD16709B5A
   CustomProperties Pin (PinId=358804DF43BC0DEE88D336B31931A0A5,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_23 DE685E8346FC3F8EFEFED080A7704117,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=8484BDC44EF1ADF8D1FE1B97CE633C0D,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_26 486F86A048D0281DFA0A778738BFF444,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=6B4F5528414DDABC2A4072AF401AFEF1,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=6CC1DCEC4CE9F07006AC869D76353A3D,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=54781F6741E292737415C79D3CC51671,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=198EB3A44830900400FAB89D4B6FDDBA,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_25"
   Begin Object Class=MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_23"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_23"
      ParameterName="EmissionEffectImage2"
      ExpressionGUID=8DFA3500489D05B96AF5CE932A15723B
      Group="Textures"
      Coordinates=(Expression=MaterialExpressionPanner'MaterialGraphNode_27.MaterialExpressionPanner_5')
      Texture=Texture2D'/Game/EmissionClouds.EmissionClouds'
      SamplerType=SAMPLERTYPE_Grayscale
      MaterialExpressionEditorX=-1386
      MaterialExpressionEditorY=144
      MaterialExpressionGuid=134D97D34ACC57C91DB1C3B94996BCBD
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_23'
   NodePosX=-1386
   NodePosY=144
   bCanRenameNode=True
   NodeGuid=8B6BEB35404F2C3CA876F0A10039D94F
   CustomProperties Pin (PinId=3799C97940709A027F8791A5C00AC99A,PinName="UVs",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_27 0E57D8544198C6016946E8BFC13E1B92,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=9D775CFC4228BF230093EBBA3C48A085,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_26 CD810354452DF4C08F1FACB5069D550C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=6BBD76FB4B8822D5F9D0A4AE7E536BC8,PinName="Output2",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=2267FCEA4879E47FAAB640AC04F1D470,PinName="Output3",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=C768AF3946A77984EB8CEF981668F9C4,PinName="Output4",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=8B3EA17A4C54695D62FEDF8EC44920F6,PinName="Output5",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="alpha",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_26"
   Begin Object Class=MaterialExpressionMultiply Name="MaterialExpressionMultiply_14"
   End Object
   Begin Object Name="MaterialExpressionMultiply_14"
      A=(Expression=MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_24.MaterialExpressionTextureSampleParameter2D_22',Mask=1,MaskR=1,MaskG=1,MaskB=1)
      B=(Expression=MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_25.MaterialExpressionTextureSampleParameter2D_23',Mask=1,MaskR=1,MaskG=1,MaskB=1)
      MaterialExpressionEditorX=-1130
      MaterialExpressionEditorY=32
      MaterialExpressionGuid=16E7B4C54BF576D6CE065C92B5BF5C2E
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionMultiply'MaterialExpressionMultiply_14'
   NodePosX=-1130
   NodePosY=32
   NodeGuid=CD3E2F6F4AA9DC0C3352A28CDE9EEB4A
   CustomProperties Pin (PinId=486F86A048D0281DFA0A778738BFF444,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_24 8484BDC44EF1ADF8D1FE1B97CE633C0D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=CD810354452DF4C08F1FACB5069D550C,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_25 9D775CFC4228BF230093EBBA3C48A085,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=261418CD4E055D2246A122808C998DE2,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_22 C0A5A89C46319396905AC99A815BDB0F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_27"
   Begin Object Class=MaterialExpressionPanner Name="MaterialExpressionPanner_5"
   End Object
   Begin Object Name="MaterialExpressionPanner_5"
      SpeedX=-0.050000
      SpeedY=-0.100000
      MaterialExpressionEditorX=-1642
      MaterialExpressionEditorY=144
      MaterialExpressionGuid=AFCCD6374293E666D3F1D38849758831
      Material=PreviewMaterial'/Engine/Transient.OrganicStatueMat'
   End Object
   MaterialExpression=MaterialExpressionPanner'MaterialExpressionPanner_5'
   NodePosX=-1642
   NodePosY=144
   NodeGuid=12C6DDB246E11E2D44F9EB8F23B0A4FB
   CustomProperties Pin (PinId=31EF8A66431520A83E9CB781958A346B,PinName="Coordinate",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=8E45EE3045AF46A4E8AD1D86E6CCCCCB,PinName="Time",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=F10A55404F79EB027B0BE5AED69FF155,PinName="Speed",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
   CustomProperties Pin (PinId=0E57D8544198C6016946E8BFC13E1B92,PinName="Output",PinFriendlyName=" ",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.bIsMap=False,PinType.bIsSet=False,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_25 3799C97940709A027F8791A5C00AC99A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
End Object
Begin Object Class=MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_0"
   Begin Object Class=MaterialExpressionComment Name="MaterialExpressionComment_6"
   End Object
   Begin Object Name="MaterialExpressionComment_6"
      SizeX=1432
      SizeY=520
      Text="Distance Based Tessellation Multiplier"
      MaterialExpressionEditorX=-1696
      MaterialExpressionEditorY=384
      MaterialExpressionGuid=FB8E846B4F63070DB52F5E94198EA2CD
   End Object
   MaterialExpressionComment=MaterialExpressionComment'MaterialExpressionComment_6'
   NodePosX=-1696
   NodePosY=384
   NodeWidth=1432
   NodeHeight=520
   NodeComment="Distance Based Tessellation Multiplier"
   NodeGuid=2C08F0DA40816E36CF27C4A22C5E9E08
End Object
Begin Object Class=MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_1"
   Begin Object Class=MaterialExpressionComment Name="MaterialExpressionComment_7"
   End Object
   Begin Object Name="MaterialExpressionComment_7"
      SizeX=1072
      SizeY=736
      Text="Animated Emission"
      MaterialExpressionEditorX=-1696
      MaterialExpressionEditorY=-368
      MaterialExpressionGuid=D2E92C0C484993B8CF9268959F01B4BB
   End Object
   MaterialExpressionComment=MaterialExpressionComment'MaterialExpressionComment_7'
   NodePosX=-1696
   NodePosY=-368
   NodeWidth=1072
   NodeHeight=736
   NodeComment="Animated Emission"
   NodeGuid=23589B354D097D3AFAF96B8C19842AD3
End Object
  • When you named all images proper Unreal Editor should recognize your images and automatically include them to the material. ( If not rename your images. )

  • Finally connect the nodes you have pasted to the Result node.

    • Drag the Result node's pin Base Color and drop it in the Base Color Material Expression node pin to the left.

    • Drag the Result node's pin Emission Color and drop it in the Base Color Multiply node pin to the left.

    • Drag the Result node's pin Roughness and drop it in the Roughness Multiply node pin to the left.

    • Drag the Result node's pin Normal and drop it in the Normal Param2D node pin to the left.

    • Drag the Result node's pin World Displacement and drop it in the World Displacement Param2D node pin to the left.

    • Drag the Result node's pin Tessellation Multiplier and drop it in the Tessellation Multiplier Material Expression node pin to the left.

    • Drag the Result node's pin Ambient Occlusion and drop it in the Ambient Occlusion Param2D node pin to the left.

file:OM_Material.png

-----

table of contents

-----

Material Description

The Result node combines all input pins to one output displayed on your statue.

  • Base Color only displays the ColorImage\_UE4 image.

  • Emission Color is a mix of ColorImage\_UE4 and the mask EmissionImage\_UE4. White areas are displayed in the dark, black areas are not. Additionally these glowing areas have animated EmissionClouds images that are moved in opposite direction over time to create some random looking glow. You can set the emission intensity through the EmissionPower parameter of your material instance.

  • Roughness displays reflection areas set by the SpecularImage\_UE4 image. The darker the image shade the more it'll look polished. That's the reason why you inverted the specular image which did, in Blender, basically the opposite. You can set the roughness intensity through the Roughness parameter of your material instance.

  • Normal, set by the NormalImage image, effects the highlights and shadows of the statue's surface but doesn't deform the 3D mesh.

  • World Displacement, set by the DisplacementImage image, deforms the 3D mesh if the mesh resolution is high enough to add more details, the retopo model wouldn't be able to display.

  • Tessellation Multiplier works hand in hand with World Displacement. The closer you are to the statue the more higher the mesh resolution will be and the more details will show up as 3D mesh. For more details how the multiplier is calculated please have a look at the Distance Based DX11 Tesselation wiki article.

  • Ambient Occlusion, set by the AmbientOcclusionImage images, adds, like it did in Blender, shadows to corners.

-----

table of contents

-----

Display the Statue

To show the statue in Unreal Editor's Viewport: thumb

  • You only need to drag & drop the animation sequence asset OrganicStatue\_Anim with a dark green underlined thumbnail of your statue from the Content Browser to the Viewport.

  • Then right click the material asset OrganicStatueMat and click Material Actions -\> Create Material Instance and name it OrganicStatueMat\_Inst. You now set the material parameters of this instance, what you can't do in the original material asset. To activate the parameters you need to double click the material instance asset and enable the parameters in the material instance editor.

  • Drag & drop the material instance, with a green underlined thumbnail, from the Content Browser to the Viewport on your statue to apply the material to it.

  • Finally press the Play button to display your hard work with animation and all the images.

To see the emission of you statue better change the following settings:

  • Night:

    • In the World Outliner select FirstPersonExampleMap (Editor) -\> Lighting -\> Light Source and change the Transform -\> Rotation: Pitch Value ( green ) in the Details panel to 90°.

    • For a fast preview just update the sky sphere select FirstPersonExampleMap (Editor) -\> SkySphereBlueprint and click the Default -\> Refresh Material in the Details panel.

    • If you want to bake the lighting / global illumination hit the Build -\> Build Lighting Only button in the Toolbar next to the Play button.

  • Day again:

    • Reset the Transform -\> Rotation: Pitch Value ( green ) in the Details panel to -66°.

    • Preview or build you level again to apply the reset.

-----

table of contents

-----

Physical Animation

To add an even more realistic and organic look to your statue you are now going to make your statue responsive to any kind of physical objects that collide with it. When you shoot it it will spring back with a physically correct animation additionally to your idle animation.

Collision Detection

First you need to set up the colliders aka bodies for physical simulation. These colliders were created with default settings by Unreal Editor automatically for ( most likely ) each bone.

  1. Open the asset OrganicStatue\_PhysicsAsset with an beige underlining of its thumbnail by double clicking it in the Content Browser. The statue is then shown in the Physics Asset Tool or PhAT for short.

  2. Preview the statue's physical behavior by clicking Simulate in the Toolbar. This will probably look very twitchy with the default settings. You can drag the whole statue by Shift + right clicking it.

    • The Hierarchy tab shows all bones of the statue. The bones with bodies are displayed fat and the bones without bodies are displayed with normal width font.

    • Switch the statue's mesh off by clicking Modes -\> MeshRender Mode -\> Wireframe to see all bodies or turn them on by clicking Modes -\> MeshRender Mode -\> Solid.

  3. Check all bones if each bone has an own body. You need to have bones for e.g. lower or upper arm bones, the legs etc whereas you don't need bodies for bones inside the mesh that are encased by other bodies like the hip or the pelvis. These bones only cost performance and won't probably collide with any object from outside.

    • Add bodies to e.g. the fingers which weren't created automatically with a right click to the bone without a body in the Hierarchy tab and choose New Body from the context menu and use the default settings in the New Asset window.

    • Delete a bone with a right click to the bone with a body in the Hierarchy tab and choose Body -\> Delete from the context menu. TODO: Caution. & Reconnect constraints.

  4. To reduce the twitchy behavior you should do two tweaks:

    • Resize ( scale ), move and rotate the bodies that they fit into the surrounding mesh and don't overlap too much with other bodies.

    • Disable collision between overlapping bodies:

      • Select the body you want to check either in the Viewport or Hierarchy tab. The selected body is now displayed yellow. The bodies that will collide with this selected body are displayed pink whereas the bodies that won't collide with the selected one are displayed gray.

      • Then Ctrl + left click the body / bodies you want to change the collision behavior. Click the Collision Off button in the Toolbar to disable the collision between these bodies. To enable the collision click the Collision On button.

  5. Check if the collision setup is working by simulating again. The statue should fall smooth to the ground like a dead body without any twitching.

  6. Save all assets with main menu bar -\> File -\> Save All.

-----

table of contents

-----

Physical Animation Component

The only thing that's left you need to do to finalize your statue is to set up the behavior rules of the physical movement.

  1. In PhAT open the main menu bar -\> Window -\> Physics Asset window.

  2. Create a Physical Animation Profile in the Physics Asset window -\> Profiles -\> Physical Animation Profiles by clicking the + button and name it Statue\_PAP.

  3. To preview the profile:

    • In the Toolbar click the Profiles button and select the Physical Animation Profile -\> Statue\_PAP profile you just created.

    • Select all bodies in the Hierarchy window and in the Details window click the Add to profile: Statue\_PAP.

    • Set the following values in the Physical Animation section of the Details window:

      • Orientation Strength: 500

      • Angular Velocity Strength: 100

      • Position Strength: 500

      • Velocity Strength: 100

    • TODO: Angular Limits; Soft Constraints;

    • Preview the statue's physical behavior by clicking Simulate in the Toolbar. Compared to the statue without the profile and limits it should look stiffer.

-----

table of contents

-----

Physics Blueprint

-----

table of contents

-----

Notes:

  • Crtl + N -\> Recalc Roll

  • Auto IK: Enable

  • Dope Sheet Editor: Action Editor for different animations

  • Animation Curve at start & end: broken curve

  • Export FBX -\> Operator Presets

Interaction

  • Gravity Gun

-----

table of contents

-----

Build

-----

table of contents

-----