Object rendering method and program

By using the technology of using manipulators and predetermined points whose shapes vary with the changes of virtual cameras and objects in virtual three-dimensional space, the problem of operators being difficult to accurately control object rotation is solved, and a more accurate object rotation and drawing effect is achieved.

JP2025074897AActive Publication Date: 2025-05-14CELSYS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023186012
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-30
Publication Date
2025-05-14
Estimated Expiration
2043-10-30

AI Technical Summary

Technical Problem

In the prior art, when an operator rotates an object in a virtual three-dimensional space, it is difficult for an operator to accurately control the rotation direction when the rotation axis is close to orthogonal to the virtual camera's line of sight, resulting in the rotation of the object that does not conform to the operator's intention.

Method used

By forming a manipulator on the display screen with the change in shape as the position and direction of the virtual camera and the object, and setting a predetermined point, changing the position of the predetermined point to ensure that the manipulator and the predetermined point are not close, the object is rotated based on the instructions of the operator on the display screen.

Benefits of technology

It is possible to rotate and draw objects in virtual three-dimensional space more easily under operator instructions, ensuring that the rotation direction of the object is consistent with the operator's intention, especially when the rotation axis is close to orthogonal to the virtual camera's line of sight.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025074897000001_ABST
    Figure 2025074897000001_ABST
Patent Text Reader

Abstract

To provide a method and program for more easily rotating and rendering an object placed in a virtual three-dimensional space on the basis of an instruction from an operator.SOLUTION: A method includes: forming a manipulator on a display screen, the shape of the manipulator on the display screen changing according to relative position and / or orientation of a virtual camera and an object; setting a predetermined point defined on the display screen or a predetermined point present at a position at which a point defined in the virtual space is projected onto the display screen via the virtual camera; changing the position of the predetermined point on the display screen such that the manipulator and the predetermined point are not too close to each other; rotating the object about an axis on the basis of an angle and direction of rotation of a vector directed from the predetermined point to the instructed position when the vector rotates as the position instructed on the display screen by an operator is moved; and rendering, on the display screen, an image acquired by imaging the rotated object by means of the virtual camera.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a method and a program for drawing an object. [Background technology]

[0002] There is a technique in which a computer creates a desired virtual three-dimensional space by placing objects in the virtual three-dimensional space at appropriate positions and orientations based on instructions from an operator.

[0003] Adjusting the posture of an object placed in a virtual three-dimensional space can be achieved by rotating the object in the virtual three-dimensional space. Rotating an object can be achieved, for example, by rotating the object around a certain axis. Using this technique, the object can be adjusted to a desired posture.

[0004] For example, there is a technology that allows an object (referred to as "3D object material" in non-patent document 1) to be rotated around an axis in accordance with the drag operation instructions by performing an operation such as dragging along a ring of a manipulator that exists around a selected axis out of multiple axes based on a user's operation instructions (see, for example, non-patent document 1). Similarly to the above, there is a technique that allows a three-dimensional object to be rotated around an axis based on an operator's instruction (see, for example, Non-Patent Document 2).

[0005] However, in conventional techniques, the functionality of the user interface for receiving instructions from the operator is limited to a certain extent, and it can be difficult for the operator to rotate an object into a desired position.

[0006] For example, when the direction of the axis about which an object rotates is nearly perpendicular to the line of sight of the virtual camera, subtle drag movements by the operator can cause the object to rotate in a direction or angle that the operator does not intend, making it difficult to properly reflect the operator's operations in the rotation of the object. [Prior art documents] [Non-patent literature]

[0007] [Non-Patent Document 1] https: / / help.clip-studio.com / ja-jp / manual_jp / 660_3d / 3D%E7%B4%A0%E6%9D%90%E3%82%92%E5%9B%9E%E8%BB%A2%E3%81%97%E3%81%A6%E8%A7%92%E5%BA%A6%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B.htm

[0008] [Non-Patent Document 2] https: / / www.blender.org / https: / / docs.blender.org / manual / en / 3.6 / editors / 3dview / display / gizmo.html Summary of the Invention [Problem to be solved by the invention]

[0009] The disclosed technology has an object to provide a technology that enables a computer to more easily rotate and render an object placed in a virtual three-dimensional space based on an instruction from an operator. [Means for solving the problem]

