Method for adjusting displayed content based on host posture, host, and computer readable storage medium

The embodiments of the disclosure provide a method for adjusting a displayed content, a host, and a computer readable storage medium. The method includes: displaying a visual content, wherein the visual content comprises a first virtual object and a second virtual object; and in response to determining that a synchronization mode associated with the first virtual object is activated, automatically adjusting a first posture of the first virtual object at least based on a host posture of the host and maintaining a second posture of the second virtual object.

BACKGROUND

1. Field of the Invention

The present disclosure generally relates to a content adjustment mechanism, in particular, to a method for adjusting a displayed content, a host, and a computer readable storage medium.

2. Description of Related Art

When a user of the virtual reality (VR) service is watching multimedia contents (e.g., videos/movies) in the VR world provided by the head-mounted display (HMD), the user399may want to watch the multimedia contents in a more relaxed posture, such as lying in a recumbent position.

In this case, if the window for showing the multimedia content in the VR world does not rotate/tilt along with the movement of the user399's head, the user399may need to watch the multimedia content in a less comfortable way since the window remains upright but the view angle of the user399becomes relatively tilted.

SUMMARY OF THE INVENTION

Accordingly, the disclosure is directed to a method for adjusting a displayed content, a host, and a computer readable storage medium, which may be used to solve the above technical problems.

The embodiments of the disclosure provide a method for adjusting a displayed content, adapted to a host. The method includes: displaying a visual content, wherein the visual content comprises a first virtual object and a second virtual object; and in response to determining that a synchronization mode associated with the first virtual object is activated, automatically adjusting a first posture of the first virtual object at least based on a host posture of the host and maintaining a second posture of the second virtual object.

The embodiments of the disclosure provide a host including a storage circuit and a processor. The storage circuit stores a program code. The processor is coupled to the non-transitory storage circuit and accesses the program code to perform: displaying a visual content, wherein the visual content comprises a first virtual object and a second virtual object; and in response to determining that a synchronization mode associated with the first virtual object is activated, automatically adjusting a first posture of the first virtual object at least based on a host posture of the host and maintaining a second posture of the second virtual object.

The embodiments of the disclosure provide a non-transitory computer readable storage medium, the computer readable storage medium recording an executable computer program, the executable computer program being loaded by a host to perform steps of: displaying a visual content, wherein the visual content comprises a first virtual object and a second virtual object; and in response to determining that a synchronization mode associated with the first virtual object is activated, automatically adjusting a first posture of the first virtual object at least based on a host posture of the host and maintaining a second posture of the second virtual object.

DESCRIPTION OF THE EMBODIMENTS

SeeFIG.1, which shows a schematic diagram of a host according to an embodiment of the disclosure. In various embodiments, the host100can be any device capable of performing tracking functions (e.g., inside-out tracking and/or outside-in tracking) on one or more to-be-tracked objects (e.g., the hands of the user399of the host100and/or the handheld controllers connected with the host100) within the field of view (FOV) of the host100. In the embodiments of the disclosure, the FOV can be an image-capturing range of one or more camera (e.g., tracking camera) on the host100. When the to-be-tracked objects (e.g., the hands and/or the handheld controllers) is within the FOV, the cameras on the host100may capture images of the to-be-tracked objects, and the host100may track the pose of each to-be-tracked object based on the captured images, but the disclosure is not limited thereto.

In the embodiments of the disclosure, the host100can be an HMD for providing reality services to the user399thereof, wherein the reality services include, but not limited to, a virtual reality (VR) service, an augmented reality (AR) service, an extended reality (XR), and/or a mixed reality, etc. In these cases, the host100can show the corresponding visual contents for the user399to see, such as VR/AR/XR/MR visual contents.

InFIG.1, the host100includes a storage circuit102and a processor104. The storage circuit102is one or a combination of a stationary or mobile random access memory (RAM), read-only memory (ROM), flash memory, hard disk, or any other similar device, and which records a plurality of modules and/or program codes that can be executed by the processor104.

