Summary by Kiril
We can produce instructions with animations. We have created the concept of "-dev" extension that allows for extension developers to provide additional development tools for their extensions. We can control the IS through the Browser Console with a public API
Table of contents
- [IC-1.2] Refactor exportforanimation as processor
- [IC-1.2, Bug] Export for Stud.io is not working for single ldr files.
- [IC-1.2, Bug] Material 951 has some "alien" elements
- [IS-6.0] Handle errors and wrong format on loading gltf files. We should be able to show gltf files without metadata. Just as simple Gltf(s)
- [IS-6.0] Merge Selection State implementation into the is-babylon_scene extension
- [IS-6.0-Fredi] Support upload of GLB files
- [IS-6.0-Fredi] Make the StepsTreeEditor movable on the Page.
- [IS-6.0-Fredi] Extract an extension for working with the babylon scene in the console
- [IS-6.0-Fredi] Extract an extension for working with the steps-tree in the console. It is the is-steps_tree-dev
[IC-1.2] Refactor exportforanimation as processor
It is now possible to build one Blender developed animation into your instrutions. You have to create a file that is '{stepNumber}.blender' and place it along with the source document in the source archive of an instructions. On build the instruction would have an animation
Demonstration
- Source file example https://s3.amazonaws.com/fllcasts/materials/srcs/000/000/248/9311b62bb6891096c60eb43d272a28ac511f8427/ActiveAttachmentTop.zip
- Result available at https://www.fllcasts.com/materials/248-box-robot-active-attachment-at-the-top
On the 9-th step it will have a blender animation.
[IC-1.2, Bug] Export for Stud.io is not working for single ldr files.
The issue was that we were removing the build.ini during the cleanup, but build.ini does not exists if the source is single ldr file
Demonstration
- Download a single LDR file as this.
- Pass it to the Jenkins build(if you have access) ISExportfor_studio, which will result in producing a zip with two files, one branded and one not, with all of the cables extracted and everything else packed in single file.
[IC-1.2, Bug] Material 951 has some "alien" elements
The issue comes from the fact that there are two bricks on the scene. When we import parts that share common subparts the geometry breaks. This is a known and identified issue and will be available in a future release.
[IS-6.0] Handle errors and wrong format on loading gltf files. We should be able to show gltf files without metadata. Just as simple Gltf(s)
Made it so we can load gltf files which don't have ai3d metadata in them
- Take a file without metadata https://trello-attachments.s3.amazonaws.com/55f7c6b46b0a9613084d68bc/5e144518ed45215a43378d90/5f7a60c75d90d18c18ada625814b7d3a/baked_animation.gltf
- Open an instruction in an SDK mode. - https://www.fllcasts.com/materials/846-bag-3-from-first-lego-league-2019-2020-city-shaper-challenge?mode=sdk
- Upload the file localy from the development tab
- See the model loaded as an instruction with a single step.
[IS-6.0] Merge Selection State implementation into the is-babylon_scene extension
Merged the SelectionState from the is-scenestate extension in the is-babylonscene extension
- There is a SelectionState that comes from is-scene_state. Documentation availabe at IS.SceneState.SelectionState.
[IS-6.0-Fredi] Support upload of GLB files
Upload is now possible. Button is in the development tab.
It contains one of the most beautiful implementation of our IS and the power that comes with it.
It has a IS.BabylonScene.ISceneProcessor that allows us to process the scene after loading from babylon and before loading the instructions tree from the scene. This allows us to skip a bug in Babylon and remove an extra root node. There is a IS.BabylonScene.RemoveExtraRootProcessor that does it. The beauty is that this is an extension and we can easily plug other processors for doing something with the scene before loading.
Demonstration
- Go to an instruction in SDK mode- https://www.fllcasts.com/materials/846-bag-3-from-first-lego-league-2019-2020-city-shaper-challenge?mode=sdk
- Open development tab and click save. File is saved.
- Select "Choose file" and upload this file to the Scene.
[IS-6.0-Fredi] Make the StepsTreeEditor movable on the Page.
The steps tree editor can now be moved around to a different part of the screen to make editing the steps easier
Demonstration
- Go to an instruction in SDK mode - https://www.fllcasts.com/materials/846-bag-3-from-first-lego-league-2019-2020-city-shaper-challenge?mode=sdk
- Open the development tab.
- Find the steps tree editor. There is a "Move" text next to it. Click with the mouse on it.
- Now click on the StepsTree editor and can move the editor.
[IS-6.0-Fredi] Extract an extension for working with the babylon scene in the console
There is a new extension available - is-babylon_scene-dev
Is::BabylonScene::Dev
Contains dev tools for working with the Babylon Scene.
Usage
BsListener
BsListener listens for babylon events and puts the scene and other things in the window. Check the documentation for {@link IS.BabylonScene.Dev.BsListener}
The BsListener does
A listener extension that puts the babylon scene in the window object. Useful for testing and for using the scene in the console Behaviours 1. Take the BABYLON Scene and add it to window['IS.BabylonScene.Dev.BsListener']['scene']
Demonstration
- Open an instruction in development tab - https://www.fllcasts.com/materials/846-bag-3-from-first-lego-league-2019-2020-city-shaper-challenge?mode=sdk
- Open browser console
- Type it
const scene = window['IS.BabylonScene.Dev.BsListener']['scene']
- You can now use the 'scene' object as it is the BABYLON.Scene.
[IS-6.0-Fredi] Extract an extension for working with the steps-tree in the console. It is the is-steps_tree-dev
There is a new extension available - is-steps_tree-dev
Is::StepsTree::Dev
Contains dev tools for working with the Stepstree.
Usage
SListener
StListener listens for steps-tree events and puts the rootSteps and other things in the window. Check the documentation for {@link IS.StepsTree.Dev.StListener}
<script src='...ext/steps-treedev/register_st_listener.js'></script>
The StListener does
A listener extension that puts the rootStep in the window object. Useful for testing and for using the scene in the console Behaviours 1. Take the rootStep and add it to window['IS.StepsTree.Dev.StListener']['stepsTreeLoaded']
Demonstration
- Open an instruction in development tab - https://www.fllcasts.com/materials/846-bag-3-from-first-lego-league-2019-2020-city-shaper-challenge?mode=sdk
- Open browser console
- Type it
const events = window['IS.StepsTree.Dev.StListener']['stepsTreeLoaded']
const rootStep = events[0]['rootStep'];
You can now use the 'rootStep' object and its API.