[0010] The disclosed technology is a drawing method in which a computer draws on a display screen an image of an object placed in a virtual space captured by a virtual camera placed in the virtual space, the method comprising:

[0011] forming, on the display screen, a manipulator whose shape on the display screen changes in accordance with a relative position and / or orientation between the virtual camera and the object, the manipulator receiving an instruction on the display screen from an operator;

[0012] Setting a predetermined point defined on the display screen, or a predetermined point existing at a position where a point defined in the virtual space is projected onto the display screen via the virtual camera;

[0013] changing a position of the predetermined point on the display screen so that the manipulator and the predetermined point do not come too close to each other;

[0014] rotating the object around an axis based on a rotation angle and a rotation direction when a vector from the predetermined point toward the designated position rotates in accordance with a movement of a position designated on the display screen by the operator; drawing an image of the rotated object captured by the virtual camera on the display screen; The present invention provides a drawing method having the following structure. Effect of the Invention

[0015] According to the disclosed technology, it is possible to provide a technology that enables a computer to more easily rotate and draw an object placed in a virtual three-dimensional space based on an instruction from an operator. [Brief description of the drawings]

[0016] [Figure 1] FIG. 1 is a diagram showing a situation in which an object existing in a virtual three-dimensional space is photographed by a virtual camera. [Diagram 2] 2A to 2F are diagrams showing images captured by a virtual camera 160 (not shown) showing an object 100 being rotated around an axis 140 in a virtual space based on instructions from an operator operating a manipulator 150. [Diagram 3] FIG. 3 is a diagram showing images of the object 100 and the manipulator 150 captured by the virtual camera when the axis 140 and the line of sight of the virtual camera are nearly perpendicular to each other. [Figure 4] 4A to 4C are diagrams showing an example in which object 100 is rotated in a direction intended by the operator when axis 140 and the line of sight direction of the virtual camera are nearly perpendicular to each other. [Diagram 5] 5A to 5C are diagrams showing an example in which object 100 rotates in a direction unintended by the operator when axis 140 and the line of sight direction of the virtual camera are nearly perpendicular to each other. [Figure 6] 6A to 6C are diagrams showing an example in which the position of a specified point is changed and the changed specified point is used to obtain an operator's instruction, so that the rotation direction of object 100 matches the operator's intention even when axis 140 and the line of sight direction of the virtual camera are nearly at a right angle. [Figure 7] 7A to 7C are diagrams showing an example in which the manipulator 150 acquires the movement of the mouse pointer 120. FIG. [Figure 8] 8A to 8C are diagrams showing an example in which the manipulator 150 acquires the movement of the mouse pointer 120. FIG. [Figure 9] FIG. 9 shows a flow chart of the process according to the embodiment. [Figure 10] 10A and 10B are flowcharts showing details of the processing of the embodiment. [Figure 11] 11A and 11B are flowcharts showing details of the processing of the embodiment. [Figure 12] FIG. 12 is a flowchart showing the details of the process according to the embodiment. [Figure 13] FIG. 13 is a diagram showing the hardware configuration of the embodiment. [Figure 14] FIG. 14 is a diagram showing another example of the manipulator. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] An embodiment will be described with reference to the drawings.

[0018] FIG. 1 is a diagram showing a situation in which an object existing in a virtual three-dimensional space is photographed by a virtual camera. 1, an object 100, which is an automobile, is a three-dimensional object placed in a virtual space. An axis 140 is an axis of rotation set in the virtual space. The computer can rotate the object 100 around the axis 140 based on an instruction from an operator.

[0019] There may be a plurality of axes 140 and manipulators 150. In this case, the axis 140 may be selected by the operator selecting and activating the manipulator 150. Alternatively, a desired axis 140 may be selected by clicking the axis 140 with a mouse or the like, or by selecting the axis 140 with the operator's finger on the display screen, based on an instruction from the operator. The object 100 may be rotated around the selected axis 140 based on an instruction from the operator.

[0020] For example, multiple axes 140 may be arranged so as to be mutually orthogonal at a predetermined point 152. By repeatedly rotating the object 100 around the selected axis 140 based on an instruction from an operator, the object can be placed in a desired posture in the virtual space.

