Improving the Quickstart user experience
argallegos opened this issue · 4 comments
As I am drafting up the quickstart tutorial for O3DE, I'm noticing that there are quite a lot of steps. It would be great if we could condense them a little, but I'm not sure what's possible with the engine.
Here are the current steps involved in this getting started tutorial. As far as I know, they are all necessary or else highly recommended to be able to visualize terrain in the engine. Would be great to discuss what we might be able to pare down.
Step 1: Install the gem
This is the same as the developer setup on the readme of this repo. We could potentially exclude it from the Quickstart.
- Clone the repo
- Navigate to the External folder
- Create a new folder called Build
- Use CMake to build Cesium Native
- Open the System Properties panel
- Click on Environment Variables
- Create a new User Variable with the filepath to your local cloned directory
Step 2: Create your project and add the gem
- Open the O3DE Project Manager
- Click the New Project… button and select Create New Project
- Name your project
- Click the Configure Gems button
- Click the hamburger menu and select Add Existing Gem
- Navigate to the directory you previously cloned
- In the Gem Catalog, scroll down or search for the Cesium gem and enable it
- Click Create Project
- Rebuild project
- Open project
- Wait for the Asset Processor to finish
Step 3: Connect to Cesium ion
- Click the Cesium icon
- Click the connect to Cesium ion button
- Log in to Cesium ion
Step 4: Set up your level
- Create a new level
- Hide or delete the “Ground” from the Atom Default Environment.
- Click on the Level entity in the entity outliner. Add component - level coordinate transform
- Right click on the level in the entity outliner, create a new entity
- With the new entity selected, click on the quick add georeference component button in the cesium ion panel
- Click on the new georeference. Change “Origin Type” dropdown from Cartesian to Cartographic.
- Add the following coordinates:
Longitude: -105.25737
Latitude: 39.736401
Height: 2250.0
(This sets the georeference location to the same as the default in Cesium for Unreal) - Click the “Set as level georeference button”
- Right click on the level in the entity outliner, create a new entity
- With the new entity selected, click on the quick add CWT+bing in the Cesium ion panel. You will now see Cesium World Terrain.
Step 5: Adjust your camera
These steps are not necessary to visualize a tileset, but are still part of the quickstart so that users can learn the nuances of the interface.
- Select the Camera object in the Entity Outliner
- Set move speed to 100 (this is apparently the max)
- Change the far clip distance to 100000000.0 m
- Click “Be this camera”
- Move around with WASD. Hold down the left shift key to move faster.
Where can we speed up this process? Some ideas:
- Installation
- Can we make builds of the gem so that users don't have to clone the repo, build Cesium Native, etc and the user can just download a zip?
- Is there a way to avoid adding an environment variable?
- Can we use the "Gem Repos" system?
- Plugin functionality (please advise on whether or not these would be possible to do, I don't know so I'm just spitballing.)
- Is there any way to add a Level Coordinate Transform automatically to the level entity? Maybe the first time we add something from the cesium panel, we could check to see if it exists, and if not, add it. As far as I know, every level with a cesium tileset will need it to work, so we should try to add it automatically.
- Can we automatically delete the default ground plane? I think that would just save time, and I doubt many users will need it, plus it gets in the way of viewing the tilesets if you haven't figured out how to move the editor camera.
- Can we have georeferences start with Cartographic coordinates by default, and include a default longitude/latitude/height? Otherwise, this adds more steps before users can visualize a tileset. Also, it makes it more in line with the Cesium for Unreal workflow, and teaches you how to view terrain without adding a location-specific tileset.
- Can we automatically tweak camera settings, such as adjusting the move speed and changing the far clip distance? Those are settings that all users will likely want in order to see their tilesets.
- Perhaps for all the plugin functionality steps we could add a button like "Use suggested level setup" that users could just press that would make all those changes automatically. This would significantly speed up the process. Is that something that would be possible?
Below is the plan to automate some of the steps:
For step 1 install the gem: 1->4 can be automated by downloading the binary from github CI similar to Unreal
For step 2: that's probably needed
For step 3: same as step 2
For step 4 Set up level:
- Set editor camera's clip plane to be very far
- Level georeference is replaced by Origin Shift, which I think I can automate it, so user doesn't need to add it to the level.
- Add default value for Origin Shift
- I can create an entity along with 3D Tiles component too, so the step for right clicking and add new entity probably isn't needed
@argallegos I think some of the improvement suggested above are in main now
For step 4, it should be just one step now by adding CWT and that's it.
For step 5, user only needs to adjust editor camera speed. Camera far clip is set to be very high by default
The plus button in quick-add will automatically create new entity, so right click and manually add a new entity is not longer needed.
In the ion asset list, there is a new button Create New Entity
which will add a new entity to the outliner, so the step of manually creating new entity is no longer needed for that panel
This has been streamlined significantly by Bao's recent efforts, so I'm closing this issue. Thanks @baothientran!