diff options
author | Raffaele Picca <picster@pixelgod.net> | 2021-02-18 20:31:25 +0100 |
---|---|---|
committer | Raffaele Picca <picster@pixelgod.net> | 2021-02-18 20:31:25 +0100 |
commit | 6406cd4708aeec04c23ffdf098e3319a404e7ed9 (patch) | |
tree | 8faedb9b3f733cc6ee901407e3ac4d4ed8ae6012 /src/addons/rmsmartshape/documentation/Quickstart.md | |
parent | c9b3470e43aed98e2a93a332cfc92c3b9ca05163 (diff) |
Initial Commit
Diffstat (limited to 'src/addons/rmsmartshape/documentation/Quickstart.md')
-rw-r--r-- | src/addons/rmsmartshape/documentation/Quickstart.md | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/addons/rmsmartshape/documentation/Quickstart.md b/src/addons/rmsmartshape/documentation/Quickstart.md new file mode 100644 index 0000000..bd1523a --- /dev/null +++ b/src/addons/rmsmartshape/documentation/Quickstart.md @@ -0,0 +1,117 @@ +SmartShape2D - QuickStart +--- + + +If you feel like your workflow with SmartShape2D is a little bit slow, try reading [Controls and Hotkeys](./Controls.md). The hotkeys may help you work with the tool more effectively. + +# Creating a Shape +- First, instance a node of either: + - SS2D_Shape_Open + - **SS2D_Shape_Closed** + - **We'll use a closed shape for this Quickstart demo** +- SS2D_Shape_Base cannot be instanced directly +- SS2D_Shape_Anchor is a node that attaches to a shape +- The following Nodes are legacy nodes and are deprecated: + - RMSmartShape2D + - RMSmartShape2DAnchor + + + +# Editing the Shape +- After creating the shape node, make sure it's selected and the toolbar appears and is in Point Edit mode + -  +- Hold ALT and Left Click on the viewport to add points + - If this is a closed shape, the polygon will close after adding the 3rd point +- You should now have a shape consisting of a few points and lines: + + + +# Setting the Fill Texture of the Shape (Closed Shape only) +- To give it some life, we'll want to edit the "Shape Material" in the Inspector +- Under "Shape Material" Expand "Fill Textures" and you'll see an empty array +- Set the Array's size to '1' +- Assign a texture to the newly created slot in the array +- After assigning the shape should now have a valid texture + - If nothing happens after setting the texture, try to force the shape to update by adjusting one of the points +- **Note that "Fill Textures" does not affect SS2D_Shape_Open Nodes at all** +- If you want to add a normal_texture, you would add it using the "Fill Texture Normals" property + + + +# Texturing the Edges +- This where the rubber hits the road, the real meat of the tool +- Under "Shape Material" add an element to the "Edge Meta Materials" property + - Shape Material -> Edge Meta Materials +- Set the resource of the newly created element to "SS2D_Material_Edge_Metadata" + - Unfortunately, due to Godot limitations, every avaiable resource will offered to you instead of the one you want + - The options are alphabetized though, which helps in finding the resource you want +- Expand the first element of the "Edge Meta Materials" that you just set + - Shape Material -> Edge Meta Materials -> element 1 +- Set the value of the "Edge Material" property to a new resource of type "SS2D_Material_Edge" + - Shape Material -> Edge Meta Materials -> element 1 -> Edge Material +- Expand "Edge Material" that you just set +- Add an element to "Textures" and assign the texture to one that you want to use as an edge +- The shape's edges should now update using the texture you set + - If nothing happens after setting the texture, try to force the shape to update by adjusting one of the points +- If you want to add a normal_texture, you would add it using the "Texture Normals" property +- Godot should now look something like this: + + + +## Corners +- If your shape has sharp 90-degree corners, the texture can look a bit warped in those places +- You can specify a unique texture to use for inner and outer corners for each Edge Material +- The following Edge Material properties are used for corners + - Textures Corner Inner + - Texture Normals Corner Inner + - Textures Corner Outer + - Texture Normals Corner Outer +- See how the addition of outer corner textures improves the square created earlier + + + +## Multiple Edge Materials in One Edge +- You can add as many Edge Meta Materials as you want to a Shape Material, each with their own Edge Material +- For instance, you can add an additional egde with a rock texture (and its own set of corner textures) and have it render behind the grass + - To have it render behind the grass, Set the Z index of the meta material + + + +## Normal Range +- Each Meta material has a Normal Range +- The Normal Range indicates when a texture should be rendered + - If the normal range is 0 - 360 or 0 - 0, then any angle is considered in range and the edge will always render + - Angle "0" is Facing directly Right + - Angle "90" is Facing directly Up + - Angle "180" is Facing directly Left + - Angle "270" is Facing directly Down + +- If you wanted to, for example: + - Have rocks display on the bottom part of the shape only + - Have grass display on the sides and top of the shape only +- You could: + - Set the grass Normal Range to 0 - 180 + - Set the rock Normal Range to 181 - 359 + + + +## Material Overrides +- Using Material Overrides will allow you to change how specific edges are rendered +- For Example, to prevent the left edge from rendering, we'll do the following: + - Select the edge edit button from the toolbar  + - Right Click the left edge of the shape + - Press the "Material Override" Button + - Uncheck the "Render" Checkbox + + + +- You can use material overrrides to also specify a specific material for a single edge +- For example, Checking Render and choosing the "Rock" Edge Material will cause the edge to render as rocks, even though the NormalRange configuration would otherwise have it render as grass + +## Multiple Textures +- If more than one texture is specified for an Edge Material, you can specify which texture should be used +- Enter Point Edit mode, mouseover a point, and scroll up or down to change the texture index + +# Anchoring Nodes to the Shape +- To anchor nodes directly to the SmartShape2D node, use SmartSahpeAnchor2D +- You can then make nodes children to the anchor |