[0021] The manipulator 150 may be a circular contour in the virtual space, and may exist on a plane 154 perpendicular to the axis 140 at a predetermined point 152 on the axis 140. Note that the manipulator 150 does not have to be circular in three-dimensional space, and may have various shapes. The manipulator may be placed in the virtual space, photographed by a virtual camera, and displayed on the display screen. Alternatively, the manipulator may not exist in the virtual space, but may be drawn directly on the display screen.

[0022] The manipulator 150 shown in Fig. 1 is an example of a user interface that receives an operator's instruction to rotate the object 100 around the axis 140, and is not limited to the form shown in Fig. 1. For example, only a part of the circle of the manipulator 150 may be displayed on the display screen.

[0023] 2A to 2F are diagrams showing images captured by a virtual camera 160 (not shown) showing the state in which an object 100 is rotated around an axis 140 in a virtual space based on instructions from an operator operating a manipulator 150.

[0024] 2A, a mouse button is pressed when a pointer 120 such as a mouse pointer is positioned at a point 202 of a manipulator 150. This operation by the operator may select an axis 140 to rotate about. A dotted line 210 is drawn from a predetermined point 152 to the point 202. This dotted line 210 may be drawn on a display screen when the operator presses the mouse button or starts a drag operation. Alternatively, the dotted line 210 does not have to be displayed because it visualizes the mouse button press operation (drag start operation) by the operator for easy understanding.

[0025] FIG. 2B shows how pointer 120 is dragged to point 204. This drag operation of the mouse rotates object 100. The angle of rotation may be the same as the angle between point 202, specific point 152, and point 204 on the screen, or an angle close to that angle. The angle of rotation of object 100 can be determined based on the angle between the start point of the drag, specific point 152, and point 204 to which the drag progresses on the screen. Note that the operation of the operator is not limited to a drag operation. For example, the start point may be specified by clicking, the rotation operation may be performed by moving the mouse, and the rotation may be ended by clicking again.

[0026] 2C, the drag operation has progressed further and the pointer 120 is now located at point 205. The pointer 120 does not necessarily have to be on the contour of the manipulator 150, but may be located at point 205 outside the contour or inside the contour. This drag operation causes the object 100 to rotate further.

[0027] 2D, the drag operation continues and the pointer 120 is now at point 206 inside the manipulator 150. This drag operation causes the object 100 to rotate further. In FIG. 2E, pointer 120 is at point 207 and the drag action causes object 100 to rotate further. In FIG. 2F, pointer 120 is at point 208 and the drag action causes object 100 to rotate further.

[0028] 7A to 7C are diagrams showing an example in which the manipulator 150 acquires the movement of the mouse pointer 120. FIG. Figure 7A shows an example of a manipulator. The rotation axis is tilted so that the lower side of the figure is further back than the upper side when viewed from the virtual camera. When operating the manipulator, the operator mainly uses the following two operating methods.

[0029] In the first operation method, the operator moves the pointer along the ring of the manipulator in the direction of the arrow 710, as shown in Fig. 7B. To rotate the object clockwise as viewed from above, the operator moves the pointer from right to left as shown in the figure. To rotate the object counterclockwise, the operator moves the pointer from left to right in the opposite direction to that shown in the figure.

[0030] In the second operation method, as shown in Fig. 7C, the operator moves the pointer in the direction of arrow 720 so as to perform a rotational movement approximately centered on a predetermined point 152. To rotate an object clockwise as viewed from above, the pointer is moved in a clockwise rotation as shown in the figure. To rotate an object counterclockwise, the pointer is moved in the opposite direction to that shown in the figure.

[0031] 8A to 8C are diagrams showing an example in which the manipulator 150 acquires the movement of the mouse pointer 120. FIG. Figure 8A shows another example of a manipulator. The inclination of the rotation axis is such that the upper side of the figure is further back than the lower side of the figure when viewed from the virtual camera.

[0032] In the first operation method, the operator moves the pointer along the ring of the manipulator in the direction of the arrow 810 as shown in Fig. 8B. To rotate the object clockwise as seen from above, the operator moves the pointer from right to left as shown in the figure. To rotate the object counterclockwise, the operator moves the pointer from left to right in the opposite direction to that shown in the figure. The relationship between the direction of moving the pointer and the direction of rotation of the object is the same as in Fig. 7B.

