WO2015111261A1 - 情報処理装置および情報処理方法 - Google Patents
情報処理装置および情報処理方法 Download PDFInfo
- Publication number
- WO2015111261A1 WO2015111261A1 PCT/JP2014/077873 JP2014077873W WO2015111261A1 WO 2015111261 A1 WO2015111261 A1 WO 2015111261A1 JP 2014077873 W JP2014077873 W JP 2014077873W WO 2015111261 A1 WO2015111261 A1 WO 2015111261A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- information processing
- movable part
- information
- object model
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/428—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/02—Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
- A61B5/024—Detecting, measuring or recording pulse rate or heart rate
- A61B5/0245—Detecting, measuring or recording pulse rate or heart rate by using sensing means generating electric signals, i.e. ECG signals
- A61B5/025—Detecting, measuring or recording pulse rate or heart rate by using sensing means generating electric signals, i.e. ECG signals within occluders, e.g. responsive to Korotkoff sounds
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/22—Setup operations, e.g. calibration, key configuration or button assignment
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/23—Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
- A63F13/235—Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/24—Constructional details thereof, e.g. game controllers with detachable joystick handles
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/10—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
- A63F2300/105—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals using inertial sensors, e.g. accelerometers, gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/10—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
- A63F2300/1087—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera
Definitions
- the present invention relates to information processing technology using an object in real space.
- a perceived affordance is given in order to produce a sense of reality and enable intuitive operation.
- a device capable of performing the same operation in a shape close to the real thing, such as a car handle type or a handgun type, but the application is limited. If the shape of the device is variable, the application will be expanded, but ingenuity is required to measure the shape change and movement accordingly.
- Non-Patent Document 1 an infrared LED and a photosensor that receives light are incorporated in a joint portion of the component, thereby measuring the rotation angle of the component and specifying the shape.
- the rotation angle that can be measured is limited, the variable range of the shape is also limited.
- manufacturing cost becomes high. As the configuration of the apparatus is made more flexible in this way, the mechanism for measuring it becomes more complicated, and as a result, the manufacturing cost and the processing cost tend to increase.
- the present invention has been made in view of such problems, and an object of the present invention is to realize various and advanced expressions using an apparatus that can be freely formed.
- An aspect of the present invention relates to an information processing apparatus.
- the information processing apparatus is configured to link a structure information acquisition unit that acquires information related to a position of a movable part in an overall structure of an external object, the object, and an object model associated with the object.
- An information processing unit that displays a setting screen for accepting a setting input related to the interlocking rule from the user on the display device, and generates information related to the interlocking rule based on the accepted setting input and stores the information in the storage device. It is characterized by that.
- the information processing apparatus includes a structure information acquisition unit that acquires information related to a position of a movable part in an overall structure of an external object, a change in one movable part among the object and an object model associated with the object. Is reflected in the other associated movable part to link the object with the object model, and the corresponding part setting screen for accepting a setting input for associating the movable part of the object with the movable part of the object model from the user And an information processing unit for generating correspondence information based on the received setting input and storing the correspondence information in a storage device.
- Still another aspect of the present invention relates to an information processing method.
- the information processing apparatus acquires information related to the position of the movable part in the overall structure of the external object, and one of the movable parts of the object and the object model associated with the object is obtained.
- Corresponding part setting to accept from the user a setting input that associates the movable part of the object and the movable part of the object model in order to link the object and the object model by reflecting the change in the other associated movable part
- the method includes a step of displaying a screen on a display device, and a step of generating correspondence information based on the received setting input and storing the correspondence information in a storage device.
- the information processing apparatus includes a structure information acquisition unit that acquires information related to a position of a movable part in an overall structure of an external object, a change in one movable part among the object and an object model associated with the object.
- a motion correspondence setting screen is displayed for accepting a setting input of the reflection rule of the movement of the associated movable part from the user.
- an information processing unit for generating correspondence information based on the received setting input and storing the correspondence information in a storage device.
- Still another aspect of the present invention relates to an information processing method.
- the information processing device acquires information relating to the position of the movable part in the overall structure of the external object, and one movable part of the object and the object model associated with the object. Movement to reflect the setting input of the reflection rule of the movement of the associated movable part in order to link the object and the object model by reflecting the change in the other associated movable part
- the method includes a step of displaying a setting screen on a display device, and a step of generating correspondence information based on the received setting input and storing the correspondence information in a storage device.
- the information processing apparatus includes a structure information acquisition unit that acquires information related to a position of a movable part in an overall structure of an external object, a change in one movable part among the object and an object model associated with the object. Is reflected in the other associated movable part to link the object with the object model, and the corresponding part setting screen for accepting a setting input for associating the movable part of the object with the movable part of the object model from the user And an information processing unit that accepts a setting input that associates different numbers of movable parts with each other between the object and the object model, generates correspondence information based on the setting input, and stores the correspondence information in the storage device. It is characterized by that.
- Still another aspect of the present invention relates to an information processing method.
- the information processing device acquires information relating to the position of the movable part in the overall structure of the external object, and one movable part of the object and the object model associated with the object.
- the corresponding part for accepting a setting input for associating the movable part of the object and the movable part of the object model from the user A step of displaying a setting screen on the display device, a step of receiving a setting input for associating different numbers of movable parts between the object and the object model, and generating correspondence information based on the received setting input and storing it in the storage device And a step of performing.
- FIG. 1 It is a figure which illustrates information required in order to make the motion of a block set and a 3D object correspond in this Embodiment. It is a flowchart which shows the process sequence in which information processing apparatus performs matching which concerns on a motion of a block set and 3D object in this Embodiment. It is a figure which shows the example of the screen displayed on a display device in order to receive the input of the model selection by a user in S46 of FIG. It is a figure which shows the example of the screen displayed on a display device in order to set a coordinate system common to a block set and the model selected in S48 of FIG.
- this Embodiment it is a figure which shows the transition example of the block set when creating an object with two blocks, and the display screen at the time of registration.
- this Embodiment it is a figure which shows the case where the joint matched 1 to 1 moves by the same angle.
- this Embodiment it is a figure which shows another example of a response
- this Embodiment it is a figure which shows the example which matches one joint of a block set with the some joint of 3D object. It is a figure which shows the example of the screen displayed on a display device in order to set the response
- a plurality of blocks are assembled or deformed, and their shapes, postures, and positions are used as input values for information processing. That is, such a block can be positioned as an input device for the information processing apparatus. Furthermore, the shape, posture, and position of the assembled block may be changed to reflect the result of processing performed by the information processing apparatus. In this case, the block is positioned as an output device for the information processing device.
- the processing performed by the information processing apparatus is not particularly limited, but a suitable aspect will be exemplified later.
- such a group of blocks or an assembly of the blocks will be collectively referred to as a “block set”.
- the block set may include objects other than blocks in a general sense such as an article imitating clothing and clay work, and the shape and material thereof are not limited. Hereinafter, these are also referred to as “blocks”.
- FIG. 1 shows a configuration example of an information processing system to which this embodiment can be applied.
- the information processing system 2 includes a block set 120, a camera 122 that captures the block set 120, an information processing device 10 that performs predetermined information processing using the block set 120 as an input device or an output device, and an input that receives a user operation on the information processing device 10.
- the device 14 includes a display device 16 that displays data output from the information processing device as an image.
- the information processing apparatus 10 may be a game device or a personal computer, for example, and may implement an information processing function by loading a necessary application program.
- the display device 16 may be a general display such as a liquid crystal display, a plasma display, or an organic EL display. Moreover, the television provided with those displays and a speaker may be sufficient.
- the input device 14 may be any one of general input devices such as a game controller, a keyboard, a mouse, a joystick, or a touch pad provided on the screen of the display device 12, or any combination thereof.
- the connection between the information processing apparatus 10, the camera 122, the input device 14, and the display device 16 may be wired or wireless, and may be via various networks. Alternatively, any two or more of the camera 122, the information processing apparatus 10, the input apparatus 14, and the display apparatus 16, or all of them may be combined and integrally provided. Further, the camera 122 does not necessarily have to be mounted on the display device 16. There may be a plurality of block sets 120 depending on the contents processed by the information processing apparatus 10. The block set 120 and the information processing apparatus 10 establish a wireless connection using a Bluetooth (registered trademark) protocol, an IEEE802.11 protocol, or the like. Alternatively, one block of the block set 120 and the information processing apparatus 10 may be connected via a cable.
- a Bluetooth registered trademark
- IEEE802.11 IEEE802.11
- the block set 120 of this embodiment may be used as an input device for the information processing apparatus 10 or an output device. That is, in the former case, the information processing apparatus 10 performs information processing using the result of the user changing the position, posture, and shape of the block set 120 as an input value, and displays the result on the display device 16 as an image. In the latter case, the information processing apparatus 10 performs information processing by the user operating the input device 14, and as a result, the block set 120 itself is moved.
- the present embodiment may be configured so that any one of the modes can be realized, or only one of them can be realized.
- Fig. 2 shows an example of the appearance of individual blocks that make up a block set.
- the blocks are roughly classified into two types.
- One is a block configured to be communicable with another block and the information processing apparatus 10, and the other is a block having no communication means.
- the former is called “communication block” and the latter is called “non-communication block”.
- the communication block may incorporate various sensors for measuring physical quantities such as the direction, angle, and position of the block in addition to a communication mechanism with other blocks.
- the blocks are shown in the figure, as shown in the figure.
- It can have various shapes such as a mold block 102j.
- Each block is provided with a convex portion 104 and a concave portion 106 having a predetermined size and shape, and by inserting the convex portion 104 into the concave portion 106, the blocks can be connected at a desired position. Or you may comprise so that another block can be included by providing the recessed part 107 etc. of the shape which can insert another block itself like the rectangular parallelepiped block 102j and the cylindrical block 102k.
- the block set may further include joint blocks 102g and 102h that can be inserted into the recesses 106 of the different blocks at both ends in order to adjust the interval between the blocks to be connected. Further, the position / posture relationship between the connected blocks may be changed by rotating the joint block.
- the convex portion 104 and the concave portion 106 of the communication block also serve as terminals that enable signal transmission between the blocks.
- each end is provided with a connector having a structure according to a standard such as a bus provided inside the block.
- Signal transmission and physical connection between blocks can be achieved at the same time by employing various commonly used connectors or by providing a dedicated special connector.
- the connection means between the blocks is not limited to the connection between the convex portion 104 and the concave portion 106, and is realized by a hook-and-loop fastener, magnet, adhesive tape, adhesive, etc. May be.
- the signal transmission path prepared separately here may be a wireless communication mechanism.
- a certain block (in the case of FIG. 2, a quadrangular prism type block 102b) of the communication blocks is composed of two blocks, a bending / extending shaft 110 that enables them to bend and extend, and a potentiometer that detects an angle between the blocks.
- the bending and stretching mechanism includes a form in which the protrusions of the other block are joined to both ends of the bending and stretching shaft 110 penetrating one block, and a form in which two blocks are joined by a hinge or a metal that can bend and stretch.
- a mechanism having a plurality of degrees of freedom similar to a joint in a ball joint doll may be used, and is not particularly limited.
- the angle between the blocks may be changed continuously or may be changed in a plurality of stages.
- the direction of the shaft is not limited to that shown in the figure.
- the angle of the block which is a constituent element, is preferably structured so that it can be maintained even if the user releases the hand.
- the angle between the blocks may be measured by an angle sensor other than the potentiometer.
- an angle sensor other than the potentiometer.
- the blocks do not necessarily have to be connected.
- one block may be configured to be able to bend and stretch and be rotatable, and its bending and stretching angle and rotation angle may be measured.
- the mechanism for making the angle variable in this way is sometimes referred to as “joint”, and the two blocks whose relative angles change depending on the movement of the joint may be referred to as “link”.
- the communication block having the joint as described above may be able to control the joint angle according to a request from the information processing apparatus 10.
- the communication block is provided with an actuator such as a servo motor for controlling the joint angle.
- a certain block (in the case of FIG. 2, the plate-like block 102i) of the communication blocks may have an axis 109 that can rotate and protrudes from the side surface.
- the block By mounting wheels on the plurality of shafts 109, the block can be moved like a car. The movement or the user may push the block, or may be realized by a request from the information processing apparatus 10.
- the communication block is provided with an actuator such as a motor that rotates the shaft.
- the shaft 109 is an axle, a mechanism such as a rack and pinion that changes the direction of the wheel may be provided, and this can also be controlled by an actuator in accordance with a request from the information processing apparatus 10.
- Some communication blocks include motion sensing functions such as acceleration sensors, gyro sensors, geomagnetic sensors, and methods that track the posture using markers and shapes attached to cameras and objects.
- motion sensing functions such as acceleration sensors, gyro sensors, geomagnetic sensors, and methods that track the posture using markers and shapes attached to cameras and objects.
- One or more combinations of the above are mounted.
- the block in which the sensor is mounted, and the type and combination of the sensor to be mounted are determined by information processing realized using a block set. Alternatively, the user selects from various variations when assembling.
- a marker 108 may be provided in a certain block (in the case of FIG. 2, the quadrangular prism type block 102a) of the communication blocks.
- the marker 108 is for specifying a position in a three-dimensional space from a position and a size in an image photographed by a camera described later. Therefore, it is formed with a size, shape, and color that can be detected from the captured image by matching processing or the like.
- a sphere provided with a general light emitter such as a light emitting diode or a light bulb inside a spherical resin having light transmittance, a bar code, a two-dimensional code, or the like may be used.
- the marker 108 is provided in a plurality of blocks, the color may be changed for each block.
- the outer shell of the communication block and the non-communication block are typically made of synthetic resin, but the material such as metal or glass is not limited.
- the non-communication block does not incorporate a communication mechanism or the like, its material, shape, and size can be freely determined.
- various parts such as clothes made of cloth and the head of a doll made of rubber may be used, or additional items such as weapons and accessories may be used.
- a user's own work may be used.
- it may be a solid made by erasing an eraser, clay work, paper work, origami work.
- the block provided with the LED which light-emits predetermined color by the electricity supply from a communication block, or the display apparatus which displays an image may be sufficient.
- the information processing apparatus 10 uses information on the skeleton shape and posture of a block set that can be acquired by communication with a communication block, and information on the appearance shape captured by the camera 122 in a complementary manner.
- the state is specified with high accuracy. Therefore, the appearance of the block set can be freely expressed using non-communication blocks.
- a block having a shape including a communication block such as a rectangular parallelepiped block 102j and a cylindrical block 102k in FIG. 2, may be realized as a non-communication block.
- FIG. 3 shows only the structure of the communication block in the block set 120 shown in FIG. That is, the block set 120a in the figure is obtained by removing the rectangular block 102j and the cylindrical block 102k, which are non-communication blocks, from the block set 120 in FIG. 1, and the rectangular column blocks 102a, 102b shown in FIG. It is composed of a cubic block 102d and a joint block 102h. Among these blocks, the lower block of the quadrangular prism block 102b and the cubic block 102d are respectively included in the rectangular block 102j and the cylindrical block 102k which are non-communication blocks in the block set 120 of FIG. can not see.
- Such a structure composed of communication blocks can be regarded as constituting the skeleton of the entire block set 120.
- a part composed of communication blocks in the assembled block set 120 is referred to as a “core”.
- the posture and shape of the block set 120 are efficiently calculated by detecting necessary parameters with a motion sensor and a potentiometer provided in the communication block constituting the core.
- a motion sensor and a potentiometer provided in the communication block constituting the core.
- the connection position and the block type of each block (2) the inclination vector m1 of the quadrangular prism type block 102a or 102b, and (3) 2 constituting the quadrangular prism type block 102b.
- the angle ⁇ of each block, and (4) the length of each block L1, L2, L3, L4, and L5, the direction of each block, and hence the shape and orientation of the central axis of the block set 120 can be derived.
- the above (1) and (4) are found by signal transmission between blocks, and the above (3) can be measured by a potentiometer.
- a motion sensor is added to the quadrangular prism block 102a or 102b. If it is built in, it will be necessary and sufficient. Alternatively, the built-in block may be selected as the quadrangular prism block 102a or 102b.
- the position coordinates of the block set in the real-world three-dimensional space are specified using the image captured by the camera 122.
- the camera 122 as a stereo camera
- the absolute position of the block set in the three-dimensional space constituted by the depth direction with respect to the camera 122 and the viewing plane of the camera can be acquired.
- a technique for acquiring the position of a target object in a three-dimensional space based on the principle of triangulation using parallax in images taken by a stereo camera from different left and right viewpoints is widely known.
- depth or three-dimensional information acquisition means other than binocular stereoscopic vision may be used.
- a viewpoint moving camera may be used, and the position of the block set may be specified by a TOF (Time Of Flight) method using an infrared irradiation mechanism and an infrared sensor that detects the reflected light.
- a touch panel may be provided on the upper surface of the table on which the block set 120 is placed, and the position placed by the touch panel may be detected.
- the position may be specified based on a still image or a frame image of a moving image captured by the monocular camera 122 by using the square columnar block 102 a provided with the marker 108.
- the marker 108 is a light emitter having a known color, luminance, and size
- the marker image can be easily detected from the captured image.
- the position coordinates (x1, y1, z1) of the marker in the three-dimensional space can be specified from the position and size of the marker image on the image. Even when other markers are used, general image recognition techniques such as pattern matching and feature point extraction can be applied.
- efficient detection can be performed by applying an existing tracking technique.
- the marker 108 may be a device that emits invisible light such as infrared rays. In this case, a device for detecting invisible light is introduced separately, and the position of the marker 108 is detected. Similarly, a depth sensor, an ultrasonic sensor, a sound sensor, or the like may be used.
- the final position coordinates may be calculated by combining any two or more of the absolute position detection methods described above.
- FIG. 4 schematically shows the central axis of the core derived as described above. As illustrated, the position, posture, and shape of the central axis 124 are specified in a three-dimensional space.
- the three-dimensional space may be the camera coordinate system of the camera 122 or may be a transformation of the desired coordinate system.
- the position, posture and shape of the core and block set may be collectively referred to as “state”.
- FIG. 5 schematically shows an example of the internal configuration of the communication block.
- FIG. 5 schematically shows an example of the internal configuration of the communication block.
- the block 126a includes a battery 128a, a communication mechanism 130a, a memory 132a, a position sensor 134, and a motion sensor 136a.
- the communication mechanism 130a includes not only a wired communication mechanism that receives signals from other blocks via connection terminals but also a mechanism that performs wireless communication with the information processing apparatus 10.
- the memory 132a holds the identification number of the block 126a. The identification number is associated with information such as the size of the block 126a, the position of the concave portion, and the convex portion in the information processing apparatus 10, and the same identification number may be assigned to the same type of block. Or you may determine uniquely for every block so that it can utilize for the routing of the signal transmission within the assembled block set.
- the position sensor 134 is a sensor for acquiring the absolute position of the block 126a, and includes a marker for image recognition. However, in the case of a marker, the absolute position is detected by a combination with the camera 122 installed outside as described above.
- the motion sensor 136a is one of an acceleration sensor, a gyro sensor, and a geomagnetic sensor, or a combination of any two or more or a technique using a camera.
- the block 126b includes a battery 128b, a communication mechanism 130b, a memory 132b, and a motion sensor 136b. Each mechanism may be the same as described above for the block 126a, but the communication mechanism 130b may be configured only by a wired communication mechanism that receives signals from other blocks. Such a block is used in combination with a block 126a capable of communicating with the information processing apparatus 10. The same applies to the communication mechanisms of the other blocks.
- the block 126c includes a battery 128c, a communication mechanism 130c, a memory 132c, an angle sensor 138, and an actuator 139a.
- the block 126c is a communication block having a joint like the quadrangular prism block 102b in FIG. 2, and the angle sensor 138 is a sensor that detects a joint angle such as a potentiometer.
- the actuator 139a changes the joint angle according to a control signal from the information processing apparatus 10. For driving the actuator by the control signal, a general technique corresponding to the type of the actuator can be adopted.
- the block 126d includes a battery 128d, a communication mechanism 130d, a memory 132d, a rotary encoder 141, and an actuator 139b.
- the block 126d is a communication block having a rotatable shaft protruding outward like the plate-like block 102i in FIG. 2, and the block 126d itself can be propelled manually or automatically by mounting wheels. Alternatively, the shaft and the wheel may be integrally provided in advance.
- the rotary encoder 141 is a sensor that detects the amount of rotation of the wheel.
- the actuator 139b is a motor that rotates a wheel by a control signal from the information processing apparatus 10.
- the block 126e includes a communication mechanism 130e and a memory 132e. That is, the block 126e is a block that does not include a battery or a sensor. Therefore, it is used in combination with other blocks 126a and 126b equipped with batteries.
- the communication block in FIG. 5 is merely an example, and various sensors and other mechanisms may be combined in any manner.
- a portion where the block set moves not only a joint and an axle, but also a mechanism for changing a steering direction or displacing some blocks may be provided.
- These mechanisms may be moved by an actuator driven by a control signal from the information processing apparatus 10.
- you may provide LED and a display apparatus.
- a mechanism for energizing the connected non-communication block may be provided.
- any practical sensor may be incorporated.
- FIG. 6 shows the configuration of the block set 120 and the information processing apparatus 10 in detail.
- each element described as a functional block for performing various processes can be configured by a CPU (Central Processing Unit), a memory, and other LSIs in terms of hardware. This is realized by a program loaded on the computer.
- each block of the block set 120 includes a communication mechanism, a memory, various sensors, and an actuator. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.
- the block set 120 is formed by selecting and assembling individual blocks.
- FIG. 6 shows the functional blocks of the core portion of the assembled block set, and the communication blocks constituting the core block are the first block 142a, the second block 142b, the third block 142c,... .
- out of communication blocks constituting the block set 120 basically, only one block establishes communication with the information processing apparatus 10. Therefore, the role of the hub is given to the first block 142a. Then, information is transmitted from a communication block far from the first block 142a in connection relation, and the information of the entire core is aggregated in the first block 142a.
- a block relatively close to the first block 142a is referred to as “upper”, and a far block is referred to as “lower”.
- One block 142a may be determined in advance, or a block having a communication mechanism with the information processing apparatus 10 is provided with a switch or the like (not shown), and the block turned on by the user is the first block 142a. It is good.
- the first block 142a may be a block that first establishes communication with the information processing apparatus 10 in the assembly stage.
- the block becomes the second block 142b.
- the block becomes the third block 142c.
- the number of communication blocks constituting the core is not limited, and the configuration and operation can be considered in the same way even when the number is one or four or more.
- the first block 142a, the second block 142b, and the third block 142c include first communication units 143a, 143b, 143c, element information acquisition units 144a, 144b, 144c, and second communication units 146a, 146b, 146c, respectively.
- the second block 142b further includes a drive unit 148.
- the drive unit 148 may be provided in any other communication block.
- the first communication units 143a, 143b, 143c receive information transmitted from the directly connected lower blocks.
- the information received here includes an identification number of a block connected lower than the block, an identification number of a connection location, and a measurement result by a built-in sensor. When a plurality of blocks are connected, information is superimposed every time the block passes from the lowest block.
- the element information acquisition units 144a, 144b, and 144c each include a sensor built in the block and a terminal provided at a location where another block is connected, and a measurement result of the sensor and a location where a lower block is connected Information related to is acquired.
- the second communication units 146a, 146b, and 146c receive information received by the first communication units 143a, 143b, and 143c, including the identification number of the lower block, the identification number of the connected portion, and the measurement result by the built-in sensor.
- the information acquired by the element information acquisition units 144a, 144b, and 144c of the block is added and transmitted as a signal to the directly connected upper block.
- the second communication unit 146a of the first block 142a transmits the information to the information processing apparatus 10. Further, the second communication unit 146a receives processing start / end request signals, various signals necessary for establishing communication, and control signals for driving the actuators of the block set from the information processing apparatus 10, etc. It functions as an interface with the device 10.
- the signal is sequentially transferred from the first block 142a to the lower block. That is, the first communication units 143a, 143b, and 143c of each block transmit the signal to the directly connected lower block.
- the second communication units 146b and 146c in each block receive the signal from the directly connected higher-order block.
- the drive unit 148 of the second block 142b includes an actuator that changes the joint angle and rotates the axle, and the second block 142b is designated as a drive target in the control signal transmitted from the upper block, Move the actuator by the corresponding amount.
- the information processing apparatus 10 receives the information related to the core state from the first block 142a of the block set 120, the image captured by the camera 122, and the shape of the block set 120 based on the information related to the core state.
- a structure analysis unit 22 that identifies posture and position, a shape, posture and position of the block set 120, or an information processing unit 30 that performs predetermined information processing according to a user operation on the input device 14.
- a display processing unit 32 that generates a power image and outputs the generated image to the display device 16 and a drive control unit 34 that transmits a signal for controlling the operation of the block set 120 are included.
- the information processing apparatus 10 further includes a block information storage unit 24 that stores information related to individual blocks, a model data storage unit 26 that stores model data of a 3D object to be displayed on the display device 16, a block set, and a part of the 3D object. And a correspondence information storage unit 28 for storing motion correspondence information.
- the core information receiving unit 20 receives signals including the identification numbers of the communication blocks constituting the core, the connection locations thereof, and the information related to the measurement result by the built-in sensor, which are aggregated by the first block 142a of the block set 120.
- the structure analysis unit 22 acquires from the camera 122 data of moving images and still images obtained by capturing the block set 120. Then, the information received by the core information receiving unit 20 and the information obtained from the captured image are integrated, and the position, posture, and shape of the entire block set 120 are specified. Since the signal from the block set 120 and the image data from the camera 122 are input immediately, it is assumed that time correspondence is taken, but synchronization processing or the like may be performed depending on the required time resolution.
- the structure analysis unit 22 identifies the shape and orientation of the core in the block set 120 based on information from the core information reception unit 20.
- the information of L1 to L5 in FIG. 3 is derived based on the identification numbers of the communication blocks constituting the core.
- the connection position and the angle formed by the blocks are specified from the identification number of the actual connection location and the information of the angle sensor.
- the vector m1 in FIG. 3 is derived from the information of the motion sensor.
- Information relating to the position of the block set 120 in the three-dimensional space and the superficial shape of the block set 120 including non-communication blocks is specified based on a captured image transmitted from the camera 122, a depth image generated from the captured image, or the like. .
- an image of a communication block included in the core such as the marker 108 in FIG. 3 is detected from the image, and the position is derived from the depth image and the like as a reference portion.
- the positional relationship between the core and the non-communication block is determined from the structure of the core connected to the reference region and the positional relationship of the non-communication block image with respect to the reference region image.
- the position, posture, and shape can be specified.
- the block information storage unit 24 stores basic information of each block used as a block set.
- the basic information is information in which an identification number given in advance to the block is associated with information regarding a shape, size, and a location where another block can be connected.
- this is information in which an identification number previously assigned to the block is associated with appearance features such as color, pattern, material, and texture.
- the more detailed such external features the more accurate the block identification accuracy.
- information on non-communication blocks may not be stored.
- the information processing unit 30 executes processing to be performed according to the state of the block set 120 specified by the structure analysis unit 22 or a user operation via the input device 14. For example, when the block set 120 is assembled, a 3D object representing the shape of the block set and a model 3D object associated with the 3D object are displayed. Then, the displayed 3D object is moved in accordance with the movement of the block set 120. Alternatively, a computer game is started and progressed according to a user operation via the input device 14, and the block set 120 is moved accordingly.
- the model data storage unit 26 stores data necessary for rendering the object model that the information processing unit 30 displays on the display device 16.
- This object model may be designed in advance such as a character appearing in a game, or may be created by a user in accordance with an assembled block set.
- the information processing unit 30 further performs processing for associating a block set such as a joint and a wheel with parts of an object and further associating movements of both parts.
- the information processing unit 30 may set all the correspondences, or may display a setting screen so as to associate the user and accept a setting input. Or you may combine them suitably.
- the correspondence information storage unit 28 stores information related to the correspondence relationship between the parts and movements set in this way.
- the user creates a block set freely, not only the position but also the shape and posture can be linked with the object on the screen.
- the movements of both may not necessarily be completely the same, and various changes can be set by associating the movements.
- the movement may not be reflected in real time.
- by storing the temporal change of the state of the block set moved by the user it is possible to realize a mode in which the corresponding object reproduces the movement at an arbitrary timing. As a result, it is possible to create a motion of a character in a computer game or animation with an easy operation.
- the drive control unit 34 transmits a control signal to the block set 120 in accordance with a request from the information processing unit 30 in a mode in which the information processing apparatus 10 moves the block set 120.
- the signal to be transmitted varies depending on the control method, and a technique generally used in the field of robot engineering or the like may be appropriately employed.
- the transmitted control signal is received by the second communication unit 146a of the first block 142a in the block set 120, and the signal transmission within the block set 120 causes the drive unit 148 of the target block (second block 142b in the case of FIG. 6). It is reflected in the operation.
- the control signal may be directly transmitted to the target block by wireless communication or the like.
- the display processing unit 32 creates image data as a result of the processing performed by the information processing unit 30 and displays the image data on the display device 16.
- the object is drawn according to the movement of the block set 120 at the output frame rate of the display device 16 and is output to the display device 16 as a video signal.
- a general computer graphics technique can be applied to the drawing process itself.
- the display processing unit 32 further causes the display device 16 to display a screen for setting the correspondence between the block set 120 and the object part and the movement of the object.
- a screen on which the user confirms or corrects the set correspondences may be displayed.
- the display processing unit 32 appropriately displays an image corresponding to information processing executed by the information processing unit 30 such as a game screen.
- FIG. 7 schematically shows an example of information transmission paths and information transmitted in the block set 120.
- each circle with a number written therein represents a block, and a straight line between the circles represents a state in which the blocks are connected.
- the number in the circle is the identification number of each block.
- the block with the identification number “1” corresponds to the first block 142 a in FIG. 6 and establishes communication with the information processing apparatus 10.
- the blocks with the identification numbers “2” and “3” in FIG. 7 are connected in series to the block with the identification number 1, it can be understood that they correspond to the second block 142b and the third block 142c in FIG. it can.
- a plurality of blocks may be connected to one block.
- the block with the identification number “2” and the block with the “5” are connected to the block with the identification number “1”.
- the block with the identification number “3” and the block with the “4” are connected in series in this order to the block with the identification number “2”.
- the block with the identification number “5” is connected in parallel with the block with the identification number “6” and the block with the “7”.
- a block having no identification number is connected to the block having the identification number “6”, and a block having the identification number “8” is connected to the block.
- the block having no identification number corresponds to a non-communication block.
- information transmission is basically transmitted from the lower block to the upper block.
- the content of the information to be transmitted is shown with an arrow indicating the transmission direction.
- information transmitted from the block having the identification number “3” to the block “2” is indicated as [3: J2 (4)].
- This is a signal having a format of “own identification number: identification number of a connection location provided in a block (identification number of a block connected to the block)”.
- the block of the identification number “4” is connected to the location of the identification number “J2”.
- the format and contents of the information are not limited with the same figure.
- the block having the identification number “3” receives the signal from the identification number “4”, the number of the terminal that received the signal is associated as the identification number of the connection location, and further, the identification number “3” is also associated.
- the block with the identification number “2”, which is one level higher. The content of transmission of this signal is [3: J2 (4)] as described above.
- the block of the identification number “2” is also a signal in which its own identification number, the identification number of the connection location (“J5” in the example in the figure), and the identification number “3” of the connected block are associated with each other. 2: J5 (3)] is generated.
- the block with the identification number “2” has a built-in sensor
- a signal in which the measurement result is associated with its own identification number is also generated.
- the measurement result is represented as “result”, but actually, a specific numerical value is substituted according to the type of sensor.
- the block with the identification number “2” and the data generated in this way and the data transmitted from the lower block, that is, [3: J2 (4)], are converted into the block with the identification number “1” which is one higher level. Send.
- these signals need not always be transmitted at the same time, and only the information may be transmitted when the contents of the signal once transmitted are changed.
- the blocks with the identification numbers “6” and “7” connected to the block with the identification number “5” do not have a built-in sensor and the connection location is uniquely determined, the identification number is obtained from these blocks. Similar to the block “4”, the signals [6: ⁇ ] and [7: ⁇ ] are transmitted to the block having the identification number “5”, respectively. Another block is connected to the block with the identification number “6”. However, since the block is a non-communication block, information from the block cannot be obtained.
- the block with the identification number “5” generates a signal in which the identification number of the connected portion and the identification number of the connected block are associated with its own identification number, and the block with the identification number “1” which is one higher level is generated.
- Send As shown in the figure, when a plurality of blocks are connected, they are collectively referred to as [5: J3 (6), J8 (7)] or the like.
- “J3” and “J8” are identification numbers of connection locations to which the blocks of identification numbers in parentheses are connected.
- the core information of the block set is collected in the block having the identification number “1”.
- the block with the identification number “1” generates a signal in which the identification number of the connection location is associated with the identification number of the connected block and the identification number of the block connected thereto. And it transmits to the information processing apparatus 10 with the signal transmitted from the low-order block.
- the information processing apparatus 10 can sequentially acquire the identification numbers of the blocks constituting the core, the connection relationship between the blocks, and the measurement results in the blocks incorporating the sensors.
- the block having the identification number “8” may directly transmit its own data to the information processing apparatus 10.
- the information processing apparatus 10 is connected to the block of the identification number “6” by transmitting its own identification number and the measurement result directly to the information processing apparatus 10. It is possible to grasp that there is a block, and to estimate the shape of the block and the approximate connection status. As the number of sensors built in the block with the identification number “8” increases, the accuracy of the information improves. By combining blocks from which a plurality of pieces of position information can be acquired, the structure of the block in the blind spot from the camera 122 can be specified with high accuracy.
- FIG. 8 shows a data structure example of basic information of communication blocks stored in the block information storage unit 24 of the information processing apparatus 10.
- the communication block information table 160 includes an identification number column 162, a shape column 164, a size column 166, and a connection location column 168.
- the identification number column 162 an identification number previously assigned to the communication blocks constituting the block set is described.
- the shape column 164 the type of the shape of each communication block, that is, the block type as illustrated in FIG. 2, such as “square prism” and “cube” is described.
- the size column 166 describes the horizontal width, depth, and vertical length of each communication block.
- connection location column 168 the connection location provided in each communication block is described in association with its identification number.
- connection location identification number surface number, x coordinate, y coordinate in the surface
- the face number is uniquely determined in advance for each face of the block.
- the communication block with the identification number “1” is a quadrangular prism block having a width of 4 cm, a depth of 4 cm, and a vertical length of 8 cm.
- the connection location with the identification number “J1” is at the position of the coordinates (2, 2) on the first surface.
- the connection location with the identification number “J2” is at the position of coordinates (1, 2) on the second surface.
- the format of the notation is not particularly limited.
- FIG. 9 is a diagram for explaining basic processing for specifying the state of a block set including non-communication blocks.
- the upper left of the figure shows the state of the core 170 specified based on the information received by the core information receiving unit 20. What is specified from this information is the connection relationship of the communication blocks and the core shape based thereon. However, if a position sensor is provided inside, the position in real space can also be determined.
- the structure analysis unit 22 generates a depth image 172 from the image captured by the camera 122.
- the depth image is an image in which the object in the field of view of the camera 122 is represented by the distance from the camera as a pixel value, and can be created by using the camera 122 as a stereo camera as described above.
- the depth image 172 in the figure schematically shows an image having a lower brightness as the distance is longer, and an image of the entire block set 120 appears without distinction between communication blocks and non-communication blocks.
- a color image taken by the camera 122 may be used. Then, by taking the volume difference between the core 170 viewed from the camera 122 side and the block set appearing as the image of the depth image 172, the state of the non-communication block excluding the core portion of the block set can be specified.
- the shaded portion is a non-communication block obtained as a difference.
- the position, posture, and shape of the entire block set 120 including the core and the non-communication block can be specified. If the image of the block set 120 can be identified by background separation or the like, and the image and the core can be aligned based on the apparent size of the core, only a general captured image is used regardless of the depth image. May be used.
- FIG. 10 shows an example data structure of basic information of non-communication blocks stored in the block information storage unit 24 of the information processing apparatus 10.
- the non-communication block information table 180 includes an identification number column 182, a shape column 184, a size column 186, and a color column 188.
- identification number column 182 identification numbers assigned in advance to the non-communication blocks constituting the block set are described. Blocks having the same shape, size, and color may have the same identification number.
- shape column 184 the shape type of each non-communication block, that is, the type of block as illustrated in FIG. 2, such as “cuboid” and “cylinder” is described.
- the size column 186 describes the horizontal width and depth (or diameter) and vertical length of each non-communication block.
- color column 188 describes the color of each non-communication block.
- the information in the shape column 184, the size column 186, and the color column 188 may be information such as polygons and textures as in the object model data in 3D graphics. Further, the information held in the non-communication block information table 180 is not limited to that shown in the figure. For example, if the number of communication blocks that can be connected is limited due to the shape of the recess, etc., if the identification number of the connectable communication block is retained, the communication block belonging to the specified core is connected to it. Narrow down non-communication blocks.
- the structure analysis unit 22 refers to the non-communication block information table 180 and identifies non-communication blocks that respectively match the images of portions other than the core in the depth image 172 shown in FIG.
- the shape of the block is traced and the exact shape is identified by tracking the movement of the block set on the assumption that it does not exist in the initial state. If a part is concealed and the shape cannot be determined even by referring to the non-communication block information table 180, either one of the candidate shapes is assumed or a certain part of the concealed part is assumed. The accuracy of shape recognition is improved by gradually correcting the time.
- FIG. 11 is a diagram for explaining processing for specifying the shape of a block set in a time-development manner.
- the vertical axis in the figure represents time, and it is assumed that time has elapsed from time “T1” to “T2”.
- the block set 190 has a cylindrical non-communication block (displayed with shading) in the lower half of a square column communication block with a marker (displayed with white outline) as shown in the uppermost part of the figure. It is installed.
- T1 it is assumed that the camera 122 has photographed the block set 190 placed on the horizontal plane from the front as shown in the drawing. In this case, as shown in the photographed image 192a, only the side surface of each block appears as an image.
- the remaining portion is apparently a quadrangle that is an image of the side surface of the non-communication block (depth image). 198a). That is, at time T1, there is a possibility that the three-dimensional shape of the non-communication block cannot be specified. However, depending on the resolution of the depth image, the distinction of whether it is a cylinder or a rectangular parallelepiped may be determined by the presence or absence of the curvature of the front surface. Further, among the blocks registered in the non-communication block information table 180, when only one non-communication block having a matching size, aspect ratio, etc., the shape can be specified.
- the depth image 198a represents volume data obtained by taking a volume difference between the image of the block set in the depth image acquired from the photographed image and the core, and is not necessarily generated as an image. The same applies to the subsequent drawings.
- the structure analysis unit 22 detects a candidate non-communication block from the non-communication block information table 180 and assumes that it is one of them.
- the same plane as the communication block whose shape is specified is assumed as an unspecified surface of the non-communication block.
- a block set shape 200 when a non-communication block is assumed to be a rectangular parallelepiped is shown.
- the block set shape 200 shown in the figure is a shape recognized by the information processing apparatus 10 at the time T1, and is not necessarily used for display. For example, while executing an application that displays the state of the block set as a 3D object as it is, the assumed shape shown in the figure may be drawn. Alternatively, it may be used as a base for correcting the shape in the next time step without any display.
- the assumed shape is used to identify the shape of the non-communication block in a time-developing manner and to recognize the shape change of the block set being assembled by the user in real time and efficiently. This information is stored for at least a predetermined period and used for later processing.
- the shape of the block set is managed by giving structural identification numbers (hereinafter referred to as “element numbers”) to the communication blocks and non-communication blocks constituting the block set.
- element numbers “# C1” are assigned to the communication blocks of the block set, and “# N1” is assigned to the non-communication blocks.
- the communication block and the non-communication block are distinguished by alphabets “C” and “N”, but this does not limit the format of the element number.
- element numbers are associated with the identification numbers assigned in advance to each block shown in FIGS. 8 and 10, and the connection relationship between the non-communication block and the communication block (connection surface, connected position, Along with information on the orientation).
- structure data information regarding the structure of the entire block set is referred to as “structure data”.
- the captured image 192b at time T2 is an image that includes some upper surfaces of the communication block 194 and the non-communication block 196, as illustrated.
- the remaining portion includes the upper surface of the cylinder of the non-communication block (depth image 198b). From the shape of the image, it can be determined that the non-communication block is not a rectangular parallelepiped assumed at time T1, but is likely to be a cylinder. By repeating such correction as the posture of the block set changes, the reliability of the shape recognition of the block set increases.
- the structure analysis unit 22 replaces the shape of the non-communication block assumed to be a rectangular parallelepiped with a cylinder at time T1.
- the accurate block set shape 202 is recognized.
- This processing is actually processing for correcting the identification number of the rectangular parallelepiped block associated with the element number # N1 to the identification number of the cylindrical block.
- the polygon model may be corrected.
- FIG. 11 illustrates a block set having a very simple structure. However, actually, for example, a non-communication block is further connected behind the non-communication block, or other blocks are overlapped. It is possible that only a part of the non-communication block is visible.
- a method of gradually identifying only the part that is found as the user tilts or changes direction with the block set may be performed.
- a display that prompts the user to rotate the block set with respect to the camera 122 so that photographing can be performed from a plurality of directions may be performed.
- the user may be able to specify an actual block.
- the shape may be specified from the photographed image by attaching a two-dimensional bar code representing the shape or a graphic marker to each non-communication block.
- FIG. 12 is a diagram for explaining processing for specifying the shape of a block set whose structure changes during assembly or the like.
- the representation of the figure is the same as in FIG. 11, with the vertical axis as the time axis, the captured images 192b to 192d at each time, the depth images 198b to 198d of the image excluding the core portion, and the recognized block set shape 202. , 210, 216 are shown in order from the left.
- the time T2 at the top of the figure corresponds to the time T2 in FIG. 11, and the captured image 192b, the depth image 198b, and the recognized block set shape 202 are the same.
- the structure analysis unit 22 recognizes the connection of the new non-communication block 204 by comparing the depth image 198b at the previous time T2 with the depth image 198c at the current time T3.
- the non-communication block 196 that existed even at the previous time may have changed orientation with respect to the camera, and may not be distinguished from the newly connected block. Therefore, the structure analysis unit 22 continues to perform position and orientation tracking on the non-communication block that has been recognized once, so that the same block can be recognized as the same even if the position and orientation change.
- a general tracking technique using an active contour model may be applied.
- the change in the orientation of the non-communication block connected to the core may be derived from the change in the position and orientation of the core that can be specified by the signal from the core.
- the non-communication block information table 180 is referred to as described with reference to FIG.
- the shape of the non-communication block is specified.
- the connection relationship with the core is specified.
- the block set shape 210 at time T3 can be recognized as shown.
- a new element number “# N2” is assigned to the added non-communication block, and it is associated with the identification number assigned in advance to the block, and the connection relationship with the communication block is recorded, thereby obtaining the structure data. Update.
- the relative speed between the block set including the core and the block in the field of view may be monitored. In this case, when the relative speed becomes 0, it is determined that a new block is connected.
- time T4 after time T3 it is assumed that the user reconnects the previously connected non-communication block 196 to a non-communication block 214 of another shape (captured image 192d).
- the depth image 198d at this time is compared with the depth image 198c at the previous time T3, it can be seen that the shape of the image 215 of the non-communication block is changed.
- the non-communication block information table 180 is referred to as before.
- the shape of the new non-communication block is specified. Since the connection relationship with the core is the same as that previously connected, the previous information can be used as it is. Therefore, by updating only the block identification number associated with the same element number “# N1” as before in the structure data to the one specified this time, the shape 216 of the block set at time T4 is as illustrated. It will be recognized.
- FIG. 13 is a diagram for explaining processing for specifying the shape of a block set that deforms due to a change in the joint angle of the core.
- the representation of the figure is the same as in FIGS. 11 and 12, with the vertical axis as the time axis, the captured images 192e to 192g, the depth images 198e to 198g at each time, and the recognized block set shapes 218, 222, and 224 to the left. They are shown in order.
- the shape of the block set is different from that shown in FIGS. 11 and 12, and the non-communication blocks 228 and 230 are respectively mounted so as to include the upper and lower links of the communication block 226 having markers and joints.
- the non-communication blocks 228 and 230 are respectively mounted so as to include the upper and lower links of the communication block 226 having markers and joints.
- the structure analysis unit 22 assigns element numbers “# C1” and “# N1” to one (series) communication blocks and one non-communication block regarded as one, and associates them with the identification numbers of the respective blocks. By recording the connection relationship between the two as structure data, the shape 218 of the block set is recognized as shown in the figure.
- the structure analysis unit 22 acquires the core state included in the non-communication block from the core information separately transmitted from the block set. In other words, the joint angle of the communication block is also grasped. Therefore, when the joint angle of the communication block inside changes at an angle corresponding to the deformation of the non-communication block, it can be determined that the deformation of the non-communication block is caused by the bending and stretching of the core.
- the distinction between the upper and lower blocks is obvious from the tilt angle and block shape, but if the tilt angle is small or the block is of a shape or material that does not stand out even if the angle changes It is possible that block breaks are difficult to understand.
- the dividing plane 220 perpendicular to the core axis when the joint is not bent as the position of the joint and dividing the block by this dividing plane, the block originally regarded as one is divided into two blocks. It may be divided.
- the plane of the dividing surface 220 is assumed as the top surface of the lower block and the bottom surface of the upper block that were originally in contact with each other, and correction is performed in the subsequent shape specifying process.
- the non-communication block is composed of two blocks by the processing at time t2, even if the joint of the block set returns to the state at time t1 when the joint of the block set is not bent (captured image 192g). , Depth image 198g), the information processing apparatus 10 can recognize that two non-communication blocks are connected (block set 224). Thereafter, even if the core joint is bent and stretched, the non-communication block including the link is managed individually, so that it is not necessary to newly specify the shape.
- each block may be managed individually based on the information.
- the modification of the structure data can be limited to the part where the change has occurred. It is advantageous.
- each non-communication block may be associated with another object model, and at the time of display, the portion of the non-communication block may be replaced with the object model associated therewith and rendered. .
- the block has a rough shape such as a rectangular parallelepiped, it is converted into a real object and displayed at the time of display.
- the time change of the block set is acquired for both the core and the non-communication block. Therefore, various modes can be realized by storing the time change as a history for a predetermined time and reading and using it as necessary. For example, when it is desired to return the block set being assembled to the state several stages before, when the user makes a request via the input device 14, the state of the block set at the stage is displayed as a 3D object. The user can return the actual block set to the previous state while viewing it. If the virtual viewpoint for the block set rendered as a 3D object is changed by the input device 14, the state of the previous block set can be confirmed from a plurality of directions. If the history is stored for a long time, a block set created in the past can be displayed as an object for each production stage, and an actual block set can be assembled and reproduced following that.
- the information of the once removed block is not deleted immediately from the structure data, but the original element number is assigned as it is and removed. You may manage with the flag etc. which show. In this case, when another block is attached to the same location, the same element number is given to a plurality of non-communication blocks, but it is possible to determine whether it is current information or past information by a flag.
- the object of the block set in the previous state can be displayed by detecting the original block from the structure data and returning it.
- FIG. 14 is a flowchart showing a processing procedure for specifying the state of a block set including non-communication blocks.
- a user inputs an instruction to start processing such as selecting an application in the information processing apparatus 10 by turning on one of the blocks of the block set 120 including a battery, and inputting the instruction via the input device 14. When it starts.
- the structure analysis unit 22 causes the camera 122 to start photographing a block set (S10).
- a predetermined initial image is displayed on the display device 16 by the cooperation of the information processing unit 30 and the display processing unit 32 (S12).
- the image displayed at this time may be a live image captured by the camera 112, an image created in advance as a part of an application such as a game image, or the like.
- the structure analyzing unit 22 determines the 3 of the core based on the information.
- the posture and shape in the dimensional space are specified (S14, S16).
- the structure analysis unit 22 acquires a captured image from the camera 122, generates a depth image based on the acquired image, and acquires the entire image and position of the block set (S18). Since there is a possibility that an object other than the block set, the background, the user's hand, and the like are reflected in the photographed image, processing for removing these images is performed at any stage.
- SLAM Simultaneous Localization And Mapping
- color segmentation and dictionary-based object recognition
- S20 It is specified how the core is positioned with respect to the overall image of the block set thus extracted (S20). Specifically, as described above, a part having a characteristic shape, color, pattern or the like such as a core marker is detected from the image of the block set, and the core position is determined based on the part. Then, based on the shape and posture of the core specified in S16, the appearance of the core from the camera is specified. That is, since this is an image of the block set when there is no non-communication block, the image and position of the non-communication block are obtained by taking the volume difference from the entire image of the actual block set (S22).
- SLAM Simultaneous Localization And Mapping
- the state of the non-communication block has been acquired at the time step t-1 before that, it is compared with the image of the current non-communication block (S24), and it is confirmed whether there is a change (S26). ).
- the shape specification of the non-communication block and the update processing of the structure data of the block set are performed (S30).
- time step t 0, the state of the non-communication block acquired in S22 is regarded as a change, and structure data is newly created based on the change.
- the processing of S30 is performed by adding or removing a non-communication block, replacing it with another non-communication block, or changing the shape of a non-communication block due to bending of the core joint. Cases are divided and processing to be performed for each is performed. That is, when an element is added, an element number is assigned, and the connection relationship with the core is recorded after associating the element number with the shape and the connection direction. If excluded, it is managed by deleting it from the structure data or setting a flag indicating that it has been excluded. When the block is replaced with another non-communication block, the block shape or connection direction corresponding to the corresponding element number is updated.
- the structure data may be represented as 3D graphics model data.
- the focus has mainly been on the shape change of the non-communication block, but the structural data can be updated by the same process even when the color or texture of the non-communication block changes.
- the remaining non-communication block image area is fed back to the captured color image. Identify color and texture changes.
- FIG. 15 exemplifies the relationship between the block set and display that can be realized by the mode described so far.
- a block set 240 including communication blocks and non-communication blocks is rendered as a 3D object 242 as displayed by the information processing apparatus 10 and displayed on the display device 16. Since the camera 122 acquires the shape, posture, color, etc. of the non-communication block, it can be recognized even if it is not registered in the non-communication block information table, for example, a user's own. For example, in the same figure, even if the user writes the face of a doll assembled as a block set 240 with magic or puts a sticker, the same face doll or doll with a sticker is drawn as a 3D object. .
- the block set in the field of view of the actual camera 122 is reversed and displayed as an object by mirror processing. Since the block set 240 faces the camera 122 on the display device 16, the 3D object 242 on the display is displayed in a state where the block set 240 is reflected in a mirror. On the other hand, since the information processing apparatus 10 recognizes the three-dimensional shape of the block set 240 as described above, the virtual viewpoint with respect to the 3D object 242 can be freely changed. Therefore, an image on the back side of the doll that is a blind spot from the camera 122 at this time can also be displayed without rotating the block set 240. However, depending on the shape specifying process so far, the details of the shape on the back side may not be deterministic.
- the state recognition of the actually assembled block set is based, but it may be possible to virtually connect what is not actually connected.
- images 244 and 246 of options for the items to be equipped are displayed.
- the information processing apparatus 10 moves to the corresponding part of the recognized block set.
- the structure data may be updated to indicate that the item has been connected.
- the item as an option holds a three-dimensional shape in the block information storage unit 24 or the model data storage unit 26 of the information processing apparatus 10.
- items on the screen are also held in the 3D object 242 according to the movement of the block set in the real space, regardless of whether it is actually connected as a block set or virtually connected. It can be expressed as if it moves in the virtual world. If a user actually creates a real object created by himself / herself using a 3D scanner and acquires three-dimensional shape information, the above item can be used instead. That is, even if there is an actual non-communication block, it can be displayed on the screen as if it was connected without actually connecting.
- FIG. 16 illustrates the relationship between the block set and the display when the appearance is set for the block set.
- the block set 248 itself has a simple configuration such as only a communication block.
- the information processing apparatus 10 displays the recognized state of the block set on the display device 16 as it is or as a 3D object 250 by inverting the left and right.
- candidate 3D object option images 252 a, 252 b, and 252 c are displayed for each part such as a face, for example.
- the user virtually connects to the 3D object 250 by performing selection input from the images 252a, 252b, and 252c for each block of the block set or for each part composed of a plurality of blocks. Finalize.
- 3D objects having various appearances can be freely created, and the 3D objects can be moved in accordance with the actual movement of the block set 248, or the virtual viewpoint can be changed.
- virtual 3D objects may be connected on the display.
- the completed 3D object targets create a block set for each part and the corresponding appearance, and finally connect the block set to create a complete shape with a detailed appearance set to the detailed part. It is possible to realize such a mode as displayed.
- a virtual appearance 3D object that has been created is saved and another 3D object with a different appearance is created using the same block set, a plurality of 3D objects created in this way are then stored. You may connect only in the virtual world. In this case, it is possible to realize a mode in which all connected 3D objects move in accordance with the block set as the 3D object finally associated with the block set is linked with the block set.
- the motion of the block set is reflected in the 3D object in the virtual world.
- the motion of the 3D object may be reflected in the motion of the block set.
- a character in the game executed by the information processing unit 30 a 3D object representing a block set assembled by the user or a 3D object virtually created by the user corresponding to the block set is displayed.
- the user performs a game operation using the input device 14, so that when the 3D object moves, the actual block set also moves.
- the drive control unit 34 transmits a signal for controlling the drive unit 148 of the block set so as to match the movement of the 3D object.
- FIG. 17 illustrates the relationship between the block set and the display when one 3D object is associated with the assembled block set.
- the user creates a block set 260 that looks like a crane truck and selects a crane truck 262 as a 3D object on the display.
- a plurality of joints 264a, 264b, and 264c are provided in a block that looks like a crane, and wheels 266a, 266b, 266c, and 266d are attached to a block that becomes a base.
- the block set 260 is a thing that the user can assemble freely, and therefore, the portion that the user wants to move as a crane, the front-rear relationship of the crane truck, and the like largely depend on the user's intention. Therefore, a method for setting the correspondence relationship between the freely assembled object and the motion of the 3D object prepared in advance will be described.
- FIG. 18 illustrates information necessary for associating the motion of the block set with the 3D object.
- the left side of the figure shows a schematic diagram of a block set 270 corresponding to the block set 260 of FIG. 17, and the right side shows a schematic diagram of a crane vehicle 272 corresponding to the crane vehicle 262 of the 3D object of FIG.
- the coordinate system used when the information processing apparatus 10 recognizes the shape is set in the block set 270, and the local coordinate system for the 3D model is set in the crane vehicle 262. . Since both are set independently, the directions of the block set 270 and the crane vehicle 272 in each coordinate system also vary.
- the shape of the block set 270 and the crane vehicle 272 in a two-dimensional plane composed of the x-axis and y-axis when defined in a state parallel to the x-axis of each coordinate system That is, it represents a side shape.
- the direction of the block set 270 and the crane vehicle 272 with respect to each coordinate system is opposite to the x-axis.
- the three joints of the block set 270 are RJ1, RJ2, and RJ3, and the three joints of the crane vehicle 272 are VJ1, VJ2, and VJ3.
- the four wheels of the block set 270 are RA1, RA2, RA3, RA4, and the caterpillar of the crane truck is VA1, VA2.
- the wheels RA3 and RA4 and the caterpillar VA2 are on the side opposite to the display surface and are originally concealed.
- FIG. 1 the shape of the block set 270 and the crane vehicle 272 in a two-dimensional plane composed of the x-axis and y-axis when defined in a state parallel to
- the joints RJ1, RJ2, and RJ3 of the block set 270 are associated with the joints VJ1, VJ2, and VJ3 of the crane vehicle 272, respectively, and the wheels RA1,
- RA2 is associated with a caterpillar VA2 (not shown) and the wheels RA3 and RA4 are associated with the caterpillar VA1.
- the positions of the joints of the cranes are different from each other. Therefore, for example, if the joints corresponding to the two are bent at the same angle, it may be considered that the movement is not as expected by the user.
- a physical movable range exists in the joint angle of the block set 270, and a movable range on the model also exists in the joint of the crane vehicle 272. If such constraint conditions are not taken into account, it is possible that the 3D model bends at an angle where it cannot be possible, or the joint angle of the block set reaches a limit and stops moving any more. Further, due to the difference in the direction with respect to the coordinate system, it may happen that the crane 272 on the display is moved backward while the block set 270 is moved forward. In order to prevent such problems from occurring, it is possible to link the real object with the object in the virtual world through the process of standardizing the coordinate system, setting the corresponding part, and correlating the specific movement of the corresponding part. Harmonize.
- FIG. 19 is a flowchart illustrating a processing procedure in which the information processing apparatus 10 associates a block set with a motion of a 3D object.
- the user inputs an instruction request for starting association with a 3D object via the input device 14.
- the information processing unit 30 of the information processing apparatus 10 receives the request (S40)
- the information processing unit 30 acquires information on the structure of the assembled block set from the structure analysis unit 22 (S42).
- a suitable model is extracted as a candidate based on the shape of the block set, etc., among the 3D objects for which drawing data is prepared in the model data storage unit 26 (S44).
- the model data storage unit 26 stores drawing data of various object models such as crane vehicles and metadata representing the characteristics of each model in association with each other.
- This metadata is roughly divided into features as objects, structural features, and appearance features.
- Characteristic features include items such as people, animals, vehicles, food, movies that appear as characters, animations, proper names such as game names and character names, primitive times, medieval times, modern times, the future, specific years, etc. Related times, etc.
- the structural features include the number of joints, the movable angle and degree of freedom of each joint, the length and thickness of the link, the joint connection relationship, the driving force, the tire diameter, and the like.
- Appearance features include color, surface shape, number and volume of non-communication blocks, coverage of non-communication blocks in the block set, number of LEDs and display devices if equipped, type of display device, etc. .
- the model data storage unit 26 associates such various features with each model. The more features that are associated, the better the accuracy of candidate extraction. However, this is not intended to associate all features.
- the information processing unit 30 extracts a candidate model having a high similarity to the actual block set based on the structural features and appearance features from the information related to the shape and structure of the block set acquired in S42.
- Similarity evaluation value (N RJ ⁇ N VJ ) ⁇ w J + (N RA ⁇ N VA ) ⁇ w A
- w J and w A are weights for the evaluation of the number of joints and the evaluation of the wheels, and are determined by the importance of both. The closer this evaluation value is to 0, the higher the degree of similarity.
- the block set tends to have many joints and wheels, and when the evaluation value is negative, it means that the 3D object tends to have many joints and wheels. If there is a 3D object with an evaluation value of 0, it is extracted as the most promising candidate model.
- the 3D object having the negative evaluation value is extracted with priority. This is because the more the 3D object has more joints and wheels, the more detailed movement can be expressed on the screen, and the more detailed movement of the block set can be expressed. Prior to such evaluation of similarity, candidates may be narrowed down based on features selected by the user from features as objects. A feature, a structural feature, and an appearance feature may be combined and extracted as appropriate, or a feature other than the feature may be specified by the user.
- the information processing unit 30 displays the plurality of candidate models extracted in this manner on the display device 16 and accepts a selection input made by the user via the input device 14 or the like (S46).
- the example of the model selected by this is the crane vehicle 272 shown in FIG.
- a common coordinate system is set for the object on the block set and the image (S48).
- the parameters that determine the posture and movement direction of the block set can be handled in the same manner in the 3D object. For example, if the forward movement of the block set 270 in FIG. 18 is the negative direction of the x axis, the coordinate system is set so that the forward movement of the 3D object in the crane vehicle 272 is also the negative direction of the x axis.
- the definition of the joint angle can be made common, and when the joint angle changes, it can be properly determined which link has moved with respect to the joint.
- the various parameters defined in the common coordinate system are reflected in the drawing of the 3D object by converting the coordinates to the values in the local coordinate system that were originally set for the 3D object.
- the information processing unit 33 sets a common coordinate system so that the directions of both are the same.
- the information processing unit 30 may set the coordinate system by adjusting the orientation of the 3D object on the screen so that the user matches the orientation of the block set, and using the orientation as a reference. Thereby, even if it is a block set in which front and rear are unclear, it can be linked with the 3D object in the direction intended by the user.
- a corresponding part is set between the block set and the 3D object (S50).
- this processing can be performed collectively by the information processing unit 30. That is, the information processing unit 30 geometrically derives and associates the corresponding joints of both based on the structure of the block set acquired in S42 and the structure of the object model selected in S46. Alternatively, a setting screen is displayed so that the user can make settings.
- the locations to be associated here are typically the joints and wheels in FIG. 18, but if the location of the block set is to reflect changes such as bending, rotation, or displacement, the corresponding points on the 3D object side are Allow users to set freely. This makes it possible to move an animal that does not have a joint, such as a mollusk, or bow an object that does not actually bend.
- the location to be associated does not necessarily have a one-to-one relationship. That is, a plurality of joints of the block set may be associated with one joint of the 3D object, or a plurality of joints of the 3D object may be associated with one joint of the block set. The same applies to the wheels. Even if the number of joints between the block set and the 3D object is different, the information processing unit 30 can group the joints as such if the overall structure can be matched by considering a plurality of joints as one joint. May be.
- the information processing unit 30 sets the correspondence in consideration of the movable angle of each joint in addition to the overall structure of both. For example, joints having the same movable angle are associated with each other. As described above, the degree of similarity between joints may be evaluated from various viewpoints such as the overall structure and the movable angle, and joints having an evaluation value higher than the threshold may be associated with each other. Information on the corresponding part set by the information processing unit 30 or the user is stored in the correspondence information storage unit 28.
- the correspondence of the movement is set for the location associated in this way (S52). That is, whether or not the change in the joint angle is reflected as it is, or the ratio for distributing the change in the joint angle when the joint is not associated one-to-one is set.
- This is a case where the structure of the block set and the 3D object match, and if the movable angle of the corresponding joint is the same, the joint angle can be basically the same, so the information processing unit 30 sets it as such.
- the structure is similar by grouping the joint angles, as described above, a change in one joint angle is distributed to the movements of the joints belonging to one corresponding group.
- the distribution ratio may be determined according to the ratio of the movable angle of each joint.
- the information processing unit 30 may set it. Further, a setting screen is displayed so that the user can freely set the correspondence of the movement or correct the already set correspondence.
- the vehicle speed on the display of the 3D object is associated with the rotation speed of the block set axle. Since this relationship changes depending on the diameter of the wheel connected to the block set, the information processing unit 30 can determine by calculation if the wheel diameter is known. If it is not known, a necessary parameter is acquired by the user actually moving the block set as will be described later.
- the processing of S50 and S52 is repeated for all locations to be associated (N in S54), and when all locations are associated, the processing is terminated (Y in S54).
- FIG. 20 shows an example of a screen displayed on the display device 16 in order to accept an input of model selection by the user in S46 of FIG.
- the model selection acceptance screen 280 includes a plurality of models “model 1”, “model 2”, “model 3” images, a character string 282 that prompts selection input, and a cursor 284 that can be moved by the input device 14.
- “Model 1”, “Model 2”, and “Model 3” are candidate models extracted in S44 of FIG. 19, and are at least one of a feature as an object, a structural feature, and an appearance feature as described above. It is the result filtered by. For example, when the user designates “crane truck” as a feature as an object, all the extracted models are crane trucks. In this case, before displaying the model selection acceptance screen 280, a screen for accepting the selection of “crane truck” is also displayed.
- the number of extractions is not limited to three, and all the items that match the conditions may be extracted, or the above-mentioned similarity evaluation value is used to rank the models, and a predetermined number of models that are higher are extracted. May be.
- model images may be arranged in descending order from the left.
- “Model 1”, “Model 2”, and “Model 3” are all crane vehicles, but the shapes of the crane parts such as the number of joints are different. The user selects one model by pointing a desired model or a model similar to the block set with the cursor 284 and making a definite input with the input device 14.
- means other than the selection input means via the cursor 284 may be used for selecting the model.
- a technique has been proposed in which a user is photographed by the camera 122 and the position of the user's fingertip, and thus the position pointed on the display screen, is detected from the depth image or the like.
- the information processing apparatus 10 may recognize the selected model when the user points to the model to be selected.
- the input by the user on each setting screen shown in FIGS. 21 and 22 may be similarly realized.
- FIG. 21 shows an example of a screen displayed on the display device 16 in order to set a common coordinate system for the block set and the selected model in S48 of FIG.
- the common coordinate system is specified by the user adjusting the orientation of the 3D object on the screen according to the orientation of the block set.
- the model display direction setting reception screen 290 includes an image 292 in which the front of the crane truck is directed to the left, an image 294 that is directed in the right direction, a character string 296 that prompts designation of the orientation, and a cursor 298 that can be moved by the input device 14.
- the information processing unit 30 sets a coordinate system for both so that the direction of the block set 260 acquired by the structure analysis unit 22 and the direction of the 3D object in the selected image are defined in the same direction.
- the information processing unit 30 may set the coordinate system as described above.
- FIG. 22 shows an example of a screen displayed on the display device 16 in order to set the corresponding part of the block set and the 3D object in S50 of FIG.
- the corresponding location setting screen 300 includes a 3D object image 302, a command list field 304, a character string 306 that prompts setting input, and a cursor 308 that can be moved by the input device 14. Since the 3D object on the screen is in the same direction as the block set via the model display direction setting reception screen 290, the correspondence with the block set is easily understood by the user.
- the corresponding part setting screen 300 may further display an image 310 of the block set 260.
- the image 310 is an image captured by the camera 122 or an image in which the state of the block set 260 recognized by the information processing apparatus 10 is drawn as a 3D object.
- the captured image is reversed horizontally and the block set 260 viewed from the user is reproduced.
- the core image may be displayed.
- the user moves the joint to be matched by bending and stretching the block set 260 (for example, arrow A).
- the movement is recognized by the structure analysis unit 22.
- the designation input of the joint (for example, RJ2) to be matched on the block set side is realized.
- the user designates a joint (for example, VJ3) to be made to correspond on the 3D object side in the image 302 of the 3D object with the cursor 308, and performs a definite input with the input device.
- the joint RJ2 of the block set 260 is associated with the joint VJ3 of the 3D object.
- the information processing unit 30 records these correspondences and stores them in the correspondence information storage unit 28.
- the command list field 304 includes a “prev” button for invalidating and resetting the corresponding location set immediately before, a “next” button for confirming the current setting and setting the next corresponding location, A GUI such as a “stop” button for saving all the settings and closing the setting process is displayed. Furthermore, a “menu” button for shifting to a screen that displays various setting screens as menus is also displayed. It should be noted that the movement confirmation process may be performed after setting the movement correspondence described later, and in accordance therewith, whether or not the setting is invalidated may be determined by a “prev” button or a “next” button.
- the information processing unit 30 selects the joint as a candidate for the user. You may suggest. That is, at the time when the joint to be matched on the block set side is specified, among the 3D object images 302 displayed on the corresponding location setting screen 300, the color of the joint that is a candidate for the correspondence destination is changed. Either of the above can be selected by the user. This makes it possible to avoid excessive association even when the user allows free correspondence setting.
- a plurality of joints of the block set can be associated with one joint of the 3D object, and one joint of the block set can be associated with a plurality of joints of the 3D object.
- two marks 312 indicating that two joints of the block set are associated with the joint VJ3 of the 3D model are given. This is realized, for example, by moving the joint RJ1 of the block set 260 to associate with the joint VJ3 of the 3D object, and further moving the joint RJ2 to associate with the same joint VJ3 of the 3D object.
- the joints VJ1 and VJ2 of the 3D object are grouped into one and surrounded by an ellipse 314 indicating that it is associated with one joint of the block set.
- a GUI of a “group” button for drawing an ellipse 314 indicating the group is also displayed in the command list column 304.
- the user moves the joint RJ3 of the block set 260.
- the “group” button on the screen is selected by the cursor 308, and an ellipse 314 surrounding the joints VJ2 and VJ1 of the 3D object is drawn.
- the joint RJ3 of the block set 260 is associated with the joints VJ2 and VJ1 of the 3D object.
- the information processing unit 30 may determine some suitable grouping patterns and display them as candidates on the corresponding location setting screen 300 from the viewpoint of the entire structure of the block set and the 3D object, the movable angle, and the like. In this case, the user selects one pattern from there to determine the grouping. Alternatively, a grouping pattern candidate may be created as 3D object metadata and displayed on the corresponding location setting screen 300 to be selected by the user.
- the joint of the block set may be designated on the image 310 with the cursor 308.
- the associated joints may be displayed in the same color or connected with lines in the 3D object image 302 and the block set image 310 so that the correspondence is clearly indicated.
- FIG. 23 shows, as a basic mode, a case where the joints of the block set and the 3D object are associated one-to-one, and each joint moves at the same angle, the left is the joint part 320a of the block set, and the right is the 3D.
- a corresponding joint portion 322a of the object That is, when the joint portion 320a of the block set is bent by the angle ⁇ from a state where the joint is not bent, the corresponding joint portion 322a of the 3D object is also bent by the angle ⁇ .
- the actuator which is the driving unit 148 of the block set, is driven via the drive control unit 34, so that the corresponding joint 322 a is The angle ⁇ may be bent.
- FIG. 24 shows a correspondence example of angles of each joint when two grouped joints are associated with one joint, the left is the joint part 320b of the block set, and the right is the corresponding joint of the 3D object. Part 322b.
- two joint portions 320b of the block set are associated with one joint portion 322b of the 3D object.
- the corresponding joint portion 322b of the 3D object is bent by the total angle ( ⁇ 1 + ⁇ 2). That is, the joint angle change by the two joints of the block set is realized by one joint of the 3D object.
- This mode is effective when the movable angle of each joint of the block set is smaller than the change in joint angle required for the corresponding joint of the 3D object. Changes in three or more joint angles of the block set may be summed.
- the correspondence relationship of angles is the same. In this case, it is effective when the number of joints of the block set is smaller than the number of joints of the 3D object.
- the corresponding two joint portions 320b of the block set may be bent by angles ⁇ 1 and ⁇ 2, respectively.
- the ratio of the angles ⁇ 1 and ⁇ 2 is determined by the information processing unit 30 according to the constraint conditions such as the movable angle of each joint and the realistic movement of the object that the block set represents, that is, the object represented by the 3D object. it can. For example, if the movable angle of two joints of the block set is 1: 2, the angles ⁇ 1 and ⁇ 2 are also set to a ratio of 1: 2.
- the information processing unit 30 calculates the angles ⁇ 1 and ⁇ 2 so that such a state is maintained. Such a distribution rule is created together with the data of the 3D object.
- FIG. 25 shows another example of correspondence of angles of each joint when two joints are grouped and corresponded to one joint, the left is a joint part 320c of a block set, and the right is a 3D object. Corresponding joint portion 322c.
- the rotation axes of the two joints of the block set are different, one angle changing around an axis perpendicular to the plane of the figure and the other changing angle around the link axis.
- one joint of the 3D object associated with the joint is a joint having two degrees of freedom in which the angle can be changed around two axes corresponding to the joint.
- FIG. 26 shows a case where the angle changes of the joints associated one-to-one are made different, the left is the joint part 320d of the block set, and the right is the corresponding joint part 322d of the 3D object.
- the corresponding joint of the 3D object is changed by an angle 3 ⁇ that is three times that.
- the 3D object may be dynamically moved without much effort to move the block set.
- such a problem can be solved by changing the joint angle of the 3D object by an angle obtained by multiplying the angle change of the joint of the block set by a predetermined value larger than 1.
- the joint angle of the 3D object may be changed by an angle smaller than the block set by multiplying the angle change of the block set by a predetermined value smaller than 1.
- This mode is effective when, for example, manipulator operation is desired to make a fine movement of the 3D object with higher accuracy than the movement of the hand moving the block set.
- the same setting may be used when the angle change of the joint of the 3D object is reflected in the angle change of the block set.
- a mode in which one angle change is multiplied by a predetermined value to obtain the other angle change can be combined with the mode shown in FIGS.
- all grouped joints may be multiplied by the same value, or different values may be multiplied depending on the joint.
- FIG. 27 shows another example in which one joint of a block set is associated with a plurality of joints of a 3D object.
- the left part is a joint part 320e of the block set and the right part is a joint part 322e corresponding to the 3D object.
- one joint part 320e of the block set is associated with three joint parts 322e of the 3D object.
- the block set including only the joint portion 320e of FIG. , It can represent the movement of the snake moving forward.
- the joints associated with the 3D object are not limited to being adjacent to each other as shown in the figure, and may be a plurality of joints at different locations of the 3D object.
- FIG. 28 shows an example of a screen displayed on the display device 16 in order to set the correspondence between the block set and the movement of the 3D object in S52 of FIG.
- the motion correspondence setting screen 330 is a screen in which a dialog box 333 for inputting a motion correspondence is displayed on the screen as an overlay every time the user sets a corresponding location on the corresponding location setting screen 300 shown in FIG. is there.
- This example sets the distribution ratio when distributing the angle change of VJ3 to the angle change of RJ1 and RJ2 of the block set after the joints RJ1 and RJ2 of the block set are grouped and associated with the joint VJ3 of the 3D object Assumes that. Therefore, in the dialog box 333, a character string 334 that prompts input of a ratio and a text box 336 for inputting each numerical value of the ratio are displayed.
- the information processing unit 30 When the user inputs a specific numerical value to the text box via the input device 14 or the like, the information processing unit 30 further associates the ratio RJ1 and RJ2 of the block set with the joint VJ3 of the 3D object. Are stored in the correspondence information storage unit 28.
- the information set in the dialog box 333 is not limited to this. Necessary information among the correspondences as shown in FIGS. 23 to 27 can be sequentially set according to whether or not the joints are grouped. However, as described above, the setting by the user can be omitted if the information processing unit 30 can perform movement correspondence according to a predetermined rule. Alternatively, the association performed by the information processing unit 30 may be corrected by the user using a similar dialog box.
- FIG. 29 shows an example of the data structure of the information stored in the correspondence information storage unit 28 and corresponding to the movements of the corresponding portions of the block set and the 3D object.
- the correspondence information table 340 includes a block set information column 342 indicating the corresponding location and movement on the block set side, and a 3D object information column indicating the corresponding location and movement on the 3D object side with respect to the location and movement of the block set described in the column. 344.
- the joints of the block set and the joints of the 3D object are associated with each other, and the correspondence between the angle changes is set.
- the correspondence is basically described in units of steps. For example, looking at each “joint” column in the block set information column 342 and the 3D object information column 344, the joints RJ1 and RJ2 of the block set are associated with the joint VJ3 of the 3D object.
- the motion of the block set is reflected in the 3D object, it is defined that the sum of the angle changes of the joints RJ1 and RJ becomes the angle change of the joint VJ3 of the 3D object.
- the movement amount and movement direction of the block set may be acquired from the captured image of the camera 122, and the 3D object may be represented as moving based on the acquired image.
- the 3D object may be represented as moving based on the acquired image.
- setting according to the constraint condition is required. For example, the vehicle cannot be driven unless the wheels cooperate.
- the rotational speed of the wheel for obtaining a desired speed varies depending on the diameter of the wheel, there is a possibility that the speed may become too high and collide with a wall unless adjusted appropriately.
- the information processing unit 30 mainly associates movements. Specifically, when the front, rear, left and right of the block set are clear, the driving wheel, the driven wheel, and the steering wheel are determined according to a preset driving method. Furthermore, the left and right drive wheels and steering wheels are grouped so as to satisfy the constraint condition that they must have the same rotational speed and steering angle. Also, the rotation speed and rudder angle of the wheel of the block set are set so that the block set runs at a suitable speed and direction change corresponding to the speed and direction change of the 3D object expressed in the virtual world. Correspond to speed and direction change.
- FIG. 30 is a flowchart showing a processing procedure for setting the correspondence between the 3D object and the motion of the block set in a mode in which the motion of the 3D object is reflected in the block set. This process corresponds to the processes of S50 and S52 of FIG.
- wheels such as a driving wheel and a steering wheel according to the front / rear and left / right directions of the block set and the driving method. Is assigned to the front wheel or the rear wheel (S58). Further, at least two wheels arranged in parallel and assigned the roles of a drive wheel and a steered wheel are operated as a group (S60).
- control parameters for obtaining a suitable moving speed and direction change reflecting the virtual traveling of the 3D object are acquired.
- the control parameters are the rotational speed of the actuator that rotates the axle of the driving wheel, the amount of movement of the actuator that changes the steering angle of the steering wheel, and the like.
- the plurality of actuators that control the drive wheels and the steering wheels grouped in S60 are controlled so as to perform the same operation by a control signal from the information processing apparatus 10.
- the user actually moves the block set in a predetermined direction, measures the amount of movement, and measures the amount of rotation and the steering angle of the axle at that time (S62, S64, S66). .
- the user may electronically drive the block set by a separately prepared control mechanism, or may move the block set manually, for example, by pushing the main body with his / her hand. In the latter case, the mechanism for changing the axle and steering angle is released from the control of the actuator.
- the amount of movement of the block set can be acquired from an image captured by the camera 122 or a depth image generated therefrom.
- the amount of rotation can be acquired by a signal from a rotary encoder provided on the wheel, and the steering angle can be obtained by a steering angle sensor provided on the wheel. When a sensor such as a rotary encoder is not provided, the calculation may be performed based on the wheel diameter, the moving distance, and the moving direction.
- the control amount such as the motor rotation amount and the actuator movement amount for obtaining the movement amount is acquired (S68).
- the moving speed is a suitable moving speed of the block set itself, but is a value determined by the moving speed in the virtual world when interlocking with the 3D object on the screen. The same applies to the rudder angle. Therefore, the process of S70 associates the movement of the 3D object with the movement of the block set.
- the diameter of the wheel connected to the block set is found from the identification number of the wheel, the correspondence between the moving speed and the control parameter can be obtained by calculation, so that the processing from S62 to S68 can be omitted. Good.
- the 3D object of the crane truck and the 3D object of the crane truck were associated with each other, it was described as the association of the movement of the wheel, but the flowchart shown in FIG. The same is true even if the 3D object has no wheels.
- the block set can be moved at a speed and direction corresponding to the virtual movement of the 3D object.
- the present invention can be used not only in a mode in which the movement of the 3D object is reflected, but also in a mode in which the block set is simply moved according to the result of processing performed by the information processing apparatus 10.
- FIG. 31 is a diagram for explaining a case where the setting related to the wheel of the block set described above is extended to a composite link.
- the joints are not completely independent, but the links are linked. That is, if one joint of the composite link 350 is moved as shown by an arrow, all four joints are moved (composite link 352). In such a case, since only one joint cannot be moved by the actuator, four joints are grouped to perform a cooperative operation as in the case of the drive wheel.
- the information processing unit 30 recognizes the presence of the composite link on the correspondence setting screen or the like by moving the composite link in the actual block set. Then, when setting the correspondence of movement with the 3D object, all joints included in the 3D object are grouped.
- a block that can be freely assembled is used as an input device or an output device for processing in the information processing apparatus. Details such as the skeleton and position of the assembled block are obtained by using various sensors for obtaining the position and orientation and a communication block having a communication function. Further, the surface shape of the assembled block is acquired using a means for detecting the presence of the block in the real space such as a photographed image by the camera. By integrating these pieces of information, the position, posture, and shape of the assembled block can be identified with high accuracy even when a non-communication block having no communication function is used as a part of the block.
- the shape, material, color, etc. of the block are not limited, and even a user's own product can be used, and an object having an appearance suitable for the user's purpose can be freely created.
- the information processing apparatus can acquire the position, posture, and shape with high accuracy regardless of the appearance, various information processing can be performed using an action that the user assembles or moves as input information. Moreover, the assembled block can be moved as a result of information processing.
- a 3D object having the same appearance as the assembled block can be displayed, or a 3D object having a more realistic appearance corresponding to the assembled block can be displayed.
- the user may form the 3D object itself by designating parts of the 3D object for each block part, or the entire block may correspond to one 3D object.
- the setting of the corresponding part and the correspondence of the movement can be set based on the constraint conditions such as the shape of the block set and the 3D object, the number of joints, the movable angle of the joints, and the cooperative operation of the wheels.
- Linking the real world and the virtual world can be freely created while reducing the burden on the user by providing such an association automatically by the information processing device or providing an environment that can be set by the user. .
- a block set is assumed as a target to be associated with the 3D object on the screen, but an object other than the block set, for example, the user himself / herself can be similarly associated.
- the camera 122 captures the user, generates a depth image based on the image, and estimates the position of the skeleton.
- the position of the skeleton can be tracked by applying conventional techniques such as skeleton tracking.
- the information processing apparatus 10 recognizes the joint as in the case of the block set.
- the user and the joint of the 3D object can be associated with each other.
- an image showing the user's image and the position of the skeleton is generated in real time from the captured image and displayed on the corresponding location setting screen, and the user's joint and the joint of the 3D object are associated on the screen. It may be. At this time, both may be displayed at the same time, or designation of joints that are alternately displayed to set correspondence may be received one by one.
- the information processing apparatus determines the roles of the driving wheel, the driven wheel, and the steering wheel by attaching the wheel to the axle while the front and rear of the vehicle are known. And according to the said role, the motion of the actuator which controls the operation
- This block may be expanded to realize a block including an actuator that switches movement according to a connected object. For example, when a component comprising an axle and wheels is mounted, the block set vehicle is driven by rotating the axle. When a component consisting of a cam and a spring is mounted, the spring is released by the rotation of the cam, and the arrow that was set is released. When a part composed of the joint as described above is mounted, it is operated as a joint.
- the information processing apparatus 10 recognizes the type of the connected object from the photographed image, and transmits a control signal corresponding thereto to appropriately switch the movement of the actuator.
- the versatility of the block provided with the actuator increases, and a block set rich in variations can be realized at a lower cost than preparing different blocks for each type.
- Information processing system 10 Information processing device, 14 Input device, 16 Display device, 20 Core information receiving unit, 22 Structure analysis unit, 24 Block information storage unit, 26 Model data storage unit, 28 Corresponding information storage unit, 30 Information processing Unit, 32 display processing unit, 34 drive control unit, 102a square prism block, 122 camera, 120 block set, 126a block, 128a battery, 130a communication mechanism, 132a memory, 134 position sensor, 136a motion sensor, 138 angle sensor, 139a actuator, 141 rotary encoder, 142a first block, 143a first communication unit, 144a element information acquisition unit, 146a second communication unit, 48 drive unit.
- the present invention can be used for toys, game devices, assembly-type devices, learning materials, content display terminals, information processing devices, robots, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Cardiology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Biophysics (AREA)
- Medical Informatics (AREA)
- Physiology (AREA)
- Physics & Mathematics (AREA)
- Vascular Medicine (AREA)
- Dentistry (AREA)
- Pathology (AREA)
- Biomedical Technology (AREA)
- Heart & Thoracic Surgery (AREA)
- Signal Processing (AREA)
- Molecular Biology (AREA)
- Surgery (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Toys (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
ユーザが組み立てたブロックセット260と通信することにより、情報処理装置は、ブロックセット260の構造情報を取得する。またブロックセット260に対応するオブジェクトの画像302を含む対応箇所設定画面300を表示装置に表示する。ユーザは、ブロックセット260のうち、対応づけたい関節を曲げ伸ばしするなどして動かす(例えば矢印A)。次にユーザは、カーソル308により3Dオブジェクトの画像302において、3Dオブジェクト側の対応させるべき関節を指示し確定入力をする。これにより、ブロックセット260の関節と3Dオブジェクトの関節を対応づける。このようにブロックセット260とオブジェクトの対応箇所を設定することにより、両者を双方向に連動させる。
Description
本発明は、実空間における物体を利用した情報処理技術に関する。
実空間における人や物などの物体に係るパラメータを何らかの手段により計測し、それを入力値としてコンピュータに取り込み解析したり、画像として表示したりする技術が様々な分野で利用されている。コンピュータゲームの分野においては、ユーザ自身やユーザが把持するマーカーの動きを取得し、それに応じて表示画面内の仮想世界におけるキャラクタを動作させるといったことにより、直感的かつ容易な操作が実現されている(例えば特許文献1参照)。このように実空間における物体の動きや形状変化を画面表示に反映させる技術は、ゲームのみならず玩具や学習用教材などへの応用が見込まれている(例えば非特許文献1参照)。
Posey: Instrumenting a Poseable Hub and Strut Construction Toy, Michael Philetus Weller, Ellen Yi-Luen Do, Mark D Gross, Proceedings of the Second International Conference on Tangible and Embedded Interaction, 2008, pp 39-46
上記のように主たる演算を行う情報処理層とは別の物体を利用して情報処理を進捗させる態様において、臨場感を演出し直感的な操作を可能とするには、知覚されたアフォーダンスを与えることが重要であり、例えば車のハンドル型、拳銃型など本物に近い形状で同様の動作が可能な装置を提供することが考えられるが、用途が限定的となる。装置の形状を可変とすると用途は広がるが、それに応じて形状変化や動きを計測するための工夫が必要となる。
例えば非特許文献1に開示の技術では、部品の結合部に赤外LEDとそれを受光するフォトセンサを内蔵させることにより、部品の回転角を計測し、形状を特定している。この場合、計測できる回転角が限定的となるため形状の可変範囲も限定的となる。また全ての部品に素子を備える必要があるため製造コストが高くなる。このように装置の形態に柔軟性をもたせるほど、それを計測するための機構が複雑化し、結果として製造コストや処理コストが増大する傾向にある。
本発明はこのような課題に鑑みてなされたものであり、その目的は、自由に形成することができる装置を利用して、多様かつ高度な表現を実現することにある。
本発明のある態様は情報処理装置に関する。この情報処理装置は、外部の物体の全体構造における可動部分の位置に係る情報を取得する構造情報取得部と、物体と、当該物体に対応づけられたオブジェクトモデルとを連動させるため、前記可動部分の連動規則に係る設定入力をユーザより受け付けるための設定画面を表示装置に表示させるとともに、受け付けた設定入力に基づき連動規則に係る情報を生成して記憶装置に格納する情報処理部と、を備えたことを特徴とする。
本発明の別の態様は情報処理装置に関する。この情報処理装置は、外部の物体の全体構造における可動部分の位置に係る情報を取得する構造情報取得部と、物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより物体とオブジェクトモデルを連動させるため、物体の可動部分とオブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させるとともに、受け付けた設定入力に基づき対応情報を生成して記憶装置に格納する情報処理部と、を備えたことを特徴とする。
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が、外部の物体の全体構造における可動部分の位置に係る情報を取得するステップと、物体と当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより物体とオブジェクトモデルを連動させるため、物体の可動部分とオブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させるステップと、受け付けた設定入力に基づき対応情報を生成して記憶装置に格納するステップと、を含むことを特徴とする。
本発明のさらに別の態様は情報処理装置に関する。この情報処理装置は、外部の物体の全体構造における可動部分の位置に係る情報を取得する構造情報取得部と、物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより物体とオブジェクトモデルを連動させるため、対応づけられた可動部分の動きの反映規則の設定入力をユーザより受け付けるための動き対応設定画面を表示装置に表示させるとともに、受け付けた設定入力に基づき対応情報を生成して記憶装置に格納する情報処理部と、を備えたことを特徴とする。
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が、外部の物体の全体構造における可動部分の位置に係る情報を取得するステップと、物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、対応づけられた可動部分の動きの反映規則の設定入力をユーザより受け付けるための動き対応設定画面を表示装置に表示させるステップと、受け付けた設定入力に基づき対応情報を生成して記憶装置に格納するステップと、を含むことを特徴とする。
本発明のさらに別の態様は情報処理装置に関する。この情報処理装置は、外部の物体の全体構造における可動部分の位置に係る情報を取得する構造情報取得部と、物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより物体とオブジェクトモデルを連動させるため、物体の可動部分とオブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させるとともに、物体とオブジェクトモデル間で、異なる数の可動部分を互いに対応づける設定入力を受け付け、それに基づき対応情報を生成して記憶装置に格納する情報処理部と、を備えたことを特徴とする。
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が、外部の物体の全体構造における可動部分の位置に係る情報を取得するステップと、物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより物体とオブジェクトモデルを連動させるため、物体の可動部分とオブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させるステップと、物体とオブジェクトモデル間で、異なる数の可動部分を互いに対応づける設定入力を受け付けるステップと、受け付けた設定入力に基づき対応情報を生成して記憶装置に格納するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によると、自由に形成が可能な装置を用いて多様かつ高度な表現を実現することができる。
本実施の形態では、複数のブロックを組み立てたり変形させたりし、その形状、姿勢、位置を情報処理の入力値として利用する。すなわちこのようなブロックを、情報処理装置に対する入力装置と位置づけることができる。さらに、情報処理装置が行った処理の結果を反映させるように、組み立てたブロックの形状、姿勢、位置を変化させる場合もある。この場合ブロックは、情報処理装置に対する出力装置と位置づけられる。ここで情報処理装置が行う処理は特に限定されないが、好適な態様を後に例示する。以後、このようなブロックのまとまり、またはそれを組み立てた物を総称して「ブロックセット」と呼ぶ。また後述するように、ブロックセットには服飾品を模した物や粘土細工など一般的な意味でのブロック以外の物体を含んでよく、その形状や材質は限定されない。以後、それらも含めて「ブロック」と呼ぶ。
図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム2は、ブロックセット120、ブロックセット120を撮像するカメラ122、ブロックセット120を入力装置あるいは出力装置として所定の情報処理を行う情報処理装置10、情報処理装置10に対するユーザ操作を受け付ける入力装置14、情報処理装置が出力したデータを画像として表示する表示装置16を含む。
情報処理装置10は、たとえばゲーム装置やパーソナルコンピュータであってよく、必要なアプリケーションプログラムをロードすることで情報処理機能を実現してもよい。表示装置16は液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイなど一般的なディスプレイでよい。またそれらのディスプレイとスピーカを備えたテレビであってもよい。入力装置14は、ゲームコントローラ、キーボード、マウス、ジョイスティック、表示装置12の画面上に設けたタッチパッドなど、一般的な入力装置のいずれか、またはいずれかの組み合わせでよい。
情報処理装置10と、カメラ122、入力装置14、表示装置16との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいはカメラ122、情報処理装置10、入力装置14、表示装置16のうちいずれか2つ以上、または全てが組み合わされて一体的に装備されていてもよい。また、カメラ122は必ずしも表示装置16の上に搭載されていなくてもよい。ブロックセット120は情報処理装置10で処理される内容によっては複数でもよい。ブロックセット120と情報処理装置10は、Bluetooth(ブルートゥース)(登録商標)プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立する。あるいはブロックセット120の一つのブロックと情報処理装置10を、ケーブルを介して接続してもよい。
本実施の形態のブロックセット120は上述のとおり、情報処理装置10に対する入力装置として用いる場合と、出力装置として用いる場合がある。つまり前者の場合、ユーザがブロックセット120の位置、姿勢、形状を変化させた結果を、情報処理装置10が入力値として用い情報処理を行い、表示装置16にその結果を画像として表示する。後者の場合、ユーザが入力装置14を操作することによって情報処理装置10が情報処理を行い、その結果としてブロックセット120自体を動かす。本実施の形態は、そのいずれのモードも実現可能として構成してもよいし、いずれか一方のみを実現可能として構成してもよい。
図2はブロックセットを構成する個々のブロックの外観例を示している。本実施の形態においてブロックは大きく2種類に分類される。一方は他のブロックや情報処理装置10と通信可能に構成されるブロック、他方は通信手段を持たないブロックである。以後、前者を「通信ブロック」、後者を「非通信ブロック」と呼ぶ。通信ブロックは、他のブロックとの通信機構のほか、ブロックの向き、角度、位置などの物理量を測定する各種センサを内蔵していてよい。
通信ブロック、非通信ブロックに関わらず、ブロックは図示するように、四角柱型ブロック102a、102b、102c、立方体型ブロック102d、円柱型ブロック102f、102k、球型ブロック102e、板状ブロック102i、直方体型ブロック102jなど様々な形状を有することができる。各ブロックには所定のサイズおよび形状を有する凸部104、凹部106を設け、凹部106に凸部104を差し込むことによりブロック同士を所望の位置で連結可能に構成する。あるいは直方体型ブロック102j、円柱型ブロック102kのように、他のブロック自体をはめ込める形状の凹部107等を設けることにより、他のブロックを包含可能に構成してもよい。
ブロックセットにはさらに、連結するブロックの間隔を調整するため、両端を異なるブロックの凹部106に差し込み可能なジョイント用ブロック102g、102hを含めてもよい。またジョイント用ブロックが回転するなどして接続するブロック間の位置・姿勢関係を変化させることができるようにしてもよい。
通信ブロックの凸部104および凹部106は、ブロック間の信号伝送を可能とする端子の役割も有する。そのため先端にはそれぞれ、ブロック内部に設けるバスなどの規格に応じた構造のコネクタを備える。一般的に普及している各種コネクタを採用したり、専用の特殊コネクタを設けたりすることにより、信号伝送とブロック同士の物理的な連結を同時に達成することができる。なお信号伝送の経路を別途用意するとともに、連結箇所を別途特定できれば、ブロック同士の接続手段は凸部104と凹部106の連結に限定されず、面ファスナー、磁石、接着テープ、接着剤などで実現してもよい。ここで別途用意する信号伝送の経路は、無線通信の機構でもよい。
また通信ブロックのうちあるブロック(図2の場合、四角柱型ブロック102b)は、2つのブロックと、それらを屈伸可能にする屈伸軸110と、ブロック同士がなす角度を検出するポテンショメータによって構成してよい。なお屈伸させる機構は、図示するように一方のブロックを貫通する屈伸軸110の両端に他方のブロックの突起を接合する形態のほか、ヒンジや屈伸可能な金属などによって2つのブロックを結合させた形態、球体関節人形における関節と同様の、複数自由度を有する機構などでもよく、特に限定されるものではない。ブロック同士の角度は連続的に変化可能としてもよいし、複数段階に変化可能としてもよい。また軸の向きは図示するものに限らない。
構成要素であるブロックの角度は、好適にはユーザが手を離しても維持されるような構造とする。なおブロック同士の角度はポテンショメータ以外の角度センサで計測してもよい。例えばブロック内部に他のブロックとの相対角を測定するセンサを搭載しておけば、ブロック同士は必ずしも接続されていなくてもよい。また後述するように1つのブロックを屈伸可能、回転可能に構成し、その屈伸角度、回転角を計測してもよい。
以後、このように角度を可変とするための機構を「関節」と呼び、関節の動きによって相対角が変化する2つのブロックを「リンク」と呼ぶことがある。さらに、このように関節を有する通信ブロックは、情報処理装置10からの要求によって関節角を制御可能としてもよい。この場合、当該通信ブロックには、サーボモータなど関節角を制御するためのアクチュエータを設ける。
また通信ブロックのうちあるブロック(図2の場合、板状ブロック102i)は、側面に突出した、自転可能な軸109を有していてよい。複数の軸109に車輪を装着することによりブロックを車のように移動させることができるようになる。当該移動やユーザがブロックを押すことによって実現してもよいし、情報処理装置10からの要求によって実現してもよい。後者の場合、当該通信ブロックには、軸を回転させるモーターなどのアクチュエータを設ける。軸109を車軸とする場合、車輪の向きを変化させるラック・アンド・ピニオンなどの機構を備えていてもよく、これも情報処理装置10からの要求に従いアクチュエータにより制御可能とする。
また通信ブロックのうちあるブロックの内部には、加速度センサ、ジャイロセンサ、地磁気センサなどや、カメラと対象物に取り付けたマーカーや形状そのものを利用して姿勢をトラッキングする手法などのモーションセンシング機能のうちの1つまたは複数の組み合わせを搭載する。センサを搭載するブロック、および搭載するセンサの種類や組み合わせは、ブロックセットを用いて実現する情報処理によって決定する。または様々なバリエーションのなかからユーザが組み立て時に選択する。
さらに通信ブロックのうちあるブロック(図2の場合、四角柱型ブロック102a)には、マーカー108を設けてもよい。マーカー108は、後述するカメラで撮影した画像における位置および大きさから、3次元空間での位置を特定するためのものである。したがってマッチング処理などによって撮影画像から検出できる大きさ、形状、色を有して形成される。例えば、光透過性を有する球形の樹脂の内部に発光ダイオードや電球など一般的な発光体を備えた球体や、バーコード、2次元コードなどでもよい。複数のブロックにマーカー108を設ける場合は、ブロックごとにその色を変えてもよい。
通信ブロックの外殻や非通信ブロックは、代表的には合成樹脂で形成するが、金属やガラスなどその材料は限定されない。特に非通信ブロックは通信機構等を内蔵しないため、その素材、形状、サイズは自由に決定できる。例えば布で作成した衣装やゴムで作成した人形の頭部などの各種パーツでもよいし、武器やアクセサリなど付加的な物でもよい。ユーザが自作したものでもよい。例えば消しゴムを削ってなる立体や、粘土細工、紙工作の作品、折り紙作品などでもよい。また通信ブロックからの通電によって所定色に発光するLEDや画像を表示する表示装置を備えたブロックなどでもよい。
本実施の形態の情報処理装置10は、通信ブロックとの通信により取得できるブロックセットの骨格形状、姿勢などの情報と、カメラ122が撮影した外観形状の情報とを相補間的に用いてブロックの状態を高精度に特定する。そのためブロックセットの外観は、非通信ブロックを用いて自由に表現できる。例えば図2の直方体型ブロック102j、円柱型ブロック102kのように、通信ブロックを包含する形状を有するブロックを非通信ブロックとして実現してもよい。
図3は、図1で示したブロックセット120のうち、通信ブロックの構造のみを示している。つまり同図のブロックセット120aは、図1のブロックセット120から非通信ブロックである直方体型ブロック102j、円柱型ブロック102kを除いたものであり、図2で示した四角柱型ブロック102a、102b、立方体型ブロック102d、およびジョイント用ブロック102hによって構成される。このうち四角柱型ブロック102bの下部のブロック、および立方体型ブロック102dは、図1のブロックセット120において、非通信ブロックである直方体型ブロック102jおよび円柱型ブロック102kにそれぞれ内包されており外部からは見えない。このような通信ブロックからなる構造体は、ブロックセット120全体の骨格を構成しているとも捉えられる。以後、組み立てられたブロックセット120のうち通信ブロックからなる部分を「コア」と呼ぶ。
本実施の形態では、コアを構成する通信ブロックに備えたモーションセンサ、ポテンショメータによって必要なパラメータを検出することにより、ブロックセット120の姿勢および形状を効率的に算出する。例えば図3のブロックセット120aの場合、(1)各ブロックの連結位置およびブロックの種類、(2)四角柱型ブロック102aまたは102bの傾きベクトルm1、(3)四角柱型ブロック102bを構成する2つのブロックの角度θ、(4)各ブロックの長さL1、L2、L3、L4、L5によって、各ブロックの向き、ひいてはブロックセット120の中心軸の形状および姿勢を導出できる。
上記(1)および(4)はブロック間の信号伝送により判明し、上記(3)はポテンショメータにより計測できるとすると、上記(2)を計測するために、四角柱型ブロック102aまたは102bにモーションセンサが内蔵してあれば必要十分となる。あるいは内蔵されたブロックを四角柱型ブロック102aまたは102bとして選択すればよい。
さらに実世界の3次元空間におけるブロックセットの位置座標は、カメラ122による撮影画像を利用して特定する。ここでカメラ122をステレオカメラとすることにより、カメラ122に対する奥行き方向とカメラの視野平面で構成される3次元空間におけるブロックセットの絶対位置を取得できる。ステレオカメラが左右の異なる視点から撮影した画像における視差を利用して、三角測量の原理によって対象物の3次元空間での位置を取得する技術は広く知られている。ステレオカメラに代えて、両眼立体視以外の、奥行きや3次元情報取得手段を利用してもよい。例えば、視点移動カメラを用いてもよいし、赤外線照射機構とその反射光を検出する赤外線センサを用い、TOF(Time Of Flight)の手法によってブロックセットの位置を特定してもよい。ブロックセット120を置く台の上面にタッチパネルを設け、それにより置かれた位置を検出してもよい。
あるいは図示するように、マーカー108を備えた四角柱型ブロック102aを用いることにより、単眼のカメラ122で撮影した静止画や動画のフレーム画像に基づき位置を特定してもよい。上述のようにマーカー108を既知の色、輝度、大きさを有する発光体とすると、撮影画像からマーカーの像を容易に検出できる。そして当該マーカーの像の画像上の位置および大きさから、3次元空間でのマーカーの位置座標(x1,y1,z1)を特定できる。それ以外のマーカーを採用する場合も、パターンマッチングや特徴点抽出など、一般的な画像認識技術を適用できる。ブロックセット120を動かし、それを動画像として撮影する場合は、既存のトラッキング技術を適用することにより効率的な検出が行える。
なおマーカー108を赤外線などの不可視光線を発光する装置としてもよい。この場合、不可視光線を検出する装置を別途導入し、マーカー108の位置を検出する。同様に、深度センサ、超音波センサ、音センサなどを利用してもよい。以上述べた絶対位置検出手法のいずれか2つ以上を組み合わせて最終的な位置座標を算出してもよい。図4はそのようにして導出した、コアの中心軸を模式的に示している。図示するように中心軸124は、3次元空間においてその位置、姿勢および形状が特定される。当該3次元空間はカメラ122のカメラ座標系でもよいし、それを所望の座標系に変換したものでもよい。以後、コアやブロックセットの位置、姿勢および形状を総称して「状態」と呼ぶことがある。
図5は通信ブロックの内部構成例を模式的に示している。上述のとおりブロックの内部構成に様々なバリエーションを持たせることにより、用途に応じた使い分けが可能になる。またコアの状態を特定するのに必要と想定されるセンサを複数のブロックに分散させて装備することにより、過度なセンサ搭載を避けることができ、製造コストを抑えることができる。
図5の例でブロック126aはバッテリー128a、通信機構130a、メモリ132a、位置センサ134、モーションセンサ136aを備える。ここで通信機構130aは、他のブロックからの信号を、接続端子を介して受信する有線通信機構のほか、情報処理装置10との無線通信を行う機構も含むものとする。メモリ132aは、ブロック126aの識別番号を保持する。当該識別番号は情報処理装置10においてブロック126aのサイズ、凹部、凸部の位置などの情報と対応づけられるものであり、同じ種類のブロックには同じ識別番号を付与してよい。あるいは組み立てられたブロックセット内での信号伝送のルーティングなどに利用できるようにブロックごとに一意に定めてもよい。
位置センサ134はブロック126aの絶対位置を取得するためのセンサであり、画像認識用のマーカーもこれに含まれる。ただしマーカーの場合は上述のとおり外部に設置したカメラ122との組み合わせによって絶対位置を検出する。モーションセンサ136aは上述のとおり、加速度センサ、ジャイロセンサ、地磁気センサのいずれか、またはいずれか2つ以上の組み合わせやカメラを利用した手法などとする。
ブロック126bは、バッテリー128b、通信機構130b、メモリ132b、モーションセンサ136bを備える。各機構はブロック126aについて上述したのと同様でよいが、通信機構130bは、他のブロックからの信号を受信する有線通信機構のみで構成してもよい。このようなブロックは、情報処理装置10との通信が可能なブロック126aと組み合わせて使用する。その他のブロックの通信機構も同様である。
ブロック126cは、バッテリー128c、通信機構130c、メモリ132c、角度センサ138、アクチュエータ139aを備える。ブロック126cは図2の四角柱型ブロック102bのように関節を有する通信ブロックであり、角度センサ138は、ポテンショメータなど関節角を検出するセンサである。アクチュエータ139aは情報処理装置10からの制御信号により関節角を変化させる。制御信号によるアクチュエータの駆動には、アクチュエータの種類に応じた一般的な技術を採用できる。
ブロック126dは、バッテリー128d、通信機構130d、メモリ132d、ロータリーエンコーダ141、アクチュエータ139bを備える。ブロック126dは図2の板状ブロック102iのように、外部に突出した回転可能な軸を有する通信ブロックであり、車輪を装着することによりブロック126d自体を手動や自動で推進させることができる。あるいはあらかじめ軸と車輪を一体的に備えていてもよい。
ロータリーエンコーダ141は車輪の回転量を検出するセンサである。アクチュエータ139bは情報処理装置10からの制御信号により車輪を回転させるモーターなどである。ブロック126eは通信機構130e、メモリ132eを備える。すなわちブロック126eは、バッテリーやセンサを備えないブロックである。そのためバッテリーを搭載した他のブロック126a、126bと組み合わせて使用する。
なお図5の通信ブロックは一例に過ぎず、各種センサやその他の機構をいかに組み合わせてもよい。例えばブロックセットが動く部分として、関節や車軸のみならず、操舵方向を変化させたり、一部のブロックを変位させたりする機構を備えていてもよい。これらの機構は、情報処理装置10からの制御信号によって駆動するアクチュエータにより動くようにしてもよい。またLEDや表示装置を備えていてもよい。接続した非通信ブロックに対する通電を行う機構を備えていてもよい。さらに、図示したセンサのほか、実用化されているいかなるセンサを内蔵してもよい。
このような様々な内部構成を有する通信ブロックを、図2で示したような様々な形状で準備する。同じ種類のブロックを複数準備してもよい。あるいは全てのブロックの形状およびサイズを統一してもよいし、内部構成を統一してもよい。形状や内部構成にバリエーションをもたせ、各種ブロックを個別に購入できるようにすると、個々のユーザの用途に合わせて最低限の費用で臨機応変に好みのブロックセットを組み立てることができる。基本的な組み立てが可能なブロックのセットをまず提供し、後から買い足せるようにしてもよい。
図6はブロックセット120と情報処理装置10の構成を詳細に示している。図6において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。また既述したように、ブロックセット120の各ブロックは通信機構、メモリ、各種センサ、アクチュエータによって構成されている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
ブロックセット120は上述のとおり、個々のブロックをユーザが選んで組み立てることによって形成される。図6では組み立てられたブロックセットのうち、コアの部分の機能ブロックを示しており、それを構成する通信ブロックを第1ブロック142a、第2ブロック142b、第3ブロック142c、・・・などとしている。情報の錯綜を防ぐため、ブロックセット120を構成する通信ブロックのうち、情報処理装置10との通信を確立するブロックは、基本的には1つのみとする。そのため第1ブロック142aにハブの役割を与える。そして、当該第1ブロック142aから接続関係の遠い通信ブロックから情報を伝達し、第1ブロック142aにコア全体の情報を集約させる。
以下、ブロックの連結において第1ブロック142aに相対的に近いブロックを「上位」、遠いブロックを「下位」とする。第1ブロック142aとなるブロックはあらかじめ1つに定めておいてもよいし、情報処理装置10との通信機構を有するブロックに図示しないスイッチなどを設け、ユーザがオンにしたブロックを第1ブロック142aとしてもよい。または組み立て段階において情報処理装置10と最初に通信を確立したブロックを第1ブロック142aとしてもよい。
このようにして決定した第1ブロック142aに、ユーザが別の通信ブロックを連結すると、当該ブロックは第2ブロック142bとなる。第2ブロック142bにさらに別の通信ブロックを連結すると、当該ブロックは第3ブロック142cとなる。なお同図では3つの通信ブロックのみを示しているが、コアを構成する通信ブロックの数は限定されず、1つ、あるいは4つ以上でも、構成および動作は同様に考えることができる。
第1ブロック142a、第2ブロック142b、第3ブロック142cはそれぞれ、第1通信部143a、143b、143c、要素情報取得部144a、144b、144c、第2通信部146a、146b、146cを備える。第2ブロック142bはさらに、駆動部148を備える。ただし駆動部148はその他のいずれの通信ブロックに備えられていてもよい。第1通信部143a、143b、143cは、直接接続された下位のブロックから送信された情報を受信する。ここで受信する情報は、当該ブロックより下位に接続されているブロックの識別番号、連結箇所の識別番号、内蔵するセンサによる計測結果を含む。複数のブロックが連結されている場合は、最下位のブロックからブロックを通過するごとに情報が重畳される。
要素情報取得部144a、144b、144cは、当該ブロックが内蔵しているセンサおよび、他のブロックを接続する箇所に設けた端子を含み、センサの計測結果、および下位のブロックが接続している箇所に係る情報を取得する。第2通信部146a、146b、146cは、第1通信部143a、143b、143cが受信した、それより下位のブロックの識別番号、連結箇所の識別番号、内蔵するセンサによる計測結果を含む情報に、当該ブロックの要素情報取得部144a、144b、144cが取得した情報を追加し、直接接続された上位のブロックに信号として送信する。ただし第1ブロック142aの第2通信部146aは、当該情報を情報処理装置10に送信する。さらに第2通信部146aは、処理の開始、終了の要求信号、通信の確立に必要な各種信号や、ブロックセットのアクチュエータを駆動させるための制御信号を情報処理装置10から受信するなど、情報処理装置10とのインターフェースとして機能する。
情報処理装置10からアクチュエータを駆動させる制御信号が送信された場合、当該信号は第1ブロック142aから下位のブロックへ順次転送される。つまり各ブロックの第1通信部143a、143b、143cは、直接接続された下位のブロックへ当該信号を送信する。各ブロックの第2通信部146b、146cは、直接接続された上位のブロックから当該信号を受信する。第2ブロック142bの駆動部148は関節角を変化させたり車軸を回転させたりするアクチュエータを含み、第2ブロック142bが、上位のブロックから送信された制御信号において駆動対象として指定されている場合、それに応じた量でアクチュエータを動かす。
情報処理装置10は、ブロックセット120の第1ブロック142aからコアの状態に係る情報を受信するコア情報受信部20、カメラ122が撮影した画像とコアの状態に係る情報に基づきブロックセット120の形状、姿勢、位置を特定する構造解析部22、ブロックセット120の形状、姿勢、位置、あるいは入力装置14に対するユーザ操作に応じて所定の情報処理を行う情報処理部30、情報処理の結果、表示すべき画像を生成し表示装置16に出力する表示処理部32、ブロックセット120の動作を制御する信号を送信する駆動制御部34を含む。情報処理装置10はさらに、個々のブロックに係る情報を格納するブロック情報記憶部24、表示装置16に表示すべき3Dオブジェクトのモデルデータを格納するモデルデータ記憶部26、ブロックセットと3Dオブジェクトの部位や動きの対応情報を記憶する対応情報記憶部28を含む。
コア情報受信部20は、ブロックセット120の第1ブロック142aが集約した、コアを構成する通信ブロックの識別番号、その連結箇所、内蔵されたセンサによる計測結果に係る情報を含む信号を受信する。構造解析部22はカメラ122から、ブロックセット120を撮影した動画像や静止画像のデータを取得する。そして、コア情報受信部20が受信した情報と撮影画像から得られる情報とを統合し、ブロックセット120全体の位置、姿勢、形状を特定する。ブロックセット120からの信号とカメラ122からの画像データは即時入力されるため、時間的な対応がとれているものとするが、必要な時間分解能によっては同期化処理などを行ってもよい。
構造解析部22はブロックセット120のうち、コアの形状および姿勢はコア情報受信部20からの情報によって特定する。例えば、コアを構成する通信ブロックの識別番号に基づき、図3のL1~L5の情報を導出する。さらに実際の連結箇所の識別番号、および角度センサの情報から連結位置、およびブロック同士のなす角度を特定する。さらにモーションセンサの情報から図3のベクトルm1を導出する。ブロックセット120の3次元空間における位置や非通信ブロックを含むブロックセット120の表面的な形状に係る情報は、カメラ122から送信された撮影画像や、撮影画像から生成した奥行き画像などに基づき特定する。
このとき、例えば図3のマーカー108など、コアに含まれる通信ブロックの像を画像から検出し、そこを基準部位とするとともに、奥行き画像などからその位置を導出する。そして図4の中心軸124のように、当該基準部位からつながるコアの構造と、基準部位の像に対する非通信ブロックの像の位置関係から、コアと非通信ブロックの位置関係、ひいてはブロックセット全体の位置、姿勢、形状を特定できる。この処理を所定の頻度で行うことにより、ユーザが組み立て途中にあるブロックセットであっても、その構造をリアルタイムに認識できる。
ブロック情報記憶部24には、ブロックセットとして用いる各ブロックの基本情報を格納する。通信ブロックの場合、基本情報とは、ブロックにあらかじめ付与される識別番号と、形状、サイズ、他のブロックを接続可能な箇所に係る情報とを対応づけた情報である。非通信ブロックの場合、ブロックにあらかじめ付与される識別番号と、色、模様、素材、テクスチャなど外観上の特徴を対応づけた情報である。非通信ブロックの場合、このような外観上の特徴が詳細なほど、ブロックの特定精度が向上する。ただし情報処理装置10が行う情報処理によって、個々の非通信ブロックを特定する必要がない場合は、非通信ブロックの情報は格納しなくてもよい。
情報処理部30は、構造解析部22が特定したブロックセット120の状態、あるいは入力装置14を介したユーザ操作に応じてなすべき処理を実行する。例えばブロックセット120が組み立てられたら、ブロックセットの形状を表す3Dオブジェクトやそれに対応づけられたモデルの3Dオブジェクトが表示されるようにする。そしてブロックセット120の動きに合わせて、表示された3Dオブジェクトが動くようにする。あるいはコンピュータゲームを起動して入力装置14を介したユーザ操作に応じて進捗させ、それに応じてブロックセット120を動かす。
このためモデルデータ記憶部26には、情報処理部30が表示装置16に表示させるオブジェクトモデルを描画するのに必要なデータを格納する。このオブジェクトモデルは、ゲームに登場するキャラクタなど、あらかじめデザインされたものでもよいし、組み立てたブロックセットに合わせてユーザが作成したものでもよい。情報処理部30はさらに、関節や車輪などブロックセットとオブジェクトの部位同士を対応づけ、さらに両者の部位の動きを対応づけるための処理を行う。このとき、情報処理部30が全ての対応を設定してもよいし、ユーザが対応づけられるように設定画面を表示して設定入力を受け付けてもよい。あるいはそれらを適宜組み合わせてもよい。対応情報記憶部28には、このようにして設定された、部位や動きの対応関係に係る情報を格納する。
これにより、ユーザがブロックセットを自由に作成しても、その位置のみならず形状や姿勢までを、ブロックセットと画面上のオブジェクトで連動させることができる。例えばゲームの世界を実世界におけるブロックセットに反映させたり、ブロックセットの動きを仮想世界にいるキャラクタに反映させたりすることが可能となる。このとき、必ずしも両者の動きが完全に同一でなくてもよく、動きの対応づけによって様々な変化を設定できるようにする。また動きの反映はリアルタイムでなくてもよい。例えばユーザが動かしたブロックセットの状態の経時変化を保存しておくことにより、任意のタイミングで、対応するオブジェクトが動きを再現する態様を実現できる。ひいては、コンピュータゲームやアニメーションのキャラクタの動きを容易な操作で作成できる。
駆動制御部34は、情報処理装置10がブロックセット120を動かす態様において、情報処理部30からの要求に従いブロックセット120に制御信号を送信する。具体的に送信する信号は制御方式によって様々であり、ロボット工学の分野などで一般的に用いられる技術を適宜採用してよい。送信された制御信号はブロックセット120における第1ブロック142aの第2通信部146aで受信され、ブロックセット120内部での信号伝送により対象ブロック(図6の場合は第2ブロック142b)の駆動部148の動作へ反映される。あるいは当該制御信号を、無線通信などにより対象ブロックへ直接送信するようにしてもよい。
表示処理部32は、情報処理部30が行った処理の結果として画像データを作成し、表示装置16に表示させる。ブロックセット120の動きに合わせて動くオブジェクトを表示させる例では、表示装置16の出力フレームレートで、ブロックセット120の動きに対応させてオブジェクトを描画し、表示装置16にビデオ信号として出力する。描画処理自体は一般的なコンピュータグラフィックス技術を適用できる。表示処理部32はさらに、ブロックセット120とオブジェクトの部位や動きの対応づけを設定するための画面を表示装置16に表示させる。情報処理部30が全ての対応づけを行う場合は、設定した対応をユーザが確認したり修正したりする画面を表示させてもよい。表示処理部32はそのほか、ゲーム画面など情報処理部30が実行している情報処理に応じた画像を適宜表示させる。
図7はブロックセット120における情報伝達経路と伝達される情報の例を模式的に示している。情報伝達経路150において内部に数字の書かれた円はそれぞれがブロックを表しており、円間の直線はブロックが連結されている状態を表している。また円内の数字は各ブロックの識別番号とする。識別番号「1」のブロックは図6の第1ブロック142aに対応し、情報処理装置10と通信を確立する。さらに図7における識別番号「2」、「3」のブロックは識別番号1のブロックに直列に接続されていることから、図6における第2ブロック142b、第3ブロック142cにそれぞれ対応すると捉えることができる。
一方、1つのブロックに複数のブロックが連結することも考えられる。図7の例では識別番号「1」のブロックに識別番号「2」のブロック、「5」のブロックが接続されている。識別番号「2」のブロックには上述のとおり、識別番号「3」のブロック、「4」のブロックがこの順で直列に接続されている。識別番号「5」のブロックには、識別番号「6」のブロックと「7」のブロックが並列に接続されている。この例ではさらに、識別番号「6」のブロックに、識別番号を持たないブロックが接続され、そのブロックに識別番号「8」のブロックが接続されている。ここで識別番号を持たないブロックとは、非通信ブロックに相当する。
上述のとおり情報伝達は基本的に、下位のブロックから上位のブロックへ伝達される。図7では、伝達される情報の内容を、伝達方向を示す矢印とともに表している。例えば識別番号「3」のブロックから「2」のブロックへ伝達される情報は、[3:J2(4)]と示されている。これは「自らの識別番号:ブロックに設けられた接続箇所の識別番号(そこに接続しているブロックの識別番号)」なるフォーマットで構成される信号であり、識別番号「3」の接続箇所のうち識別番号「J2」の箇所に識別番号「4」のブロックが接続されていることを表している。ただし同図をもって情報のフォーマットや内容を限定するものではない。
ブロックの上位にあたる方向がどちらにあるかは、ハブの役割を有するブロックが、ブロックの連結によって構成されるネットワークを探索することにより、順位づけを行うなどして決定できる。このような手順は、一般的な情報処理システムを構成するデバイスツリーにおけるネットワーキング技術を適用できる。
図7において識別番号「4」のブロックは、それが属する接続系列において最下位にあるため、1つ上位の識別番号「3」のブロックへ情報を送信する。識別番号「4」のブロックには他のブロックが接続されておらず接続箇所が一意に求まるとすると、またセンサが内蔵されていないとすると、送信される情報は自らの識別番号「4」のみとなるため、伝達内容を「[4:-]」と表している。「-」はセンサの計測結果や接続されているブロックがないことを示している。
識別番号「3」のブロックは、識別番号「4」からの信号を受信すると、それを受信した端子の番号などを接続箇所の識別番号として対応づけ、さらに自らの識別番号「3」も対応づけて、1つ上位の識別番号「2」のブロックに送信する。この信号の伝達内容は上述のとおり[3:J2(4)]となる。識別番号「2」のブロックも同様に、自らの識別番号、接続箇所の識別番号(図の例では「J5」)、接続しているブロックの識別番号「3」を対応づけた信号、すなわち[2:J5(3)]を生成する。また識別番号「2」のブロックがセンサを内蔵しているとすると、その計測結果を表す信号と自らの識別番号を対応づけた信号も生成する。同図の例では計測結果を「result」と表しているが、実際には具体的な数値がセンサの種類に応じて代入される。
識別番号「2」のブロックは、このようにして生成したデータと、下位のブロックから伝達されたデータ、すなわち[3:J2(4)]を、1つ上位の識別番号「1」のブロックに送信する。ただしこれらの信号は常に同時に送信する必要はなく、一旦送信した信号の内容に変更があったときにその情報のみを送信するなどでもよい。一方、識別番号「5」のブロックに接続された、識別番号「6」と「7」のブロックがセンサを内蔵しておらず接続箇所が一意に求まるとすると、これらのブロックからは、識別番号「4」のブロックと同様、[6:-]、[7:-]の信号がそれぞれ識別番号「5」のブロックに送信される。識別番号「6」のブロックには、さらに別のブロックが接続されているが、当該ブロックは非通信ブロックのため、そこからの情報は得られないものとしている。
識別番号「5」のブロックは、自らの識別番号に、接続箇所の識別番号および接続されているブロックの識別番号を対応付けた信号を生成し、1つ上位の識別番号「1」のブロックに送信する。図示するように複数のブロックが接続されている場合、それらをまとめて[5:J3(6),J8(7)]などとする。ここで「J3」、「J8」は、かっこ内の識別番号のブロックが接続されている接続箇所の識別番号である。
このようにして識別番号「1」のブロックに、ブロックセットのコアの情報が集約される。識別番号「1」のブロックも他のブロックと同様、自らの識別番号に接続箇所の識別番号、それに接続されているブロックの識別番号を対応づけた信号を生成する。そして下位のブロックから送信された信号とともに情報処理装置10へ送信する。これにより情報処理装置10は、コアを構成するブロックの識別番号、各ブロックの接続関係、センサを内蔵するブロックにおける計測結果を逐次取得することができる。
このように、ハブの役割を有するブロックを1つに定め、情報を集約させて情報処理装置10へ送信するようにすると、情報の錯綜や無駄な通信処理を防止することができる。一方、場合によっては複数のブロックから情報処理装置10へ通信するようにしてもよい。例えば図7の例では、識別番号「8」のブロックは、非通信ブロックを介して識別番号「6」のブロックに連結している。
この場合、識別番号「8」のブロックは、自らのデータを情報処理装置10へ直接送信してもよい。例えば当該ブロックが位置センサを内蔵する場合、自らの識別番号とその計測結果を直接、情報処理装置10へ送信することにより、情報処理装置10は、識別番号「6」のブロックより先に連結しているブロックが存在することを把握でき、さらに当該ブロックの形状、およびおよその接続状況を推測することができる。識別番号「8」のブロックに内蔵されるセンサの数が増えるほど、その情報の確度が向上する。複数の位置情報を取得できるブロックを組み合わせることで、カメラ122からの死角にあるブロックの構造も精度よく特定できる。
図8は情報処理装置10のブロック情報記憶部24に格納する、通信ブロックの基本情報のデータ構造例を示している。通信ブロック情報テーブル160は、識別番号欄162、形状欄164、サイズ欄166、接続箇所欄168を含む。識別番号欄162には、ブロックセットを構成する通信ブロックにあらかじめ付与した識別番号を記載する。形状欄164には、各通信ブロックの形状の種類、すなわち「四角柱」、「立方体」など、図2で例示したようなブロックの型を記載する。サイズ欄166には各通信ブロックの横幅、奥行き、縦の長さを記載する。
接続箇所欄168には、各通信ブロックに設けられた接続箇所を、その識別番号と対応づけて記載する。図8の例では、「接続箇所の識別番号(面の番号,当該面内でのx座標,y座標)」なるフォーマットで記載されている。面の番号は、ブロックの各面に対しあらかじめ一意に決定しておく。例えば識別番号「1」の通信ブロックは、横幅4cm、奥行き4cm、縦の長さ8cmの四角柱型ブロックである。そして識別番号が「J1」の接続箇所は、第1面の座標(2,2)の位置にある。識別番号が「J2」の接続箇所は、第2面の座標(1,2)の位置にある。ただしこれらの情報が表されれば、その表記のフォーマットは特に限定されない。
このような通信ブロック情報テーブル160を情報処理装置10で保持しておくことにより、ブロックセット120から送信された信号に基づき、コアに対し図3で表記したようなパラメータが判明することになる。構造解析部22は、このようにして特定されるコアの状態と、カメラ122が撮影した画像に基づき、非通信ブロックを含むブロックセット120全体の位置、姿勢、形状を特定する。図9は非通信ブロックを含むブロックセットの状態を特定する基本的な処理を説明するための図である。同図左上はコア情報受信部20が受信した情報に基づき特定されるコア170の状態を示している。この情報から特定されるのは、通信ブロックの接続関係とそれに基づくコアの形状である。ただし内部に位置センサを備えていれば、実空間での位置も判明する。
一方、構造解析部22は、カメラ122が撮影した画像から奥行き画像172を生成する。奥行き画像はカメラ122の視野内の対象物を、カメラからの距離を画素値として表した画像であり、上述のとおりカメラ122をステレオカメラなどとすることにより作成できる。同図の奥行き画像172は、距離が遠いほど輝度が小さい画像を模式的に示しており、通信ブロック、非通信ブロックの区別なく、ブロックセット120全体の像が表れている。この奥行き画像のうち、例えばマーカーなどコアに属するブロックの少なくとも一部の像を検出することにより、当該部分のカメラからの距離を含む3次元空間での位置座標を特定できる。そして先に特定したコア170の状態のうち、画像上で検出された部位が当該位置座標に存在するようにして、コア170に対するカメラ座標系を定める。
なおコアの像を検出する際は、カメラ122が撮影したカラー画像を利用してもよい。そしてカメラ122側から見たコア170と、奥行き画像172の像として表れるブロックセットとのボリューム差分をとることにより、ブロックセットのうちコアの部分を除いた非通信ブロックの状態を特定できる。図9の右に示したブロックセット120のうち、網掛けで示した部分が差分として得られた非通信ブロックである。結果として、図示するように、コアと非通信ブロックとを含むブロックセット120全体の位置、姿勢、形状を特定できる。なお背景分離などによりブロックセット120の像が特定でき、コアの見かけ上の大きさなどに基づき当該像とコアの位置合わせが可能であれば、奥行き画像によらず、一般的な撮影画像のみを利用してもよい。
なお図9で示した基本的な処理では、非通信ブロックについて得られる情報は、カメラの視野平面における2次元の情報のみである。そこで、非通信ブロックの基本情報をブロック情報記憶部24に格納しておき、視野平面での見かけの形状やサイズに合致するブロックを検索することにより、奥行き方向を含む3次元形状の特定精度を上げることができる。図10は情報処理装置10のブロック情報記憶部24に格納する非通信ブロックの基本情報のデータ構造例を示している。
非通信ブロック情報テーブル180は、識別番号欄182、形状欄184、サイズ欄186、色欄188を含む。識別番号欄182には、ブロックセットを構成する非通信ブロックにあらかじめ付与した識別番号を記載する。同じ形状、サイズ、色のブロックは同じ識別番号としてもよい。形状欄184には、各非通信ブロックの形状の種類、すなわち「直方体」、「円柱」など、図2で例示したようなブロックの型を記載する。サイズ欄186には各非通信ブロックの横幅および奥行き(あるいは直径)、縦の長さを記載する。色欄188には、各非通信ブロックの色を記載する。
形状欄184、サイズ欄186、色欄188の情報は、3Dグラフィックスにおけるオブジェクトモデルのデータと同様に、ポリゴンやテクスチャなどの情報としてもよい。また非通信ブロック情報テーブル180が保持する情報は図示するものに限らない。例えば凹部の形状などから、接続できる通信ブロックが限定的である場合は、接続可能な通信ブロックの識別番号を保持しておけば、特定済みのコアに属する通信ブロックに基づき、それに接続されている非通信ブロックを絞り込める。構造解析部22は非通信ブロック情報テーブル180を参照し、図9で示した奥行き画像172のうちコア以外の部分の像にそれぞれ合致する非通信ブロックを特定する。
なお他のブロックに隠蔽されて見えないブロックについては、初期状態では存在しないと仮定したうえでブロックセットの動きを追跡していくことで、時間発展的に正確な形状を特定していく。一部が隠蔽されている場合で、非通信ブロック情報テーブル180を参照しても形状が確定できない場合は、いずれかの候補形状を仮定するか、隠蔽部分のみ何らかの面を仮定することにより、後の時間で徐々に修正していき形状認識の精度を上げていく。
図11は時間発展的にブロックセットの形状を特定する処理を説明するための図である。同図の縦軸は時間を表し、時刻「T1」から「T2」へ時間が経過しているとする。またブロックセット190は一例として、同図最上段に示すように、マーカーのついた四角柱型の通信ブロック(白抜きで表示)の下半分に円柱型の非通信ブロック(網掛けで表示)が装着されている。まず時刻T1においては当該図のように、水平面に置かれたブロックセット190を、カメラ122が正面から撮影したとする。この場合、撮影画像192aでは図示するように、各ブロックの側面のみが像として表れる。
このような画像から上述のとおり奥行き画像を生成し、別途形状を特定したコアとのボリューム差分をとると、残りの部分は見かけ上、非通信ブロックの側面の像である四角形となる(奥行き画像198a)。すなわち時刻T1では、非通信ブロックの3次元形状が特定できない可能性がある。ただし奥行き画像の分解能によっては円柱か直方体か、といった区別が前面の湾曲の有無によって判明する場合もある。また非通信ブロック情報テーブル180に登録済みのブロックのうち、サイズやアスペクト比などが合致する非通信ブロックが一つのみの場合も、その形状を特定できる。なお奥行き画像198aは、撮影画像から取得した奥行き画像中のブロックセットの像とコアとのボリューム差分をとったボリュームデータを表象するものであり、必ずしも画像として生成するものではない。以後の図も同様である。
それ以外の場合、構造解析部22は、非通信ブロック情報テーブル180から候補となる非通信ブロックを検出し、そのいずれかであることを仮定する。あるいは、形状が特定されている通信ブロックと同一平面を非通信ブロックの不特定の面として仮定する。同図では前者の例として、非通信ブロックを直方体と仮定した場合のブロックセットの形状200を示している。なお図示するブロックセットの形状200は、情報処理装置10において時刻T1の時点で認識されている形状であり、必ずしもそれを表示に用いる趣旨ではない。例えば、ブロックセットの状態をそのまま3Dオブジェクトとして表示するアプリケーションを実行中は、図示した仮定形状のまま描画してもよい。あるいは何らの表示も行わず、次の時間ステップにおいて形状を修正する際の土台として用いるのみでもよい。
表示を行うか否かに関わらず、非通信ブロックの形状を時間発展的に特定したり、ユーザが組み立て中のブロックセットの形状変化をリアルタイムかつ効率的に認識したりするために、仮定した形状に係る情報を少なくとも所定期間、記憶しておき、後の処理に利用する。ブロックセットの形状は、それを構成する通信ブロックおよび非通信ブロックに構造上の識別番号(以下、「要素番号」と呼ぶ)を与えることにより管理する。同図ではブロックセットの通信ブロックに「#C1」、非通信ブロックに「#N1」なる要素番号が与えられている。この例では通信ブロックと非通信ブロックの区別を、アルファベットの「C」および「N」で区別しているが、これにより要素番号のフォーマットを限定するものではない。
これらの要素番号を、図8や図10で示した、各ブロックにあらかじめ付与された識別番号と対応づけたうえ、非通信ブロックと通信ブロックとの接続関係(接続面、接続されている位置や向き)に係る情報とともに記録する。以後、このようなブロックセット全体の構造に係る情報を「構造データ」と呼ぶ。このようにブロックごとに構造を管理することにより、上記のような表示が可能となるほか、1つの塊として画像に表れていたブロックセットを、ユーザが着脱させる単位に分割できるため、組み立て中のブロックセットや変形されたブロックセットの形状特定を効率化できる。ブロックセットの形状をそのまま描画する場合は、この時点において描画に用いるポリゴンおよびテクスチャを生成しておいてもよい。そして以後の形状特定処理においては、この3Dモデルを修正したりブロックの追加や削除をしたりしてよい。
時刻T1においてブロックセットの形状200のような形状を認識した後も、撮影や形状特定処理を継続している。このときユーザがブロックセット190の頂点をカメラ122側へ傾けた場合、時刻T2における撮影画像192bでは図示するように、通信ブロック194、非通信ブロック196の上面がいくらか含まれる像となる。このような画像から奥行き画像を生成し、その時点における状態のコアとのボリューム差分をとると、残りの部分には非通信ブロックの円柱の上面が含まれる(奥行き画像198b)。その像の形状から、当該非通信ブロックは時刻T1で仮定した直方体ではなく、円柱である可能性が高いと判定できる。このような修正を、ブロックセットの姿勢の変化とともに繰り返すことにより、ブロックセットの形状認識の信頼性が上がっていく。
非通信ブロックが円柱であることが判明した時点で、構造解析部22は、時刻T1で直方体と仮定した非通信ブロックの形状を、円柱と入れ替える。これにより正確なブロックセットの形状202が認識されたことになる。この処理は実際には、要素番号#N1に対応づけた直方体型のブロックの識別番号を、円柱型のブロックの識別番号に修正する処理となる。あるいはポリゴンモデルを修正してもよい。図11の例は理解を容易にするため、ごく簡易な構造のブロックセットを例示したが、実際には、例えば非通信ブロックの背後にさらに非通信ブロックが接続されていたり、他のブロックと重なりあって非通信ブロックの一部のみが見えていたりすることが考えられる。
この場合、上述のように、各非通信ブロックの形状を仮定して、ユーザがブロックセットを持って傾けたり方向を変化させたりするのに応じて判明した部分のみを徐々に特定していく手法のほか、複数の方向から撮影できるようブロックセットをカメラ122に対して回転させるようにユーザに促す表示をしてもよい。また非通信ブロック情報テーブル180から、隠蔽されていない部分の形状や色に基づき候補となる非通信ブロックを抽出しリスト表示することにより、ユーザが実際のブロックを指定できるようにしてもよい。また、各非通信ブロックに、形状を表す2次元バーコードや図形のマーカーを貼付することにより、撮影画像から形状を特定してもよい。
図12は組み立て中などで構造が変化するブロックセットの形状を特定する処理を説明するための図である。図の表し方は図11と同様であり、縦軸を時間軸として、各時刻の撮影画像192b~192d、コアの部分を除いた像の奥行き画像198b~198d、認識されるブロックセットの形状202、210、216を左から順に示している。同図最上段の時刻T2は図11の時刻T2に対応し、撮影画像192b、奥行き画像198b、認識されているブロックセットの形状202も同一である。この状態から、後の時刻T3において、ユーザが新たな非通信ブロック204を接続したとする(撮影画像192c)。このときの奥行き画像198cを、その前の時刻T2における奥行き画像198bと比較すると、追加された非通信ブロックの像206が増えていることがわかる。
構造解析部22は、前の時刻T2における奥行き画像198bと現時刻T3における奥行き画像198cを比較することにより、新たな非通信ブロック204の接続を認識する。ここで前の時刻でも存在した非通信ブロック196は、カメラに対する向きが変化している可能性があり、新たに接続されたブロックとの区別がつかないおそれがある。そこで構造解析部22は一旦認識した非通信ブロックに対し、位置姿勢トラッキングを継続して実施することにより、位置や姿勢が変化しても同一のブロックは同一なものとして認識できるようにする。位置姿勢のトラッキングとして、アクティブ輪郭モデルなどを用いた一般的なトラッキング技術を適用してよい。あるいはコアからの信号により特定できる、コアの位置や姿勢の変化から、それと接続状態にある非通信ブロックの向きの変化を導出してもよい。
そのようにしてボリューム差分後の像を比較した結果、新たな非通信ブロック204が接続されたことが検出できたら、図11で説明したのと同様に、非通信ブロック情報テーブル180を参照するなどして当該非通信ブロックの形状を特定する。そして同時刻のコアの形状や姿勢に基づき、コアとの接続関係を特定する。その結果、時刻T3におけるブロックセットの形状210が、図示するように認識できる。このとき、追加された非通信ブロックに新たな要素番号「#N2」を付与し、当該ブロックにあらかじめ付与された識別番号と対応づけるとともに、通信ブロックとの接続関係を記録することにより構造データを更新する。
なおカメラの視野に存在する非通信ブロックが接続されたのか未接続なのかを判定するため、コアを含むブロックセットと、視野にあるブロックとの相対速度を監視してもよい。この場合、相対速度が0となったときに、新たなブロックが接続されたと判定する。時刻T3の後の時刻T4においては、ユーザが、以前接続していた非通信ブロック196を、別の形状の非通信ブロック214に接続し直したとする(撮影画像192d)。このときの奥行き画像198dを、その前の時刻T3における奥行き画像198cと比較すると、非通信ブロックの像215の形状が変化していることがわかる。
そのようにしてボリューム差分後の像を比較した結果、非通信ブロックが別の形状のものに接続し直されたことが検出できたら、これまでと同様に、非通信ブロック情報テーブル180を参照するなどして、新たな非通信ブロックの形状を特定する。コアとの接続関係は以前接続されていたものと同じであるため、以前の情報をそのまま利用できる。したがって、構造データにおいて以前と同じ要素番号「#N1」に対応づけられていた、ブロックの識別番号のみを今回特定したものに更新することにより、時刻T4におけるブロックセットの形状216が、図示するように認識されたことになる。
別の形状の非通信ブロックが接続される場合以外に非通信ブロックが変形する例として、当該非通信ブロックに内包されているコアの関節角が変化した場合が考えられる。図13はコアの関節角の変化に起因して変形するブロックセットの形状を特定する処理を説明するための図である。図の表し方は図11、12と同様であり、縦軸を時間軸として、各時刻の撮影画像192e~192g、奥行き画像198e~198g、認識されるブロックセットの形状218、222、224を左から順に示している。ただしブロックセットの形状は図11、12で示したものと異なり、マーカーと関節を備えた通信ブロック226のうち上下のリンクを包含するように、非通信ブロック228、230がそれぞれ装着されているものとする。
関節が曲がっていない時刻t1における撮影画像192eに基づき生成した、ボリューム差分後の奥行き画像198eでは、非通信ブロックは見かけ上、1つの塊として表れる。したがって構造解析部22は、1つ(一連)の通信ブロックと、1つとみなした非通信ブロックにそれぞれ要素番号「#C1」、「#N1」を付与してそれぞれのブロックの識別番号と対応づけ、両者の接続関係を構造データとして記録することにより、ブロックセットの形状218を図のように認識する。
次に時刻t2において、ユーザがコアの関節を曲げたとする(撮影画像192f)。このときの奥行き画像198fを前の時刻t1における奥行き画像198eと比較すると、非通信ブロックの形状が変化していることがわかる。構造解析部22はブロックセットから別途送信されたコアの情報から、非通信ブロックが包含しているコアの状態を取得している。つまり通信ブロックの関節角についても把握している。したがって、非通信ブロックの変形と対応する角度で、中にある通信ブロックの関節角が変化している場合は、当該非通信ブロックの変形がコアの屈伸に起因する、と判定できる。
これにより、別のブロックを接続し直したのではなく、元は1つのブロックとして認識していたものが実際は複数のブロックであったことを特定できる。この場合、例えば傾きが変化した方の非通信ブロック(図では上部のブロック)に、新たな要素番号「#N2」を付与し、傾きに変化がなかった方は要素番号「#N1」をそのまま用いて構造データを修正する。コアとの接続関係も要素番号の修正に伴い適宜修正する。これにより時刻t2におけるブロックセットの形状222が、図示するように認識できる。
同図の例では上部と下部のブロックの区別が傾き角度やブロックの形状から明白であるが、傾き角度が小さかったり、角度が変化しても隙間が目立たない形状や材質のブロックであったりすると、ブロックの切れ目がわかりにくいことが考えられる。この場合、例えば関節が曲がっていないときのコアの軸に垂直な分割面220を関節の位置に設定し、この分割面によってブロックを分割することによって、元々1つと見なしていたブロックを2つに分けてもよい。この場合、元々接していた下部のブロックの上面および上部のブロックの底面として、分割面220の平面を仮定しておき、以後の形状特定処理で修正していくようにする。
時刻t2における処理により、非通信ブロックが2つのブロックからなることが認識されたため、その後の時刻t3において、ブロックセットの関節が曲がっていない時刻t1のときの状態に戻ったとしても(撮影画像192g、奥行き画像198g)、情報処理装置10では2つの非通信ブロックが連なっている状態と認識できる(ブロックセット224)。以後は、コアの関節に曲げ伸ばしが生じても、リンクを包含する非通信ブロックは個別に管理されているため、新たに形状を特定するなどの処理の必要はない。
このように一時的に向きや間隔が変化することなく、複数のブロックが1つの塊として組み立てられている場合は、それらをまとめて1つのブロックと見なすことによりデータ管理を簡易にしてもよい。逆に、1つの塊として組み立てられていても、色やテクスチャが異なり別のブロックであることがわかる場合は、それらの情報に基づき各ブロックを個別に管理してもよい。特に、ユーザがブロックを着脱する過程をも正確に認識する必要がある場合は、各ブロックを個別に管理することで、構造データの修正を変化のあった部分に限定できるため処理効率の面で有利である。
また、得られたブロックセットの状態をオブジェクトとして表示装置16に表示する場合、あるいはポリゴンおよびテクスチャの情報として構造データを保持する場合、特定した形状をそのまま反映させるのでなく、解像度を粗くするローポリゴン化を行い、処理の負荷やメモリ消費を抑えてもよい。あるいは非通信ブロック情報テーブルにおいて、各非通信ブロックをさらに別のオブジェクトモデルに対応づけておき、表示時には当該非通信ブロックの部分を、それに対応づけられたオブジェクトモデルに代替させて描画してもよい。これにより、ブロックが直方体など大雑把な形状であっても、表示時にはリアルなオブジェクトに変換されて表示されることになる。このように、情報の詳細度を実際のブロックセットより下げるか、そのままとするか、上げるかは、ブロックセットの状態を利用して情報処理部30がなすべき処理、情報処理装置10の処理性能、メモリ容量などによって適宜設定する。
なお図11~13で示したように、本実施の形態では、ブロックセットの時間変化をコアと非通信ブロックの双方について取得していることになる。したがって、当該時間変化を履歴として所定時間記憶しておき、必要に応じて読み出し利用することにより、様々な態様を実現できる。例えば組み立て中のブロックセットを数段階前の状態に戻したいとき、ユーザが入力装置14を介してリクエストすると、当該段階のブロックセットの状態が3Dオブジェクトとして表示されるようにする。ユーザは、それを見ながら実際のブロックセットを前の状態に戻せる。3Dオブジェクトとして描画されたブロックセットに対する仮想的な視点を入力装置14によって変化させれば、以前のブロックセットの状態を複数方向から確認することもできる。履歴を長時間保存しておけば、過去に作成したブロックセットを制作段階ごとにオブジェクトとして表示し、それに倣って実際のブロックセットを組み立て再現することもできる。
また、図12の円柱型の非通信ブロック196のように、一旦外されたブロックの情報を、構造データからすぐには削除せずに元の要素番号をそのまま付与しておき、外されたことを示すフラグなどで管理してもよい。この場合、同じ箇所に別のブロックがつけられた場合は同じ要素番号が複数の非通信ブロックに与えられることになるが、フラグによって、現在の情報か過去の情報かを判別できる。そしてブロックセットを前の状態に戻したい旨のリクエストがユーザよりなされたら、元のブロックを構造データから検出して復帰させることにより、前の状態のブロックセットのオブジェクトを表示できる。
次に、これまで述べた構成によって実現できる、ブロックセットの状態特定に係る情報処理装置の動作について説明する。図14は非通信ブロックを含むブロックセットの状態を特定する処理手順を示すフローチャートである。このフローチャートは、ユーザが、ブロックセット120のブロックのうちバッテリーを備えるいずれかのブロックの電源を入れ、情報処理装置10においてアプリケーションを選択するなど処理開始の指示を、入力装置14を介して入力したときに開始される。
なおここで示す情報処理装置10の処理と並行して、ユーザによって組み立てられたり持ち上げられたりしているブロックセットから、コアの状態を表す信号が所定のタイミングで送信されているものとする。またこのフローチャートは非通信ブロックの変化に着目しており、コアの状態変化については別途、コアの状態を表す信号などから求めているものとする。まず構造解析部22はカメラ122に、ブロックセットの撮影を開始させる(S10)。一方、情報処理部30、表示処理部32の協働により、所定の初期画像を表示装置16に表示する(S12)。このとき表示する画像は、カメラ112が撮影したライブ映像や、ゲーム画像などアプリケーションの一部としてあらかじめ作成された画像などでよい。
時間ステップt=0(tは時間の経過を昇順で表す整数)において、コア情報受信部20がブロックセットから送信された情報を受信すると、構造解析部22は、当該情報に基づき、コアの3次元空間での姿勢や形状を特定する(S14、S16)。撮影画像以外の手段により位置が判明する場合は、コアの位置も特定する。一方、構造解析部22は、カメラ122から撮影画像を取得し、それに基づき奥行き画像を生成するなどしてブロックセットの全体像と位置を取得する(S18)。撮影画像には、ブロックセット以外の物や背景、ユーザの手などが映り込んでいる可能性があるため、いずれかの段階でこれらの像を除く処理を行っておく。
この処理には前景抽出、SLAM(Simultaneous Localization And Mapping)法、カラーセグメンテーション、辞書ベースの物体認識などの一般的な手法を用いることができる。そのようにして抽出したブロックセットの全体像に対しコアがどのように位置するかを特定する(S20)。具体的には上述のように、コアのマーカーなど特徴的な形状、色、模様などを有する部分をブロックセットの像から検出し、当該部分を基準にコアの位置を決定する。そしてS16で特定した、コアの形状や姿勢に基づき、カメラからのコアの見え方を特定する。これはすなわち、非通信ブロックがなかった場合のブロックセットの像であるため、実際のブロックセットの全体像とのボリューム差分をとることにより、非通信ブロックの像および位置を取得する(S22)。
それより前の時間ステップt-1で非通信ブロックの状態を取得している場合は、それと今回の非通信ブロックの像とを比較し(S24)、変化があるか否かを確認する(S26)。像の形状に変化がある場合は(S26のY)、非通信ブロックの形状特定およびブロックセットの構造データの更新処理を行う(S30)。なお時間ステップt=0のときはS22で取得した非通信ブロックの状態自体を変化とみなし、それに基づき構造データを新規に作成する。
S30の処理は、図11~13を参照して説明したように、非通信ブロックの追加や除外、別の非通信ブロックへの付け替え、コアの関節が曲がることによる非通信ブロックの形状変化、に場合分けし、それぞれに対してなすべき処理を行う。すなわち、追加された場合は要素番号を付与し、それぞれ形状や接続方向などと対応づけたうえ、コアとの接続関係を記録する。除外された場合は、構造データから削除するか、除外されたことを示すフラグを立てるなどして管理する。別の非通信ブロックへ付け替えられたときは、該当する要素番号に対応するブロックの形状や接続方向などを更新する。
コアの関節が曲げられたことによる形状変化時は、当該関節を挟むリンクごとに非通信ブロックが管理されていなければ、それらを別のブロックとして一方に新たな要素番号を与え、それぞれのブロックの形状や接続方向を更新して個別に管理する。また、コアや非通信ブロックの形状が変化していなくても、位置や姿勢の変化によって非通信ブロックの像が変化する。この場合、隠蔽などによって形状が確定できず仮定していた部分の形状が一部でも判明するかを確認し、判明する場合はそれに応じて構造データを更新することにより時間発展的に形状を特定していく。上述のとおり構造データは、3Dグラフィックスのモデルデータとして表してもよい。
S26において像の形状に変化がなければ(S26のN)、少なくとも非通信ブロックの状態は変化していないことになるため、S30の処理は行わない。ユーザが処理を終了させる入力を行うまで、時間ステップtをインクリメントしながら順次、S16からS30の処理を繰り返す(S32のN、S28)。ブロックセットの電源が切断されるなどして処理を終了させる指示入力がなされたら処理を終了する(S32のY)。なおS20の処理において、カメラから見てコアの全体が非通信ブロックによって隠蔽されている場合は、コアの位置合わせができないことになる。この場合は、コアがカメラの視野に入るようにブロックセットの向きを転換するよう、ユーザに促す表示を行ってもよい。あるいは、コアの全体像がブロックセットの全体像からはみ出さないようにコアに対するカメラ座標系を仮定し、その後の時間ステップで修正していくようにしてもよい。
なおこれまでの説明では主に非通信ブロックの形状変化に着目していたが、非通信ブロックの色やテクスチャが変化した場合も同様の処理で構造データを更新できる。ただしこの場合は、まず奥行き画像においてコアとの位置合わせを行うことにより全体像からコアの部分を除外したら、残された非通信ブロックの像の領域を、撮影されたカラー画像にフィードバックすることにより、色やテクスチャの変化を特定する。
図15はこれまで述べた態様によって実現できるブロックセットと表示の関係を例示している。同図の例では、通信ブロックおよび非通信ブロックを含むブロックセット240を、情報処理装置10が認識した通りに3Dオブジェクト242として描画し、表示装置16に表示している。非通信ブロックの形状、姿勢、色などはカメラ122が取得するため、非通信ブロック情報テーブルに登録されていないもの、例えばユーザが自作したものでも認識できる。例えば同図において、ブロックセット240として組み立てられた人形の顔をユーザがマジックで書いたりシールを貼ったりしても、それと同様の顔の人形やシールが貼られた人形が3Dオブジェクトとして描画される。
この例では、実際のカメラ122の視野にあるブロックセットを、鏡面処理により左右反転させオブジェクトとして表している。ブロックセット240は表示装置16上のカメラ122に正対しているため、表示上の3Dオブジェクト242はブロックセット240が鏡に映ったような状態で表示される。一方、情報処理装置10は上記のとおり、ブロックセット240の3次元形状を認識しているため、3Dオブジェクト242に対する仮想的な視点を自由に変えることができる。したがって、この時点ではカメラ122からの死角になっている人形の背中側の像も、ブロックセット240を回転させずに表示できる。ただしそれまでの形状特定処理によっては、背中側の形状の詳細が確定的でない場合もある。
これまでの説明では、実際に組み立てられたブロックセットの状態認識を基本としていたが、実物では接続されていないものを仮想的に接続できるようにしてもよい。図15に例示される画面では、ブロックセット240を反映した3Dオブジェクト242とともに、装備するアイテムの選択肢の画像244、246を表示している。ユーザが入力装置14を介して、あるいはブロックセット240を動かすなどして1つの画像を選択し、画面上の3Dオブジェクト242に持たせたら、情報処理装置10は認識済みのブロックセットの該当箇所に、当該アイテムが接続されたことを示すように、構造データを更新してもよい。
選択肢となるアイテムは、情報処理装置10のブロック情報記憶部24、あるいはモデルデータ記憶部26において3次元形状を保持しておく。これにより、以後の処理では、ブロックセットとして実際に接続されているか仮想的に接続されたかに関わらず、ブロックセットの実空間での動きに合わせて、画面上のアイテムも3Dオブジェクト242に持たれた状態で、仮想世界で動くように表現できる。ユーザが自作するなどした実物を3Dスキャナーで取り込み、3次元の形状情報を取得すれば、上記のアイテムの代わりとなる。すなわち非通信ブロックの実物があっても、実際に接続せずに画面上では接続されているように表示することができる。
同様の手法により、ブロックセットの外観自体を表示上の仮想世界で作成するようにしてもよい。図16はブロックセットに対し外観を設定する場合のブロックセットと表示の関係を例示している。この例では図15の場合と比較し、ブロックセット248自体は、例えば通信ブロックのみなど簡素な構成となっている。このようなブロックセット248の状態を認識すると、情報処理装置10は表示装置16に、認識されたブロックセットの状態をそのまま、あるいは左右反転させて3Dオブジェクト250として表示する。そして図15のアイテムと同様、候補となる3Dオブジェクトの選択肢の画像252a、252b、252cを、例えば顔など部位ごとに表示する。
ユーザは、ブロックセットのブロックごと、または複数のブロックで構成される部位ごとに、画像252a、252b、252cからの選択入力を行うことにより、3Dオブジェクト250に仮想的に接続していき、外観を完成させる。これにより、様々な外観の3Dオブジェクトを自由に作成し、さらに実際のブロックセット248の動きに合わせて当該3Dオブジェクトを動かしたり、仮想的な視点を変化させたりすることができる。また、このようにして仮想的な外観を作成したブロックセットを複数、接続することにより、表示上で仮想的な3Dオブジェクトが連結していくようにしてもよい。
例えば目標とする3Dオブジェクトの完成形のうち、パーツごとにブロックセットとそれに対応する外観を作成していき、最後にブロックセットを接続すれば、詳細な部分まで設定された外観を有する完成形が表示されるような態様を実現できる。あるいは、一旦作成した仮想的な外観の3Dオブジェクトを保存しておき、同じブロックセットでまた別の外観の3Dオブジェクトを作成する、という手順を繰り返したうえ、そのように作成した複数の3Dオブジェクトを仮想世界でのみ連結させてもよい。この場合、最後にブロックセットと対応づけた3Dオブジェクトがブロックセットと連動するのに伴い、連結した全ての3Dオブジェクトがブロックセットに合わせて動く態様を実現できる。
図15、16の例では、ブロックセットの動きを仮想世界の3Dオブジェクトに反映させたが、それとは逆に、3Dオブジェクトの動きをブロックセットの動きに反映させるようにしてもよい。例えば情報処理部30が実行するゲーム内のキャラクタとして、ユーザが組み立てたブロックセットを表す3Dオブジェクト、あるいはユーザがブロックセットに対応させて仮想的に作成した3Dオブジェクトを登場させる。ユーザは入力装置14を用いてゲーム操作を行い、それによって3Dオブジェクトが動いたら、実際のブロックセットも動くようにする。この場合、駆動制御部34は、3Dオブジェクトの動きに合致するようにブロックセットの駆動部148を制御する信号を送信する。
図16の例ではユーザが、1つあるいは複数のブロック単位で3Dオブジェクトを当てはめていく態様を想定していたため、実際のブロックと仮想的なオブジェクトとの対応関係は非通信ブロックと同様であり、管理も同様に行える。すなわち、実際のブロックセットの関節角が変化すれば、当該変化によって変形する箇所は3Dオブジェクトでも明らかなため、画面表示に容易に反映させることができる。3Dオブジェクトの動きをブロックセットに反映させる場合も同様である。一方、組み立てたブロックセット全体に対し、1つの3Dオブジェクトを対応づけるようにした場合、それらを好適に連動させるには、ブロックセットと3Dオブジェクトの対応箇所を適切に設定する必要がある。
図17は組み立てたブロックセットに対し1つの3Dオブジェクトを対応づけた場合のブロックセットと表示の関係を例示している。この例では、ユーザがクレーン車に見立てたブロックセット260を作成し、表示上の3Dオブジェクトとしてクレーン車262を選択した場合を想定している。ブロックセット260にはクレーンに見立てたブロックに複数の関節264a、264b、264cが設けられ、さらに台となるブロックには車輪266a、266b、266c、266dが装着されている。
例えばユーザがブロックセット260の関節を屈伸させて画面上のクレーン車262を同じように動かす場合、関節264a、264b、264cの屈伸をクレーン車262のどの箇所に反映させるかを設定しておく必要がある。また、クレーン車262の表示上の移動をブロックセット260の実際の動きに反映させる場合は、表示上の移動に合わせて各車輪の役割や回転速度、操舵角などを決定する必要がある。本実施の形態においてブロックセット260はユーザが自由に組み立てる物であるため、クレーンとして動かしたい部分やクレーン車の前後関係などはユーザの意図に依存するところが大きい。そこで、このように自由に組み立てられた物とあらかじめ準備した3Dオブジェクトの動きに係る対応関係を設定する手法について説明する。
図18はブロックセットと3Dオブジェクトの動きを対応づけるために必要な情報を例示している。同図の左側は図17のブロックセット260に対応するブロックセット270の模式図、右側は図17の3Dオブジェクトのクレーン車262に対応するクレーン車272の模式図を表している。図示するように、ブロックセット270には、情報処理装置10が形状を認識した際に用いた座標系が設定されており、クレーン車262には、当該3Dモデルに対するローカル座標系が設定されている。両者は独立に設定されるため、各座標系におけるブロックセット270およびクレーン車272の向きも様々となる。
図18の例では理解を容易にするため、ブロックセット270およびクレーン車272が、各座標系のx軸と平行な状態で定義されている場合のx軸y軸からなる2次元平面における形状、すなわち側面形状を表している。ただし各座標系に対するブロックセット270およびクレーン車272の向きは、x軸に対して反対方向となっている。ここでブロックセット270が有する3つの関節をRJ1、RJ2、RJ3とし、クレーン車272が有する3つの関節をVJ1、VJ2、VJ3とする。またブロックセット270が有する4つの車輪をRA1、RA2、RA3、RA4、クレーン車のキャタピラをVA1、VA2とする。なお車輪RA3、RA4、キャタピラVA2は、表示面と逆の側面にあり本来は隠蔽されているが、図18においては点線にてずらして表し、符号は括弧内に示している。
このようなブロックセット270とクレーン車272を連動させるには、最も単純には、ブロックセット270の関節RJ1、RJ2、RJ3をクレーン車272の関節VJ1、VJ2、VJ3にそれぞれ対応づけ、車輪RA1、RA2を図示しないキャタピラVA2に、車輪RA3、RA4をキャタピラVA1にそれぞれ対応づけることが考えられる。しかしながらこの例ではクレーンの関節の位置が両者で異なっているため、例えば両者の対応する関節をそれぞれ同じ角度で曲げるようにした場合、ユーザが期待したような動きにならないことが考えられる。
また一般的には、ブロックセット270の関節角には物理的な可動範囲が存在し、クレーン車272の関節にもモデル上の可動範囲が存在する。そのような拘束条件を考慮しないと、3Dモデルがあり得ない角度に曲がったり、ブロックセットの関節角が限界に達してそれ以上動かなくなってしまったりすることが起こり得る。また座標系に対する向きの違いにより、ブロックセット270を前進させているのに表示上のクレーン車272は後退している、といったことも起こり得る。そのような不具合が生じないよう、座標系の共通化、対応箇所の設定、対応する箇所の具体的な動きの対応づけ、といった処理を経ることにより、実物と仮想世界での物との連動の調和を図る。
図19は情報処理装置10が、ブロックセットと3Dオブジェクトの動きに係る対応づけを行う処理手順を示すフローチャートである。まずユーザは所望の形状にブロックセットを組み立てた後、入力装置14を介して、3Dオブジェクトとの対応づけを開始する指示要求を入力する。情報処理装置10の情報処理部30は当該要求を受け付けると(S40)、構造解析部22から、組み立てられたブロックセットの構造に係る情報を取得する(S42)。そしてモデルデータ記憶部26に描画データが準備された3Dオブジェクトのうち、ブロックセットの形状などに基づき好適なモデルを候補として抽出する(S44)。
モデルデータ記憶部26には、クレーン車など各種オブジェクトモデルの描画データと、各モデルの特徴を表すメタデータとを対応づけて格納しておく。このメタデータには大きく分けて物としての特徴、構造的な特徴、外観上の特徴が含まれる。物としての特徴とは、人、動物、乗り物、食べ物などの品目、キャラクタとして登場する映画、アニメーション、ゲームの名前やキャラクタ名などの固有名詞、原始時代、中世、現代、未来、特定の年など関連する時代、などである。構造的な特徴とは、関節の数、各関節の可動角や自由度、リンクの長さや太さ、関節の接続関係、駆動力、タイヤ径などである。
外観上の特徴とは、色、表面形状、非通信ブロックの個数や体積、ブロックセットにおける非通信ブロックの被覆率、LEDや表示装置を備えている場合はその個数、表示装置の種類などである。モデルデータ記憶部26には各モデルに対し、そのように多角的な特徴を対応づけておく。対応づける特徴が多いほど適した候補の抽出精度が上がるが、全ての特徴を対応づける趣旨ではない。S44において情報処理部30は、S42で取得したブロックセットの形状や構造に係る情報から、構造的な特徴、外観上の特徴に基づき、実際のブロックセットと類似度が高い候補モデルを抽出する。
例えば、ブロックセットの関節数をNRJ、車輪数をNRA、3Dオブジェクトの関節数をNVJ、車輪数をNVAとすると、次のような式によって類似度評価値を算出する。
類似度評価値 = (NRJ-NVJ)×wJ +(NRA-NVA)×wA
ここでwJ、wAは、関節数の評価および車輪の評価に対する重みであり、両者の重要性によって決定する。この評価値は0に近いほど類似度が高いことを意味する。また、評価値が正の場合はブロックセットの関節や車輪が多い傾向にあり、負の場合は3Dオブジェクトの関節や車輪が多い傾向にあることを意味する。評価値が0となる3Dオブジェクトがあれば、それを最有力な候補モデルとして抽出する。
類似度評価値 = (NRJ-NVJ)×wJ +(NRA-NVA)×wA
ここでwJ、wAは、関節数の評価および車輪の評価に対する重みであり、両者の重要性によって決定する。この評価値は0に近いほど類似度が高いことを意味する。また、評価値が正の場合はブロックセットの関節や車輪が多い傾向にあり、負の場合は3Dオブジェクトの関節や車輪が多い傾向にあることを意味する。評価値が0となる3Dオブジェクトがあれば、それを最有力な候補モデルとして抽出する。
さらに、評価値の絶対値が同じで正負が異なる複数の3Dオブジェクトがあれば、負の評価値となる3Dオブジェクトを優先して抽出する。これは、3Dオブジェクトの関節や車輪が多いほど、画面上で細かい動きを表せ、ブロックセットの動きをより豊かに表現できるためである。そのような類似度の評価を行う前に、物としての特徴の中からユーザが選択した特徴に基づき、候補を絞り込んでもよい。物としての特徴、構造的な特徴、外観上の特徴を適宜組み合わせて抽出してもよいし、ユーザが物としての特徴以外の特徴も指定できるようにしてもよい。
情報処理部30は、そのようにして抽出した複数の候補モデルを表示装置16に表示させ、ユーザが入力装置14などを介して行った選択入力を受け付ける(S46)。これにより選択されたモデルの例が、図18で示したクレーン車272である。次に、ブロックセットと画像上のオブジェクトに対し共通の座標系を設定する(S48)。これにより、ブロックセットの姿勢や移動方向を定めるパラメータは、3Dオブジェクトにおいても同様に扱えるようになる。例えば図18においてブロックセット270の前進がx軸の負の方向であれば、3Dオブジェクトのクレーン車272における前進もx軸の負の方向となるように座標系を設定する。また座標系を共通とすることにより、関節角の定義を共通化できるとともに、関節角が変化した場合に関節に対しどちらのリンクが動いたかについても適正に判断できる。
共通の座標系で定義された各種パラメータは、3Dオブジェクトに対し元から設定されていたローカル座標系における値に座標変換されることにより、3Dオブジェクトの描画に反映される。ブロックセットと3Dオブジェクトの形状が類似しており、前後などが明らかな場合は、両者の向きが同じになるように情報処理部33が共通の座標系を設定する。あるいは、ユーザがブロックセットの向きと同じになるように3Dオブジェクトの向きを画面上で調節し、その向きを基準とすることにより情報処理部30が座標系を設定してもよい。これにより、前後が不明確なブロックセットであってもユーザの意図した向きで3Dオブジェクトと連動させることができる。
続いてブロックセットと3Dオブジェクトのうち対応箇所を設定する(S50)。ブロックセットと3Dオブジェクトの関節数やリンクの接続関係が一致している場合、この処理は情報処理部30が一括して行える。すなわち情報処理部30は、S42で取得したブロックセットの構造と、S46で選択されたオブジェクトモデルの構造に基づき、両者の対応する関節を幾何学的に導出して対応づける。あるいは設定画面を表示させてユーザが設定できるようにする。ここで対応づける箇所は、代表的には図18の関節同士や車輪同士であるが、ブロックセットの曲がる、回転する、変位するといった変化を反映したい箇所であれば、3Dオブジェクト側の対応点はユーザが自由に設定できるようにする。これにより、軟体動物など関節を持たない動物を動作させたり、実際には曲がらない物にお辞儀をさせたりといったことができる。
なお対応づける箇所は必ずしも1対1の関係でなくてもよい。すなわち、ブロックセットの複数の関節を3Dオブジェクトの1つの関節に対応づけたり、3Dオブジェクトの複数の関節をブロックセットの1つの関節に対応づけたりしてよい。車輪についても同様である。情報処理部30は、ブロックセットと3Dオブジェクトの関節数が異なっていても、複数の関節を1つの関節と見なすことにより全体的な構造を一致させることができる場合は、関節をそのようにグルーピングしてもよい。
この場合、例えば、ブロックセットと3Dオブジェクトのうち一方の1グループの関節を、他方の1つの関節に対応づける。このとき、後者の関節角の変化を、前者の1グループの関節の動きに分配する。具体例は後に述べる。関節をグルーピングするか否かに関わらず、情報処理部30は、両者の全体的な構造に加え、各関節の可動角も考慮して対応を設定する。例えば同じ可動角を有する関節同士を対応づける。このように、全体的な構造や可動角など多角的な観点から関節同士の類似度を評価し、評価値がしきい値より高い関節同士を対応づけてもよい。情報処理部30やユーザが設定した対応箇所の情報は、対応情報記憶部28に格納する。
次に、このように対応づけられた箇所について、動きの対応を設定する(S52)。すなわち関節角の変化をそのまま反映させるか否か、関節が1対1に対応づけられていない場合は関節角の変化を分配する比率などを設定する。ブロックセットと3Dオブジェクトの構造が一致している場合であり、対応する関節の可動角が等しければ、基本的には関節角も同様とできるため、情報処理部30はそのように設定する。関節角をグルーピングすることによって構造が同様となる場合は、上述のように1つの関節角の変化を、対応する1つのグループに属する関節の動きに分配させる。ことのき、各関節の可動角の比率に応じて分配比率を決定してもよい。
このように、あらかじめ定めた規則によって動きの対応を設定できる場合は、情報処理部30が設定してよい。さらに設定画面を表示させて、ユーザが動きの対応を自由に設定したり設定済みの対応関係を修正したりできるようにする。また、3Dオブジェクトの車の動きをブロックセットの車の動きに反映させる場合は、当該3Dオブジェクトの表示上の車の速度とブロックセットの車軸の回転速度を対応づける。この関係は、ブロックセットに接続された車輪の直径によって変化するため、車輪の直径が既知であれば情報処理部30が演算により決定できる。既知でなければ後述するように、ユーザがブロックセットを実際に動かすことによって、必要なパラメータを取得する。対応づけるべき全ての箇所についてS50とS52の処理を繰り返し(S54のN)、全ての箇所を対応づけたら処理を終了する(S54のY)。
図20は、図19のS46においてユーザによるモデル選択の入力を受け付けるために表示装置16に表示する画面の例を示している。モデル選択受付画面280は、複数のモデル「モデル1」、「モデル2」、「モデル3」の画像、選択入力を促す文字列282、および入力装置14で移動可能なカーソル284を含む。「モデル1」、「モデル2」、「モデル3」は、図19のS44で抽出された候補モデルであり、上述のように物としての特徴、構造的な特徴、外観上の特徴の少なくともいずれかによってフィルタリングされた結果である。例えばユーザが物としての特徴として「クレーン車」を指定したことにより、抽出されたモデルは全てクレーン車となっている。この場合、モデル選択受付画面280を表示する前に、「クレーン車」の選択を受け付けるための画面も表示する。
抽出数は3つに限らず、条件に合致した物を全て抽出してもよいし、上述の類似度評価値を利用してモデルをランク付けし、上位となった所定数のモデルを抽出してもよい。この場合、モデル選択受付画面280には、左からランクの高い順にモデルの画像を並べてもよい。図20において「モデル1」、「モデル2」、「モデル3」はいずれもクレーン車であるが、関節の数などクレーン部分の形状が異なる。ユーザは好みのモデル、あるいはブロックセットに類似しているモデルをカーソル284により指示し、入力装置14で確定入力をするなどして一つのモデルを選択する。
なおモデルの選択には、カーソル284を介した選択入力手段以外の手段を用いてもよい。例えばユーザをカメラ122で撮影し、その奥行き画像などからユーザの指先の位置、ひいては表示画面上の指さしされた位置を検出する技術が提案されている。この技術を利用することにより、ユーザが選択対象のモデルを指さしすることで、情報処理装置10が選択されたモデルを認識するようにしてもよい。図21、22で示す各設定画面でのユーザによる入力も同様に実現してよい。
図21は、図19のS48において、ブロックセットと選択されたモデルに共通の座標系を設定するために表示装置16に表示する画面の例を示している。この例は、ユーザがブロックセットの向きに合わせて画面上の3Dオブジェクトの向きを調整することにより共通の座標系を特定している。これにより、上述のように全体構造としての前後の向きや関節に対する各リンクの位置関係、関節角の定義などを揃えることができる。モデル表示方向設定受付画面290は、クレーン車の前を左向きとする画像292、右向きとする画像294、向きの指定を促す文字列296、および入力装置14で移動可能なカーソル298を含む。
この例は、図20のモデル選択受付画面280においてユーザが「モデル1」を選択したことを想定しており、同一モデルのオブジェクトを左右2つの方向から見た画像が表示されている。例えばユーザは、図示するようにブロックセット260を置いたうえ、それと同様の向きを表している、あるいは同じ向きとユーザが考える画像を、カーソル298により指示し、入力装置14で確定入力する。図の例では左向きの画像292が選択される。すると情報処理部30は、構造解析部22が取得したブロックセット260の向きと、選択された画像における3Dオブジェクトの向きが同じ方向に定義されるように、両者に対し座標系を設定する。なおこの例のように、台車に対するクレーンの位置などの構造によって両者の前後が推定できる場合は上述のように情報処理部30が座標系を設定してもよい。
図22は、図19のS50においてブロックセットと3Dオブジェクトの対応箇所を設定するために表示装置16に表示する画面の例を示している。対応箇所設定画面300は、3Dオブジェクトの画像302、コマンドリスト欄304、設定入力を促す文字列306、および入力装置14で移動可能なカーソル308を含む。画面上の3Dオブジェクトが、モデル表示方向設定受付画面290を経てブロックセットと同じ向きとなっていることにより、ブロックセットとの対応がユーザに理解されやすくなる。対応箇所設定画面300にはさらに、ブロックセット260の画像310を表示してもよい。
当該画像310は、カメラ122による撮影画像、あるいは情報処理装置10が認識しているブロックセット260の状態を3Dオブジェクトとして描画した画像である。前者の場合、ブロックセット260に対しユーザとカメラ122が逆側にあるときは、撮影画像を左右反転させてユーザから見たブロックセット260を再現する。後者の場合、非通信ブロックによりコアの構造が確認しづらい場合は、コアの画像のみを表示してもよい。
まずユーザは、ブロックセット260のうち、対応づけたい関節を曲げ伸ばしするなどして動かす(例えば矢印A)。当該動きは、構造解析部22によって認識される。これによりブロックセット側の対応させるべき関節(例えばRJ2)の指定入力が実現する。次にユーザは、カーソル308により3Dオブジェクトの画像302において、3Dオブジェクト側の対応させるべき関節(例えばVJ3)を指示し、入力装置14で確定入力をする。これにより、ブロックセット260の関節RJ2と3Dオブジェクトの関節VJ3が対応づけられる。情報処理部30はそれらの対応関係を記録し、対応情報記憶部28に格納する。
このような設定を、ブロックセット260のユーザが動かしたいと考える全ての関節に対して行う。また車輪についても同様に設定してよい。このようにして一旦設定した対応関係に基づき、実際にブロックセット260を動かしてみたときの3Dオブジェクトの動きをユーザが確認できるようにしてもよい。そして必要に応じて修正できるようにしてもよい。そのため、コマンドリスト欄304には直前に設定した対応箇所を無効にして設定し直すための「prev」ボタン、現在の設定を確定させて次の対応箇所を設定するための「next」ボタン、現時点での全ての設定を保存して設定処理を終了させる「stop」ボタンなどのGUIを表示する。さらに各種設定画面をメニューとして表示した画面へ移行するための「menu」ボタンも表示する。なお動きの確認処理は、後述する動きの対応を設定した後でもよく、それに応じて「prev」ボタンや「next」ボタンによって、設定を無効とする否かを確定させてもよい。
なお関節の可動角や構造上の拘束条件から、ブロックセット260の指定された関節に対応づけられる3Dオブジェクトの関節が自動的に絞り込める場合は、情報処理部30は当該関節を候補としてユーザに示唆してもよい。すなわちブロックセット側の対応させるべき関節が指定された時点で、対応箇所設定画面300に表示された3Dオブジェクトの画像302のうち、対応先の候補となる関節の色を変化させるなどして、そのうちのいずれかをユーザが選択できるようにする。これにより、ユーザによる自由な対応設定を許容する場合でも、無理な対応づけを回避することができる。
また上述のようにブロックセットの複数の関節を3Dオブジェクトの1つの関節に対応づけたり、ブロックセットの1つの関節を3Dオブジェクトの複数の関節に対応づけたりできるようにする。図22の例では、3Dモデルの関節VJ3に、ブロックセットの2つの関節が対応づけられていることを示す2つの目印312が付与されている。これは例えば、ブロックセット260の関節RJ1を動かして3Dオブジェクトの関節VJ3と対応づけ、さらに関節RJ2を動かして3Dオブジェクトの同じ関節VJ3対応づける操作により実現される。
一方、3Dオブジェクトの関節VJ1とVJ2は1つにグルーピングされ、ブロックセットの1つの関節に対応づけられていることを示す楕円314で囲まれている。このように3Dオブジェクトの複数の関節を1つのグループとするため、コマンドリスト欄304には、グループを示す楕円314を描画するための「group」ボタンのGUIも表示する。例えばユーザは、ブロックセット260の関節RJ3を動かす。そして、画面上の「group」ボタンをカーソル308により選択したうえ、3Dオブジェクトの関節VJ2およびVJ1を囲むような楕円314を描画する。これにより、ブロックセット260の関節RJ3と3Dオブジェクトの関節VJ2およびVJ1が対応づけられる。
ブロックセットと3Dオブジェクトの全体構造や可動角などの観点から、情報処理部30が、グルーピングの好適なパターンをいくつか決定し、対応箇所設定画面300に候補として表示させてもよい。この場合、ユーザがそこから一つのパターンを選択することによりグルーピングを確定させる。あるいは3Dオブジェクトのメタデータとして、グルーピングのパターン候補を作成しておき、対応箇所設定画面300に表示させることによりユーザが選択してもよい。なお対応箇所設定画面300にブロックセットの画像310を表示する場合は、カーソル308により当該画像310上でブロックセットの関節を指定してもよい。また、対応づけがなされた関節は、3Dオブジェクトの画像302とブロックセットの画像310において同じ色で表示したり、線で結んだりして対応関係が明示されるようにしてもよい。
次に、このように対応づけた関節の動きの対応について説明する。この対応は、図19のS52において、情報処理部30、ユーザ、あるいは両者の協働によって設定される。図23は基本的な態様として、ブロックセットと3Dオブジェクトの関節が1対1で対応づけられ、各関節が同じ角度で動く場合を示しており、左がブロックセットの関節部分320a、右が3Dオブジェクトの対応する関節部分322aである。すなわちブロックセットの関節部分320aが、関節が曲がっていない状態から角度θだけ曲げられたら、3Dオブジェクトの対応する関節部分322aも角度θだけ曲げる。情報処理部30が行う処理によっては、3Dオブジェクトの関節部分322aを角度θだけ曲げたら駆動制御部34を介してブロックセットの駆動部148であるアクチュエータなどを駆動させることにより、対応する関節322aを角度θだけ曲げるようにしてもよい。
このような態様を基本とし、可動角や対応させる関節の数などの拘束条件、あるいはユーザの意図などに応じて様々な設定を実現する。図24はグルーピングされた2つの関節が1つの関節に対応づけられている場合の各関節の角度の対応例を示しており、左がブロックセットの関節部分320b、右が3Dオブジェクトの対応する関節部分322bである。この例では、ブロックセットの2つの関節部分320bが3Dオブジェクトの1つの関節部分322bに対応づけられている。そしてブロックセットの一方の関節が角度θ1、他方の関節が角度θ2だけ曲げられたら、3Dオブジェクトの対応する関節部分322bをその合計である角度(θ1+θ2)だけ曲げる。つまりブロックセットの2つの関節による関節角の変化を、3Dオブジェクトの1つの関節により実現する。
この態様は、ブロックセットの各関節の可動角が、3Dオブジェクトの対応する関節に要求される関節角の変化より小さい場合に有効である。ブロックセットの3つ以上の関節角の変化を合計してもよい。また3Dオブジェクトの複数の関節をグルーピングしてブロックセットの1つの関節に対応づける場合も角度の対応関係は同様である。この場合、ブロックセットの関節数が3Dオブジェクトの関節数より少ない場合に有効である。
また逆に、3Dオブジェクトの関節部分322bを角度(θ1+θ2)だけ曲げたら、ブロックセットの対応する2つの関節部分320bをそれぞれ角度θ1およびθ2だけ曲げるようにしてもよい。この場合、角度θ1とθ2の比率は、各関節の可動角や、ブロックセットが見立てている物、つまり3Dオブジェクトが表している物の現実的な動きなどの拘束条件によって情報処理部30が決定できる。例えばブロックセットの2つの関節の可動角が1:2であれば、角度θ1とθ2も1:2の比率とする。
ブロックセットの1つの関節の角度変化を3Dオブジェクトの複数の関節角に分配する場合も同様である。例えば図22で示したクレーン車を想定した場合、3Dオブジェクトの関節VJ1に接続しているフックは常に鉛直下向きになっているのが自然である。したがってそのような状態が保たれるように、情報処理部30が、角度θ1とθ2を算出する。このような分配規則は、3Dオブジェクトのデータとともに作成しておく。なおブロックセットおよび3Dオブジェクトのうち、一方の角度変化の合計を他方の角度変化に反映させる態様と、一方の角度変化を他方の複数の角度変化に分配して反映させる態様とを組み合わせれば、ブロックセットの複数の関節を3Dオブジェクトの複数の関節に対応づけることもできる。
図25は2つの関節がグルーピングされて1つの関節に対応づけられている場合の各関節の角度の対応の別の例を示しており、左がブロックセットの関節部分320c、右が3Dオブジェクトの対応する関節部分322cである。この例ではブロックセットの2つの関節の回転軸が異なっており、一方は図の平面に垂直な軸周りに角度が変化し、他方はリンクの軸周りに角度が変化するとする。一方、それに対応づけられた3Dオブジェクトの1つの関節は、それと対応する2つの軸周りに角度を変化させられる2自由度を有する関節とする。
そしてブロックセットの関節部分320cのうち一方の関節が角度θ、他方の関節が角度ψだけ変化したら、3Dオブジェクトの対応する関節部分322cを、各軸周りに角度θおよびψだけ変化させる。また逆に、3Dオブジェクトの関節部分322cが各軸周りに角度θおよびψだけ変化したら、ブロックセット320cの対応する2つの関節をそれぞれθおよびψだけ変化させるようにしてもよい。
図26は1対1で対応づけられている関節の角度変化を異ならせる場合を示しており、左がブロックセットの関節部分320d、右が3Dオブジェクトの対応する関節部分322dである。この例では、ブロックセットの関節が角度θだけ変化したら、3Dオブジェクトの対応する関節をその3倍の角度3θ変化させる。例えばブロックセットの関節の可動角が、3Dオブジェクトの対応する関節に要求される角度変化より小さい場合、ブロックセットを限界まで動かしても3Dオブジェクトが期待したように動かないことが考えられる。また、ブロックセットを動かす労力をあまりかけずに3Dオブジェクトをダイナミックに動かしたい場合もある。
図示するようにブロックセットの関節の角度変化に1より大きい所定の値を乗算した角度で3Dオブジェクトの関節角を変化させることで、そのような課題を解決できる。あるいはブロックセットの角度変化に1より小さい所定の値を乗算して、ブロックセットより小さい角度で3Dオブジェクトの関節角を変化させてもよい。この態様は、例えばマニピュレータ操作など、ブロックセットを動かす手の動きより高い精度で3Dオブジェクトに微細な動きをさせたいときなどに有効である。3Dオブジェクトの関節の角度変化をブロックセットの角度変化に反映させる場合も同様の設定でよい。なお一方の角度変化に所定の値を乗算して他方の角度変化とする態様は、図24や図25で示した態様に組み合わせることができる。このとき、グルーピングされた全ての関節に同じ値を乗算してもよいし、関節によって異なる値を乗算してもよい。
図27はブロックセットの1つの関節を3Dオブジェクトの複数の関節に対応づける別の例を示しており、左がブロックセットの関節部分320e、右が3Dオブジェクトの対応する関節部分322eである。この例では、ブロックセットの1つの関節部分320eが、3Dオブジェクトの3つの関節部分322eに対応づけられている。そしてブロックセットの関節が角度θだけ曲げられたら、3Dオブジェクトの対応する3つの関節をそれぞれ同じ角度θだけ曲げる。
これにより簡素な構成のブロックセットであっても、3Dオブジェクトの広い範囲にその動きを反映させることができる。例えば、ブロックセットの1つの関節を、3Dオブジェクトの関節部分322eをさらに複数接続させてなる形状の大蛇の全関節に対応づけることにより、図27の関節部分320eのみからなるブロックセットであっても、当該大蛇が前進するような動きを表すことができる。前述のように、大蛇に様々な動きをさせた動画を保存しておくことにより、後の任意のタイミングでゲームやアニメーションのキャラクタとして用いることができる。このような高度な画像表現を、関節部分320eのような簡素なブロックセットで実現できる。なおこの態様において3Dオブジェクトで対応づける関節は図示するように隣接関係にある場合に限らず、3Dオブジェクトの離れた箇所にある複数の関節でもよい。
図28は、図19のS52においてブロックセットと3Dオブジェクトの動きの対応を設定するために表示装置16に表示する画面の例を示している。動き対応設定画面330は、図22で示した対応箇所設定画面300においてユーザが対応箇所を設定するごとに、当該画面に、動きの対応を入力するためのダイアログボックス333をオーバーレイ表示させた画面である。この例は、ブロックセットの関節RJ1、RJ2がグルーピングされ、3Dオブジェクトの関節VJ3対応づけられたあと、VJ3の角度変化をブロックセットのRJ1、RJ2の角度変化に分配するときの分配比率を設定することを想定している。そのためダイアログボックス333には、比率の入力を促す文字列334、および比率の各数値を入力するテキストボックス336が表示されている。
ユーザがテキストボックスに入力装置14などを介して具体的な数値を入力することにより、情報処理部30は、ブロックセットの関節RJ1、RJ2と3Dオブジェクトの関節VJ3との対応づけに、さらに当該比率を対応づけて、対応情報記憶部28に格納する。ダイアログボックス333で設定する情報はこれに限らず、関節をグルーピングしたか否かに応じて、図23から図27のような対応づけのうち必要な情報を順次設定できるようにする。ただし上述のように、あらかじめ定めた規則により情報処理部30が動きの対応づけを行えるようであれば、ユーザによる設定は省略できる。あるいは情報処理部30が行った対応づけを、同様のダイアログボックスでユーザが修正できるようにしてもよい。
図29は対応情報記憶部28に格納される、ブロックセットと3Dオブジェクトの対応箇所とそれぞれの動きの対応にかかる情報のデータ構造例を示している。対応情報テーブル340は、ブロックセット側の対応箇所と動きを示すブロックセット情報欄342と、当該欄に記載されたブロックセットの箇所や動きに対する3Dオブジェクト側の対応箇所や動きを示す3Dオブジェクト情報欄344を含む。この例ではブロックセットの関節と3Dオブジェクトの関節を対応づけ、さらにそれらの角度変化の対応を設定している。
対応は基本的に段単位で記載されている。例えばブロックセット情報欄342と3Dオブジェクト情報欄344の各「関節」欄を見ると、ブロックセットの関節RJ1とRJ2は3Dオブジェクトの関節VJ3に対応づけられている。この対応において、ブロックセットの動きを3Dオブジェクトに反映させる場合、関節RJ1とRJの角度変化の合計が、3Dオブジェクトの関節VJ3の角度変化になることは規定されている。
逆に、3Dオブジェクトの動きをブロックセットに反映させる場合、3Dオブジェクトの関節VJ3の角度変化がθのとき、関節RJ1とRJ2の角度変化をいずれもθ/2とする、つまり分配比率を1:1にすることが、ブロックセット情報欄342と3Dオブジェクト情報欄344の各「角度変化」欄に記載されている。ブロックセットの関節RJ3は、3Dオブジェクトの関節VJ2およびVJ1に対応づけられており、ブロックセットの動きを3Dオブジェクトに反映させる場合、角度変化の分配比率は1:2である。以下、同様に、図23から図27で説明したいずれかの動きの対応が、対応箇所とともに記載されている。
これまで、主に関節の動きの対応に係る具体例を説明した。次に車輪の動きの対応づけについて説明する、関節の場合、可動角や全体構造といった拘束条件がブロックセットと3Dオブジェクトの双方にあるものの、基本的には関節同士は独立しているため、ブロックセットの関節と3Dオブジェクトの関節を同等に対応づけることができる。一方、車輪の場合、ブロックセットは関節と比較して拘束条件が多く、3Dオブジェクトは厳密に車輪の動きを規定しなくても、走っているように表現できる、という性質の違いがある。すなわち、ブロックセットと3Dオブジェクトが連動しているように見せるには、移動方向とおよその速度が対応づけられていればよい。そしてこのような対応関係は、図19のS48において共通の座標系を設定することによって得られる。
ユーザがブロックセット260を移動させ、それを3Dオブジェクトに反映させる場合は、そのような対応関係のみで容易に実現できる。具体的には、ブロックセットの移動量や移動方向をカメラ122の撮影画像などから取得し、それに基づき3Dオブジェクトも同様に移動しているように表現すればよい。一方、3Dオブジェクトの動きをブロックセットに反映させる場合は、拘束条件に従った設定が必要となる。例えば車輪が協調動作しないと車を走行させることができない。また車輪の直径によって望ましい速度を得るための車輪の回転速度が変化するため、適切に調整しないと高速になりすぎ壁に衝突するなどのおそれがある。
このように車輪の動きの対応づけは、ブロックセットに拘束条件が偏っているため、関節ほどユーザによる自由な設定の余地がない。したがって主に情報処理部30が動きの対応づけを行う。具体的には、ブロックセットの前後左右が明確になった時点で、あらかじめ設定した駆動方式に応じて駆動輪、従動輪、操舵輪を決定する。さらに、左右の駆動輪や操舵輪は同じ回転速度および舵角でなければならないという拘束条件を満たすようにグルーピングする。また、仮想世界で表現される3Dオブジェクトの速度や方向転換に対応する好適な速度や方向転換でブロックセットが走るように、ブロックセットの車輪の回転速度や舵角を、3Dオブジェクトの仮想的な速度や方向転換に対応づける。
図30は、3Dオブジェクトの動きをブロックセットに反映させる態様において、3Dオブジェクトとブロックセットの動きの対応を設定する処理手順を示すフローチャートである。この処理は、図19のS50およびS52の処理に対応する。情報処理部30はまず構造解析部22からの情報に基づき、ブロックセットに車輪が装着されていることを検知すると、ブロックセットの前後左右の向きと駆動方式に則り、駆動輪、操舵輪といった車輪の役割を前輪あるいは後輪に割り当てる(S58)。さらに少なくとも駆動輪、操舵輪の役割を割り当てられた平行に並んでいる2輪は1つのグループとすることにより協調動作させる(S60)。
なお平行に並んでいる2輪が1つの車軸で回転する場合は、自ずと協調動作するためS60の処理を省略できる。次に3Dオブジェクトの仮想的な走行を反映させた好適な移動速度や方向転換が得られるようにするための制御パラメータを取得する。ここで制御パラメータは、駆動輪の車軸を回転させるアクチュエータの回転速度や操舵輪の舵角を変化させるアクチュエータの動き量などである。なおS60においてグルーピングされた駆動輪や操舵輪を制御する複数のアクチュエータは、情報処理装置10からの制御信号によって同一の動作となるように制御される。
制御パラメータを取得するため、まずユーザにブロックセットを所定方向に実際に動かしてもらい、その移動量を計測するとともに、そのときの車軸の回転量や舵角を測定する(S62、S64、S66)。ユーザはブロックセットを、別途用意した制御機構により電子的に駆動させてもよいし、本体を手で押すなど人力で動かしてもよい。後者の場合、車軸や舵角を変化させる機構をアクチュエータの制御から解放した状態とする。ブロックセットの移動量はカメラ122の撮影画像やそれから生成した奥行き画像から取得できる。回転量は車輪に備えたロータリーエンコーダからの信号により、舵角は車輪に備えた舵角センサにより取得できる。なおロータリーエンコーダ等のセンサを備えていない場合などは、車輪の直径、移動距離、移動方向に基づき算出してもよい。
そして方向転換を含む移動量に対する実際の回転量および舵角に基づき、当該移動量を得るためのモーターの回転量およびアクチュエータの動き量などの制御量を取得する(S68)。この対応関係を、単位時間あたり、あるいは単位角度あたりの値に変換することにより、移動速度および単位舵角と制御パラメータの値とを対応づける(S70)。ここで移動速度は、ブロックセット自体の好適な移動速度であるが、画面上の3Dオブジェクトと連動させる場合は、仮想世界における移動速度で決定される値である。舵角も同様である。したがってS70の処理によって、3Dオブジェクトの動きをブロックセットの動きに対応づけたことになる。
なお、ブロックセットに接続されている車輪の直径が、当該車輪の識別番号から判明する場合、移動速度と制御パラメータとの対応関係は演算によって求められるため、S62からS68の処理を省略してもよい。またこれまで述べた例では、クレーン車に見立てたブロックセットとクレーン車の3Dオブジェクトを対応づけることを想定していたため、車輪の動きの対応づけとして説明したが、図28で示したフローチャートは、3Dオブジェクトに車輪がなくても同様である。
すなわち3Dオブジェクトが人、動物、虫、車以外の乗り物などであっても、仮想世界での移動をブロックセットの移動に反映させる場合は、図28の処理手順により移動速度や舵角と制御パラメータを対応づけることにより、3Dオブジェクトの仮想的な移動に対応する速度や方向で、ブロックセットを移動させることができる。さらに、3Dオブジェクトの動きを反映させる態様ばかりでなく、単に情報処理装置10で行った処理の結果に応じてブロックセットを移動させる態様にも利用できる。
図31は、上述したブロックセットの車輪に係る設定を、複合リンクへ拡張した場合について説明する図である。図示する複合リンク350は、関節が完全独立でなくリンクが連動する。すなわち複合リンク350の1つの関節を矢印のように動かせば、4つの関節が全て動くことになる(複合リンク352)。このような場合、アクチュエータによって1つの関節のみを動かすことができないため、駆動輪と同様、4つの関節をグルーピングして協調動作させる。ブロックセットに複合リンクを組み入れた場合、ユーザが対応設定画面などにおいて複合リンクの存在を明示するか、ブロックセットの実物における複合リンクを動かすことにより、情報処理部30はその存在を認識する。そして3Dオブジェクトとの動きの対応を設定する際、それに含まれる関節を全てグルーピングする。
以上述べた本実施の形態によれば、自由に組み立てることが可能なブロックを、情報処理装置における処理の入力装置や出力装置として利用する。位置や姿勢を取得するための各種センサや通信機能を有する通信ブロックを用いることにより、組み立て後のブロックの骨格や位置などの詳細を取得する。さらにカメラによる撮影画像など実空間におけるブロックの存在を検出する手段を用いて、組み立て後のブロックの表面形状を取得する。これらの情報を統合することにより、ブロックの一部として、通信機能を持たない非通信ブロックを使用しても、組み立て後のブロックの位置、姿勢、形状を高精度に特定できる。
結果として、ブロックの形状、材料、色などが限定されず、ユーザが自作した物であっても用いることができ、ユーザの目的に適った外観を有する物体を自由に創造することができる。また情報処理装置は、外観がどのようであっても、位置、姿勢、形状を高精度に取得できるため、ユーザが組み立てたり動かしたりする行為を入力情報として、各種情報処理が行える。また情報処理の結果として、組み立てたブロックを動かすことができる。
例えば、組み立てられたブロックと同じ外観の3Dオブジェクトを表示させたり、組み立てられたブロックに対応する、よりリアルな外観の3Dオブジェクトを表示させたりできる。後者の場合、ブロックの部位ごとに3Dオブジェクトのパーツを指定することにより、ユーザが3Dオブジェクト自体を形作ってもよいし、ブロック全体を1つの3Dオブジェクトに対応させてもよい。このとき、連動させるべき関節などの箇所を対応づけることにより、位置の変化のみならず、姿勢や形状の変化をも相互に反映させることができる。対応箇所の設定や動きの対応づけは、ブロックセットと3Dオブジェクトの形状、関節の数、関節の可動角、車輪の協調動作といった拘束条件に基づき設定できる。このような対応づけを情報処理装置が自動で行ったり、ユーザが設定できる環境を提供したりすることにより、ユーザの負担を抑えつつ、実世界と仮想世界とのリンクを自由に作り上げることができる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば図22で説明した対応箇所設定画面300では、画面上の3Dオブジェクトに対応づける対象としてブロックセットを想定していたが、ブロックセット以外の物、例えばユーザ自身などでも同様に対応づけられる。ユーザと対応づける場合、カメラ122がユーザを撮影し、それに基づき奥行き画像を生成するなどしたうえ、骨格の位置を推定する。骨格の位置はスケルトントラッキングなどの従来技術を適用して追跡できる。そしてユーザが、肩や肘など対応づけたい関節周りに腕などの部位を動かすことにより、情報処理装置10は当該関節をブロックセットの場合と同様に認識する。さらに画面上で3Dオブジェクトの関節を指定することにより、ユーザと3Dオブジェクトの関節を対応づけることができる。
これにより、ユーザの動きに合わせて3Dオブジェクトが動く態様を実現できる。あるいは、ブロックセットを人型に組み立て、本実施の形態のように3Dオブジェクトと対応づけておけば、ユーザの関節とブロックセットの関節が、3Dオブジェクトの関節を介して間接的に対応づけられていることになる。この状態を利用し、本実施の形態における3Dオブジェクトの動きをブロックセットに反映させる態様と組み合わせれば、ユーザの動きに合わせてブロックセットが動く態様も実現できる。
この態様の変形例として、ユーザの像と骨格の位置を示した画像を撮影画像からリアルタイムで生成して対応箇所設定画面に表示し、画面上でユーザの関節と3Dオブジェクトの関節を対応づけるようにしてもよい。このとき、両者を同時に表示してもよいし、交互に表示させて対応を設定する関節の指定を1つ1つ受け付けてもよい。なおこれらの変形例は、ユーザが自分の関節と3Dオブジェクトの関節を対応づけることを前提としているが、3Dオブジェクトが人やロボットなどであり、ユーザの関節との対応が明白である場合は、ユーザによる設定を省略し、情報処理装置が全て設定してもよい。
また、本実施の形態では、車の前後が判明している状態で車輪を車軸に装着することにより、情報処理装置が駆動輪、従動輪、操舵輪の役割を決定した。そして当該役割に応じて、その動作を制御するアクチュエータの動きを切り替えた。この態様を拡張し、接続された物によって動きを切り替えるアクチュエータを備えたブロックを実現してもよい。例えば、車軸と車輪からなる部品を装着したら当該車軸を回転させることによりブロックセットの車を走行させる。カムとバネなどからなる部品を装着したらカムの回転によりバネが解放され仕掛けられていた矢などが放たれる。上述したような関節からなる部品を装着したら、関節として動作させる。
この場合、情報処理装置10は、撮影画像から接続された物の種類を認識し、それに応じた制御信号をブロックセットに送信することにより、アクチュエータの動きを適切に切り替える。このようにすることで、アクチュエータを備えたブロックの汎用性が増し、種類ごとに異なるブロックを準備するより低コストでバリエーションに富んだブロックセットを実現できる。
2 情報処理システム、 10 情報処理装置、 14 入力装置、 16 表示装置、 20 コア情報受信部、 22 構造解析部、 24 ブロック情報記憶部、 26 モデルデータ記憶部、 28 対応情報記憶部、 30 情報処理部、 32 表示処理部、 34 駆動制御部、 102a 四角柱型ブロック、 122 カメラ、 120 ブロックセット、 126a ブロック、 128a バッテリー、 130a 通信機構、 132a メモリ、 134 位置センサ、 136a モーションセンサ、 138 角度センサ、 139a アクチュエータ、 141 ロータリーエンコーダ、 142a 第1ブロック、 143a 第1通信部、 144a 要素情報取得部、 146a 第2通信部、 148 駆動部。
以上のように本発明は玩具、ゲーム装置、組立型装置、学習教材、コンテンツ表示端末、情報処理装置、ロボットなどに利用可能である。
Claims (30)
- 外部の物体の全体構造における可動部分の位置に係る情報を取得する構造情報取得部と、
前記物体と、当該物体に対応づけられたオブジェクトモデルとを連動させるため、前記可動部分の連動規則に係る設定入力をユーザより受け付けるための設定画面を表示装置に表示させるとともに、受け付けた設定入力に基づき連動規則に係る情報を生成して記憶装置に格納する情報処理部と、
を備えたことを特徴とする情報処理装置。 - 前記情報処理部は、前記設定画面により、
前記物体と前記オブジェクトモデルのうち、一方の可動部分の変化を、他方の可動部分に反映させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付け、受け付けた設定入力に基づき可動部分の対応情報を生成することを特徴とする請求項1に記載の情報処理装置。 - 前記構造情報取得部は、前記物体の可動部分のうちユーザが動かした部分の位置に係る情報を取得し、
前記情報処理部は、当該ユーザが動かした部分と、前記設定画面に表示した前記オブジェクトモデルのうち、ユーザが入力装置を介して指定した部分とを、対応づけるべき可動部分として取得し、それらを対応づけて前記対応情報を生成することを特徴とする請求項2に記載の情報処理装置。 - 前記構造情報取得部は、前記物体として、個別に準備されたブロックを連結してなる組立型装置から、当該組立型装置の全体構造における可動部分の位置に係る情報を取得することを特徴とする請求項2または3に記載の情報処理装置。
- 前記情報処理部は、前記物体および前記オブジェクトモデルの可動部分に対しそれぞれ与えられる拘束条件に従い、対応づけが可能な可動部分を、前記設定画面に示すことにより、ユーザによる設定入力を支援することを特徴とする請求項2から4のいずれかに記載の情報処理装置。
- 前記情報処理部は、前記オブジェクトモデルの画像とともに、前記物体の全体構造における可動部分の位置に係る情報に基づき、当該物体の画像を、前記設定画面に表示し、ユーザが入力装置を介して指定した、前記物体の画像における可動部分と、前記オブジェクトモデルの画像における可動部分とを、対応づけるべき可動部分として取得し、それらを対応づけて前記対応情報を生成することを特徴とする請求項2に記載の情報処理装置。
- 前記情報処理部はさらに、前記物体に対応させる候補となる複数のオブジェクトモデルの画像を表示したオブジェクトモデル選択画面を表示装置に表示させるとともに、前記物体に対応させる一のオブジェクトモデルを選択する入力を、ユーザより受け付けることを特徴とする請求項2から6のいずれかに記載の情報処理装置。
- 前記情報処理部は、前記物体の可動部分に係る情報と、あらかじめ準備した複数のオブジェクトモデルの可動部分に係る情報とを比較して類似度を評価することにより、前記複数のオブジェクトモデルから、候補として表示するオブジェクトモデルを抽出することを特徴とする請求項7に記載の情報処理装置。
- 前記情報処理部は、前記設定入力がなされた後、対応づけられた前記物体側の可動部分の動きに合わせて、前記オブジェクトモデル側の可動部分を動かすことにより、対応づけの結果をユーザに確認させ、ユーザが対応づけをやり直す旨の入力を行ったら、直前の対応づけを無効とすることを特徴とする請求項2から8のいずれかに記載の情報処理装置。
- 情報処理装置が、
外部の物体の全体構造における可動部分の位置に係る情報を取得するステップと、
前記物体と当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させるステップと、
受け付けた設定入力に基づき対応情報を生成して記憶装置に格納するステップと、
を含むことを特徴とする情報処理方法。 - 外部の物体の全体構造における可動部分の位置に係る情報を取得する機能と、
前記物体と当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させる機能と、
受け付けた設定入力に基づき対応情報を生成して記憶装置に格納する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。 - 外部の物体の全体構造における可動部分の位置に係る情報を取得する機能と、
前記物体と当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させる機能と、
受け付けた設定入力に基づき対応情報を生成して記憶装置に格納する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。 - 前記情報処理部は、前記設定画面により、
前記物体と前記オブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させるための、対応づけられた可動部分ごとの動きの反映規則の設定入力をユーザより受け付け、受け付けた設定入力に基づき反映規則の情報を生成することを特徴とする請求項1に記載の情報処理装置。 - 前記構造情報取得部は、前記物体として、個別に準備されたブロックを連結してなる組立型装置から、当該組立型装置の全体構造における可動部分の位置に係る情報を取得することを特徴とする請求項13に記載の情報処理装置。
- 前記情報処理部は、前記物体の関節と前記オブジェクトモデルの関節間で、角度変化を反映させる規則の設定入力を受け付けることを特徴とする請求項13または14に記載の情報処理装置。
- 前記情報処理部は、前記規則として、対応づけられた関節のうち、一方の関節の変化角度に所定の値を乗算した角度で、他方の関節を変化させる設定入力を受け付けることを特徴とする請求項15に記載の情報処理装置。
- 前記情報処理部は、前記物体を撮影した画像から前記物体の実空間での向きを取得するとともに、表示装置に表示させた前記オブジェクトモデルの向きが、前記物体の向きと同一方向となるように、前記オブジェクトモデルの表示上の向きを調整する入力を受け付けることにより、両者に共通の座標系を設定して、前記物体と前記オブジェクトモデルの移動方向を対応づけることを特徴とする請求項13から16のいずれかに記載の情報処理装置。
- 前記情報処理部は、前記設定入力がなされた後、対応づけられた前記物体側の可動部分の動きに合わせて、前記オブジェクトモデル側の可動部分を動かすことにより、対応づけの結果をユーザに確認させ、ユーザが対応づけをやり直す旨の入力を行ったら、直前の対応づけを無効とすることを特徴とする請求項13から17のいずれかに記載の情報処理装置。
- 情報処理装置が、
外部の物体の全体構造における可動部分の位置に係る情報を取得するステップと、
前記物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、対応づけられた可動部分の動きの反映規則の設定入力をユーザより受け付けるための動き対応設定画面を表示装置に表示させるステップと、
受け付けた設定入力に基づき対応情報を生成して記憶装置に格納するステップと、
を含むことを特徴とする情報処理方法。 - 外部の物体の全体構造における可動部分の位置に係る情報を取得する機能と、
前記物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、対応づけられた可動部分の動きの反映規則の設定入力をユーザより受け付けるための動き対応設定画面を表示装置に表示させる機能と、
受け付けた設定入力に基づき対応情報を生成して記憶装置に格納する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。 - 外部の物体の全体構造における可動部分の位置に係る情報を取得する機能と、
前記物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、対応づけられた可動部分の動きの反映規則の設定入力をユーザより受け付けるための動き対応設定画面を表示装置に表示させる機能と、
受け付けた設定入力に基づき対応情報を生成して記憶装置に格納する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。 - 前記情報処理部は、前記設定画面により、
前記物体と前記オブジェクトモデルのうち、一方の可動部分の変化を、他方の異なる数の可動部分に反映させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分の数の対応関係の設定入力をユーザより受け付け、受け付けた設定入力に基づき可動部分の対応情報を生成することを特徴とする請求項1に記載の情報処理装置。 - 前記情報処理部は、前記可動部分として、前記物体の関節と前記オブジェクトモデルの関節のうち、一方の1つの関節と他方の複数の関節を対応づける設定入力を受け付け、
当該1つの関節の変化角度を、前記複数の関節の変化角度に分配して反映させるときの、分配比率を設定する入力をさらに受け付け、前記対応情報に記録することを特徴とする請求項22に記載の情報処理装置。 - 前記情報処理部は、前記可動部分として、前記物体の1つの関節と前記オブジェクトモデルの複数の関節を対応づけることにより、前記1つの関節の変化角度と等しい角度で、前記複数の関節がそれぞれ変化するようにする設定入力を受け付けることを特徴とする請求項22に記載の情報処理装置。
- 前記情報処理部は、前記可動部分として、前記物体の関節と前記オブジェクトモデルの関節のうち、一方の1つの関節と他方の複数の関節を対応づけ、当該複数の関節の変化角度の合計で、前記1つの関節が変化するようにする設定入力を受け付けることを特徴とする請求項22に記載の情報処理装置。
- 前記情報処理部は、前記可動部分として、前記物体の、異なる複数の軸周りにそれぞれ角度変化する複数の関節を、前記オブジェクトモデルの、前記複数の軸に対応する複数の自由度を有する1つの関節に対応づける設定入力を受け付けることを特徴とする請求項22に記載の情報処理装置。
- 前記構造情報取得部は、前記物体として、個別に準備されたブロックを連結してなる組立型装置から、当該組立型装置の全体構造における可動部分の位置に係る情報を取得することを特徴とする請求項22から26のいずれかに記載の情報処理装置。
- 情報処理装置が、
外部の物体の全体構造における可動部分の位置に係る情報を取得するステップと、
前記物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させるステップと、
前記物体と前記オブジェクトモデル間で、異なる数の可動部分を互いに対応づける設定入力を受け付けるステップと、
受け付けた前記設定入力に基づき対応情報を生成して記憶装置に格納するステップと、
を含むことを特徴とする情報処理方法。 - 外部の物体の全体構造における可動部分の位置に係る情報を取得する機能と、
前記物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させる機能と、
前記物体と前記オブジェクトモデル間で、異なる数の可動部分を互いに対応づける設定入力を受け付ける機能と、
受け付けた前記設定入力に基づき対応情報を生成して記憶装置に格納する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。 - 外部の物体の全体構造における可動部分の位置に係る情報を取得する機能と、
前記物体と、当該物体に対応づけられたオブジェクトモデルのうち、一方の可動部分の変化を、他方の対応づけられた可動部分に反映させることにより前記物体と前記オブジェクトモデルを連動させるため、前記物体の可動部分と前記オブジェクトモデルの可動部分とを対応づける設定入力をユーザより受け付けるための対応箇所設定画面を表示装置に表示させる機能と、
前記物体と前記オブジェクトモデル間で、異なる数の可動部分を互いに対応づける設定入力を受け付ける機能と、
受け付けた設定入力に基づき対応情報を生成して記憶装置に格納する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14879435.7A EP3098782B1 (en) | 2014-01-21 | 2014-10-20 | Information processing device and information processing method |
CN201480073221.XA CN105917385A (zh) | 2014-01-21 | 2014-10-20 | 信息处理设备和信息处理方法 |
US15/110,876 US10130883B2 (en) | 2014-01-21 | 2014-10-20 | Information processing device and information processing method |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014008895A JP6177145B2 (ja) | 2014-01-21 | 2014-01-21 | 情報処理装置および情報処理方法 |
JP2014008897A JP6177147B2 (ja) | 2014-01-21 | 2014-01-21 | 情報処理装置および情報処理方法 |
JP2014-008896 | 2014-01-21 | ||
JP2014008896A JP6177146B2 (ja) | 2014-01-21 | 2014-01-21 | 情報処理装置および情報処理方法 |
JP2014-008895 | 2014-01-21 | ||
JP2014-008897 | 2014-01-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015111261A1 true WO2015111261A1 (ja) | 2015-07-30 |
Family
ID=53681084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/077873 WO2015111261A1 (ja) | 2014-01-21 | 2014-10-20 | 情報処理装置および情報処理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10130883B2 (ja) |
EP (1) | EP3098782B1 (ja) |
CN (1) | CN105917385A (ja) |
WO (1) | WO2015111261A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2571337B (en) * | 2018-02-26 | 2021-03-10 | Sony Interactive Entertainment Inc | Controlling data processing |
JP7309371B2 (ja) * | 2019-01-25 | 2023-07-18 | 株式会社ソニー・インタラクティブエンタテインメント | ロボット制御システム |
JP7496510B2 (ja) * | 2019-08-06 | 2024-06-07 | パナソニックIpマネジメント株式会社 | 表示装置 |
CN112908191B (zh) * | 2019-12-04 | 2023-04-07 | 深圳蓝普科技有限公司 | 一种定位装置及拼接显示装置的自动化维护*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10302085A (ja) * | 1997-04-30 | 1998-11-13 | Yamaha Corp | Cgモデルの動作記録システム |
JP2005125460A (ja) * | 2003-10-24 | 2005-05-19 | Sony Corp | ロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラム |
JP2007004732A (ja) * | 2005-06-27 | 2007-01-11 | Matsushita Electric Ind Co Ltd | 画像生成装置及び画像生成方法 |
WO2007050885A2 (en) | 2005-10-26 | 2007-05-03 | Sony Computer Entertainment America Inc. | System and method for interfacing with a computer program |
JP2009526980A (ja) * | 2006-02-17 | 2009-07-23 | コミツサリア タ レネルジー アトミーク | モーションキャプチャー装置およびそれに係る方法 |
JP2009266241A (ja) * | 2006-05-04 | 2009-11-12 | Sony Computer Entertainment America Inc | 1つ以上の視覚、音響、慣性およびミックスデータに基づく入力にギアリング効果を与える方法ならびに装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6290565B1 (en) | 1999-07-21 | 2001-09-18 | Nearlife, Inc. | Interactive game apparatus with game play controlled by user-modifiable toy |
US20020196250A1 (en) * | 2001-06-20 | 2002-12-26 | Gateway, Inc. | Parts assembly for virtual representation and content creation |
US7596473B2 (en) * | 2003-05-20 | 2009-09-29 | Interlego Ag | Method of constructing a virtual construction model |
EP1625488A2 (en) | 2003-05-20 | 2006-02-15 | Lego A/S | Method and system for manipulating a digital representation of a three-dimensional object |
RU2007101498A (ru) | 2004-06-17 | 2008-07-27 | Лего А/С (Dk) | Автоматическое генерирование инструкций для построения моделей из стандартных блоков |
US7874921B2 (en) * | 2005-05-11 | 2011-01-25 | Roblox Corporation | Online building toy |
JP4660357B2 (ja) | 2005-11-18 | 2011-03-30 | 任天堂株式会社 | 画像処理プログラムおよび画像処理装置 |
WO2011017393A1 (en) | 2009-08-04 | 2011-02-10 | Eyecue Vision Technologies Ltd. | System and method for object extraction |
WO2008139482A2 (en) | 2007-05-16 | 2008-11-20 | Eyecue Vision Technologies Ltd. | System and method for physically interactive board games |
WO2009100051A1 (en) * | 2008-02-04 | 2009-08-13 | Polchin George C | Physical data building blocks system for video game interaction |
US8690631B2 (en) * | 2008-09-12 | 2014-04-08 | Texas Instruments Incorporated | Toy building block with embedded integrated circuit |
ES2528605T3 (es) * | 2009-10-02 | 2015-02-10 | Lego A/S | Optimización de la geometría dependiente de la conectividad para renderización en tiempo real |
KR101897311B1 (ko) * | 2011-05-23 | 2018-10-24 | 레고 에이/에스 | 구축 요소 모델을 위한 조립 설명서 생성 |
US9403100B2 (en) | 2012-02-17 | 2016-08-02 | Technologyone, Inc. | Baseplate assembly for use with toy pieces |
EP2711806B1 (en) * | 2012-07-13 | 2018-09-26 | Sony Interactive Entertainment Inc. | Input device, information processing system, information processing device and information processing method |
US9609031B1 (en) | 2013-12-17 | 2017-03-28 | Amazon Technologies, Inc. | Propagating state information to network nodes |
-
2014
- 2014-10-20 CN CN201480073221.XA patent/CN105917385A/zh active Pending
- 2014-10-20 WO PCT/JP2014/077873 patent/WO2015111261A1/ja active Application Filing
- 2014-10-20 EP EP14879435.7A patent/EP3098782B1/en active Active
- 2014-10-20 US US15/110,876 patent/US10130883B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10302085A (ja) * | 1997-04-30 | 1998-11-13 | Yamaha Corp | Cgモデルの動作記録システム |
JP2005125460A (ja) * | 2003-10-24 | 2005-05-19 | Sony Corp | ロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラム |
JP2007004732A (ja) * | 2005-06-27 | 2007-01-11 | Matsushita Electric Ind Co Ltd | 画像生成装置及び画像生成方法 |
WO2007050885A2 (en) | 2005-10-26 | 2007-05-03 | Sony Computer Entertainment America Inc. | System and method for interfacing with a computer program |
JP2009526980A (ja) * | 2006-02-17 | 2009-07-23 | コミツサリア タ レネルジー アトミーク | モーションキャプチャー装置およびそれに係る方法 |
JP2009266241A (ja) * | 2006-05-04 | 2009-11-12 | Sony Computer Entertainment America Inc | 1つ以上の視覚、音響、慣性およびミックスデータに基づく入力にギアリング効果を与える方法ならびに装置 |
Non-Patent Citations (3)
Title |
---|
MICHAEL PHILETUS WELLER; ELLEN YI-LUEN DO; MARK D GROSS: "Posey: Instrumenting a Poseable Hub and Strut Construction Toy", PROCEEDINGS OF THE SECOND INTERNATIONAL CONFERENCE ON TANGIBLE AND EMBEDDED INTERACTION, 2008, pages 39 - 46, XP002745438, DOI: doi:10.1145/1347390.1347402 |
WATARU YOSHIZAKI ET AL.: "Character Shisei Nyuryoku no Temeno Sohoko Interface", THE ROBOTICS AND MECHATRONICS CONFERENCE '12 KOEN RONBUNSHU, THE JAPAN SOCIETY OF MECHANICAL ENGINEERS, 27 May 2012 (2012-05-27), pages 4109 - 4112, XP008184077 * |
YUKI TAYAMA ET AL.: "Using a Human-Shaped Input Device for Remote Pose Instruction", IPSJ SIG NOTES GROUP AND NETWORK SERVICES (GN), 2014-GN- 090, vol. 2014, no. 16, 16 January 2014 (2014-01-16), pages 1 - 7, XP055355705, Retrieved from the Internet <URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=98034&item_no=1&page_id=13&block_id=8> * |
Also Published As
Publication number | Publication date |
---|---|
EP3098782A4 (en) | 2017-08-09 |
CN105917385A (zh) | 2016-08-31 |
EP3098782B1 (en) | 2021-06-16 |
US10130883B2 (en) | 2018-11-20 |
EP3098782A1 (en) | 2016-11-30 |
US20160332075A1 (en) | 2016-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6027554B2 (ja) | 情報処理装置、情報処理システム、ブロックシステム、および情報処理方法 | |
JP5977231B2 (ja) | 情報処理システム、情報処理装置、および情報処理方法 | |
JP6193135B2 (ja) | 情報処理装置、情報処理システム、および情報処理方法 | |
KR101881620B1 (ko) | 게임플레이에서의 3차원 환경 모델 사용 | |
CN109069929B (zh) | 用于玩具识别的***和方法 | |
US8144148B2 (en) | Method and system for vision-based interaction in a virtual environment | |
CN105190703A (zh) | 使用光度立体来进行3d环境建模 | |
JP6039594B2 (ja) | 情報処理装置および情報処理方法 | |
WO2015111261A1 (ja) | 情報処理装置および情報処理方法 | |
JP6177145B2 (ja) | 情報処理装置および情報処理方法 | |
JP6177146B2 (ja) | 情報処理装置および情報処理方法 | |
JP6177147B2 (ja) | 情報処理装置および情報処理方法 | |
TW200947347A (en) | Volume recognition method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14879435 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2014879435 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2014879435 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15110876 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |