Object positioning and movement in three dimensional content
Various implementations disclosed herein include devices, systems, and methods that enable more intuitive and efficient positioning of an object in a 3D layout, for example, in an enhanced reality (ER) setting providing on a device. In some implementations, objects are automatically positioned based on simulated physics that is selectively enabled during the positioning of the object. In some implementations, objects are automatically positioned based on simulated physics and alignment rules. In some implementations, objects are automatically grouped together based on criteria such that a first object that is grouped with a second object moves with the second object automatically in response to movement of the second object but is moveable independent of the second object.
1 . A method, comprising:
at an electronic device having a processor:
obtaining input selecting an object to be added to content being developed via a user interface of a 3D content development environment;
displaying the object in a three dimensional (3D) graphical layout in the user interface of the 3D content development environment, wherein graphical indicators identify the displayed object and other objects with which the object can interact according to at least one simulated physics model;
obtaining input initiating positioning of the displayed object at a position in the 3D graphical layout in the user interface of the 3D content development environment;
adjusting the position of the displayed object using the at least one simulated physics model and an alignment criterion that results in the displayed object changing orientation to be directionally aligned with a second object; and
after adjusting the position of the displayed object, disabling the at least one simulated physics model for the displayed object, wherein the at least one simulated physics model is disabled based on user input associated with a user interface element.
2 . The method of claim 1 , wherein the obtaining the input initiating positioning of the displayed object in the 3D layout comprises obtaining 3D movement of an input object using an image sensor operatively coupled to the processor of the electronic device.
3 . The method of claim 1 , wherein adjusting the position of the displayed object comprises translating in the 3D graphical layout according to simulated gravity.
4 . The method of claim 1 , wherein adjusting the position of the displayed object comprises translating the displayed object according to a collision of the displayed object with another object in the 3D graphical layout.
5 . The method of claim 1 , wherein adjusting the position of the displayed object comprises:
determining whether the displayed object and a second displayed object share a common classification in an object taxonomy, and in accordance with a determination that the displayed object and the second displayed object share a common classification, translating at least one of the displayed object and the second displayed object towards one another.
6 . The method of claim 1 , further comprising:
identifying a plane in the 3D graphical layout, and wherein adjusting the position of the displayed object using at least one simulated physics model comprises moving the displayed object onto the plane.
7 . The method of claim 1 further comprising: grouping the displayed object and a second displayed object, wherein grouping the displayed object and the second displayed object comprises:
moving the second displayed object together with the displayed object responsive to input representing movement of the displayed object; and
maintaining the position of the displayed object responsive to input representing movement of the second displayed object.
8 . A non-transitory computer-readable storage medium, storing instructions executable on a device to perform operations comprising:
obtaining input selecting an object to be added to content being developed via a user interface of a 3D content development environment;
displaying the object in a three dimensional (3D) graphical layout in the user interface of the 3D content development environment, wherein graphical indicators identify the displayed object and other objects with which the object can interact according to at least one simulated physics model:
obtaining input initiating positioning of the displayed object at a position in the a three dimensional (3D) graphical layout in the user interface of the 3D content development environment;
adjusting the position of the displayed object using the at least one simulated physics model and an alignment criterion that results in the displayed object changing orientation to be directionally aligned with a second object; and
after adjusting the position of the displayed object, disabling the at least one simulated physics model for the displayed object, wherein the at least one simulated physics model is disabled based on user input associated with a user interface element.
9 . The non-transitory computer-readable storage medium of claim 8 , wherein the obtaining the input initiating positioning of the displayed object in the 3D layout comprises obtaining 3D movement of an input object using an image sensor.
10 . The non-transitory computer-readable storage medium of claim 8 , wherein adjusting the position of the displayed object comprises translating in the 3D graphical layout according to simulated gravity.
11 . The non-transitory computer-readable storage medium of claim 8 , wherein adjusting the position of the displayed object comprises translating the displayed object according to a collision of the displayed object with another object in the 3D graphical layout.
12 . The non-transitory computer-readable storage medium of claim 8 , wherein adjusting the position of the displayed object comprises:
determining whether the displayed object and a second displayed object share a common classification in an object taxonomy, and in accordance with a determination that the displayed object and the second displayed object share a common classification, translating at least one of the displayed object and the second displayed object towards one another.
13 . The non-transitory computer-readable storage medium of claim 8 , wherein the operations further comprise:
identifying a plane in the 3D graphical layout, and wherein adjusting the position of the displayed object using at least one simulated physics model comprises moving the displayed object onto the plane.
14 . The non-transitory computer-readable storage medium of claim 8 , wherein the operations further comprise grouping the displayed object and a second displayed object, wherein grouping the displayed object and the second displayed object comprises:
moving the second displayed object together with the displayed object responsive to input representing movement of the displayed object; and
maintaining the position of the displayed object responsive to input representing movement of the second object.
15 . A system comprising:
a non-transitory computer-readable storage medium; and
one or more processors coupled to the non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium comprises program instructions that, when executed on the one or more processors, cause the system to perform operations comprising:
obtaining input selecting an object to be added to content being developed via a user interface of a 3D content development environment;
displaying the object in a three dimensional (3D) graphical layout in the user interface of the 3D content development environment, wherein graphical indicators identify the displayed object and other objects with which the object can interact according to at least one simulated physics model;
obtaining input initiating positioning of the displayed object at a position in the 3D graphical layout in the user interface of the 3D content development environment;
adjusting the position of the displayed object using the at least one simulated physics model and an alignment criterion that results in the displayed object changing orientation to be directionally aligned with a second object; and
after adjusting the position of the displayed object, disabling the at least one simulated physics model for the displayed object, wherein the at least one simulated physics model is disabled based on user input associated with a user interface element.
16 . The system of claim 15 , wherein the obtaining the input initiating positioning of the displayed object in the 3D layout comprises obtaining 3D movement of an input object using an image sensor.
17 . The system of claim 15 , wherein adjusting the position of the displayed object comprises translating in the 3D graphical layout according to simulated gravity.
18 . The system of claim 15 , wherein adjusting the position of the displayed object comprises translating the displayed object according to a collision of the displayed object with another object in the 3D graphical layout.
19 . The system of claim 15 , wherein adjusting the position of the displayed object comprises:
determining whether the displayed object and a second displayed object share a common classification in an object taxonomy, and in accordance with a determination that the displayed object and the second displayed object share a common classification, translating at least one of the displayed object and the second displayed object towards one another.
20 . The system of claim 15 , wherein the operations further comprise:
identifying a plane in the 3D graphical layout, and wherein adjusting the position of the displayed object using at least one simulated physics model comprises moving the displayed object onto the plane.
21 . The method of claim 1 , wherein graphical indicators distinguish:
a first set of objects with respect to which the displayed object can interact via physics-based interactions; and
a second set of objects with respect to which the displayed object cannot interact via physics-based interactions.
22 . The method of claim 1 , wherein the alignment criteria specify different alignment rules for different sides of the second object.
23 . The method of claim 1 , wherein the alignment criteria specify an orientation of a directional vector associated with the displayed object relative to the second object.
24 . The method of claim 1 , wherein the alignment criteria specify that the displayed object face a side of the second object.
25 . The method of claim 1 , wherein the alignment criteria specify that the displayed object be positioned within a bounding box associated with the second object.
26 . The method of claim 1 , wherein the alignment criteria specify that the displayed object be positioned within a bounding box associated with a particular side of the second object.
27 . The method of claim 1 , wherein the alignment criteria are stored as object-specific metadata.
28 . The method of claim 1 , wherein the alignment criteria comprise multiple alignment rules applicable to positioning the displayed object in a particular circumstance.
29 . The method of claim 1 , wherein the displayed object is aligned with the second object based on applying multiple alignment rules according to alignment rule priorities that account for conflicting alignment rules.
30 . The method of claim 1 , wherein the displayed object is aligned by complying with the alignment criteria in a way determined to not conflict with a physical constraint.