WO2018131230A1 - 描画装置及び描画方法 - Google Patents

描画装置及び描画方法 Download PDF

Info

Publication number
WO2018131230A1
WO2018131230A1 PCT/JP2017/036160 JP2017036160W WO2018131230A1 WO 2018131230 A1 WO2018131230 A1 WO 2018131230A1 JP 2017036160 W JP2017036160 W JP 2017036160W WO 2018131230 A1 WO2018131230 A1 WO 2018131230A1
Authority
WO
WIPO (PCT)
Prior art keywords
stroke data
control points
data
control point
control
Prior art date
Application number
PCT/JP2017/036160
Other languages
English (en)
French (fr)
Inventor
勇夫 丸岡
Original Assignee
株式会社ワコム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ワコム filed Critical 株式会社ワコム
Priority to CN201780069699.9A priority Critical patent/CN109964251B/zh
Publication of WO2018131230A1 publication Critical patent/WO2018131230A1/ja
Priority to US16/431,803 priority patent/US11100317B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/015Input arrangements based on nervous system activity detection, e.g. brain waves [EEG] detection, electromyograms [EMG] detection, electrodermal response detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/011Emotion or mood input determined on the basis of sensed human body parameters such as pulse, heart rate or beat, temperature of skin, facial expressions, iris, voice pitch, brain activity patterns