The processor104may be coupled with the storage circuit102, and the processor104may be, for example, a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Array (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like.

In the embodiments of the disclosure, the processor104may access the modules and/or program codes stored in the storage circuit102to implement the method for adjusting a displayed content provided in the disclosure, which would be further discussed in the following.

SeeFIG.2, which shows a flow chart of the method for adjusting a displayed content according to an embodiment of the disclosure. The method of this embodiment may be executed by the host100inFIG.1, and the details of each step inFIG.2will be described below with the components shown inFIG.1. For better explaining the concept of the disclosure,FIG.3would be used as an illustrative example, whereinFIG.3shows an application scenario according to an embodiment of the disclosure.

In step S210, the processor104displays a visual content300, wherein the visual content300may exemplarily include a first virtual object310and a second virtual object320. In one embodiment, the second virtual object320can be understood as the virtual objects in the virtual environment (e.g., a VR environment) of the visual content other than the first virtual object310. In one embodiment, the first virtual object310may be a foreground object, and the second virtual object320may be a background object, but the disclosure is not limited thereto.

InFIG.3, the first virtual object310may be a window for showing multimedia contents, such as videos/movies/images, etc.

As mentioned in the above, if the user399wearing the host100(e.g., the HMD) tilts his/her head while watching the multimedia, the user399may not have a satisfying visual experience since the window remains upright. Therefore, the embodiments of the disclosure allow the user399to activate a synchronization mode associated with the required virtual object, such that the posture of this virtual object can be synchronized with the host posture of the host100(which can be understood as the posture of the head of the user399). In the embodiments of the disclosure, the synchronization between the posture of the virtual object and the host poster of the host100may include, but not limited to, the synchronization between the distances, depths, and/or the orientations of the virtual object and the host posture, but the disclosure is not limited thereto.

In some embodiments, the host posture of the host100can be determined by, for example, the motion detection element (e.g., an inertia measurement unit) on the host100. In some embodiments, the host posture of the host100can be also determined by performing particular tracking, such as the outside-in tracking and/or the inside out tracking (e.g., simultaneous localization and mapping), but the disclosure is not limited thereto.

In the following embodiment, the first virtual object310would be assumed to be the virtual object whose synchronization mode is activated, but the disclosure is not limited thereto.

In various embodiment, the synchronization mode of the first virtual object310may be activated in different ways. For example, the first virtual object310may be designed with a particular button for the user399to activate the synchronization mode of the first virtual object310. For another example, the user399may activate the synchronization mode of the first virtual object310via performing some particular hand gesture when the first virtual object310is in the foreground of the visual content300, but the disclosure is not limited thereto.

InFIG.3, the appearance of the first virtual object310can be adjusted to be as shown inFIG.3, but the disclosure is not limited thereto.

In step S220, in response to determining that the synchronization mode associated with the first virtual object310is activated, the processor104automatically adjusts a first posture of the first virtual object310at least based on the host posture of the host100and maintaining a second posture of the second virtual object320.

In one embodiment, the second posture of the second virtual object320may be a default posture/position/orientation of the second virtual object320in the virtual environment, which may be determined by the corresponding application (e.g., a game application), but the disclosure is not limited thereto.

In the embodiment where the second virtual object320includes the virtual objects in the virtual environment other than the first virtual object310, the second posture of the second virtual object320may be a default posture/position/orientation of each virtual object other than the first virtual object310, which may be determined by the corresponding application, but the disclosure is not limited thereto.

In a first embodiment, the processor104may determine whether the host posture is tilted. If yes, the processor104may accordingly tilt the first posture of the first virtual object310as exemplarily shown on the right ofFIG.3.

In a variation of the first embodiment, the processor104may provide an option311in the visual content300in response to determining that the synchronization mode associated with the first virtual object310is activated. InFIG.3, the option311may be, for example, a toggle within the first virtual object310, but the disclosure is not limited thereto.

In the embodiment, the option311may be used for allowing the user399to tilt the first virtual object310along with the host posture of the host100. That is, if the user399wants to tilt the first virtual object310via tilting the host posture of the host100, the user399may select/enable the option311. In this case, the processor104may tilt the first posture of the first virtual object310according to a tilting movement of the host posture of the host100. For example, when the host100is detected to be tilting to the right by a certain degree, the processor104may accordingly tilt the first posture of the first virtual object310to the right by the certain degree, such as the scenario exemplarily shown on the right ofFIG.3. For another example, when the host100is detected to be tilting to the left by another degree, the processor104may accordingly tilt the first posture of the first virtual object310to the left by the another degree, but the disclosure is not limited thereto.

On the other hand, if the user399merely wants to move the first virtual object310around in the visual content300, the user399may not select/enable the option311, but the disclosure is not limited thereto. In this case, the user399can horizontally and/or vertically move the first virtual object310to any desired position in the visual content300via, for example, a hand gesture and/or the handheld controller connected to the host100.

In an embodiment where the user399interacts with the visual content300via the handheld controller connected with the host100, the processor104may detect a raycast corresponding to the handheld controller. When the processor104determines that a specific button on the handheld controller is pressed and held while the raycast is pointing to the first virtual object310, the processor104may determine that the first virtual object310has been selected (or “grabbed”). In this case, the processor104may track the movement of the handheld controller and accordingly move the first virtual object310in case of the first virtual object310being selected (e.g., the specific button is being pressed and held), but the disclosure is not limited thereto.

In an embodiment where the user399interacts with the visual content300via the hand gesture detected by the host100, the processor104may detect a raycast330corresponding to the hand gesture. When the processor104determines that the user399has performed a selection operation of the hand gesture (e.g., a pinch gesture) while the raycast330is pointing to the first virtual object310, the processor104may determine that the first virtual object310has been selected (or “grabbed”). In this case, the processor104may track the movement of the hand gesture and accordingly move the first virtual object310in case of the first virtual object310being selected (e.g., the pinch gesture is maintained while the hand gesture is moving), but the disclosure is not limited thereto.

In a second embodiment, the processor104may determine whether the host posture is tilted during a process of the first virtual object310being moved in the visual content300. If yes, the processor104may accordingly tilting the first posture of the first virtual object310while moving the first virtual object310; if not, the processor104may not tilt the first posture of the first virtual object310.

That is, the first posture of the first virtual object310would be tilted during the first virtual object310is being moved in the visual content300. How the first virtual object310is moved in the visual content300can be referred to the descriptions in the first embodiment, which would not be repeated herein.

In the embodiments of the disclosure, in response to determining that the first virtual object310has been selected or grabbed, the processor104may determine that the first virtual object310is being moved, but the disclosure is not limited thereto.

On the contrary, the first posture of the first virtual object310would not be tilted when the first virtual object310is not being moved. That is, if the first virtual object310is not selected and/or grabbed, the first posture of the first virtual object310would not be tilted along with the tilting movement of the host100, but the disclosure is not limited thereto.

In a variation of the second embodiment, the processor104may provide the option311in the visual content300in response to determining that the synchronization mode associated with the first virtual object310is activated, and the details of the option311can be referred to the related description in the first embodiment.

In the embodiment, in response to determining that the option311in the visual content300is selected, the processor104may determine whether the host posture is tilted during a process of the first virtual object310being moved in the visual content300. If yes, the processor104may accordingly tilt the first posture of the first virtual object310while moving the first virtual object310; if not, the processor104may not tilt the first posture of the first virtual object310.

In the embodiment, the option311may be used for allowing the user399to tilt the first virtual object310along with the host posture of the host100during the first virtual object310is being moved. That is, if the user399wants to tilt the first virtual object310via tilting the host posture of the host100during the first virtual object310is being moved, the user399may select/enable the option311. In this case, the processor104may tilt the first posture of the first virtual object310according to a tilting movement of the host posture of the host100during the first virtual object310is being moved. For example, when the host100is detected to be tilting to the right by a certain degree during the first virtual object310is being moved, the processor104may accordingly tilt the first posture of the first virtual object310to the right by the certain degree, such as the scenario exemplarily shown on the right ofFIG.3. For another example, when the host100is detected to be tilting to the left by another degree during the first virtual object310is being moved, the processor104may accordingly tilt the first posture of the first virtual object310to the left by the another degree, but the disclosure is not limited thereto.

On the other hand, if the user399merely wants to move the first virtual object310around in the visual content300, the user399may not select/enable the option311, but the disclosure is not limited thereto. In this case, the user399can horizontally and/or vertically move the first virtual object310to any desired position in the visual content300via, for example, a hand gesture and/or the handheld controller connected to the host100.

In one embodiment, after the synchronization mode associated with the first virtual object310is activated, the processor104may further show a button312, wherein the button312may allow the user399to fix the first posture of the first virtual object310. In this case, when the user399determines that the first posture of the first virtual object310has been properly adjusted, the user399may trigger the button312. Accordingly, the processor104would determine that the posture adjustment of the synchronization mode associated with the first virtual object310is finished and fix the first posture of the first virtual object310. In this case, the first posture (e.g., the position and/or the orientation) of the first virtual object310would not be further adjusted.

Accordingly, the user399can adjust the first posture of the first virtual object310to be a desired posture, such that the user399can watch (the multimedia content shown in) the first virtual object310in a more comfortable way, even if the posture of the user399is not upright.

In one embodiment, during the first posture of the first virtual object310being adjusted, the second posture of the second virtual object320(e.g., the virtual object in the background of the visual content300) would be maintained. That is, only the posture of the virtual object with activated synchronization mode would be adjusted based on the host posture of the host100. In this case, the user399would feel less dizzy during adjusting the first posture of the first virtual object310.

In one embodiment, the visual content300may be designed with a mechanism (e.g., a button on the first virtual object310) for deactivating the synchronization mode associated with the first virtual object310. If the synchronization mode associated with the first virtual object310is deactivated, the processor104may reset the first posture of the first virtual object310to be a default posture of the first virtual object310. For example, the default posture of the first virtual object310may be the posture of the first virtual object310being adjusted, e.g., the first posture shown on the left part ofFIG.3, but the disclosure is not limited thereto.

SeeFIG.4, which shows an application scenario according to an embodiment of the disclosure. InFIG.4, when the user399wants to watch the first virtual object310in a relaxed posture with tilted head, the user399may adjust the first posture of the first virtual object310in advance based on the above teachings, such that the first posture of the first virtual object310can be, for example, as tilted as the head of the user399. Accordingly, the visual experience of the user399watching the first virtual object310can be improved.

The disclosure further provides a computer readable storage medium for executing the method for adjusting a displayed content. The computer readable storage medium is composed of a plurality of program instructions (for example, a setting program instruction and a deployment program instruction) embodied therein. These program instructions can be loaded into the host100and executed by the same to execute the method for adjusting a displayed content and the functions of the host100described above.

In summary, the embodiments of the disclosure allow the user to adjust the posture of the virtual object with activated synchronization mode based on the host posture of the host. Accordingly, the visual experience of the user watching the first virtual object can be improved, even if the user is not in an upright posture.