cgalvan / interactivetutorials Goto Github PK
View Code? Open in Web Editor NEWInteractive tutorials for O3DE
Interactive tutorials for O3DE
Might be a good idea to add a feature for gating (disabling) of the Next
button on the tutorial until some action is completed. This could be done by providing an optional field on the step that would disable the Next
button until some signal is fired from the step. This way, the custom tutorial could write some logic to listen for an event/action and then fire the signal that would re-enable the Next
button to allow the user to proceed with the tutorial.
Currently the overlay is drawn and remains over the widget/item the entire time the user is on that step. This is an awkward experience in some cases where the user might click a button that then disappears because the UI changes, but the overlay is still drawn over the pre-existing spot.
There are several possible solutions to this problem. One from @micronAMZN would be to make it so the overlay only stays for a couple of seconds, and has some kind of pulsing animation. This would do a good job of drawing the user's attention to the action they need to take, and then once it disappears we wouldn't be have to worry about it being drawn incorrectly.
Now that we have support for having Script Canvas Anywhere, we could utilize this to author tutorials via Script Canvas. This could include things like:
Currently we are using the pyside_utils.find_child_by_pattern
API to find the widget/item to highlight for the current step. This works for many cases, but there are a lot of widgets that don't have objectNames set, or are nested with many widgets of the same type. For some of these widgets we can and should give them an appropriate objectName, since this would aid automated testing as well, but for others it might be better to be able to find them a different way.
So, we should extend support to be able to use the pyside_utils.find_child_by_hierarchy
as well.
As the number of tutorials grow, it might be worthwhile to separate all the necessary assets into a separate gem.
In our graph-related tools (e.g. Script Canvas, Landscape Canvas), the UI is based on a QGraphicsScene
so we are unable to use the current method of searching for a specific widget/item to locate graph items (e.g. nodes). This would restrict us from writing a fully immersive tutorial that goes through Script Canvas or Landscape Canvas workflows. So, we need to extend our highlight API to give the user the ability to highlight items in the graph scene.
Might be useful to have an optional callback/method on a step where the user could write logic to perform the actual step (e.g. create an Entity, set a value on a property field, etc...). Could be presented as a "Preview" or "Help" option.
We currently use the pyside_utils
API that is only present in the AutomatedTesting
project. This will need to be moved out so that it can be used more generally (e.g. by our gem) in any project. The most likely candidate would be to move it to the QtForPython
gem since it provides the PySide2
library, but will need to investigate further, because we could potentially move a number of helpful utilities from editor_python_test_tools
outside of AutomatedTesting
as well.
Currently if you specify a highlight item that can't be found, or is ambiguous (more than one that match the criteria), the tool crashes. We need to fix this so it doesn't crash, and if possible, print out a helpful error message instead.
We need to add a label that will auto-populate "Step X of N" based on the current step / total number of steps of the active tutorial. As part of this task, we should update the PhysX Rigid Body tutorial so that it doesn't need to explicitly have "Step 1 of 20" at the bottom of the content for each step.
We should add the ability for the tutorial window to have a custom stylesheet so that we can better control the styling of the window and content itself.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.