[0033] In the second operation method, as shown in Fig. 8C, the operator moves the pointer in the direction of arrow 820 so as to perform a rotational movement approximately centered on a predetermined point 152. To rotate the object clockwise as viewed from above, the pointer is moved in a counterclockwise direction as shown in the figure. To rotate the object counterclockwise, the pointer is moved in a clockwise direction, opposite to that shown in the figure. The relationship between the direction in which the pointer is moved and the rotation direction of the object is opposite to that in Fig. 7C.

[0034] 3 is a diagram showing an image of object 100 captured by a virtual camera when axis 140 and the line of sight of the virtual camera are nearly perpendicular to each other. In this case, manipulator 150 has an outline of an elongated ellipse, and the distance between manipulator 150 and a predetermined point 152 on the display screen becomes closer.

[0035] 4A to 4C are examples of operations according to the first operation method when the axis 140 and the line of sight direction of the virtual camera are nearly perpendicular to each other. It is assumed that the operator intends to rotate the object 100 counterclockwise when viewed from above.

[0036] The operator moves the pointer along the ring of the manipulator. First, as shown in FIG 4A, the operator starts dragging the pointer 120 from a state where the pointer 120 is located at point A.

[0037] 4B, the operator continues the drag operation along the ring of the manipulator 150 to move the pointer 120 to point B1. Point B1 is located below the predetermined point 152. The vector from the predetermined point 152 to the pointer position rotates counterclockwise. This operation rotates the object 100 counterclockwise when viewed from above, and takes the position 102a in which the front of the car is visible.

[0038] 4C, the operator continues dragging along the manipulator ring to move the pointer 120 to point C. The vector pointing from the given point 152 to the pointer position rotates counterclockwise. This rotates the object 100 further counterclockwise as viewed from above, to a pose 104 in which the front and right side of the car are visible. In this way, the operations shown in FIGS. 4A to 4C rotate the object 100 in the direction intended by the operator.

[0039] 5A to 5C are another example of an operation by the first operation method when the axis 140 and the line of sight direction of the virtual camera are nearly perpendicular to each other. As in the case of FIG. 4A to FIG. 4C, it is assumed that the operator intends to rotate the object 100 counterclockwise when viewed from above. Fig. 5A shows the same state as Fig. 4A. The operator starts dragging the pointer 120 from a state where the pointer 120 is located at point A.

[0040] 5B, the operator continues the drag operation along the ring of the manipulator 150, but the pointer 120 moves slightly off the ring to point B2. Point B2 is located above the specified point 152. The vector from the specified point 152 to the pointer position rotates clockwise. This operation rotates the object 100 clockwise when viewed from above, and takes the position 103 in which the rear and right side of the car are visible.

[0041] 5C, the operator continues to drag along the manipulator ring, moving the pointer 120 to point C. The vector pointing from the given point 152 to the pointer position rotates clockwise. This operation rotates the object 100 further clockwise when viewed from above, to a pose 104 in which the front and right side of the car are visible. Thus, the operations in FIGS. 5A to 5C rotate the object 100 in a direction opposite to the direction intended by the operator.

[0042] As described above, when axis 140 and the line of sight of the virtual camera are nearly perpendicular, the ring of manipulator 150 and the specified point 152 come close to each other, and even a slight deviation in the drag operation along the ring of manipulator 150 can significantly change the direction of the vector from the specified point 152 to the pointer position, which can result in object 100 rotating in a direction opposite to that intended by the operator.

[0043] Furthermore, when the pointer passes near a specific point 152, even if the amount of drag is small, the object 100 rotates significantly, resulting in an unnatural operational feel.

[0044] 6A to 6C are diagrams showing an example in which the position of a specified point is changed and the changed specified point is used to obtain an operator's instruction, so that the rotation direction of object 100 matches the operator's intention even when axis 140 and the line of sight direction of the virtual camera are nearly at a right angle. The locus of the drag operation by the operator in FIGS. 6A to 6C is A, B2, and C, which is the same as that in FIGS. 5A to 5C. In FIG. 6A, dragging is started at point A by an operator.