Definitions

  • the present invention relates to a drawing apparatus and a drawing method, and more particularly to a drawing apparatus and a drawing method for generating animation of stroke data of digital ink.
  • Digital ink is known in which a locus (stroke) obtained by moving a pointer such as an electronic pen or stylus on a position detector such as a tablet is converted into electronic data.
  • Patent Document 1 discloses an example of digital ink.
  • the digital ink is configured to include a plurality of control points, and an interpolation curve such as a Bezier curve, a spline curve, or a Cat-Marrom curve is used for drawing.
  • an interpolation curve such as a Bezier curve, a spline curve, or a Cat-Marrom curve is used for drawing.
  • a line drawing is drawn by interpolating these control points.
  • Non-Patent Document 1 illustrates the relationship between the features that appear in the user's handwriting and the user's personality regarding various handwriting features.
  • an animation movie as a finished product includes a large number of intermediate frames in addition to a plurality of key frames.
  • one of the objects of the present invention is to provide a drawing apparatus that can generate an animation moving picture more effectively.
  • a drawing apparatus is a drawing apparatus that draws stroke data including a plurality of control points by interpolating a plurality of control points using an interpolation curve, and each of the plurality of control points.
  • the intermediate data generating unit that generates intermediate data obtained by moving the stroke data by moving the stroke data
  • the drawing processing unit that sequentially draws the stroke data and the intermediate data.
  • a drawing apparatus is a drawing apparatus that draws stroke data including a plurality of control points by interpolating a plurality of control points using an interpolation curve, wherein the plurality of first points are drawn.
  • First stroke data including control points and second stroke data including a plurality of second control points corresponding one-to-one with the plurality of first control points are received, and the plurality of first controls are received.
  • each of the plurality of first control points is generated by generating a third control point by interpolation between the first control point and the second control point corresponding to the first control point.
  • An intermediate data generating unit that generates one or more intermediate data that is stroke data including a plurality of the third control points corresponding one-to-one with the control points, and data corresponding to the first stroke data, the 1 Intermediate intermediate Motor, and and a drawing processing unit that sequentially renders the data corresponding to the second stroke data.
  • a drawing method is a drawing method for drawing stroke data including a plurality of control points by interpolating a plurality of control points using an interpolation curve, and each of the plurality of control points.
  • a drawing method is a drawing method for drawing stroke data including a plurality of control points by interpolating a plurality of control points using an interpolation curve.
  • First stroke data including control points and second stroke data including a plurality of second control points corresponding one-to-one with the plurality of first control points are received, and the plurality of first controls are received.
  • each of the plurality of first control points is generated by generating a third control point by interpolation between the first control point and the second control point corresponding to the first control point.
  • one or more intermediate data which is stroke data including a plurality of the third control points corresponding one-to-one with the control points, data corresponding to the first stroke data, and the one or more intermediate data Data and And a step of sequentially drawing data corresponding to the second stroke data.
  • intermediate data obtained by moving the stroke data is generated by moving each control point of the stroke data. This makes it possible to generate an animation movie more effectively.
  • FIG. 2 is a diagram illustrating an example of a screen displayed on a display 2 by the computer 1 illustrated in FIG. 1. It is a schematic block diagram which shows the functional block of the computer 1 shown in FIG. It is a flowchart which shows the processing flow of the control point change process which the control point change part 10 shown in FIG. 3 performs. It is explanatory drawing of the control point change process shown in FIG. It is explanatory drawing of the modification of the control point change process shown in FIG. It is a flowchart which shows the processing flow of the intermediate data production
  • FIG. 8 is an explanatory diagram of an “interpolation” process used in steps S12, S13, and S15 to S17 of FIG. It is a flowchart which shows the processing flow of the drawing process which the drawing process part 12 shown in FIG. 3 performs. It is a figure which shows an example of the stroke data drawn by the drawing process shown in FIG. It is a figure which shows another example of the stroke data drawn by the drawing process shown in FIG. It is a figure which shows another example of the stroke data drawn by the drawing process shown in FIG. It is a figure which shows the application example of the drawing method by the 1st Embodiment of this invention. It is a figure which shows an example of the screen which the computer 1 by the 2nd Embodiment of this invention displays on the display.
  • FIG. 1 It is a schematic block diagram which shows the functional block of the computer 1 by the 2nd Embodiment of this invention. It is a figure which shows the computer 1 and the electroencephalogram measuring device 7 by the 3rd Embodiment of this invention. It is a schematic block diagram which shows the functional block of the computer 1 by the 3rd Embodiment of this invention. It is a schematic block diagram which shows the functional block of the computer 1 by the 4th Embodiment of this invention. It is a figure which shows the specific example of each character shown by the handwriting information acquired by the handwriting information acquisition part 14 shown in FIG.
  • FIG. 1 is a diagram showing a computer 1, a digitizer 5, and an electronic pen 6 according to an embodiment of the present invention.
  • the computer 1 includes a processor and a memory (not shown), and executes various processes described below as operations of the computer 1 by the processor executing a program stored in the memory. Configured as follows.
  • the computer 1 is also configured to have an output device including a display 2 and an input device including a keyboard 3 and a mouse pad 4.
  • the computer 1 is depicted as a so-called notebook personal computer, but the computer 1 can be configured by other types of computers such as a desktop computer, a server computer, and a smartphone.
  • the digitizer 5 is, for example, a device that functions as an external input device for the computer 1, and is configured to have a touch surface for receiving input from the electronic pen 6.
  • the digitizer 5 and the computer 1 are connected by wired connection such as USB or wireless connection such as Bluetooth (registered trademark).
  • the digitizer 5 and the electronic pen 6 may be capable of communicating in one direction or in both directions, and various communication methods such as a capacitance method and an electromagnetic induction method may be used as a communication method in that case.
  • the digitizer 5 includes a device that functions as an input device built in a liquid crystal tablet or a computer.
  • the digitizer 5 is configured to be able to acquire coordinates (X coordinate and Y coordinate) indicating the position of the electronic pen 6 on the touch surface when the electronic pen 6 is on the touch surface.
  • coordinates X coordinate and Y coordinate
  • the digitizer 5 acquires a series of coordinates indicating the locus, and sequentially supplies them to the computer 1 as control points of stroke data.
  • One stroke data is composed of a series of control points acquired from the time when the electronic pen 6 contacts the touch surface (pen down) to the time when the electronic pen 6 leaves the touch surface (pen up). .
  • the digitizer 5 When the digitizer 5 can receive data from the electronic pen 6, the digitizer 5 also receives a unique ID for identifying the electronic pen 6 and writing pressure information indicating the pressing force of the input surface of the digitizer 5 by the electronic pen 6 from the electronic pen 6. Configured to receive.
  • the unique ID is transmitted from the electronic pen 6 toward the digitizer 5 when the pen is down, for example.
  • the writing pressure information is transmitted from the electronic pen 6 toward the digitizer 5.
  • the digitizer 5 is configured to be supplied to the computer 1 each time such information is received.
  • the computer 1 functions as a storage device that stores stroke data by sequentially storing a series of control points supplied from the digitizer 5, and renders the stored or stored stroke data to display It functions as a drawing device that draws stroke data on top. Specifically, the rendering of stroke data is performed by interpolating a series of control points using an interpolation curve such as a Bezier curve, a spline curve, or a Catmal-Rom curve.
  • an interpolation curve such as a Bezier curve, a spline curve, or a Catmal-Rom curve.
  • the computer 1 performs a process of adding line width information indicating the line width as metadata to each control point included in the stroke data before drawing the stroke data.
  • the computer 1 determines the line width of each control point based on the writing pressure information.
  • a default constant value is determined as the line width of each control point.
  • the computer 1 controls the line width of the curve to be drawn based on the line width information added to each control point.
  • the computer 1 also performs processing of adding color information indicating a color (for example, line color) as metadata to the stroke data before drawing the stroke data.
  • a color for example, line color
  • the computer 1 selects the color determined according to the unique ID as the stroke data. Determine as line color.
  • a default value for example, black
  • the computer 1 controls the line color of the curve to be drawn based on the line color information added to the stroke data.
  • the computer 1 when the stroke data to be drawn constitutes a closed curve (that is, when the control points at both ends are at the same position), the computer 1 indicates the fill color before drawing the stroke data. A process of adding the fill color information as metadata to the stroke data is also performed.
  • the computer 1 preferably determines a default value (for example, white or transparent) as the fill color of the stroke data.
  • the computer 1 draws stroke data constituting a closed curve, the computer 1 controls the fill color of an area surrounded by the curve to be drawn based on the fill color information added to the stroke data.
  • FIG. 2 is a diagram showing an example of a screen displayed on the display 2 by the computer 1.
  • This figure shows an example of a drawing application screen for executing stroke data drawing processing. As shown in the figure, this screen has windows W1 and W2.
  • the window W1 is an area that functions as a canvas for the computer 1 to draw stroke data.
  • stroke data A (1) is drawn in the window W1.
  • the stroke data A (1) is stroke data having five control points P1 to P5, and the computer 1 interpolates between these five control points P1 to P5 by a spline curve.
  • the computer 1 is configured to add a tangent handle to each control point when rendering stroke data.
  • the number of control handles to be added is one for a control point that is an end point and two for a control point that is an intermediate point.
  • FIG. 2 illustrates control handles P2a and P2b at the control point P2.
  • Each control point and each control handle can be moved by the user, so that the user can subsequently change the shape of the drawn stroke data.
  • the computer 1 accepts a change in the line color, line width, and fill color by the user for the stroke data displayed in the window W1, reflects the result on the stroke data being drawn, and changes the line after the change. It has a function of updating metadata added to stroke data (or each control point thereof) with line color information, line width information, and fill color information indicating the color, line width, and fill color, respectively.
  • a window W2 in FIG. 2 is a window for displaying a thumbnail image of stroke data (hereinafter referred to as “key frame”) which is a key for generating an animation moving image.
  • key frame a thumbnail image of stroke data
  • three stroke data A (1) to A (3) are prepared as key frames.
  • FIG. 3 is a schematic block diagram showing functional blocks of the computer 1.
  • functional blocks relating to generation of animation moving images based on a plurality of stroke data are shown.
  • the computer 1 is functionally configured to include a control point changing unit 10, an intermediate data generating unit 11, and a drawing processing unit 12.
  • each stroke data is expressed as A (n).
  • n is an integer from 1 to N.
  • the stroke data after the control point changing unit 10 changes the control point of the stroke data A (n) is expressed as stroke data A (n) s or stroke data A (n) f.
  • “S” at the end of the code indicates that the stroke data is the start point of the intermediate data generation, and “f” at the end of the code indicates the stroke data that is the end point of the intermediate data generation.
  • the stroke data generated by the intermediate data generation unit 11 based on the stroke data A (n) and the stroke data A (n + 1) is expressed as intermediate data B n, n + 1 (k).
  • k is an integer from 1 to K.
  • a control point of the stroke data X (X is any one of A (n), A (n) s, A (n) f, Bn, n + 1 (k)) is expressed as PX [m].
  • m is an integer from 1 to M.
  • control point changing unit 10 control point changing process
  • operation of the intermediate data generating unit 11 intermediate data generating process
  • operation of the drawing processing unit 12 drawing process described below are performed in parallel. Executed. That is, for example, when the stroke data A (n) s and A (n + 1) f are generated by the control point changing unit 10, the intermediate data generating unit 11 does not wait for the generation of the stroke data A (n + 1) s, and the stroke data Generation of intermediate data B n, n + 1 (k) regarding data A (n) s, A (n + 1) f is started.
  • the drawing processing unit 12 When the intermediate data generation unit 11 generates the intermediate data B n, n + 1 (k), the drawing processing unit 12 does not wait for the generation of the intermediate data B n + 1, n + 2 (k), and the intermediate data B n, n + 1. Drawing of (k) is started. By doing so, it becomes possible to generate and render intermediate data in real time when reproducing a moving image.
  • the control point changing unit 10 receives input of a plurality of stroke data A (n) (n is an integer from 1 to N) designated in the window W2 shown in FIG. This is a functional unit that generates stroke data A (n) s and stroke data A (n) f based on the number.
  • stroke data A (n) is an integer from 1 to N
  • stroke data A (n) f is an integer from 1 to N
  • FIG. 4 is a flowchart showing the processing flow of the control point changing process executed by the control point changing unit 10.
  • the control point changing unit 10 is configured to repeatedly execute the processes of steps S2 to S6 for the variable n of 1 to N ⁇ 1 (step S1).
  • the control point changing unit 10 determines the number PN (n) of a plurality of control points (fourth control points) included in the stroke data A (n) (fourth stroke data), and the stroke data.
  • the number PN (n + 1) of a plurality of control points (fifth control points) included in A (n + 1) (fifth stroke data) is acquired.
  • the control point changing unit 10 calculates the least common multiple LCM of the two obtained numbers PN (n) and PN (n + 1) (step S1). Then, by adding LCM-PN (n) control points to the stroke data A (n), stroke data A (n) s (first control point) having LCM control points (first control points) is obtained.
  • Stroke data is generated (step S5), and LCM-PN (n + 1) control points are added to the stroke data A (n + 1), thereby having LCM control points (second control points), respectively.
  • Stroke data A (n + 1) f (second stroke data) is generated (step S6).
  • FIG. 5 is an explanatory diagram of the control point changing process shown in FIG.
  • the stroke data A (n) has four control points P1 to P4, and the stroke data A (n + 1) has three control points P1 to P3.
  • the stroke data A (n) s and A (n + 1) f are respectively stroke data having 12 control points P1 to P12 as shown in the lower part of FIG. Become.
  • control point changing unit 10 adds a new control point to each stroke data A (n) so that the shape of the curve as a drawing result is not changed as much as possible.
  • control point originally included in each stroke data A (n) may be left at the original position, or the position may be changed when it is preferable to maintain the shape of the curve.
  • control point changing unit 10 may perform processing so that the two changed stroke data A (n) s and A (n + 1) f obtained for each n are equal to each other. And as shown in FIG. 5, it is not necessary to make the number of control points the least common multiple LCM.
  • FIG. 5 is an explanatory diagram of a modified example of the control point changing process shown in FIG.
  • the stroke data A (n) is smaller in the number PN (n) of the control points of the stroke data A (n) and the number PN (n + 1) of the control points of the stroke data A (n + 1).
  • the stroke data A (n) s is obtained by removing one control point from the stroke data A (n).
  • the stroke data A (n) s is Since the stroke data A (n) is used only for generating the intermediate data and the animation moving image is drawn, the removal of the control point does not necessarily have a serious influence on the drawing result of the animation moving image.
  • the intermediate data generation unit 11 is a functional unit that generates intermediate data obtained by moving stroke data by moving each of a plurality of control points. More specifically, stroke data A (n) s (first stroke data) including M control points PA (n) s [m] (first control points) and M control points PA. Stroke data A (n + 1) f (second stroke data) including (n + 1) s [m] (second control point) is received, and each of M control points PA (n) s [m] is received. The control point PB n, n + 1 (by interpolation between the control point PA (n) s [m] and the control point PA (n + 1) s [m] corresponding to the control point PA (n) s [m].
  • FIG. 7 is a flowchart showing a processing flow of intermediate data generation processing executed by the intermediate data generation unit 11.
  • the intermediate data generation unit 11 performs a loop process for each of the variables n, k, and m. Specifically, the processing of steps S11 to S17 is repeatedly executed for the variable n of 1 to N-1 (step S10), and the processing of steps S12 to S17 is performed for the variable k of 1 to K for each n. Are repeatedly executed (step S11), and for each k, the processing of steps S15 to S17 is repeatedly executed for the variable m of 1 to M (step S14).
  • steps S12 and S13 are processes related to the entire stroke data, and the intermediate data generation unit 11 generates K pieces of intermediate data B n generated corresponding to the stroke data A (n) s and A (n + 1) f. , N + 1 (k), the processes of steps S12 and S13 are executed.
  • the line of the intermediate data B n, n + 1 (k) is obtained by interpolation of the line color information (first and second line color information) indicating the line color of the stroke data A (n), A (n + 1).
  • Line color information indicating the color (third line color information) is calculated (step S12), and fill color information indicating the fill color of the stroke data A (n) and A (n + 1) (first and second fill colors)
  • the fill color information (third fill color information) indicating the fill color of the intermediate data B n, n + 1 (k) is calculated by interpolation of (information) (step S13). Details of the “interpolation” will be described later.
  • each of the stroke data A (n) and A (n + 1) includes information indicating the above-described fill color (first and second fill color information), and the intermediate data generation unit 11 performs the following based on this information.
  • the fill color of each intermediate data B n, n + 1 (k) is calculated.
  • steps S15 to S17 are processing for each control point, and the intermediate data generation unit 11 performs processing for each of M control points PB n, n + 1 (k) [m] of the intermediate data B n, n + 1 (k). , Steps S15 to S17 are executed.
  • the X coordinate of the control point PB n, n + 1 (k) [m] is calculated by interpolation of the X coordinate of the control point PA (n) s [m], PA (n + 1) f [m]
  • the Y coordinate of the control point PBn , n + 1 (k) [m] is calculated by interpolation of the Y coordinate of the control point PA (n) s [m], PA (n + 1) f [m] (step S15).
  • the line width of the control point PB n, n + 1 (k) [m] is obtained by interpolation of the line width information indicating the line width of the control point PA (n) s [m], PA (n + 1) f [m].
  • the line width information shown is calculated (step S17).
  • FIG. 8 is an explanatory diagram of the “interpolation” process used in steps S12, S13, S15 to S17.
  • the figure shows the principle of the processing for each control point (steps S15 to S17).
  • the mth control point PB n, k of the kth intermediate data B n, n + 1 (k) n + 1 (k) [m] is the mth control point PA (n) s [m] of the stroke data A (n) s and the mth control point PA (n + 1) f of the stroke data A (n + 1) f. It is calculated by interpolating [m] with k / (K + 1): 1 ⁇ k / (K + 1).
  • X1, Y1, and W1 are the X coordinate, Y coordinate, and line width information of the control point PA (n) s [m], respectively, and X2, Y2, and W2 are the control point PA (n + 1) f [m], respectively.
  • X coordinate, Y coordinate, and line width information, and X3, Y3, and W3 are the X coordinate, Y coordinate, and line width information of the control point PBn , n + 1 (k) [m], respectively.
  • LC1 and FC1 are the line color information and fill color information of stroke data A (n) s, respectively
  • LC2 and FC2 are the line color information and fill of stroke data A (n + 1) f, respectively
  • Color information LC3 and FC3 are line color information and fill color information of the intermediate data B n, n + 1 (k), respectively.
  • the rendering processing unit 12 sequentially renders a plurality of stroke data A (1) to A (N) included in the key frame and the intermediate data generated based on them. It is. Hereinafter, the processing performed by the drawing processing unit 12 will be described in detail with reference to FIG.
  • FIG. 9 is a flowchart showing the processing flow of the drawing processing executed by the drawing processing unit 12.
  • the drawing processing unit 12 performs a loop process for each of the variables n and k. Specifically, the processes of steps S21 to S28 are repeatedly executed for the variable n of 1 to N (step S20), and the processes of steps S26 to S28 are repeated for the variable k of 1 to K for each n. It is comprised so that it may perform (step S11).
  • the processes in steps S21 to S24 are processes related to drawing of stroke data A (n) included in the key frame.
  • the drawing processing unit 12 first draws the stroke data A (n) (step S21).
  • the drawing processing unit 12 interpolates a series of control points PA (n) [m] using a predetermined interpolation curve as described above.
  • the line color, line width, and fill color of the curve to be drawn are determined by reading line color information, line width information, and fill color information from the metadata added to the stroke data A (n), respectively.
  • the drawing processing unit 12 determines whether or not the variable n is equal to N. If they are equal, the drawing process ends. On the screen after the completion, the state where the stroke data A (N) is drawn remains. On the other hand, if they are not equal, the process waits for a predetermined time to elapse (step S23), and erases the drawn stroke data A (n) from the screen (step S24).
  • the drawing processing unit 12 that has erased the stroke data A (n) from the screen continues to K intermediate data B n, n + 1 (k) generated based on the stroke data A (n), A (n + 1).
  • the drawing process includes a process of drawing the intermediate data B n, n + 1 (k) (step S26), a process of waiting for a predetermined time after drawing (step S27), and a predetermined process.
  • time elapses it comprises a process (step S28) of deleting the drawn intermediate data B n, n + 1 (k) from the screen.
  • the content of the drawing process of the intermediate data B n, n + 1 (k) performed in step S26 is basically the same as the drawing process of the stroke data A (n) performed in step S21. More specifically, the drawing processing unit 12 interpolates a series of control points PB n, n + 1 (k) [m] using a predetermined interpolation curve.
  • the line color information of the curve to be drawn the line color information determined for the intermediate data B n, n + 1 (k) in step S12 in FIG. 7 is used.
  • the line width information of the curve to be drawn the line width information determined for each of the M control points PB n, n + 1 (k) [m] in step S17 in FIG. 7 is used.
  • the fill color information has been calculated in step S13 of FIG. 7, based on the calculated fill color information, the area corresponding to the inside of the closed curve constituted by the intermediate data B n, n + 1 (k) is filled. I do.
  • FIG. 10 is a diagram showing an example of stroke data drawn by the drawing process shown in FIG.
  • the white circles shown on the curve represent the control points of the stroke data, and this point is the same in FIGS. 11, 12, and 15 described later.
  • the display of the control points can be turned on / off.
  • the control points are displayed and described for the description of the drawing process.
  • the present invention is not limited to this, and the control points may be hidden.
  • FIG. 10 shows stroke data A (1) and A (2) as key frames and three intermediate data B 1,2 (1) to B 1,2 (3) generated based on these data. Is illustrated.
  • writing pressure information is not added to the stroke data A (1) and A (2) shown in the figure, and therefore the line width of the curve is a default constant value.
  • stroke data A (1) and A (2) as key frames are drawn (rendered) in advance and stored in the memory.
  • the intermediate data B 1,2 (1) to B 1,2 (3) are drawn (rendered) in real time every time the control point of the key frame is moved, the total number of frames does not change (hereinafter referred to as the following) The same).
  • each of the intermediate data B 1,2 (1) to B 1,2 (3) is such that the stroke data A (1) gradually changes and finally the stroke data A (2) It becomes a shape that represents the interval until.
  • the drawing processing unit 12 moves each control point of the stroke data A (1) toward the control point of the corresponding stroke data A (2), and renders each movement, thereby allowing the user to perform the stroke data A (1).
  • FIG. 11 is a diagram showing another example of stroke data drawn by the drawing process shown in FIG.
  • the difference between FIG. 10 and FIG. 10 is that writing pressure information is added to the stroke data A (2).
  • the line width of the stroke data A (2) is not a constant value as shown in FIG. A thick part appears compared to a certain value.
  • the drawing processing unit 12 draws the stroke data A (1), the intermediate data B 1,2 (1) to B 1,2 (3), and the stroke data A (2) in the order indicated by the arrows in FIG.
  • the user sees an animated movie that gradually changes from the line width of the stroke data A (1) and finally becomes the line width of the stroke data A (2).
  • FIG. 12 is a diagram showing still another example of stroke data drawn by the drawing process shown in FIG.
  • the difference between FIG. 12 and FIG. 12 is that the stroke data A (1) and A (2) both form a closed curve, and a fill color is assigned to each.
  • the stroke data A (1) and A (2) have the same fill color.
  • the intermediate data B 1,2 (1) to B 1,2 (3) are also closed curves.
  • the inner area of each of the intermediate data B 1,2 (1) to B 1,2 (3) is the stroke data A (1), A () based on the fill color information calculated in step S13 of FIG. It will be painted in the same way as 2).
  • the intermediate data obtained by moving the stroke data by moving each control point of the stroke data (for example, obtaining the control point of the intermediate data by interpolation).
  • Intermediate data B n, n + 1 (k), etc.) is generated.
  • Such generation of intermediate data can be executed with a lower processing load compared to the case of adding an intermediate frame by interpolation processing. Therefore, according to the computer 1 according to the present embodiment, animation animation can be generated more effectively. Is possible. Specifically, the problem that the memory usage is increased and the problem that the animation moving image cannot be viewed until the intermediate frame generation process is completed are solved.
  • FIG. 13 is a diagram showing an application example of the drawing method according to the present embodiment.
  • two key frames G (1) and G (2) each including a plurality of stroke data are prepared in advance, and the computer 1 changes the key frame G (1) to the key frame G (2).
  • An animated movie representing the transition is automatically generated. This will be specifically described below.
  • the computer 1 When the computer 1 receives input of the key frames G (1) and G (2), the computer 1 receives a plurality of stroke data in the key frame G (2) for each of the plurality of stroke data included in the key frame G (1). Associate one of the following. This association may be performed by automatic processing of the computer 1 or manually by the user. For example, each stroke may be associated in the order in which the strokes are drawn, or the rth stroke drawn in G (1) and the sth in G (2) (where s is a positive integer different from r). The stroke may be selectable from the input device.
  • the computer 1 When the number of stroke data is different between the key frame G (1) and the key frame G (2), or when it is desired to associate them in an order different from the order in which the strokes are drawn, the computer 1 performs the association by the user. It is preferable to accept the designation. In this regard, for example, there is a case where a line constituted by one stroke data in one key frame is divided into two or more stroke data in the other key frame. In such a case, As a general rule, it is preferable that the stroke data generated earlier in time series is the target of association.
  • FIG. 13 for convenience of explanation, the stroke drawn first by the key frame G (1) and the stroke drawn first by the key frame G (2) are associated with each other, and the intermediate data I (1 ) And I (2), the control points are moved, and each stroke is displayed by rendering for each movement.
  • the computer 1 performs processing by the control point changing unit 10, the intermediate data generating unit 11, and the drawing processing unit 12 shown in FIG. 3 for each set of associated stroke data. Among these, as a result of the processing by the intermediate data generation unit 11, a plurality of intermediate data is generated.
  • FIG. 13 shows two pieces of intermediate data I (1) and I (2) as an example of the intermediate data generated in this way.
  • the drawing processing unit 12 performs stroke data (including intermediate data) included in each of the key frame G (1), intermediate data I (1), I (2), and key frame G (2) in this order. Is drawn. In this way, the computer 1 generates an animation movie based on two key frames each including a plurality of stroke data.
  • a person turns from a key frame G (1) in which a person who faces sideways is drawn by a plurality of stroke data to a key frame G (2) that shows a state in which the person turns to the front.
  • An animated movie that naturally expresses the video is automatically generated.
  • the computer 1 it is possible to automatically generate intermediate data between three key frames and obtain a natural animation movie.
  • the right eye of the person is represented in the image G (2), but in the image G (1), the right eye's sculpture is drawn so as to overlap the cheek stroke.
  • FIG. 14 is a diagram showing an example of a screen displayed on the display 2 by the computer 1 according to the second embodiment of the present invention.
  • the computer 1 according to the present embodiment is different from the computer 1 according to the first embodiment in that an animation moving image can be generated even from one stroke data. Since the other points are the same as those of the computer 1 according to the first embodiment, the same components as those in the first embodiment are denoted by the same reference numerals and the description thereof will be omitted. Description will be made by paying attention to differences from the embodiment. In the present embodiment, description will be made using one stroke data. However, the present invention is not limited to this, and animation moving images can be generated in the same manner for a plurality of stroke data.
  • FIG. 14 shows the screen of the drawing application shown in FIG.
  • motion type designation buttons B1 to B4 for designating the content of movement of stroke data are displayed on the screen of the drawing application according to the present embodiment.
  • the number of motion type designation buttons may be one or more.
  • the content of the motion assigned to each motion type designation button is not limited to the illustrated one.
  • stroke data A as an example and the movement of the stroke data A when the user presses the movement type designation button B1 in a state where the stroke data A is displayed are shown.
  • the computer 1 controls the stroke data A in the vertical direction along the direction of the arrow C shown in the figure (the vertical direction in the screen) in response to the user pressing the motion type designation button B1.
  • An animation moving image of stroke data is generated and drawn by moving a point and rendering for each movement.
  • FIG. 15 is a schematic block diagram showing functional blocks of the computer 1 according to the present embodiment.
  • the computer 1 according to the present embodiment is functionally configured to include a key frame generation unit 13a.
  • the computer 1 according to the present embodiment includes the control point changing unit 10, the intermediate data generating unit 11, and the drawing processing unit 12 described in the first embodiment (see FIG. 3). ).
  • the key frame generation unit 13a acquires the stroke data A drawn in the window that is active when the motion type designation button is pressed, and is designated by the stroke data A and the motion type designation button.
  • This is a functional unit that generates a plurality of stroke data A (1) to A (N) (change information) indicating the movement destination of each control point in the stroke data A based on the content of the movement.
  • the generated stroke data A (1) to A (N) are respectively supplied to the control point changing unit 10 shown in FIG. 3 as the key frames described above.
  • the animation moving image is drawn by the drawing processing unit 12 shown in FIG.
  • FIG. 14 shows an example of stroke data A (1) to A (N) generated by the key frame generation unit 13a.
  • N 5
  • the stroke data A (1) is the stroke data A itself
  • the stroke data A (2) is data obtained by translating the stroke data A upward by a predetermined distance
  • the stroke data A (3) is the stroke data A itself
  • the stroke data A (4) is data obtained by translating the stroke data A downward by a predetermined distance
  • the stroke data A (5) is the stroke data A.
  • the key frame generation unit 13a generates the stroke data A (1) to A (5), so that the animation moving image drawn by the drawing processing unit 12 is first translated upward in the stroke data A. Then, it returns to the original position, translates further downward, and returns to the original position. That is, an animation moving image in which the stroke data A moves up and down is drawn by moving the control points of the stroke data and rendering for each movement.
  • buttons such as rotating motion when the button B2 is pressed, curving motion when the button B3 is pressed, and zigzag motion when the button B4 is pressed.
  • the type of exercise is not limited to these examples, and includes various exercises.
  • the button display conceptually represents exercise, but the present invention is not limited to this, and display of an image, an icon, or the like may be used.
  • the key frame generation unit 13a supplies the control point change unit 10 shown in FIG. 3 based on one stroke data specified by the user. Since a plurality of stroke data (key frames) are generated, the function of the computer 1 described in the first embodiment (that is, strokes are generated by moving each control point of the stroke data and rendering each movement). It is possible to generate an animation moving image with the content that one stroke data moves according to the user's designation using a function of generating intermediate data by moving data.
  • the motion content specified by the motion type specification button can specify not only the movement and rotation as illustrated in FIG. 14 but also a change in line color, line width, fill color, and shape change. Good. For example, if a change in line width is designated as the content of movement, a plurality of stroke data A (1) to A (N) generated by the key frame generation unit 13a is a line width indicating the change in line width. It will function as information.
  • FIG. 16 is a diagram showing a computer 1 and an electroencephalograph 7 according to the third embodiment of the present invention.
  • the computer 1 according to the present embodiment moves the control point of the stroke data based on the electroencephalogram information acquired by the electroencephalograph 7 instead of the motion type designation button, and generates an animation movie by rendering processing for each movement.
  • it is different from the computer 1 according to the second embodiment. Since the other points are the same as those of the computer 1 according to the second embodiment, the same components as those of the second embodiment are denoted by the same reference numerals and the description thereof is omitted. Description will be made by paying attention to differences from the embodiment.
  • the electroencephalograph 7 is used by being installed on the user's head, for example, and is configured to measure the user's brain waves.
  • the electroencephalogram information indicating the electroencephalogram measured by the electroencephalograph 7 is supplied to the computer 1 according to the present embodiment.
  • FIG. 16 is a schematic block diagram showing functional blocks of the computer 1 according to this embodiment.
  • the computer 1 according to the present embodiment is functionally configured to include a key frame generation unit 13b.
  • the computer 1 according to the present embodiment also includes the control point changing unit 10, the intermediate data generating unit 11, and the drawing processing unit 12 described in the first embodiment (see FIG. 3). )have.
  • the key frame generation unit 13b determines the content of the movement of the stroke data based on the electroencephalogram information supplied from the electroencephalograph 7 and determines the stroke data A drawn in the window designated in advance by the user.
  • This is a functional unit that generates a plurality of stroke data A (1) to A (N) (change information) indicating the change contents of each control point in the stroke data A based on the contents of the movement.
  • the generated stroke data A (1) to A (N) are respectively supplied to the control point changing unit 10 shown in FIG. 3 as the key frames described above.
  • the animation moving image is drawn by the drawing processing unit 12 shown in FIG.
  • the key frame generation unit 13b first obtains emotion information indicating the user's emotion from the brain wave information when determining the content of the movement of the stroke data based on the brain wave information. Then, the content of the movement of the stroke data is determined according to the emotion of the user indicated by the emotion information. For example, when the user is happy, it is possible to make a movement that jumps and when the user is depressed, the movement is such that the positions of both ends are lowered. As a more specific process, the key frame generating unit 13b stores the emotion information and the content of the stroke data in advance in association with each other, and based on the stored content, the motion information of the stroke data is calculated from the emotion information. The content may be determined.
  • the key frame generation unit 13b not only changes the position of the stroke data (that is, changes in at least one of the X coordinate and the Y coordinate), but also adds additional information such as the stroke color line color, line width, and fill color.
  • This change may be determined as part or all of the content of the movement. For example, when the user is happy, the line color and the fill color may be determined so as to change to a warm color, and when the user is depressed, the color changes to a cold color. In this way, changes in line color and fill color may be determined.
  • the key frame generation unit 13b determines the content of the movement of the stroke data A, and generates the stroke data A (1) to A (5) based on the determined content. Emotion can be expressed by the movement of the stroke data A.
  • the key frame generation unit 13b determines the content of the movement of the stroke data based on the electroencephalogram information, and based on the determined content, it is shown in FIG. Since a plurality of stroke data (key frames) to be supplied to the control point changing unit 10 is generated, the function of the computer 1 described in the first embodiment (that is, each control point of the stroke data is moved). By rendering each movement, a user's emotion can be expressed by the movement of the stroke data using a function that generates intermediate data by changing the stroke data.
  • the electroencephalograph 7 is used in the present embodiment, for example, the electroencephalogram data and the digital ink data when writing characters or the like with the electronic pen are stored in advance in association with each other, and the digital ink data of the electronic pen is used.
  • Emotion information may be acquired by acquiring electroencephalogram data.
  • the emotion information may be acquired not only from the electroencephalogram but also from other biological information.
  • various devices capable of detecting emotion information from biological information such as pulse, heart rate, blood pressure, number of steps, and spatial sensing can be used in place of the electroencephalograph 7 or together with the electroencephalograph 7.
  • FIG. 18 is a schematic block diagram showing functional blocks of the computer 1 according to the fourth embodiment of the present invention.
  • the computer 1 according to the present embodiment acquires personality information indicating the user's personality from the user's handwriting, moves the control point of the stroke data based on the acquired personality information, and generates an animation movie by rendering processing for each movement. It differs from the computer 1 according to the third embodiment in that it is generated. Since the other points are the same as those of the computer 1 according to the third embodiment, the same components as those in the third embodiment are denoted by the same reference numerals and the description thereof is omitted. Description will be made by paying attention to differences from the embodiment.
  • the computer 1 according to the present embodiment is functionally configured to include a handwriting information acquisition unit 14 and a key frame generation unit 13c.
  • the computer 1 according to the present embodiment also includes the control point changing unit 10, the intermediate data generating unit 11, and the drawing processing unit 12 described in the first embodiment (see FIG. 3). )have.
  • the handwriting information acquisition unit 14 is a functional unit that acquires handwriting information indicating one or more characters written by the user. More specifically, the handwriting information acquisition unit 14 acquires a stroke data group SG composed of one or more stroke data input by the user using, for example, the electronic pen 6 (see FIG. 1). Alternatively, handwriting information may be acquired by performing a predetermined recognition process, or image data PIC obtained by scanning a character written on a paper or the like with a scanner (not shown) is obtained. The handwriting information may be acquired by performing a predetermined recognition process on the image data PIC. Note that, as indicated by a broken line arrow in FIG. 18, stroke data A (supplied to the key frame generation unit 13 c) to be moved according to a user's designation is converted into one or more stroke data group SG. It may be used as all or part of the stroke data.
  • the handwriting information acquired from the stroke data group SG includes a combination of one or more stroke data constituting the character for each character.
  • each stroke data includes a series of control points and metadata.
  • Each metadata is stored in association with a control point.
  • the metadata includes the above-described pressure information, line width information, color information, fill color information, etc., as well as shading information, time stamp information indicating date / time, and tilt indicating an angle with respect to the input surface of the electronic pen 6.
  • Information, rotation information indicating the rotation angle around the normal of the input surface of the electronic pen 6, speed information indicating the writing speed, and the like may be included.
  • the data included in the stroke data constituting the stroke data group SG is inherited by the handwriting information.
  • the key frame generation unit 13c determines the content of the movement of the stroke data based on the handwriting information acquired by the handwriting information acquisition unit 14, and determines the stroke data A drawn in the window designated in advance by the user.
  • This is a functional unit that generates a plurality of stroke data A (1) to A (N) (change information) indicating the movement destination of each control point in the stroke data A based on the content of the movement.
  • the generated stroke data A (1) to A (N) are respectively supplied to the control point changing unit 10 shown in FIG. 3 as the key frames described above.
  • the animation moving image is drawn by the drawing processing unit 12 shown in FIG.
  • the key frame generation unit 13c is configured to first acquire personality information indicating the personality of the user from the handwriting information when determining the content of the movement of the stroke data based on the handwriting information.
  • FIG. 19 is a diagram illustrating a specific example of individual characters indicated by the handwriting information acquired by the handwriting information acquisition unit 14.
  • the characters shown in FIGS. 19A, 19B, and 19C are kanji “mouth”, “child”, and “sama”, respectively, and the illustrated features E1 to E4 are handwritten characters that can read the user's personality.
  • the feature E1 is called a “folding square type”, and indicates a user's character of “Kyomen” and “Move according to the rules”.
  • the feature E2 is called “downward-opening type”, and indicates the personality of the user as “flexible”, “sympathetic”, “rich in compromise”.
  • the feature E3 is called “splash weak type”, and indicates the personality of the user as “light and quick but irresponsible tendency”.
  • the feature E4 is called a “draft misalignment type”, and indicates the personality of the user, “a sense group, who sticks to taste preferences”.
  • Non-Patent Document 1 discloses many specific examples regarding this point.
  • the key frame generation unit 13c is configured to acquire personality information indicating the personality of the user by analyzing the handwriting information using the property of such handwriting information.
  • the key frame generation unit 13c can acquire personality information based on metadata associated with each control point.
  • the handwriting characteristics of “draft twist type” and “draft type” described in Non-Patent Document 1 are the presence / absence of twist in the drafting part as described on page 5 of Non-Patent Document 1. It is a shape that takes into account the strength of the writing pressure. In Non-Patent Document 1, the strength of writing pressure is read from the thickness of a line written on paper.
  • direct measurement is performed by using writing pressure information in metadata. Since the writing pressure as the processed data can be obtained, it becomes possible to determine the characteristics of the handwriting more precisely.
  • the key frame generation unit 13c that has acquired the personality information determines the content of the movement of the stroke data according to the user's personality indicated by the personality information. As a more specific process, the key frame generation unit 13c stores personality information and stroke data movement contents in association with each other in the same manner as the key frame generation unit 13b described in the third embodiment. The content of the movement of the stroke data may be determined from the personality information based on the stored content.
  • the line color associated with the control points constituting the stroke data In addition to the change in the position of the stroke data (that is, the change in at least one of the X coordinate and the Y coordinate) described in the third embodiment, the line color associated with the control points constituting the stroke data, The same applies to the key frame generation unit 13c in that metadata changes such as line width and fill color may be determined as part or all of the contents of the movement of the control point.
  • the key frame generation unit 13c determines the content of the movement of the stroke data A, and generates the stroke data A (1) to A (5) based on the determined content. Can be expressed by the movement of the stroke data A.
  • the key frame generation unit 13c determines the content of the movement of the stroke data based on the handwriting information acquired by the handwriting information acquisition unit 14, and determines the determination. Since a plurality of stroke data (key frames) to be supplied to the control point changing unit 10 shown in FIG. 3 is generated based on the contents, the function (ie, stroke) of the computer 1 described in the first embodiment is generated. Represent the user's personality by the movement of the stroke data using the function that generates the intermediate data by changing the stroke data by moving each control point of the data and rendering each movement. Is possible.
  • the intermediate data is generated by interpolating the X coordinate, Y coordinate, and line width of each control point, and the line color and fill color of each stroke data.
  • Parameters other than these may also be subject to interpolation.
  • the Z coordinate of each control point is also an object of interpolation. In that case, each coordinate (X coordinate, Y coordinate, and Z coordinate) of the control point constituting the stroke data is moved.
  • intermediate data may be generated by interpolation along a predetermined curve.
  • the key frame generation unit 13b determines the content of the movement of the stroke data according to the user's emotion.
  • the key frame generation unit 13c displays the user's personality.
  • the content of the movement of the stroke data may be determined according to the above, but these may be combined to determine the content of the movement of the stroke data according to the user characteristics including at least one of the user's emotion and personality. By doing so, it becomes possible to realize movement of stroke data closer to the user's intention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Dermatology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Neurosurgery (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【課題】中間データを動画再生時にリアルタイムで生成できる描画装置を提供する。 【解決手段】複数の制御点を含むストロークデータを描画する描画装置であって、複数の第1の制御点を含むストロークデータA(1)sと、複数の第1の制御点に対応付けられた複数の第2の制御点を含むストロークデータA(2)fとを受け付け、複数の第1の制御点のそれぞれについて、該第1の制御点と、該第1の制御点に対応する第2の制御点との内挿によって第3の制御点を生成することによって、それぞれ複数の第1の制御点に対応付けられた複数の第3の制御点を含むストロークデータである中間データB1,2(1)~B1,2(K)を生成する中間データ生成部11と、少なくとも中間データB1,2(1)~B1,2(K)を順次描画する描画処理部12とを備える。

Description

描画装置及び描画方法
 本発明は描画装置及び描画方法に関し、特に、デジタルインクのストロークデータのアニメーションを生成するための描画装置及び描画方法に関する。
 タブレットなどの位置検出器上で電子ペンやスタイラスなどの指示体を移動させることによって得られる軌跡(ストローク)を電子データ化してなるデジタルインクが知られている。特許文献1には、デジタルインクの例が開示されている。
 特許文献1にも一部が示されているように、デジタルインクは複数の制御点を含んで構成されており、描画時には、ベジエ曲線、スプライン曲線、キャットマル-ロム曲線などの補間曲線を用いてこれらの制御点を補間することによって線画が描かれる。
 また、非特許文献1には、多様な筆跡特徴に関して、ユーザの筆跡に表れる特徴とユーザの性格との関係が図解されている。
特開2016-119051号公報
森岡恒舟著、「筆跡特徴マニュアル72項目の図解」、改訂版、日本筆跡診断士会、2014年3月10日
 ところで近年、コンピュータ上に描画した線画から自動的にアニメーション動画を作成する技術が登場している。この技術は、与えられた2つのキーフレーム間をつなぐ複数の中間フレームを補間処理等により追加し、所定時間毎にこれらのフレームを切り替えて表示する。この技術によれば、完成品としてのアニメーション動画は、複数のキーフレームに加えて多数の中間フレームを含むものとなる。
 しかしながら、この方法によれば、動画再生の前に中間フレームを生成しておく必要があることから、メモリ使用量が大きくなるという問題や、中間フレームの生成処理が終了するまでアニメーション動画を見ることができないという問題が発生する。
 したがって、本発明の目的の一つは、アニメーション動画をより効果的に生成できる描画装置を提供することにある。
 本発明の一側面による描画装置は、補間曲線を用いて複数の制御点を補間することによって、前記複数の制御点を含むストロークデータを描画する描画装置であって、前記複数の制御点のそれぞれを移動させることによって、前記ストロークデータを移動させてなる中間データを生成する中間データ生成部と、前記ストロークデータ及び前記中間データを順次描画する描画処理部とを備える。
 本発明の他の一側面による描画装置は、補間曲線を用いて複数の制御点を補間することによって、前記複数の制御点を含むストロークデータを描画する描画装置であって、複数の第1の制御点を含む第1のストロークデータと、前記複数の第1の制御点と一対一に対応する複数の第2の制御点を含む第2のストロークデータとを受け付け、前記複数の第1の制御点のそれぞれについて、該第1の制御点と、該第1の制御点に対応する前記第2の制御点との内挿によって第3の制御点を生成することによって、それぞれ前記複数の第1の制御点と一対一に対応する複数の前記第3の制御点を含むストロークデータである1以上の中間データを生成する中間データ生成部と、前記第1のストロークデータに対応するデータ、前記1以上の中間データ、及び前記第2のストロークデータに対応するデータを順次描画する描画処理部とを備える。
 本発明の一側面による描画方法は、補間曲線を用いて複数の制御点を補間することによって、前記複数の制御点を含むストロークデータを描画する描画方法であって、前記複数の制御点のそれぞれを移動させることによって、前記ストロークデータを移動させてなる中間データを生成するステップと、前記ストロークデータ及び前記中間データを順次描画するステップとを備える。
 本発明の他の一側面による描画方法は、補間曲線を用いて複数の制御点を補間することによって、前記複数の制御点を含むストロークデータを描画する描画方法であって、複数の第1の制御点を含む第1のストロークデータと、前記複数の第1の制御点と一対一に対応する複数の第2の制御点を含む第2のストロークデータとを受け付け、前記複数の第1の制御点のそれぞれについて、該第1の制御点と、該第1の制御点に対応する前記第2の制御点との内挿によって第3の制御点を生成することによって、それぞれ前記複数の第1の制御点と一対一に対応する複数の前記第3の制御点を含むストロークデータである1以上の中間データを生成するステップと、前記第1のストロークデータに対応するデータ、前記1以上の中間データ、及び前記第2のストロークデータに対応するデータを順次描画するステップとを備える。
 本発明では、ストロークデータの各制御点を移動させることによって、ストロークデータを移動させてなる中間データを生成している。これにより、アニメーション動画をより効果的に生成することが可能になる。
本発明の第1の実施の形態によるコンピュータ1、デジタイザ5、及び電子ペン6を示す図である。 図1に示したコンピュータ1がディスプレイ2上に表示する画面の一例を示す図である。 図1に示したコンピュータ1の機能ブロックを示す略ブロック図である。 図3に示した制御点変更部10が実行する制御点変更処理の処理フローを示すフロー図である。 図4に示した制御点変更処理の説明図である。 図4に示した制御点変更処理の変形例の説明図である。 図3に示した中間データ生成部11が実行する中間データ生成処理の処理フローを示すフロー図である。 図7のステップS12,S13,S15~S17で使用する「内挿」処理の説明図である。 図3に示した描画処理部12が実行する描画処理の処理フローを示すフロー図である。 図9に示した描画処理によって描かれたストロークデータの一例を示す図である。 図9に示した描画処理によって描かれたストロークデータの他の一例を示す図である。 図9に示した描画処理によって描かれたストロークデータのさらに他の一例を示す図である。 本発明の第1の実施の形態による描画方法の応用例を示す図である。 本発明の第2の実施の形態によるコンピュータ1がディスプレイ2上に表示する画面の一例を示す図である。 本発明の第2の実施の形態によるコンピュータ1の機能ブロックを示す略ブロック図である。 本発明の第3の実施の形態によるコンピュータ1及び脳波測定器7を示す図である。 本発明の第3の実施の形態によるコンピュータ1の機能ブロックを示す略ブロック図である。 本発明の第4の実施の形態によるコンピュータ1の機能ブロックを示す略ブロック図である。 図18に示した筆跡情報取得部14によって取得される筆跡情報によって示される個々の文字の具体的な例を示す図である。
 以下、添付図面を参照しながら、本発明の実施の形態について詳細に説明する。
 図1は、本発明の実施の形態によるコンピュータ1、デジタイザ5、及び電子ペン6を示す図である。コンピュータ1は、図示していないが内部にプロセッサ及びメモリを有しており、メモリ内に記憶されるプログラムをプロセッサが実行することによって、以下にコンピュータ1の動作として説明する各種の処理を実行するように構成される。コンピュータ1はまた、ディスプレイ2を含む出力装置と、キーボード3及びマウスパッド4を含む入力装置とを有して構成される。なお、図1では、コンピュータ1をいわゆるノートパソコンとして描いているが、デスクトップコンピュータ、サーバコンピュータ、スマートフォンなどの他の種類のコンピュータによって、コンピュータ1を構成することも可能である。
 デジタイザ5は、例えば、コンピュータ1に対する外付け入力装置として機能する装置であり、電子ペン6による入力を受け付けるためのタッチ面を有して構成される。デジタイザ5とコンピュータ1とは、USBなどの有線接続、又は、ブルートゥース(登録商標)などの無線接続によって接続される。デジタイザ5と電子ペン6とは、一方向又は双方向に通信可能であることとしてもよく、その場合の通信方式としては、静電容量方式や電磁誘導方式など各種の方式を用いることができる。なお、デジタイザ5は、液晶タブレットやコンピュータに内蔵された入力装置として機能する装置も含む。
 デジタイザ5は、電子ペン6がタッチ面上にある場合に、その電子ペン6のタッチ面上での位置を示す座標(X座標及びY座標)を取得可能に構成される。ユーザが電子ペン6をタッチ面上で移動させると、デジタイザ5は、その軌跡を示す一連の座標を取得し、逐次、ストロークデータの制御点としてコンピュータ1に供給する。なお、1つのストロークデータは、電子ペン6がタッチ面に接触した時点(ペンダウン)から、電子ペン6がタッチ面から離れた時点(ペンアップ)までに取得される一連の制御点によって構成される。
 デジタイザ5はまた、電子ペン6からデータを受信できる場合、電子ペン6を識別するための固有IDと、電子ペン6によるデジタイザ5の入力面の押圧力を示す筆圧情報とを電子ペン6から受信するよう構成される。固有IDは、例えばペンダウン時に、電子ペン6からデジタイザ5に向けて送信される。一方、筆圧情報は、電子ペン6からデジタイザ5に向けて送信される。デジタイザ5は、これらの情報を受信する都度、コンピュータ1に供給するよう構成される。
 コンピュータ1は、デジタイザ5から供給される一連の制御点を順次記憶していくことによってストロークデータを記憶する記憶装置として機能するとともに、記憶中又は記憶済みのストロークデータのレンダリングを行うことにより、ディスプレイ上にストロークデータの描画を行う描画装置として機能する。ストロークデータのレンダリングは、具体的には、ベジエ曲線、スプライン曲線、キャットマル-ロム曲線などの補間曲線を用いて一連の制御点を補間することによって実行される。
 ここで、コンピュータ1は、ストロークデータの描画を行う前に、線幅を示す線幅情報を、そのストロークデータに含まれる各制御点にメタデータとして付加する処理を行う。この場合において、コンピュータ1は、デジタイザ5から各制御点とともに筆圧情報が供給されている場合には、その筆圧情報に基づいて各制御点の線幅を決定する。一方、デジタイザ5から筆圧情報が供給されていない場合には、デフォルトの一定値を各制御点の線幅として決定する。コンピュータ1は、ストロークデータを描画する際、各制御点に付加した線幅情報に基づいて、描画する曲線の線幅を制御する。
 また、コンピュータ1は、ストロークデータの描画を行う前に、色彩(例えば、線色)を示す色彩情報をそのストロークデータにメタデータとして付加する処理も行う。この場合において、コンピュータ1は、デジタイザ5から電子ペン6の固有IDが供給されており、かつ、固有IDごとに色が決められている場合には、固有IDに応じて決まる色をストロークデータの線色として決定する。一方、そうでない場合には、デフォルトの値(例えば、黒)をストロークデータの線色として決定する。コンピュータ1は、ストロークデータを描画する際、そのストロークデータに付加した線色情報に基づいて、描画する曲線の線色を制御する。
 さらに、コンピュータ1は、描画対象のストロークデータが閉曲線を構成している場合(すなわち、両端の制御点が同じ位置にある場合)には、そのストロークデータの描画を行う前に、塗りつぶし色を示す塗りつぶし色情報をそのストロークデータにメタデータとして付加する処理も行う。コンピュータ1は、デフォルトの値(例えば、白又は透明)をストロークデータの塗りつぶし色として決定することが好適である。コンピュータ1は、閉曲線を構成するストロークデータを描画する際、そのストロークデータに付加した塗りつぶし色情報に基づいて、描画する曲線で囲まれる領域の塗りつぶし色を制御する。
 図2は、コンピュータ1がディスプレイ2上に表示する画面の一例を示す図である。同図には、ストロークデータの描画処理を実行するための描画アプリの画面の一例を示している。この画面は、同図に示すように、ウインドウW1,W2とを有して構成される。
 ウインドウW1は、コンピュータ1がストロークデータを描画するためのキャンバスとして機能する領域であり、図2の例では、このウインドウW1内にストロークデータA(1)が描画されている。ストロークデータA(1)は5つの制御点P1~P5を有するストロークデータであり、コンピュータ1は、これら5つの制御点P1~P5の間をスプライン曲線によって補間している。
 図2に示すように、コンピュータ1は、ストロークデータをレンダリングする際に、各制御点に接線ハンドルを付加するよう構成される。付加される制御ハンドルの数は、端点である制御点については1つ、中間点である制御点については2つとなる。図2には、制御点P2の制御ハンドルP2a,P2bを例示している。各制御点及び各制御ハンドルはユーザによって移動可能とされており、それによって、描画されたストロークデータの形状のユーザによる事後的な変更が可能とされている。その他、コンピュータ1は、ウインドウW1内に表示しているストロークデータにつき、ユーザによる線色、線幅、塗りつぶし色の変更を受け付け、その結果を描画中のストロークデータに反映させるとともに、変更後の線色、線幅、塗りつぶし色をそれぞれ示す線色情報、線幅情報、塗りつぶし色情報により、ストロークデータ(又はその各制御点)に付加したメタデータを更新する機能を有する。
 また、コンピュータ1は、複数のストロークデータに基づいてアニメーション動画を生成する機能を有している。図2のウインドウW2は、そうしてアニメーション動画を生成する際のキーとなるストロークデータ(以下、「キーフレーム」という)のサムネイル画像を表示するためのウインドウである。ここでは、3つのストロークデータA(1)~A(3)をキーフレームとして用意した例を示している。
 図3は、コンピュータ1の機能ブロックを示す略ブロック図である。同図には、複数のストロークデータに基づくアニメーション動画の生成に関する機能ブロックを示している。同図に示すように、コンピュータ1は機能的に、制御点変更部10、中間データ生成部11、及び描画処理部12を有して構成される。
 初めに、以下の説明における符号の使い方について説明する。以下では、各ストロークデータをA(n)と表記する。ただし、nは1~Nの整数である。また、制御点変更部10によってストロークデータA(n)の制御点を変更した後のストロークデータを、ストロークデータA(n)s又はストロークデータA(n)fと表記する。符号末尾のsは中間データ生成の開始(start)点となるストロークデータであることを示し、符号末尾のfは中間データ生成の終了(finish)点となるストロークデータであることを示している。さらに、中間データ生成部11がストロークデータA(n)とストロークデータA(n+1)に基づいて生成するストロークデータを、中間データBn,n+1(k)と表記する。ただし、kは1~Kの整数である。他に、ストロークデータX(Xは、A(n)、A(n)s、A(n)f、Bn,n+1(k)のいずれか)の制御点を、PX[m]と表記する。ただし、mは1~Mの整数である。
 また、以下で説明する制御点変更部10の動作(制御点変更処理)、中間データ生成部11の動作(中間データ生成処理)、及び描画処理部12の動作(描画処理)は、並行して実行される。すなわち、例えば制御点変更部10によってストロークデータA(n)s,A(n+1)fが生成された場合、中間データ生成部11は、ストロークデータA(n+1)sの生成を待たずに、ストロークデータA(n)s,A(n+1)fに関する中間データBn,n+1(k)の生成を開始する。また、中間データ生成部11によって中間データBn,n+1(k)が生成された場合、描画処理部12は、中間データBn+1,n+2(k)の生成を待たずに中間データBn,n+1(k)の描画を開始する。こうすることで、動画再生時にリアルタイムで、中間データの生成及び描画を行うことが可能になる。
 さて、制御点変更部10は、図2に示したウインドウW2内に指定された複数のストロークデータA(n)(nは1~Nの整数)の入力を受け付け、これらに含まれる制御点の個数に基づいて、ストロークデータA(n)s,ストロークデータA(n)fを生成する機能部である。以下、図4を参照しながら、制御点変更部10が行う処理について詳しく説明する。
 図4は、制御点変更部10が実行する制御点変更処理の処理フローを示すフロー図である。同図に示すように、制御点変更部10は、ステップS2~S6の処理を1~N-1の変数nに対して繰り返し実行するよう構成される(ステップS1)。
 ステップS2,S3では、制御点変更部10は、ストロークデータA(n)(第4のストロークデータ)に含まれる複数の制御点(第4の制御点)の個数PN(n)と、ストロークデータA(n+1)(第5のストロークデータ)に含まれる複数の制御点(第5の制御点)の個数PN(n+1)とを取得する。続いて制御点変更部10は、取得した2つの個数PN(n),PN(n+1)の最小公倍数LCMを算出する(ステップS1)。そして、ストロークデータA(n)にLCM-PN(n)個の制御点を追加することによって、LCM個の制御点(第1の制御点)を有するストロークデータA(n)s(第1のストロークデータ)を生成するとともに(ステップS5)、ストロークデータA(n+1)にLCM-PN(n+1)個の制御点を追加することによって、それぞれLCM個の制御点(第2の制御点)を有するストロークデータA(n+1)f(第2のストロークデータ)を生成する(ステップS6)。
 図5は、図4に示した制御点変更処理の説明図である。同図の例では、ストロークデータA(n)は4個の制御点P1~P4を有し、ストロークデータA(n+1)は3個の制御点P1~P3を有している。この場合、最小公倍数LCMは12となるので、ストロークデータA(n)s,A(n+1)fはそれぞれ、図5の下段に示すように、12個の制御点P1~P12を有するストロークデータとなる。
 ここで、制御点変更部10は、できるだけ描画結果である曲線の形状が変わらないように、各ストロークデータA(n)に新たな制御点を追加することが好ましい。また、各ストロークデータA(n)が元々有する制御点は、元の位置のまま残すこととしてもよいし、曲線の形状を維持するうえで好ましい場合には、位置を変更することとしてもよい。
 また、制御点変更部10は、各nについて得る2つの変更後のストロークデータA(n)s,A(n+1)fの制御点数が互いに等しくなるように処理を行えばよく、必ずしも、図4及び図5に示したように制御点数を最小公倍数LCMとする必要はない。
 例えば、図5は、図4に示した制御点変更処理の変形例による説明図である。同図には、ストロークデータA(n)の制御点の個数PN(n)と、ストロークデータA(n+1)の制御点の個数PN(n+1)とのうちの少ない方に、ストロークデータA(n)s,A(n+1)fの制御点数を合わせる例を示している。より具体的に言えば、個数PN(n)が4、個数PN(n+1)が3であるので、ストロークデータA(n)s,A(n+1)fの制御点数はそれぞれ3としている。この場合、ストロークデータA(n+1)fは、ストロークデータA(n+1)と同一のデータとなる。一方、ストロークデータA(n)sは、ストロークデータA(n)から制御点を1つ取り除いたものとなる。これにより、ストロークデータA(n)sを描画した場合の結果がストロークデータA(n)のそれとは異なるものになることが予想されるが、後述するように、ストロークデータA(n)sは中間データの生成に使われるのみで、アニメーション動画の描画にはストロークデータA(n)が用いられるので、制御点の除去は、アニメーション動画の描画結果に必ずしも深刻な影響を与えるものではない。
 図3に戻り、中間データ生成部11は、複数の制御点のそれぞれを移動させることによって、ストロークデータを移動させてなる中間データを生成する機能部である。より具体的には、M個の制御点PA(n)s[m](第1の制御点)を含むストロークデータA(n)s(第1のストロークデータ)と、M個の制御点PA(n+1)s[m](第2の制御点)を含むストロークデータA(n+1)f(第2のストロークデータ)とを受け付け、M個の制御点PA(n)s[m]のそれぞれについて、該制御点PA(n)s[m]と、該制御点PA(n)s[m]に対応する制御点PA(n+1)s[m]との内挿によって制御点PBn,n+1(k)[m]を生成することによって、M個の制御点PA(n)s[m]と制御点と一対一に対応するM個の制御点PBn,n+1(k)[m](第3の制御点)を含むストロークデータである中間データBn,n+1(k)を生成するよう構成される。以下、図7を参照しながら、中間データ生成部11が行う処理について詳しく説明する。
 図7は、中間データ生成部11が実行する中間データ生成処理の処理フローを示すフロー図である。同図に示すように、中間データ生成部11は、変数n,k,mのそれぞれについて、ループ処理を行う。具体的には、ステップS11~S17の処理を1~N-1の変数nに対して繰り返し実行し(ステップS10)、各nについて、ステップS12~S17の処理を1~Kの変数kに対して繰り返し実行し(ステップS11)、各kについて、ステップS15~S17の処理を1~Mの変数mに対して繰り返し実行する(ステップS14)よう構成される。
 ステップS12,S13の処理はストロークデータの全体に関する処理であり、中間データ生成部11は、ストロークデータA(n)s,A(n+1)fに対応して生成されるK個の中間データBn,n+1(k)のそれぞれについて、ステップS12,S13の処理を実行する。具体的には、ストロークデータA(n),A(n+1)の線色を示す線色情報(第1及び第2の線色情報)の内挿によって中間データBn,n+1(k)の線色を示す線色情報(第3の線色情報)を算出し(ステップS12)、ストロークデータA(n),A(n+1)の塗りつぶし色を示す塗りつぶし色情報(第1及び第2の塗りつぶし色情報)の内挿によって中間データBn,n+1(k)の塗りつぶし色を示す塗りつぶし色情報(第3の塗りつぶし色情報)を算出する(ステップS13)。なお、「内挿」の詳細については、後述する。
 ここで、中間データ生成部11がステップS13を実行するのは、ストロークデータA(n),A(n+1)のそれぞれが閉曲線を構成している場合のみである。この場合、ストロークデータA(n),A(n+1)はそれぞれ上述した塗りつぶし色を示す情報(第1及び第2の塗りつぶし色情報)を含み、中間データ生成部11は、この情報に基づいて、各中間データBn,n+1(k)の塗りつぶし色を算出する。
 ステップS15~S17の処理は制御点ごとの処理であり、中間データ生成部11は、中間データBn,n+1(k)のM個の制御点PBn,n+1(k)[m]のそれぞれについて、ステップS15~S17の処理を実行する。具体的には、制御点PA(n)s[m],PA(n+1)f[m]のX座標の内挿によって制御点PBn,n+1(k)[m]のX座標を算出し(ステップS15)、制御点PA(n)s[m],PA(n+1)f[m]のY座標の内挿によって制御点PBn,n+1(k)[m]のY座標を算出し(ステップS16)、制御点PA(n)s[m],PA(n+1)f[m]の線幅を示す線幅情報の内挿によって制御点PBn,n+1(k)[m]の線幅を示す線幅情報を算出する(ステップS17)。
 図8は、ステップS12,S13,S15~S17で使用する「内挿」処理の説明図である。同図は制御点ごとの処理(ステップS15~S17)の原理を示すもので、同図に示すように、例えばk番目の中間データBn,n+1(k)のm番目の制御点PBn,n+1(k)[m]は、ストロークデータA(n)sのm番目の制御点PA(n)s[m]と、ストロークデータA(n+1)fのm番目の制御点PA(n+1)f[m]とを、k/(K+1):1-k/(K+1)で内挿することによって算出される。これを数式で書くと、次の式(1)~(3)のように表される。ただし、X1,Y1,W1はそれぞれ制御点PA(n)s[m]のX座標、Y座標、線幅情報であり、X2,Y2,W2はそれぞれ制御点PA(n+1)f[m]のX座標、Y座標、線幅情報であり、X3,Y3,W3はそれぞれ制御点PBn,n+1(k)[m]のX座標、Y座標、線幅情報である。
Figure JPOXMLDOC01-appb-M000001
 ステップS12,S13で行う内挿処理も、考え方は式(1)~(3)と同じである。ただし、この場合には制御点ごとではなく、ストロークデータごとの処理となる。具体的には、次の式(4)(5)を用いて、線色情報及び塗りつぶし色情報が算出される。式(4)(5)において、LC1,FC1はそれぞれストロークデータA(n)sの線色情報及び塗りつぶし色情報であり、LC2,FC2はそれぞれストロークデータA(n+1)fの線色情報及び塗りつぶし色情報であり、LC3,FC3はそれぞれ中間データBn,n+1(k)の線色情報及び塗りつぶし色情報である。
Figure JPOXMLDOC01-appb-M000002
 図3に戻り、描画処理部12は、上述したキーフレームに含まれる複数のストロークデータA(1)~A(N)と、それらに基づいて生成された各中間データとを順次描画する機能部である。以下、図9を参照しながら、描画処理部12が行う処理について詳しく説明する。
 図9は、描画処理部12が実行する描画処理の処理フローを示すフロー図である。同図に示すように、描画処理部12は、変数n,kのそれぞれについて、ループ処理を行う。具体的には、ステップS21~S28の処理を1~Nの変数nに対して繰り返し実行し(ステップS20)、各nについて、ステップS26~S28の処理を1~Kの変数kに対して繰り返し実行する(ステップS11)よう構成される。
 ステップS21~S24の処理は、キーフレームに含まれるストロークデータA(n)の描画に関する処理である。具体的に説明すると、描画処理部12は、まずストロークデータA(n)の描画を実行する(ステップS21)。この描画において描画処理部12は、上述したように、所定の補間曲線による一連の制御点PA(n)[m]の補間を行う。また、描画する曲線の線色、線幅、塗りつぶし色は、ストロークデータA(n)に付加されているメタデータからそれぞれ線色情報、線幅情報、塗りつぶし色情報を読み込むことによって決定する。
 ステップS21で描画を実行した後、描画処理部12は、変数nがNに等しいか否かを判定し、等しければ、描画処理を終了する。終了後の画面上には、ストロークデータA(N)が描画された状態が残される。一方、等しくなければ、所定時間が経過するのを待って(ステップS23)、描画したストロークデータA(n)を画面上から消去する(ステップS24)。
 ストロークデータA(n)を画面上から消去した描画処理部12は、続いて、ストロークデータA(n),A(n+1)に基づいて生成されたK個の中間データBn,n+1(k)の描画を順次行う(ステップS25)。この描画処理は、具体的には、中間データBn,n+1(k)を描画する処理(ステップS26)と、描画してから所定時間が経過するのを待機する処理(ステップS27)と、所定時間が経過した場合に、描画した中間データBn,n+1(k)を画面上から消去する処理(ステップS28)とから構成される。
 ステップS26で行われる中間データBn,n+1(k)の描画処理の内容は、ステップS21で行われるストロークデータA(n)の描画処理と基本的に同様である。具体的に説明すると、描画処理部12は、所定の補間曲線によって、一連の制御点PBn,n+1(k)[m]の補間を行う。また、描画する曲線の線色情報としては、図7のステップS12において、中間データBn,n+1(k)について決定した線色情報を使用する。また、描画する曲線の線幅情報としては、図7のステップS17において、M個の制御点PBn,n+1(k)[m]のそれぞれについて決定した線幅情報を使用する。さらに、図7のステップS13において塗りつぶし色情報を算出していた場合には、算出した塗りつぶし色情報に基づき、中間データBn,n+1(k)によって構成される閉曲線の内側に相当する領域の塗りつぶしを行う。
 図10は、図9に示した描画処理によって描かれたストロークデータの一例を示す図である。同図において曲線上に示す白丸はストロークデータの制御点を表すもので、この点は後述する図11、図12、図15でも同様である。なお、制御点の表示はオンオフが可能である。以下の説明では描画処理の説明上、制御点を表示させて説明するが、本発明はこれに限定されず、制御点を非表示としてもよい。図10には、キーフレームとしてのストロークデータA(1),A(2)と、これらに基づいて生成される3個の中間データB1,2(1)~B1,2(3)とを図示している。また、同図に示すストロークデータA(1),A(2)には筆圧情報が付加されておらず、したがって、曲線の線幅はデフォルトの一定値となっている。ここで、キーフレームとしてのストロークデータA(1)、A(2)は予め描画(レンダリング)されてメモリ内に記憶されている。一方、中間データB1,2(1)~B1,2(3)は、キーフレームの制御点を移動させる度にリアルタイムに描画(レンダリング)されるため、全体のフレーム数は変化しない(以下も同様)。
 図10に示すように、各中間データB1,2(1)~B1,2(3)の形状は、ストロークデータA(1)が徐々に変化して最終的にストロークデータA(2)となるまでの間を表すような形状となる。描画処理部12は、ストロークデータA(1)の各制御点を対応するストロークデータA(2)の制御点に向けて移動させ、その移動ごとにレンダリングすることでユーザは、ストロークデータA(1)が徐々に変化して中間データB1,2(1)~B1,2(3)を経由し、最終的にストロークデータA(2)となるというアニメーション動画を見ることになる。
 図11は、図9に示した描画処理によって描かれたストロークデータの他の一例を示す図である。同図と図10の違いは、ストロークデータA(2)に筆圧情報が付加されている点である。この筆圧情報に応じて線幅情報が決定された結果、同図に示すように、ストロークデータA(2)の線幅は一定値ではなくなり、ストロークデータA(1)の線幅(デフォルトの一定値)に比べて太い部分が現れている。
 この太い部分に関して、各中間データB1,2(1)~B1,2(3)の線幅は、図11に示すように、ストロークデータA(1)の線幅から徐々に変化して最終的にストロークデータA(2)の線幅となる。したがって、描画処理部12がストロークデータA(1)、中間データB1,2(1)~B1,2(3)、ストロークデータA(2)を図11に矢印で示した順で描画することにより、ユーザは、ストロークデータA(1)の線幅から徐々に変化して最終的にストロークデータA(2)の線幅となるというアニメーション動画を見ることになる。
 図12は、図9に示した描画処理によって描かれたストロークデータのさらに他の一例を示す図である。同図と図12の違いは、ストロークデータA(1),A(2)がともに閉曲線を構成しており、それぞれに塗りつぶし色が割り当てられている点である。なお、ストロークデータA(1),A(2)それぞれの塗りつぶし色は、同じ色としている。同図に示すように、ストロークデータA(1),A(2)が閉曲線である場合には、各中間データB1,2(1)~B1,2(3)も閉曲線となる。また、各中間データB1,2(1)~B1,2(3)の内側の領域は、図7のステップS13で算出された塗りつぶし色情報に基づき、ストロークデータA(1),A(2)と同様に塗りつぶされることになる。
 以上説明したように、本実施の形態によるコンピュータ1では、ストロークデータの各制御点を移動させる(例えば、内挿により中間データの制御点を求める)ことによって、ストロークデータを移動させてなる中間データ(中間データBn,n+1(k)など)を生成している。このような中間データの生成は、補間処理により中間フレームを追加する場合に比べて低い処理負荷で実行できるので、本実施の形態によるコンピュータ1によれば、アニメーション動画をより効果的に生成することが可能になる。具体的には、メモリ使用量が大きくなるという問題や、中間フレームの生成処理が終了するまでアニメーション動画を見ることができないという問題が解決される。
 また、本実施の形態によるコンピュータ1によれば、制御点数を揃えた一時的なストロークデータ(ストロークデータA(n)s,A(n+1)fなど)を生成し、それらに基づいて中間データを生成しているので、キーフレームであるストロークデータ(ストロークデータA(n)など)の制御点数によらず、アニメーション動画を生成することが可能になる。
 図13は、本実施の形態による描画方法の応用例を示す図である。本応用例では、それぞれ複数のストロークデータを含む2枚のキーフレームG(1),G(2)が予め用意され、コンピュータ1により、キーフレームG(1)からキーフレームG(2)への遷移を表すアニメーション動画が自動的に生成される。以下、具体的に説明する。
 コンピュータ1は、キーフレームG(1),G(2)の入力を受け付けると、キーフレームG(1)に含まれる複数のストロークデータのそれぞれに、キーフレームG(2)内の複数のストロークデータのいずれかを対応付ける。この対応付けは、コンピュータ1の自動処理により行うこととしてもよいし、ユーザが手動で行うこととしてもよい。例えば、ストロークを描いた順番で各ストロークを対応付けてもよいし、G(1)のr番目に描いたストロークとG(2)のs(sはrとは異なる正の整数)番目に描いたストロークとを入力装置から選択可能に構成してもよい。キーフレームG(1)とキーフレームG(2)とでストロークデータの個数が異なる場合やストロークを描いた順番とは異なる順番に対応付けをしたい場合などには、コンピュータ1は、ユーザによる対応付けの指定を受け付けることが好ましい。これに関して、例えば、一方のキーフレームでは1つのストロークデータにより構成されている線が他方のキーフレームでは2つ以上のストロークデータに分割されているという場合があるが、そのような場合には、原則として時系列的に先に生成されたストロークデータを対応付けの対象とすることが好ましい。図13では、説明の都合上、例示的に、キーフレームG(1)で1番目に描いたストロークとキーフレームG(2)で1番目に描いたストロークとを対応付け、中間データI(1)、I(2)のように制御点を移動させ、その移動ごとにレンダリングすることで各ストロークを表示させている。
 コンピュータ1は、対応付けたストロークデータの組ごとに、図3に示した制御点変更部10、中間データ生成部11、及び描画処理部12による処理を行う。このうち中間データ生成部11による処理の結果、それぞれ複数の中間データが生成される。図13には、こうして生成された中間データの例として、2枚の中間データI(1),I(2)を示している。そして描画処理部12によって、キーフレームG(1)、中間データI(1),I(2)、キーフレームG(2)の順で、それぞれの中に含まれるストロークデータ(中間データを含む)が描画される。こうして、コンピュータ1により、それぞれ複数のストロークデータを含む2枚のキーフレームに基づくアニメーション動画が生成される。
 図13の例では、複数のストロークデータによって横を向いた人物が描かれたキーフレームG(1)から、その人物が正面に向き直った状態を示すキーフレームG(2)まで、人物が向き直る様子を自然に表現したアニメーション動画が自動的に生成されている。このように、本実施の形態によるコンピュータ1によれば、3枚のキーフレームの間の中間データを自動的に生成し、自然なアニメーション動画を得ることが可能になる。なお、画像G(2)では人物の右目が表現されているが、画像G(1)においては、この右目のスクロートは頬のストロークと重なった状態で描かれている。これにより、元の画像G(1)では見えなかった右目が次第に現れて見えるようなアニメーション動画を生成することが可能となっている。
 図14は、本発明の第2の実施の形態によるコンピュータ1がディスプレイ2上に表示する画面の一例を示す図である。本実施の形態によるコンピュータ1は、1つのストロークデータからでもアニメーション動画を生成可能である点で、第1の実施の形態によるコンピュータ1と相違する。その他の点では、第1の実施の形態によるコンピュータ1と同様であるので、以下では、第1の実施の形態と同一の構成には同一の符号を付して説明を省略し、第1の実施の形態との相違点に着目して説明を行う。なお、本実施の形態では1つのストロークデータを用いて説明するが、本発明はこれに限定されず、複数のストロークデータに対しても同様にしてアニメーション動画の生成が可能である。
 図14は、図2にも示した描画アプリの画面を示している。同図に示すように、本実施の形態による描画アプリの画面には、ストロークデータの動きの内容を指定するための動き種別指定ボタンB1~B4が表示される。動き種別指定ボタンB1~B4それぞれの表面には、動きの内容を示す絵が描かれている。なお、ここでは4つの動き種別指定ボタンB1~B4を例示しているが、動き種別指定ボタンの数は1つ以上であればよい。また、各動き種別指定ボタンに割り当てる動きの内容も、図示したものに限られない。
 図14のウインドウW1内には、一例としてのストロークデータAと、このストロークデータAが表示されている状態でユーザが動き種別指定ボタンB1を押下した場合のストロークデータAの動きとを示している。同図に示すように、コンピュータ1は、ユーザが動き種別指定ボタンB1を押下したことに応じて、図示した矢印Cの方向(画面内の上下方向)に沿って上下方向にストロークデータAの制御点を移動させ、その移動ごとにレンダリングをすることでストロークデータのアニメーション動画を生成し、描画する。以下、これを実現するためのコンピュータ1の動作について、図15を参照しながら詳しく説明する。
 図15は、本実施の形態によるコンピュータ1の機能ブロックを示す略ブロック図である。同図に示すように、本実施の形態によるコンピュータ1は機能的に、キーフレーム生成部13aを有して構成される。なお、同図には示していないが、本実施の形態によるコンピュータ1は、第1の実施の形態で説明した制御点変更部10、中間データ生成部11、及び描画処理部12(図3参照)も有している。
 キーフレーム生成部13aは、動き種別指定ボタンが押下された時点でアクティブとなっているウインドウ内に描かれているストロークデータAを取得し、このストロークデータAと、動き種別指定ボタンによって指定される動きの内容とに基づき、ストロークデータA内の各制御点の移動先を示す複数のストロークデータA(1)~A(N)(変化情報)を生成する機能部である。生成されたストロークデータA(1)~A(N)は、それぞれ上述したキーフレームとして、図3に示した制御点変更部10に供給される。その結果として、図3に示した描画処理部12により、アニメーション動画が描画されることになる。
 図14には、キーフレーム生成部13aが生成するストロークデータA(1)~A(N)の例を示している。この例ではN=5であり、ストロークデータA(1)はストロークデータAそのものとし、ストロークデータA(2)はストロークデータAを上方向に所定距離だけ平行移動してなるデータとし、ストロークデータA(3)はストロークデータAそのものとし、ストロークデータA(4)はストロークデータAを下方向に所定距離だけ平行移動してなるデータとし、ストロークデータA(5)はストロークデータAとしている。
 このようにしてキーフレーム生成部13aがストロークデータA(1)~A(5)を生成することにより、描画処理部12により描画されるアニメーション動画は、ストロークデータAが初めに上方向に平行移動し、次いで元の位置に戻り、さらに下方向に平行移動し、また元の位置に戻る、というものになる。すなわち、ストロークデータAが上下に移動するという内容のアニメーション動画が、ストロークデータの制御点の移動と、その移動ごとのレンダリングにより描画されることになる。
 同様に、ボタンB2を押すと回転運動、ボタンB3を押すと曲線運動、ボタンB4を押すとジグザグ運動など、予め定められた制御点の移動方法をボタンで指定することができる。運動の種類はこれらの例に限られず、様々な運動が含まれる。また、本実施の形態では、ボタンの表示は運動を概念的に表したものとしたが、これに限られず、画像やアイコンなどの表示を用いてもよい。
 以上説明したように、本実施の形態によるコンピュータ1によれば、キーフレーム生成部13aが、ユーザによって特定された1つのストロークデータに基づいて、図3に示した制御点変更部10に供給する複数のストロークデータ(キーフレーム)を生成するので、第1の実施の形態で説明したコンピュータ1の機能(すなわち、ストロークデータの各制御点を移動させて、その移動ごとにレンダリングすることによって、ストロークデータを移動させてなる中間データを生成する機能)を利用して、1つのストロークデータがユーザの指定に応じた動きをするという内容のアニメーション動画を生成することが可能になる。
 なお、動き種別指定ボタンによって指定される動きの内容としては、図14に例示したような移動や回転だけでなく、線色、線幅、塗りつぶし色の変化や、形状の変化を指定できることとしてもよい。例えば、線幅の変化を動きの内容として指定する場合であれば、キーフレーム生成部13aによって生成される複数のストロークデータA(1)~A(N)は、線幅の変化を示す線幅情報として機能することになる。
 図16は、本発明の第3の実施の形態によるコンピュータ1及び脳波測定器7を示す図である。本実施の形態によるコンピュータ1は、動き種別指定ボタンではなく脳波測定器7によって取得される脳波情報に基づいてストロークデータの制御点を移動させ、その移動ごとのレンダリング処理によりアニメーション動画を生成する点で、第2の実施の形態によるコンピュータ1と相違する。その他の点では、第2の実施の形態によるコンピュータ1と同様であるので、以下では、第2の実施の形態と同一の構成には同一の符号を付して説明を省略し、第2の実施の形態との相違点に着目して説明を行う。
 脳波測定器7は、例えばユーザの頭部に設置して用いるもので、ユーザの脳波を測定可能に構成される。本実施の形態によるコンピュータ1には、脳波測定器7によって測定された脳波を示す脳波情報が供給される。
 図16は、本実施の形態によるコンピュータ1の機能ブロックを示す略ブロック図である。同図に示すように、本実施の形態によるコンピュータ1は機能的に、キーフレーム生成部13bを有して構成される。なお、同図には示していないが、本実施の形態によるコンピュータ1も、第1の実施の形態で説明した制御点変更部10、中間データ生成部11、及び描画処理部12(図3参照)を有している。
 キーフレーム生成部13bは、脳波測定器7から供給される脳波情報に基づいてストロークデータの動きの内容を決定し、予めユーザによって指定されたウインドウ内に描かれているストロークデータAと、決定した動きの内容とに基づき、ストロークデータA内の各制御点の変化内容を示す複数のストロークデータA(1)~A(N)(変化情報)を生成する機能部である。生成されたストロークデータA(1)~A(N)は、それぞれ上述したキーフレームとして、図3に示した制御点変更部10に供給される。その結果として、図3に示した描画処理部12により、アニメーション動画が描画されることになる。
 キーフレーム生成部13bは、脳波情報に基づいてストロークデータの動きの内容を決定するにあたり、まず脳波情報から、ユーザの感情を示すエモーション情報を取得する。そして、エモーション情報により示されるユーザの感情に応じて、ストロークデータの動きの内容を決定する。例えば、ユーザが喜んでいる場合には飛び跳ねるような動き、ユーザが落ち込んでいる場合には両端の位置が下がるような動きとすることが考えられる。より具体的な処理としては、キーフレーム生成部13bは、エモーション情報とストロークデータの動きの内容とを予め対応付けて記憶しておき、この記憶内容に基づいて、エモーション情報からストロークデータの動きの内容を決定することとすればよい。
 なお、キーフレーム生成部13bは、ストロークデータの位置の変化(すなわち、X座標及びY座標の少なくとも一方の変化)だけでなく、ストロークデータの線色、線幅、塗りつぶし色などの付加的な情報の変化についても、動きの内容の一部又は全部として決定することとしてもよい。例えば、ユーザが喜んでいる場合には、暖色系の色へ変化するように線色及び塗りつぶし色の変化を決定してもよく、ユーザが落ち込んでいる場合には、寒色系の色へ変化するように線色及び塗りつぶし色の変化を決定してもよい。
 このようにしてキーフレーム生成部13bがストロークデータAの動きの内容を決定し、決定した内容に基づいてストロークデータA(1)~A(5)を生成することにより、その時点でのユーザの感情をストロークデータAの動きによって表現することが可能になる。
 以上説明したように、本実施の形態によるコンピュータ1によれば、キーフレーム生成部13bが、脳波情報に基づいてストロークデータの動きの内容を決定し、決定した内容に基づいて、図3に示した制御点変更部10に供給する複数のストロークデータ(キーフレーム)を生成しているので、第1の実施の形態で説明したコンピュータ1の機能(すなわち、ストロークデータの各制御点を移動させて、その移動ごとにレンダリングすることによって、ストロークデータを変化させてなる中間データを生成する機能)を利用して、ユーザの感情をストロークデータの動きによって表現することが可能になる。
 なお、本実施の形態では脳波測定器7を用いたが、例えば、電子ペンで文字等を書いているときの脳波データとデジタルインクデータとを関連付けて予め記憶し、電子ペンのデジタルインクデータから脳波データを取得することによりエモーション情報を取得してもよい。また、エモーション情報は、脳波だけでなく、他の生体情報から取得してもよい。例えば、脈拍、心拍、血圧、歩数、空間センシングなどの生体情報からエモーション情報を検出可能な各種の装置を、脳波測定器7に代え、又は、脳波測定器7とともに用いることが可能である。
 図18は、本発明の第4の実施の形態によるコンピュータ1の機能ブロックを示す略ブロック図である。本実施の形態によるコンピュータ1は、ユーザの筆跡からユーザの性格を示すパーソナリティ情報を取得し、取得したパーソナリティ情報に基づいてストロークデータの制御点を移動させ、その移動ごとのレンダリング処理によりアニメーション動画を生成する点で、第3の実施の形態によるコンピュータ1と相違する。その他の点では、第3の実施の形態によるコンピュータ1と同様であるので、以下では、第3の実施の形態と同一の構成には同一の符号を付して説明を省略し、第3の実施の形態との相違点に着目して説明を行う。
 図18に示すように、本実施の形態によるコンピュータ1は機能的に、筆跡情報取得部14と、キーフレーム生成部13cとを有して構成される。なお、同図には示していないが、本実施の形態によるコンピュータ1も、第1の実施の形態で説明した制御点変更部10、中間データ生成部11、及び描画処理部12(図3参照)を有している。
 筆跡情報取得部14は、ユーザによって筆記された1以上の文字を示す筆跡情報を取得する機能部である。具体的に説明すると、筆跡情報取得部14は、ユーザが例えば電子ペン6(図1参照)を用いて入力した1以上のストロークデータからなるストロークデータ群SGを取得し、このストロークデータ群SGに対して所定の認識処理を施すことによって筆跡情報を取得することとしてもよいし、紙面等に書かれた文字をスキャナー(図示せず)でスキャンすることによって得られる画像データPICを取得し、この画像データPICに対して所定の認識処理を施すことによって筆跡情報を取得することとしてもよい。なお、図18に破線矢印で示したように、ユーザの指定によって動きの対象とされるストロークデータA(キーフレーム生成部13cに供給されるもの)を、ストロークデータ群SGを構成する1以上のストロークデータの全部又は一部として使用することとしてもよい。
 ストロークデータ群SGから取得される筆跡情報は、文字ごとに、該文字を構成する1以上のストロークデータの組み合わせを含んで構成される。ここで、個々のストロークデータには、上述したように、一連の制御点と、メタデータとが含まれる。各メタデータは、制御点に関連付けて記憶される。メタデータには、上述した筆圧情報、線幅情報、色彩情報、塗りつぶし色情報などが含まれる他、濃淡情報、日付・時刻を示すタイムスタンプ情報、電子ペン6の入力面に対する角度を示すチルト情報、電子ペン6の入力面の法線の周りの回転角を示すローテーション情報、筆記速度を示すスピード情報などが含まれ得る。これらのメタデータのうちストロークデータ群SGを構成するストロークデータに含まれていたものは、筆跡情報にも継承される。
 キーフレーム生成部13cは、筆跡情報取得部14が取得した筆跡情報に基づいてストロークデータの動きの内容を決定し、予めユーザによって指定されたウインドウ内に描かれているストロークデータAと、決定した動きの内容とに基づき、ストロークデータA内の各制御点の移動先を示す複数のストロークデータA(1)~A(N)(変化情報)を生成する機能部である。生成されたストロークデータA(1)~A(N)は、それぞれ上述したキーフレームとして、図3に示した制御点変更部10に供給される。その結果として、図3に示した描画処理部12により、アニメーション動画が描画されることになる。
 キーフレーム生成部13cは、筆跡情報に基づいてストロークデータの動きの内容を決定するにあたり、まず筆跡情報から、ユーザの性格を示すパーソナリティ情報を取得するよう構成される。以下、この点について、図19を参照しながら具体的に説明する。
 図19は、筆跡情報取得部14によって取得される筆跡情報によって示される個々の文字の具体的な例を示す図である。図19(a)(b)(c)に示している文字はそれぞれ、漢字の「口」「子」「様」であり、図示した特徴E1~E4がユーザの性格を読み取ることのできる筆跡の特徴を示している。具体的に説明すると、特徴E1は「転折角型」と呼ばれるもので、「きちょうめん」「ルール通り動く」というユーザの性格を示している。特徴E2は「下開型」と呼ばれるもので、「融通がきく」「思いやりがある」「妥協性に富む」というユーザの性格を示している。特徴E3は「はね弱型」と呼ばれるもので、「軽快で手早いが無責任傾向」というユーザの性格を示している。特徴E4は「起筆ズレ型」と呼ばれるもので、「感覚派、趣味嗜好にこだわるほう」というユーザの性格を示している。
 このように、筆跡情報によれば、ユーザの性格を様々に読み取ることが可能になる。上述した非特許文献1には、この点に関する具体的な例が多数開示されている。キーフレーム生成部13cは、このような筆跡情報の性質を利用して筆跡情報を分析することにより、ユーザの性格を示すパーソナリティ情報を取得するよう構成される。
 ここで、筆跡情報がストロークデータ群SGから取得されたものである場合、キーフレーム生成部13cは、個々の制御点に関連付けられたメタデータに基づいて、パーソナリティ情報を取得し得る。一例を挙げると、非特許文献1に記載されている「起筆ひねり型」「起筆すなお型」という筆跡特徴は、非特許文献1の5ページに記載されているように、起筆部のひねりの有無という形状面に筆圧の強弱を加味したものとなっている。非特許文献1では紙上に書かれた線の太細から筆圧の強弱を読み取っているが、本実施の形態によるコンピュータ1によれば、メタデータ内の筆圧情報を用いることで、直接測定されたデータとしての筆圧を得ることができるので、筆跡の特徴をより精緻に判定することが可能になる。
 パーソナリティ情報を取得したキーフレーム生成部13cは、パーソナリティ情報により示されるユーザの性格に応じて、ストロークデータの動きの内容を決定する。より具体的な処理としては、キーフレーム生成部13cは、第3の実施の形態で説明したキーフレーム生成部13bと同様に、パーソナリティ情報とストロークデータの動きの内容とを予め対応付けて記憶しておき、この記憶内容に基づいて、パーソナリティ情報からストロークデータの動きの内容を決定することとすればよい。
 なお、第3の実施の形態で説明した、ストロークデータの位置の変化(すなわち、X座標及びY座標の少なくとも一方の変化)だけでなく、ストロークデータを構成する制御点に関連付けられた線色、線幅、塗りつぶし色などのメタデータの変化についても制御点の動きの内容の一部又は全部として決定することとしてもよいという点は、キーフレーム生成部13cでも同様である。
 以上のようにしてキーフレーム生成部13cがストロークデータAの動きの内容を決定し、決定した内容に基づいてストロークデータA(1)~A(5)を生成することにより、その時点でのユーザの性格をストロークデータAの動きによって表現することが可能になる。
 以上説明したように、本実施の形態によるコンピュータ1によれば、キーフレーム生成部13cが、筆跡情報取得部14によって取得される筆跡情報に基づいてストロークデータの動きの内容を決定し、決定した内容に基づいて、図3に示した制御点変更部10に供給する複数のストロークデータ(キーフレーム)を生成しているので、第1の実施の形態で説明したコンピュータ1の機能(すなわち、ストロークデータの各制御点を移動させて、その移動ごとにレンダリングすることによって、ストロークデータを変化させてなる中間データを生成する機能)を利用して、ユーザの性格をストロークデータの動きによって表現することが可能になる。
 以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
 例えば、上記各実施の形態では、各制御点のX座標、Y座標、及び線幅、各ストロークデータの線色及び塗りつぶし色のそれぞれを内挿することによって中間データを生成することとしたが、これら以外のパラメータについても内挿の対象としてもよい。例えば、キーフレームであるストロークデータが3次元空間内に描かれるもの(すなわち、3Dデータ)である場合には、各制御点のZ座標も内挿の対象とすることが好ましい。その場合、ストロークデータを構成する制御点の各座標(X座標、Y座標、及びZ座標)をそれぞれ移動させることになる。
 また、上述した式(1)~(5)は直線に沿った内挿を前提とするものであるが、所定の曲線に沿った内挿により、中間データを生成することとしてもよい。
 また、第3の実施の形態では、キーフレーム生成部13bはユーザの感情に応じてストロークデータの動きの内容を決定するとし、第4の実施の形態では、キーフレーム生成部13cはユーザの性格に応じてストロークデータの動きの内容を決定するとしたが、これらを結合し、ユーザの感情及び性格の少なくとも一方を含むユーザの特徴に応じてストロークデータの動きの内容を決定することとしてもよい。こうすることによって、よりユーザの意思に近いストロークデータの動きを実現することが可能になる。
1         コンピュータ
2         ディスプレイ
3         キーボード
4         マウスパッド
5         デジタイザ
6         電子ペン
7         脳波測定器
10        制御点変更部
11        中間データ生成部
12        描画処理部
13a~13c   キーフレーム生成部
14        筆跡情報取得部
A(n)      ストロークデータ
B1~B4     動き種別指定ボタン
n,n+1(k) 中間データ
E1~E4     筆跡の特徴
P1~P12    制御点
P2a,P2b   制御ハンドル
PIC       画像データ
PX[m]     ストロークデータXの制御点
SG        ストロークデータ群
W1,W2     ウインドウ

Claims (16)

  1.  複数の制御点を含むストロークデータを描画する描画装置であって、
     前記複数の制御点のそれぞれを移動させることによって、前記ストロークデータを移動させてなる中間データを生成する中間データ生成部と、
     少なくとも生成した前記中間データを表示部に順次描画させる描画処理部と
     を備える描画装置。
  2.  前記複数の制御点はそれぞれ前記表示部上の座標を含み、
     前記中間データ生成部は、所与の変化情報にしたがって前記複数の制御点それぞれを変化させることによって、前記中間データを生成する
     請求項1に記載の描画装置。
  3.  ユーザの感情及び性格の少なくとも一方を含むユーザの特徴に応じてストロークデータの動きの内容を決定し、決定した動きの内容と、前記ストロークデータとに基づいて前記変化情報を生成するキーフレーム生成部をさらに備え、
     前記中間データ生成部は、前記キーフレーム生成部により生成された前記変化情報にしたがって前記複数の制御点それぞれを変化させることによって、前記中間データを生成する
     請求項2に記載の描画装置。
  4.  前記キーフレーム生成部は、測定されたユーザの生体情報に基づいてユーザの感情を示すエモーション情報を取得し、取得した該エモーション情報により示されるユーザの感情に応じて、ストロークデータの動きの内容を決定する
     請求項3に記載の描画装置。
  5.  ユーザによって筆記された1以上の文字を示す筆跡情報を取得する筆跡情報取得部をさらに備え、
     前記キーフレーム生成部は、前記筆跡情報取得部によって取得された筆跡情報に基づいてユーザの性格を示すパーソナリティ情報を取得し、取得した該パーソナリティ情報により示されるユーザの性格に応じて、ストロークデータの動きの内容を決定する
     請求項3又は4に記載の描画装置。
  6.  前記筆跡情報取得部は、1以上のストロークデータからなるストロークデータ群に対して所定の認識処理を施すことによって筆跡情報を取得するよう構成され、
     前記筆跡情報は、前記1以上のストロークデータのそれぞれに含まれていたメタデータを含み、
     前記キーフレーム生成部は、前記筆跡情報に含まれる前記メタデータにも基づいて、前記パーソナリティ情報を取得する
     請求項5に記載の描画装置。
  7.  前記複数の制御点はそれぞれ線幅を示す線幅情報を含み、
     前記中間データ生成部は、予め定められた線幅情報にしたがって前記複数の制御点それぞれの線幅情報を変更することによって、前記中間データを生成する
     請求項1乃至6のいずれか一項に記載の描画装置。
  8.  複数の制御点を含むストロークデータを描画する描画装置であって、
     複数の第1の制御点を含む第1のストロークデータと、前記複数の第1の制御点に対応付けられた複数の第2の制御点を含む第2のストロークデータとを受け付け、前記複数の第1の制御点のそれぞれについて、該第1の制御点と、該第1の制御点に対応する前記第2の制御点との内挿によって第3の制御点を生成することによって、それぞれ前記複数の第1の制御点に対応付けられた複数の前記第3の制御点を含むストロークデータである1以上の中間データを生成する中間データ生成部と、
     少なくとも前記1以上の中間データを順次描画する描画処理部と
     を備える描画装置。
  9.  前記第1及び第2のストロークデータはそれぞれ塗りつぶし色を示す第1及び第2の塗りつぶし色情報を含み、
     前記中間データ生成部は、前記第1及び第2の塗りつぶし色情報の内挿によって、前記中間データの塗りつぶし色を示す第3の塗りつぶし色情報を生成する
     請求項8に記載の描画装置。
  10.  前記複数の第1の制御点、前記複数の第2の制御点、及び前記複数の第3の制御点はそれぞれX座標及びY座標を含み、
     前記中間データ生成部は、前記複数の第1の制御点のそれぞれについて、該第1の制御点のX座標と、該第1の制御点に対応する前記第2の制御点のX座標との内挿によって、該第1の制御点に対応する第3の制御点のX座標を生成し、該第1の制御点のY座標と、該第1の制御点に対応する前記第2の制御点のY座標との内挿によって、該第1の制御点に対応する第3の制御点のY座標を生成する
     請求項8又は9に記載の描画装置。
  11.  前記複数の第1の制御点、前記複数の第2の制御点、及び前記複数の第3の制御点はそれぞれ線幅を示す線幅情報を含み、
     前記中間データ生成部は、前記複数の第1の制御点のそれぞれについて、該第1の制御点の線幅情報と、該第1の制御点に対応する前記第2の制御点の線幅情報との内挿によって、該第1の制御点に対応する第3の制御点の線幅情報を生成する
     請求項8乃至10のいずれか一項に記載の描画装置。
  12.  複数の第4の制御点を含む第4のストロークデータと、複数の第5の制御点を含む第5のストロークデータとを受け付け、前記複数の第4の制御点の個数と、前記複数の第5の制御点の個数とに基づいて前記第1及び第2のストロークデータを生成する制御点変更部をさらに備え、
     前記描画処理部は、前記第4のストロークデータ、前記中間データ、及び前記第5のストロークデータを順次描画する
     請求項8乃至11のいずれか一項に記載の描画装置。
  13.  前記制御点変更部は、前記複数の第1の制御点の個数が、前記複数の第4の制御点の個数と前記複数の第5の制御点の個数との最小公倍数となるよう、前記第1及び第2のストロークデータを生成する
     請求項12に記載の描画装置。
  14.  前記制御点変更部は、前記複数の第1の制御点の個数が、前記複数の第4の制御点の個数と前記複数の第5の制御点の個数とのうちの小さい方に等しくなるよう、前記第1及び第2のストロークデータを生成する
     請求項12に記載の描画装置。
  15.  補間曲線を用いて複数の制御点を補間することによって、前記複数の制御点を含むストロークデータを描画する描画方法であって、
     前記複数の制御点のそれぞれを移動させることによって、前記ストロークデータを移動させてなる中間データを生成するステップと、
     前記ストロークデータ及び前記中間データを順次描画するステップと
     を備える描画方法。
  16.  補間曲線を用いて複数の制御点を補間することによって、前記複数の制御点を含むストロークデータを描画する描画方法であって、
     複数の第1の制御点を含む第1のストロークデータと、前記複数の第1の制御点と一対一に対応する複数の第2の制御点を含む第2のストロークデータとを受け付け、前記複数の第1の制御点のそれぞれについて、該第1の制御点と、該第1の制御点に対応する前記第2の制御点との内挿によって第3の制御点を生成することによって、それぞれ前記複数の第1の制御点と一対一に対応する複数の前記第3の制御点を含むストロークデータである1以上の中間データを生成するステップと、
     前記第1のストロークデータに対応するデータ、前記1以上の中間データ、及び前記第2のストロークデータに対応するデータを順次描画するステップと
     を備える描画方法。
PCT/JP2017/036160 2017-01-11 2017-10-04 描画装置及び描画方法 WO2018131230A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201780069699.9A CN109964251B (zh) 2017-01-11 2017-10-04 描绘装置及描绘方法
US16/431,803 US11100317B2 (en) 2017-01-11 2019-06-05 Drawing device and drawing method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2017002435 2017-01-11
JP2017-002435 2017-01-11
JP2017-033285 2017-02-24
JP2017033285 2017-02-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/431,803 Continuation US11100317B2 (en) 2017-01-11 2019-06-05 Drawing device and drawing method

Publications (1)

Publication Number Publication Date
WO2018131230A1 true WO2018131230A1 (ja) 2018-07-19

Family

ID=62840509

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/036160 WO2018131230A1 (ja) 2017-01-11 2017-10-04 描画装置及び描画方法

Country Status (3)

Country Link
US (1) US11100317B2 (ja)
CN (1) CN109964251B (ja)
WO (1) WO2018131230A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102149105B1 (ko) * 2019-09-18 2020-08-27 세종대학교산학협력단 혼합현실 기반 3차원 스케치 장치 및 방법
CN111583753B (zh) * 2020-05-07 2022-01-04 天津洪恩完美未来教育科技有限公司 一种书写学习实现方法、装置、存储介质以及计算设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275244A (ja) * 1997-01-29 1998-10-13 Sharp Corp アニメーション表示方法、及びアニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11259669A (ja) * 1998-03-06 1999-09-24 Hitachi Ltd 動画像作成方法および動画像作成プログラムを記録した記録媒体
JP2003178320A (ja) * 2001-12-12 2003-06-27 Mikihiro Oba ストロークデータのモーフィング装置
US20110018880A1 (en) * 2009-07-24 2011-01-27 Disney Enterprise, Inc. Tight inbetweening

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1027544A (ja) 1996-07-10 1998-01-27 Sony Corp 陰極線管用酸化物陰極の塗布方法
US6798907B1 (en) * 2001-01-24 2004-09-28 Advanced Digital Systems, Inc. System, computer software product and method for transmitting and processing handwritten data
JP2011022685A (ja) * 2009-07-14 2011-02-03 Univ Of Tokyo 描画装置および描画プログラム
WO2011121648A1 (ja) * 2010-03-30 2011-10-06 三菱電機株式会社 アニメーション表示装置
CN102473319A (zh) * 2010-06-16 2012-05-23 松下电器产业株式会社 动画控制装置、动画控制方法及动画控制程序
US20150116283A1 (en) * 2013-10-24 2015-04-30 Livescribe Inc. Paper Strip Presentation Of Grouped Content
US20150206154A1 (en) * 2014-01-18 2015-07-23 Wipro Limited Methods and system for determining user attributes
US20170131801A1 (en) * 2014-06-19 2017-05-11 Fujian Foxit Software Development Joint Stock Co., Ltd. Method for displaying handwriting in a pdf file
JP6526504B2 (ja) 2015-07-02 2019-06-05 株式会社ワコム デジタルインク生成装置、デジタルインク生成方法、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275244A (ja) * 1997-01-29 1998-10-13 Sharp Corp アニメーション表示方法、及びアニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11259669A (ja) * 1998-03-06 1999-09-24 Hitachi Ltd 動画像作成方法および動画像作成プログラムを記録した記録媒体
JP2003178320A (ja) * 2001-12-12 2003-06-27 Mikihiro Oba ストロークデータのモーフィング装置
US20110018880A1 (en) * 2009-07-24 2011-01-27 Disney Enterprise, Inc. Tight inbetweening

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KANUKA D., ET AL.: "A painting tool...", 30 September 2010 (2010-09-30) *
WACOM, 2017, Retrieved from the Internet <URL:https://www.wacom.com/ja-jp/about-wacom/news-and-events/2017/1215> *

Also Published As

Publication number Publication date
CN109964251B (zh) 2023-07-21
CN109964251A (zh) 2019-07-02
US11100317B2 (en) 2021-08-24
US20190286894A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
US11048333B2 (en) System and method for close-range movement tracking
CN108399010B (zh) 增强的基于相机的输入
JP4533087B2 (ja) 画像処理方法、画像処理装置
US6771277B2 (en) Image processor, image processing method, recording medium, computer program and semiconductor device
JP5459251B2 (ja) 画像処理装置、画像処理方法及びプログラム
CN106716493B (zh) 对内容样式化的方法和对内容样式化的触摸屏设备
CN107615214A (zh) 界面控制系统、界面控制装置、界面控制方法及程序
CN107992188A (zh) 虚拟现实交互方法、装置与系统
Wang et al. SurfaceSlide: a multitouch digital pathology platform
Jönsson et al. Intuitive exploration of volumetric data using dynamic galleries
JP5800216B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
WO2018131230A1 (ja) 描画装置及び描画方法
US10281804B2 (en) Image processing apparatus, image processing method, and program
CN108369486B (zh) 通用涂墨支持
WO2018025825A1 (ja) 撮像システム
JP2011028697A (ja) 手書き文字入力用情報交換装置
JP5920858B1 (ja) プログラム、情報処理装置、深度定義方法及び記録媒体
KR100927326B1 (ko) 2 차원 아바타 이미지 처리 방법 및 이 방법이 실행가능한 프로그램으로 기록된 기록 매체
CN105892663A (zh) 一种信息处理方法及电子设备
JP2002062863A (ja) 文書表示方法、装置、および文書表示プログラムを記録した記録媒体
JP4831788B2 (ja) 概念モデル可視化システムとプログラムと記録媒体
US10080963B2 (en) Object manipulation method, object manipulation program, and information processing apparatus
JP7262976B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6945345B2 (ja) 表示装置、表示方法及びプログラム
JP6182930B2 (ja) 奥行き制作支援装置、奥行き制作方法、及びプログラム

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: 17891368

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17891368

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP