## 4 Cloud-Based Virtual Reality System  
This study generates a collaborative, cloud-based virtual reality system for glove puppetry, which is projected to perform a real-time interactive show for safeguarding intangible cultural heritage. The cloud-based VR system we developed is based on Unity. A Leap Motion controller is connected to an HTC Vive head-mounted display, and 3D data are imported into the system. We also improved core technologies and incorporated multi-user functionality into the system. Puppeteers can see each other and the movement of their characters to imitate the interactions with the virtual object. The schema of virtual reality glove puppetry system is illustrated in Figure 9. When a user registers as a host, the server adds the user and creates a left-hand or right-hand puppept avatar in the scene. The user can control the puppept with their hand through separately acquired data. The Leap Motion controller connected to the HTC Vive VR headset captures the motion of the user's hand. The motion data are transmitted to the computer through the VRPN (VR periphery network). Figure 10 illustrates a user's index finger controlling the puppept's head; the user's thumb and little finger control the puppept's right and left hands, respectively. Two players can join in person, and additional players can join remotely over the Internet. The VR environment is displayed in real time on the connected computer monitor. So, each player can meet and see scenes performed synchronously on their own computer. Data in our system are obtained from Leap Motion controllers and transmitted through the VR peripheral network. The system architecture of the VR glove puppetry system is presented in Figure 11. The network conversion component handles data conversion across the network. The process flow is as follows:  
1. Users A and B: Users log into the system. Physical user data are obtained from sensors. For instance, the HTC Vive VR headset catches data on the user's situation and direction, and the Leap Motion controller obtains data on the user's hand. The Leap Rig transfers the data between the sensor and Unity. Figure 10: Puppeteer wearing HTC head-mounted display and controlling glove puppet avatar. Figure 9: Schema of virtual reality glove puppetry system. 2. VR periphery network registration: The Unity network architecture is used to create a client-server network for the VR periphery network. A network manager is spawned to handle network events. 3. Puppet avatars: Three tasks (\"Network Identity,\" \"Enable Ctrl,\" and \"CCDIK\") are generated during the prefabrication of a glove puppet avatar. Network Identity assigns each avatar a unique ID. Enable Ctrl adds \"Avatar Controller\" to enable animation when the native player starts. CCDIK (Cyclic Coordinate Descent Inverse Kinematics) handles inverse kinematics for custom skeletons. 4. Avatar controller and dynamic joint: The glove puppet avatar's head and hands are controlled by the user's thumb and index and little fingers, respectively. The avatar controller transfers captured user motion to the avatar. Dynamic joints are attached to the hand bones on the avatar's clothing to make the simulation more realistic. 5. Network transform and network skeleton: In the Unity network architecture, the client cannot communicate directly. Synchronization can only be achieved by the server. The network transform synchronizes the movement and orientation of a player's hands and head. The network skeleton synchronizes the skeleton data of each puppet. 6. Data synchronization: Each client transmits data to the server, and the server transmits data to other clients synchronously. 7. Puppet cloud theater: Puppet performances with users in different locations. This paper proposed a multi-user, cloud-based VR system which provides different users with the same virtual scene from their own computers. The system enables users to enter the virtual environment by using a computer. Each user has a unique perspective on the virtual scenes.