Browse Source

adjustments to formatting.
added some images to document to make certain workflows and requests clearer.

Signed-off-by: Michael <[email protected]>

Michael 3 years ago
parent
commit
02e81a74d3

BIN
testing-guidance/workflow-tests/scripting/SCeditor_basic_userFunction00.png


BIN
testing-guidance/workflow-tests/scripting/SCeditor_basic_userFunction01.png


BIN
testing-guidance/workflow-tests/scripting/SCeditor_default_layout.png


BIN
testing-guidance/workflow-tests/scripting/SCeditor_graphview_controls.png


BIN
testing-guidance/workflow-tests/scripting/SCeditor_script_events_workflow.png


+ 19 - 18
testing-guidance/workflow-tests/scripting/script-canvas-tests.md

@@ -21,9 +21,9 @@ Test guidance will sometimes note specific issues to watch for. The common issue
 <b>User Function</b>: A type of SC graph that has 2 special nodes: Entrance & Exit nodelings. User Functions are intended to give users a way to generate re-usable graph logic similar to a function in a standard programming language. When a valid User Function graph is created and saved it will appear in the Node Inspector under the 'User Functions' category.
 
 <b></b>
-### Area: Opening and configuring the Script Canvas Editor
+## Area: Opening and configuring the Script Canvas Editor
 
-## Project Requirements
+### Project Requirements
 Any project can be used and no special gems are required.
 
 **Product:** 
@@ -40,11 +40,11 @@ Visible and responsive Script Canvas editor.
 | Use basic Script Canvas graph controls                              | *   Open or create a new script canvas graph file and make sure the basic script canvas graph controls function when clicked or keyboard shortcut is used.<br>*   Check if a helpful tooltip is generated and rendered properly for each control.<br> * Tooltip does not go away prematurely<br> * Pan/Zoom on the script canvas graph and make sure graph renders properly                                                                                                   | *   Control does not respond or responds too slowly when used<br> *   Controls gray out under appropriate circumstances<br>*   Cannot interact with grayed out controls                                                                           |
 
 
-### Area: Default Script Canvas Editor tools
+## Area: Default Script Canvas Editor tools
 
-## Project Requirements
+### Project Requirements
 SC editor with the 5 basic tools enabled
-
+![SC graph editor and default tools](SCeditor_default_layout.png)
 **Product:** 
 N/A
 
@@ -60,27 +60,28 @@ N/A
 | Use the Node Palette to find node types                             | *   Search the Node Palette for a specific node type.<br> * Use the scrolling view controls to browse nodes.>br> * Drag a node off the palette onto a new SC graph.<br> * Use right click context menu on a SC graph to search & browse for nodes. <br> *   Mouse over a node in the palette to display a tooltip                                                                                     | *   Node palette renders properly when entering/deleting text in search field.<br> * Node categories can be expanded and collapsed.                                                                                                               |
 
 
-### Area: Basic Script Canvas graph tests 
+## Area: Basic Script Canvas graph tests 
 Testing in this area verify basic functionality of script canvas graphs and more in-depth functionality of the default editor tools.
 
-## Project Requirements
+### Project Requirements
 Any project with a new level. SC editor with the 5 basic tools enabled
 
 **Product:** 
 Script canvas graph files that produce verifiable outputs when attached to entities and run through game mode or interpreter
 
+
 **Suggested Time Box:**
 60 minutes
 
-| Workflow                                                                                                        | Requests                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Things to Watch For                                                                                                                                                                                              |
-|-----------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Create and save a new script canvas graph with basic input and output                                           | *   Use any method to create a blank script canvas file.<br>    *   Use the node palette or right click context menu to add and connect multiple nodes.<br>    *   Create a logic sequence that will occur on graph start or on the activation of an entity<br>    *   Use the variable manager to create one or more new variables. Change a field on a node to a reference and use the newly created variable<br> * Click on a variable you created and use the Node Inspector to modify it. Change the name, default value and scope.<br> * Save the graph file and verify it functions as expected by attaching it to an entity and running the game or loading the graph in the Interpreter                                                                                                                                                                                 | *   Saving the file causes asset processor errors or warnings<br>*   Repeatedly running the game causes the graph to produce no results or inconsistent results<br>*   Console warnings or errors regarding Lua  |
-| Create a 2nd script canvas graph file and use a script event to make the two files communicate during gameplay  | *   Use the O3DE asset editor to create a new script event.<br> *   Add a new event to the script event asset. Give it a unique and recognizable name<br> * Add input parameters to the event and save the asset. Verify the file appears on disk<br> * Search the Script Canvas editor's node inspector for the new event asset. Verify that you can add a send/receive signal to a graph. <br> * Configure two or more script canvas files to send and receive signals from each other. Verify the communication with debug output or with more complex logic and game behavior <br><br><b> Examples: </b><br> * Attach a send signal to a timer node so every other second the receiving script changes a light's color. <br>* Send multiple different script events and a script canvas file that has different logic predecated on receiving each of the different signals  | *   Tool display issues/unusable portions of tool<br>*   Interactivity issues                                                                                                                                    |
+| Workflow                                                                                                        | Requests                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Things to Watch For                                                                                                                                                                                                                                                                      |
+|-----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Create and save a new script canvas graph with basic input and output                                           | *   Use any method to create a blank script canvas file.<br>    *   Use the node palette or right click context menu to add and connect multiple nodes.<br>    *   Create a logic sequence that will occur on graph start or on the activation of an entity<br>    *   Use the variable manager to create one or more new variables. Change a field on a node to a reference and use the newly created variable<br> * Click on a variable you created and use the Node Inspector to modify it. Change the name, default value and scope.<br> * Save the graph file and verify it functions as expected by attaching it to an entity and running the game or loading the graph in the Interpreter                                                                                                                                                                                                                                                                                                        | ![SC graph view and basic controls](SCeditor_graphview_controls.png)<br> *   Saving the file causes asset processor errors or warnings<br>*   Repeatedly running the game causes the graph to produce no results or inconsistent results<br>*   Console warnings or errors regarding Lua |
+| Create a 2nd script canvas graph file and use a script event to make the two files communicate during gameplay  | *   Use the O3DE asset editor to create a new script event.<br> *   Add a new event to the script event asset. Give it a unique and recognizable name<br> * Add input parameters to the event and save the asset. Verify the file appears on disk<br> * Search the Script Canvas editor's node inspector for the new event asset. Verify that you can add a send/receive signal to a graph.<br> ![Filtering Node Palette for a script event. Dragging the node onto the graph](SCeditor_script_events_workflow.png) <br> * Configure two or more script canvas files to send and receive signals from each other. Verify the communication with debug output or with more complex logic and game behavior <br><br><b> Examples: </b><br> * Attach a send signal to a timer node so every other second the receiving script changes a light's color. <br>* Send multiple different script events and a script canvas file that has different logic predecated on receiving each of the different signals | *   Tool display issues/unusable portions of tool<br>*   Interactivity issues                                                                                                                                                                                                            |
 