[0045] 6B is a diagram showing a state in which the pointer 120 has been moved to point B2 by a drag operation. The direction and angle of rotation of the object 100 can be determined based on point A, the specified point 153, and point B2. The vector from the specified point 153 toward the pointer position rotates counterclockwise. In FIG. 6B, the object 100 rotates counterclockwise when viewed from above, and assumes a posture 102b in which the front of the car is visible. This rotation is the direction intended by the operator.

[0046] Fig. 6C shows a state in which the operator has performed a drag operation and the pointer 120 is positioned at point C. The direction and angle of rotation of the object when moving from Fig. 6B to Fig. 6C can be determined based on point B2, predetermined point 153, and point C. As in Fig. 6B, object 100 rotates counterclockwise when viewed from above, which is a rotation that matches the operator's intention.

[0047] In this way, in FIGS. 6A to 6C, unlike the rotation of the object 100 in FIGS. 5A to 5C, the rotation direction is not opposite to the operator's intention.

[0048] In this way, by changing the position of the predetermined point from point 152 to point 153, even when axis 140 and the line of sight of the virtual camera are nearly perpendicular, object 100 can be rotated in accordance with the operator's intention.

[0049] When an operator performs a drag operation along the manipulator, the operator often drags the part of the ring of the manipulator that is on the front side (called the "front ring part"), as shown by point A in Figs. 4 to 6. In addition, in cases such as Figs. 7 and 8, only the front half of the ring is displayed, and the back half of the ring cannot be recognized, so the operator drags the front ring part. Therefore, it is desirable that the direction in which the position of the specified point 152 is moved to the position of the specified point 153 on the display screen is a direction away from the front ring part. In other words, this direction is the direction from the front side to the back side on the ring of the manipulator, or in other words, the direction on the axis from the side with a larger depth value as seen from the virtual camera to the side with a smaller depth value. It is not preferable to set the position of the predetermined point 153 far away from the position of the predetermined point 152. When using the second operation method shown in Fig. 7C and Fig. 8C, if the predetermined point 153 is located outside the circular locus of the pointer, for example, the rotation of the object 100 will be a reciprocating rotation against the operator's intention. Therefore, it is preferable to set the position of the predetermined point 153 so that the predetermined point 153 is within the expected locus of the pointer. The distance between the predetermined point 153 and the predetermined point 152 may be, for example, 0.1 times the radius of the manipulator.

[0050] Note that predetermined point 153 may be set by moving the position of predetermined point 152 to the position of predetermined point 153, or predetermined point 153 may be set in addition to predetermined point 152. Furthermore, the distance from predetermined point 152 to predetermined point 153 may be changed using a predetermined function based on axis 140 about which the object rotates and the line of sight of virtual camera 160.

[0051] Also, the predetermined point 153 may not be on the axis 140, but may be drawn on the display screen. Also, the predetermined point 153 on the display screen may not necessarily be on the line along which the axis 140 about which the object rotates is projected onto the display screen. 9 shows a flowchart of the process according to the embodiment. The process of each step in the process flow will be described below.

[0052] Step S9102: A manipulator whose shape on the display screen changes depending on the relative position and / or orientation between the virtual camera and the object and receives an instruction on the display screen from the operator is formed on the display screen.

[0053] Step S9104: A predetermined point defined on the display screen, or a predetermined point existing at a position where a point defined in the virtual space is projected onto the display screen via the virtual camera, is set. Step S9106: The position of the specified point is changed on the display screen so that the manipulator and the specified point are not too close to each other.

[0054] Step S9108: When a vector from a specified point toward a specified position rotates as the position specified on the display screen by the operator moves, the object is rotated around an axis based on the rotation angle and direction. Step S9110: An image of the rotated object captured by the virtual camera is drawn on the display screen.

[0055] FIG. 10A is a flow chart showing a specific example of the process (step S9106) of changing the position of the predetermined point so that the manipulator and the predetermined point do not get too close to each other on the display screen.

[0056] Step S9204: The position of a predetermined point is moved in the direction of a vector on an axis from the side with a larger depth value to the side with a smaller depth value as seen from the virtual camera, which is projected onto the display screen by the virtual camera.

[0057] FIG. 10B is a flowchart showing a specific example of a process (step S9108) for rotating an object around an axis based on the rotation angle and direction when a vector from a specified point to a specified position rotates as the position specified on the display screen by the operator moves.

