Forum Discussion
Shared screen in custom Mesh environment
Going by the promotional materials Mesh has a concept of the "stage" for a shared screen and gallery (where those on a standard teams call - i.e. with no avatar, appear). I don't see any way in the mesh toolkit or the Mesh 101 example to add that stage screen. Obviously when building a custom environment one would expect to be able to place that stage somewhere. So you would expect to see it as a game object or as a render texture to place upon a game object. However, I don't see any such thing. Any ideas ?? I strongly suspect that "under the hood" the "stage" is an Azure Communications Services endpoint (Teams is built on top of ACS - so it is logical that that is how it connects to Unity) - it would be great if that is the case. The ability to simply add such an ACS endpoint to the Unity scene would enable huge flexibility as for e.g. ACS has support (currently in private preview) for bringing in an SRT stream feed. Part of the reason that I suspect that the "stage" is ACS under the hood is that this https://dev.azure.com/aipmr/MixedReality-Unity-Packages/_artifacts/feed/Unity-packages/Npm/com.azure.communication.calling/overview/1.0.0-beta.1 SDK which was released in Beta in June brings ACS calling to Unity. It would be very helpful if someone from Microsoft can provide some guidance as it would help with knowing which parts of the learning curve we need to direct our attention to.
7 Replies
- CameronMicka
Microsoft
This is a great question Nicholas. At the moment there is no way to add a "stage" via the Mesh Toolkit. But you can do it via event artifacts. The screenshare artifact is probably what you are looking for: https://learn.microsoft.com/en-us/mesh/events-guide/customize-event#add-content- Nicholas PlantIron Contributor
- CameronMicka Thanks, that is very helpful information. So as I understand it, in mesh.toolkit.sharedcontent there is the concept of the controllable. This controllable is a cloud script which then orchestrates the behaviour of an artifact in a server authoritative way - for e,g. syncing the starting and stopping of a video player (which is an artifact) for each user in the event. Is that correct ? How do I add an artifact such as the "stage* to my unity project. Can I make it a child of a game object in the usual way ? Presumably it will be possible at some point to author my own cloud script to build my own controllable to control my own artifact in a server authoritative way ?? Am I "barking up the right tree" ? I can see the video player on the mesh 101 demo but it doesn't seem to have a controllable cloud script applied to it. Meaning, that I think each event participant experiences the play of the video asynchronously to others ! So I don't think it is an "artifact" in the way the stage is. Can Microsoft please update the demo to illustrate the use of the stage artifact and a mesh.toolkit.sharedcontent controllable because at the moment substantial areas of functionality do not seem to be illustrated.
- CameronMicka
Microsoft
Thanks Nicholas for the feedback! Yes, you are correct the video played in Mesh 101 is not synchronized (in theory if all users are in the event when the video starts it would be synchronized, but it won't synchronize for late joiners or people in other shards). If you need a synchronized video, I recommend the "video" artifact" (https://learn.microsoft.com/en-us/mesh/events-guide/customize-event#add-content). The video artifact is added like the stage artifact. It is added in the Mesh app after you have completed authoring and uploading your environment in Unity.