-### Area: Advanced Script Canvas graph Tests
+## Area: Advanced Script Canvas graph Tests
 Tests in this verify more advanced core features of script canvas.
 
-## Project Requirements
+### Project Requirements
 Any project with a new level. SC editor with the 5 basic tools enabled
 
 **Product:**
@@ -89,8 +90,8 @@ Organized and annotated Script canvas graph files that produce verifiable output
 **Suggested Time Box:**
 120 minutes
 
-| Workflow                                                                          | Requests                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Things to Watch For                                                                                                                                                                                                                       |
-|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Create a user function and verify its input/output when called from another graph | * Use Script Canvas editor to create a graph file with enter/exit nodelings<br> * Place complex logic or entity behavior between the enter/exit nodelings. <br> * Give the graph file a unique recognizable name and save it<br> * Call the user function from another graph by finding it in the node palette or right click context menu <br> <br> <b>Example Functions: </b><br>  Two color parameters and returns a blended color<br> Entity parameter and returns the number of child entities <br> No parameters or output but triggers behavior. | * Recursive functions are <b>NOT</b> supported at the moment<br> * Modifications to the user function file should require scripts calling the function to also be modified.                                                               |
-| Generate and modify translation data                                              | * Generate translation data for nodes.<br> * Modify the translation data and verify that the modifications are reflected in Script Canvas editor.<br>                                                                                                                                                                                                                                                                                                                                                                                                   | * Generating translation data does not cause performance dips.<br> *Non-english characters render properly in SC graph. <br> *                                                                                                            |
-| Use groupings and annotations to organize a graph.                                | * Place groupings on a graph.<br> * Add and remove nodes to the groupings. <br> * Place annotations on the graph. <br> * Change the size and positions of groupings and annotations. <br> * Use Node Inspector to modify the test and format of groupings and annotations.                                                                                                                                                                                                                                                                              | * Groupings and annotations not rendering when placed on the graph. <br> * Nodes not "Sticking" to a grouping when size or position is changed. <br> * Modifications to groups and annotations not maintained when graph is saved/loaded. |
+| Workflow                                                                                                                                                                                                | Requests                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Things to Watch For                                                                                                                                                                                                                                         |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Create a user function and verify its input/output when called from another graph<br> ![Controls for entry/exit nodelings highlighted. Basic user function example.](SCeditor_basic_userFunction00.png) | * Use Script Canvas editor to create a graph file with enter/exit nodelings<br> * Place complex logic or entity behavior between the enter/exit nodelings. <br> * Give the graph file a unique recognizable name and save it<br> * Call the user function from another graph by finding it in the node palette or right click context menu <br> <br> <b>Example Functions: </b><br>  Two color parameters and returns a blended color<br> Entity parameter and returns the number of child entities <br> No parameters or output but triggers behavior. | ![Calling a user function from another graph](SCeditor_basic_userFunction01.png)* Recursive functions are <b>NOT</b> supported at the moment<br> * Modifications to the user function file should require scripts calling the function to also be modified. |
+| Generate and modify translation data                                                                                                                                                                    | * Generate translation data for nodes.<br> * Modify the translation data and verify that the modifications are reflected in Script Canvas editor.<br>                                                                                                                                                                                                                                                                                                                                                                                                   | * Generating translation data does not cause performance dips.<br> *Non-english characters render properly in SC graph. <br> *                                                                                                                              |
+| Use groupings and annotations to organize a graph.                                                                                                                                                      | * Place groupings on a graph.<br> * Add and remove nodes to the groupings. <br> * Place annotations on the graph. <br> * Change the size and positions of groupings and annotations. <br> * Use Node Inspector to modify the test and format of groupings and annotations.                                                                                                                                                                                                                                                                              | * Groupings and annotations not rendering when placed on the graph. <br> * Nodes not "Sticking" to a grouping when size or position is changed. <br> * Modifications to groups and annotations not maintained when graph is saved/loaded.                   |