[0058] Step S9704: An upper limit is set for the rotation speed of the object. Even if the predetermined point 153 is set so as not to be too close to the manipulator 150, when the position of the pointer is close to the predetermined point 153, the rotation speed of the object may become too fast, making it difficult to control the orientation of the object 100. For this reason, an upper limit may be set in advance for the rotation speed of the object 100. In this way, it becomes easier for the operator to control the orientation of the object.

[0059] FIG. 11A is a flowchart showing a specific example of a process (step S9108) for rotating an object around an axis based on a rotation angle and direction when a vector from a specified point to a specified position rotates as the position specified on the display screen by the operator moves.

[0060] Step S9804: An upper limit is set for the ratio of the rotation angle of the object to the amount of movement of the designated position. Even if the predetermined point 153 is set so as not to be too close to the manipulator 150, when the position of the pointer is close to the predetermined point 153, the amount of rotation of the object 100 becomes too large relative to the amount of movement of the pointer, which may make it difficult to adjust the attitude of the object 100. For this reason, an upper limit may be set in advance for the ratio of the rotation angle of the object 100 to the amount of movement of the pointer. This makes it easier for the operator to adjust the attitude of the object 100.

[0061] FIG. 11B is a flowchart showing a specific example of a process (step S9108) for rotating an object around an axis based on the rotation angle and direction when a vector pointing from a specified point to a specified position rotates as the position specified on the display screen by the operator moves.

[0062] Step S9904: Inertia is set for the rotational movement. Specific examples of inertia are as follows. For example, when the object 100 starts to rotate, the object 100 may be rotated so that the rotation speed gradually increases. Alternatively, the object 100 may be rotated so that the rotation speed gradually decreases before the object 100 comes to rest. Alternatively, the object 100 may be rotated beyond the angle at which the object 100 should come to rest, and then rotated in the reverse direction, while the rotation speed gradually decreases before the object 100 comes to rest, thereby bringing the object 100 to rest at the angle at which the object 100 should come to rest (bounce effect).

[0063] FIG. 12 is a flowchart showing a specific example of a process (step S9108) for rotating an object around an axis based on a rotation angle and direction when a vector from a specific point to a specified position rotates as the position specified on the display screen by the operator moves.

[0064] Step S9914: If the object has child objects hierarchically, when the object rotates, the child objects rotate around the axis while maintaining their relative positions and orientations to the object.

[0065] <Modification> The following are modified examples. Each modified example can be combined with the embodiment unless there is a contradiction.

[0066] The manipulator 150 may include a part of an ellipse that is formed when a circle formed on a plane having a center at the intersection of the axis and a plane perpendicular to the axis is projected onto the display screen by a virtual camera. The manipulator 150 may be a figure that does not exist in a virtual space but exists on a display screen. 14 is a diagram showing another example of the manipulator 150. As shown in FIG. The angle by which the object is rotated around the axis may be the same as the angle of rotation of a vector from the given point to the pointer position. The angle by which an object is rotated around an axis may be the rotation angle of a vector determined on plane 154 in virtual space by projecting a vector from a predetermined point toward the pointer position from a virtual camera onto plane 154. The axis may be an operator selected axis from a plurality of axes, each of which may be mutually orthogonal. When a manipulator is selected by an operator, an axis corresponding to the selected manipulator may be selected from among the multiple axes. The predetermined point may lie on a line whose axis is projected onto the display screen by the virtual camera. The predetermined points may be invisible. A point defined in virtual space may lie on an axis.

[0067] FIG. 13 is a diagram showing the hardware configuration of the embodiment. The hardware configuration of the embodiment includes a CPU 1201, a ROM 1202 in which the program and data of the embodiment can be stored, a RAM 1203, a network interface 1205, an input interface 1206, a display interface 1207, and an external memory interface 1208. These pieces of hardware are connected to each other via a bus 1204.

[0068] The network interface 1205 is connected to a network 1215. The network 1215 may be a wired LAN, a wireless LAN, the Internet, a telephone network, or the like. The input interface 1206 is connected to an input unit 1216. The display interface 1207 is connected to a display unit 1217. The display unit 1217 may be realized by a plurality of display devices. The external memory interface 1208 is connected to a storage medium 1218. The storage medium 1218 may be a RAM, a ROM, a CD-ROM, a DVD-ROM, a hard disk, a memory card, a USB memory, or the like.

