The various parts that make up the object hierarchy of a 3D model are called "Layers". In 3spin Learning, you can access the layers to show or hide specific parts of your 3D model.
A cabinet, for example, consists of a body and a door, which can be in either an open or closed state within the model. To represent these different states, the cabinet is divided into the following layers:
- cabinet/body
- cabinet/door_open
- cabinet/door_closed
Addressing layers
When you use the Show Asset or Hide Asset actions with a 3D asset, you have the option to show or hide only certain parts of the asset (instead of the entire asset). To do this, address the parts of the asset in path notation.
So, in the cabinet example, to open the door you would perform the following actions:
- Show Asset: cabinet, Layer: cabinet/door_open
- Hide Asset: cabinet, Layer: cabinet/door_closed
In 3spin Learning, a layer-matching functionality is built in, thanks to which (for complex models) you are not forced to specify the entire path of a layer. This is because layer matching searches the layer names "from behind".
So the above example would also work if you only specify Show Asset: cabinet, Layer: open.
Note that layer matching always uses the first search hit.
Let's extend the example to a cabinet with two doors, i.e. the following layers:
- cabinet/body
- cabinet/right_door_open
- cabinet/right_door_closed
- cabinet/left_door_open
- cabinet/left_door_closed
Then a layer address open would always match the layer cabinet/right_door_open. So to open the left cabinet door, you must specify enough of your path to uniquely identify it, so at least left_door_open.
Functional layers
Using a tagging system, you can assign specific functions to individual layers in your 3D model. In our example, we want to see a closed cabinet initially. So we need to hide the layers containing the opened doors.
To do this, simply add the tag "#hidden" to the name of the layers in question - preferably at the beginning of the name. Because then you don't necessarily have to use its full name incl. tag when addressing the layer (see above).