[0069] The steps of the method or program of the illustrated embodiment may be rearranged as long as there is no contradiction. Furthermore, one illustrated step may be executed multiple times at different times as long as there is no contradiction. Furthermore, multiple steps may be executed simultaneously as long as there is no contradiction. Furthermore, not all steps are essential, and some steps may not exist or may not be executed as long as there is no contradiction.

[0070] The above points also apply to the constituent elements of the method defined in the claims. That is, the order of the constituent elements can be changed as long as there is no contradiction. Also, multiple constituent elements can be implemented simultaneously as long as there is no contradiction. The implementation of these constituent elements also falls within the technical scope defined in the claims.

[0071] Also, each procedure may be executed by an operating system or hardware. Also, the program may be distributed in a state stored in a non-transitory medium.

[0072] The program and method for realizing the above-described embodiment may be executed by a computer having the hardware configuration shown in Fig. 13. That is, the program of the embodiment may be implemented as a method for causing a computer to execute the program. The program may be stored in the storage medium 1218 , the ROM 1202 , or the RAM 1203 . Each embodiment may be implemented as a hardware device having a program installed thereon. [Explanation of symbols]

[0073] 100 Objects 102a Posture 102b Posture 120 Pointer 140 Axis 150 Manipulator 152 Prescribed Point 153 Prescribed Point 154 plane 160 Virtual Camera

Claims

1. A method for drawing an image of an object placed in a virtual space captured by a virtual camera placed in the virtual space on a display screen by a computer, comprising the steps of: forming, on the display screen, a manipulator whose shape on the display screen changes in response to a relative position and / or orientation between the virtual camera and the object, the manipulator receiving an instruction on the display screen from an operator; Setting a predetermined point defined on the display screen, or a predetermined point existing at a position where a point defined in the virtual space is projected onto the display screen via the virtual camera; changing a position of the predetermined point on the display screen so that the manipulator and the predetermined point do not come too close to each other; rotating the object around an axis based on a rotation angle and a rotation direction when a vector from the predetermined point toward the designated position rotates in accordance with a movement of a position designated on the display screen by the operator; drawing an image of the rotated object captured by the virtual camera on the display screen; A drawing method having the following construction.

2. Changing the position of the predetermined point comprises: moving the position of the predetermined point in a direction of a vector on the axis extending from a side with a larger depth value to a side with a smaller depth value as viewed from the virtual camera, the vector being projected onto the display screen by the virtual camera; The method of claim 1 , comprising:

3. the manipulator has a center at a point shared by the axis and a plane perpendicular to the axis, and includes a part of an ellipse formed when a circle formed on the plane is projected onto the display screen by the virtual camera; The drawing method according to claim 1 .

4. the rotation angle is the same as the angle by which the object rotates around the axis; The drawing method according to claim 1 .

5. the axis is an axis selected by the operator from a plurality of axes, each of the plurality of axes being mutually orthogonal; The drawing method according to claim 1 .

6. When the manipulator is selected by the operator, an axis corresponding to the selected manipulator is selected from among the plurality of axes. The drawing method according to claim 5 .

7. The rotating comprises: setting an upper limit on the rotation speed of the object; The method of claim 1 , comprising:

8. The rotating comprises: setting an upper limit on the ratio of the rotation angle of the object to the amount of movement of the designated position; The method of claim 1 , comprising:

9. The rotating comprises: imparting inertia to said rotational movement; The method of claim 1 , comprising:

10. The rotating comprises: When the object has child objects hierarchically, when the object rotates, the child objects rotate around the axis while maintaining their relative positions and orientations with respect to the object; The method of claim 1 further comprising:

11. The predetermined point exists on a straight line projected onto a display screen by the virtual camera, The drawing method according to claim 1 .

12. the predetermined point is invisible; The drawing method according to claim 1 .

13. The point defined in the virtual space exists on the axis. The drawing method according to claim 1 .

14. A program for causing a computer to execute the drawing method according to any one of claims 1 to 13.

Citation Information

Patent Citations

  • Information processing program, information processing system, information processing method, and information processing apparatus

    JP2017151806A