WO2012011228A1 - アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法 - Google Patents

アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法 Download PDF

Info

Publication number
WO2012011228A1
WO2012011228A1 PCT/JP2011/003716 JP2011003716W WO2012011228A1 WO 2012011228 A1 WO2012011228 A1 WO 2012011228A1 JP 2011003716 W JP2011003716 W JP 2011003716W WO 2012011228 A1 WO2012011228 A1 WO 2012011228A1
Authority
WO
WIPO (PCT)
Prior art keywords
animation
control unit
variable
interpreter
unit
Prior art date
Application number
PCT/JP2011/003716
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 JP2012525301A priority Critical patent/JP5715133B2/ja
Priority to CN201180003952.3A priority patent/CN102511055B/zh
Priority to US13/497,348 priority patent/US8963929B2/en
Publication of WO2012011228A1 publication Critical patent/WO2012011228A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Definitions

  • the present invention relates to a technique for displaying a GUI (graphical user interface) by executing script data described in an interpreter type script language.
  • GUIs can display animations in response to improvements in computer processing performance and Web browser functions using a script language. For this reason, recent Web browsers generally include an animation drawing function for displaying GUI animation.
  • FIG. 15 is a block diagram showing a general configuration of a conventional animation drawing apparatus 70 that displays a GUI animation by executing script data as disclosed in Patent Document 1.
  • FIG. 15 is a block diagram showing a general configuration of a conventional animation drawing apparatus 70 that displays a GUI animation by executing script data as disclosed in Patent Document 1.
  • the 15 includes a script data storage unit 701, an interpreter unit 702, a graphics drawing control unit 703, and a graphics processor unit 704.
  • the display device 71 is a device that displays an animation drawn by the animation drawing device 70.
  • the script data storage unit 701 stores script data for displaying a GUI animation.
  • the script data is data described in an interpreted script language, and is described in, for example, JavaScript (registered trademark).
  • This script data describes data for defining the attribute information of the GUI object that constitutes the GUI to be animated, and an animation drawing instruction for displaying the GUI as an animation.
  • Attribute information is data defining coordinates, size, enlargement / reduction ratio, rotation rate (roll angle, pitch angle, yaw angle), color, transparency, image, and the like of the GUI object to be displayed. For example, when realizing an animation in which a GUI object is linearly moved on the screen of the display device 71, the coordinates of the start point and the end point are used as variables, and the GUI object is moved little by little by changing these variables. Loop processing is described in the script data.
  • the interpreter unit 702 sequentially interprets the script data, and outputs a graphics drawing instruction to the graphics drawing control unit 703 each time the script data is interpreted.
  • the graphics drawing control unit 703 decomposes the graphics drawing instruction instructed by the interpreter unit 702 into low-level drawing commands that can be executed by the graphics processor unit 704, and outputs the drawing commands to the graphics processor unit 704.
  • the graphics drawing control unit 703 is configured by software, and is generally called a graphics library or a device driver.
  • the graphics processor unit 704 executes the drawing command output from the graphics drawing control unit 703 and generates graphics by drawing a frame in a built-in frame buffer.
  • the graphics processor unit 704 is configured by hardware such as a graphics processing unit (abbreviated as GPU).
  • FIG. 16 is a diagram conceptually showing the structure of script data 701a described when the conventional animation drawing apparatus 70 is used. As shown in FIG. 16, it can be seen that the script data 701a includes an animation control program 7011 described for displaying the GUI animation.
  • the interpreter unit 702 needs to frequently execute search processing. Due to this search processing, the animation drawing device 70 has a problem that it cannot increase the execution speed when the GUI is displayed as an animation.
  • the script data 701a calls the API of the native program via the interpreter unit 702, and causes the API to execute animation processing.
  • the processing time of the native language program is shorter than that of the script language program, and this replacement method can increase the execution speed of the animation.
  • the native language program needs to fetch the variable from the interpreter unit 702 and perform animation processing. Therefore, as a result of the variable search processing occurring in the interpreter unit 702 at the time of fetching, the GUI execution speed is reduced. There was a problem of lowering.
  • An object of the present invention is to provide a technique capable of increasing the execution speed of GUI animation.
  • An animation drawing apparatus is an animation drawing apparatus that displays a GUI (graphical user interface) by executing script data described in an interpreter-type script language, the script data being interpreted. And an animation control unit for displaying the GUI by executing a program module described in a native language, and the interpreter unit is defined using a predetermined script variable.
  • a drawing request is output to the animation control unit.
  • the animation control unit receives the drawing request, the script variable is set in the format of the native language. Converted to Legislative variable, the GUI while sequentially updating the native variable to the animation display.
  • An animation drawing program is an animation drawing program that causes a computer to function as an animation drawing device that displays a GUI (graphical user interface) by executing script data described in an interpreted script language.
  • An interpreter unit that sequentially interprets the script data in an interpreter system and a program module described in a native language are executed to cause a computer to function as an animation control unit that displays the GUI animation, and the interpreter unit
  • an animation drawing instruction defined using a predetermined script variable is interpreted
  • a drawing request is output to the animation control unit, and the animation
  • the control unit upon receiving the drawing request, converts the script variable to the native variable in the form of the native language, to animate the GUI while sequentially updating the native variable.
  • An animation drawing method is an animation drawing method for displaying a GUI (graphical user interface) by executing script data described in an interpreter-type script language
  • the interpreter unit includes: An interpreter step for sequentially interpreting the script data in an interpreter manner, and an animation control step for displaying an animation of the GUI by executing a program module described in a native language by the animation control unit, the interpreter step Outputs a drawing request to the animation control unit when interpreting an animation drawing instruction defined using a predetermined script variable
  • the animation control step includes: When accepting the drawing request, said the script variable into a native variable in the form of the native language, to animate the GUI while sequentially updating the native variable.
  • FIG. 10 is a block diagram illustrating a general configuration of a conventional animation drawing apparatus that displays a GUI animation by executing script data as disclosed in Patent Document 1; It is the figure which showed notionally the structure of the script data described when the conventional animation drawing apparatus is used.
  • FIG. 1 is a configuration diagram of an animation drawing apparatus 10 according to the first embodiment of the present invention.
  • An animation drawing apparatus 10 shown in FIG. 1 includes an interpreter unit 11, an animation control unit 12, a graphics drawing control unit 13, a graphics processor unit 14, a script data storage unit 21, change schedule information storage units 22 and 23, and an asynchronous flag storage unit 24.
  • the script variable storage unit 25 and the native variable storage unit 26 are provided.
  • the interpreter unit 11 sequentially interprets the script data for displaying the GUI animation stored in the script data storage unit 21 in an interpreter manner.
  • the interpreter unit 11 outputs a drawing request to the animation control unit 12 when interpreting an animation drawing instruction defined using a predetermined script variable.
  • the animation control unit 12 displays a GUI animation by executing a program module described in a native language.
  • the animation control unit 12 converts the script variable into a native variable in a native language format, and displays the GUI animation while sequentially updating the native variable. .
  • the animation control unit 12 can display the GUI animation while sequentially updating the native variables independent of the script variables. Therefore, the animation control unit 12 does not need to fetch variables from the interpreter unit 11 in the middle of the animation, and there is no search process that occurs in the interpreter unit 11 when the animation control unit 12 fetches variables. Can be increased.
  • the program module written in the native language frequently accesses the attribute information of the GUI object during the execution process of the animation.
  • the access destination is the attribute information of the native variable
  • the time required for access is the attribute information of the script language.
  • a machine language is adopted as the native language.
  • a search process performed by the interpreter unit 11 for example, a hash search having a high processing load is employed.
  • the animation control unit 12 generates change schedule information indicating the state of the GUI at one or more drawing points from the start to the completion of the animation based on the script variable. Then, when the animation control unit 12 reaches the drawing point indicated by the change schedule information, the animation control unit 12 outputs the native variable at the drawing point to the interpreter unit 11.
  • the interpreter unit 11 cannot grasp the native variable during the execution of the animation, and cannot grasp the attribute information of the GUI object.
  • the interpreter unit 11 knows the current animation state because the script variable is synchronized with the native variable. Can do. However, in this case, data is frequently exchanged between the animation control unit 12 and the interpreter unit 11, and the processing load on the animation control unit 12 increases. On the contrary, there is a possibility that the execution speed of the animation is reduced.
  • the animation control unit 12 outputs the native variable to the interpreter unit 11 only when the drawing time indicated by the change schedule information is reached.
  • the number of times of data exchange between the animation control unit 12 and the interpreter unit 11 is significantly reduced, and as a result, a decrease in the execution speed of the animation can be prevented.
  • the animation control unit 12 outputs a completion notification to the interpreter unit 11 when the animation is completed. Thereby, the interpreter unit 11 can recognize that the animation is completed.
  • the animation control unit 12 stores the change schedule information in the change schedule information storage unit 23 and outputs the change schedule information to the interpreter unit 11. At this time, the interpreter unit 11 stores the output change schedule information in the change schedule information storage unit 22.
  • the amount of data exchanged between the interpreter unit 11 and the animation control unit 12 can be reduced, and the animation control unit 12 can be reduced.
  • the processing load on the interpreter unit 11 can be reduced.
  • the change schedule information storage unit 22 is configured by a storage area or storage device accessible by the interpreter unit 11, and the change schedule information storage unit 23 is configured by a storage area or storage device accessible by the animation control unit 12. Has been.
  • the animation control unit 12 updates the native variable every time the drawing time of one frame is reached, and sends a drawing instruction for drawing the next one frame to the graphics drawing control unit 13 according to the updated native variable.
  • the graphics drawing control unit 13 performs a drawing process of one frame GUI.
  • the animation control unit 12 receives a completion notification from the graphics drawing control unit 13 every time one frame of drawing processing is completed.
  • the graphics drawing control unit 13 When receiving a drawing instruction from the animation control unit 12, the graphics drawing control unit 13 decomposes the drawing instruction into low-level drawing commands that can be executed by the graphics processor unit 14, and sends the drawing command to the graphics processor unit 14. Output.
  • the graphics drawing control unit 13 is generally called a graphics library or a device driver.
  • the graphics processor unit 14 executes a drawing command output from the graphics drawing control unit 13 and draws a frame in a built-in frame buffer to generate graphics.
  • the interpreter unit 11 sets an asynchronous flag indicating that the script variable is not synchronized with the native variable when the animation is started, and defeats the asynchronous flag when the completion notification is received from the animation control unit 12.
  • the interpreter unit 11 executes a synchronization process for causing the animation control unit 12 to output a native variable. .
  • the interpreter unit 11 forcibly outputs the current native variable to the animation control unit 12 and synchronizes the script variable and the native variable. Thereby, the interpreter unit 11 can recognize the current position of the GUI object, and can determine whether or not the mouse pointer and the GUI object overlap when an input event occurs. When it is determined that the mouse pointer and the GUI object overlap, the interpreter unit 11 may execute processing that occurs when the GUI object is clicked according to the script data.
  • the interpreter unit 11 may convert the native variable output from the animation control unit 12 into a script variable, and update the script variable currently stored in the script variable storage unit 25 with the converted script variable. Further, the interpreter unit 11 stores, for example, “1” data in the asynchronous flag storage unit 24 when setting the asynchronous flag, and stores, for example, “0” data in the asynchronous flag storage unit 24 when defeating the asynchronous flag. Store it.
  • the script data storage unit 21 stores script data for displaying a GUI animation.
  • the script data is data described in an interpreted script language, and is described in, for example, JavaScript (registered trademark).
  • JavaScript registered trademark
  • data for defining attribute information of a GUI object constituting the GUI to be animated, an animation drawing instruction for displaying the GUI in animation, and the like are described.
  • the change schedule information storage unit 22 stores the change schedule information output from the animation control unit 12 and accepted by the interpreter unit 11.
  • the change schedule information stored in the change schedule information storage unit 22 is, for example, the change schedule information converted into script variables by the interpreter unit 11.
  • the change schedule information storage unit 23 stores the change schedule information generated by the animation control unit 12.
  • the change schedule information stored in the change schedule information storage unit 23 is the native variable change schedule information.
  • FIG. 6 is a diagram showing an attribute information table TB1 showing the attribute information described in the script data in the table format according to the first embodiment of the present invention.
  • the attribute information table TB1 includes columns for GUI object identifier, X coordinate, Y coordinate, width, and height, and the attribute information of each GUI includes these data.
  • the data configuring the attribute information illustrated in FIG. 6 is merely exemplary data necessary for realizing an animation in which coordinates change, and is not limited to the data illustrated in FIG. For example, when an animation in which the color or transparency changes is employed, the color and transparency may be included in the attribute information.
  • the GUI object identifier is composed of a character string uniquely assigned to each GUI object in order to identify each GUI object.
  • the X coordinate and the Y coordinate indicate the display position of the GUI object.
  • the top left vertex of the screen of the display device 30 is the origin
  • the Y coordinate is defined downward in the vertical direction
  • the X coordinate is defined toward the right side in the horizontal direction. Therefore, the X coordinate and the Y coordinate indicate the position of each pixel on the screen of the GUI object.
  • Width indicates the horizontal size of the GUI object.
  • the height indicates the size of the GUI object in the vertical direction.
  • FIG. 9 is a screen diagram showing a GUI that is animated on the screen 301 of the display device 30 in accordance with the script data in the embodiment of the present invention. This GUI is to move the GUI object OB1 toward the lower right side.
  • the GUI object OB1 is a GUI object having the GUI object identifier ID1 shown in FIG.
  • the GUI object OB1 is located at the position PS0. After that, every time the frame is updated, the GUI object OB1 moves toward the lower right as the positions PS1, PS2, PS3, PS4 and PS5, and finally moves to the position PS6.
  • the mouse pointer PT moves on the screen 301 accordingly.
  • the third frame in which the GUI object OB1 is located at the position PS3 is the drawing time indicated by the time stamp of the change schedule information shown in FIG. 8, and the animation control unit 12 sends the object OB1 to the interpreter unit 11.
  • Output a native variable containing the coordinates of.
  • the coordinates of the GUI object OB1 for example, the coordinates of the upper left vertex of the GUI object OB1 are employed. However, this is an example, and coordinates such as upper right, lower right, lower left, and center may be adopted.
  • FIG. 7 is a diagram showing an example of attribute information Z1 that constitutes a script variable that the interpreter unit 11 outputs to the animation control unit 12 as a drawing request when the animation starts.
  • the attribute information Z1 includes columns for storing a GUI object identifier, a start point, a completion point, and a change amount.
  • the object identifier is an identifier of a GUI object to be animated.
  • ID1 is stored in the column of the GUI object identifier, and it can be seen that the attribute information Z1 includes the attribute information of the GUI object OB1 shown in FIG.
  • the attribute information Z1 includes attribute information related to the plurality of GUI objects.
  • the attribute information Z1 is described in advance in the script data.
  • the start point indicates the position of the GUI object at the start of the animation.
  • the completion point indicates the position of the GUI object when the animation is completed.
  • the amount of change is a value indicating how much the position of the GUI object is changed every time the animation process progresses for one frame.
  • the GUI object OB1 is incremented by 5 for the X coordinate and 10 for the Y coordinate every time one frame is advanced.
  • the unit of change is a pixel.
  • FIG. 8 is a diagram showing an example of the change schedule information IF1 according to Embodiment 1 of the present invention.
  • the change schedule information IF1 includes columns for storing a time stamp, an X coordinate, and a Y coordinate.
  • the position of the GUI object OB1 at three drawing points is included.
  • the time stamp indicates a drawing time point when the animation control unit 12 notifies the interpreter unit 11 of the native variable.
  • the frame displayed at the start of the animation is the 0th frame
  • a value indicating whether it is a frame is adopted.
  • 0, 3, and 6 are defined as time stamps, so the animation control unit 12 interprets the position of the GUI object OB1 in the 0th, 3rd, and 6th frames from the start of the animation.
  • the animation control unit 12 does not need to output the position of the GUI object OB1.
  • the change schedule information IF1 is generated by the animation control unit 12 as follows. First, at the start of the animation, the animation control unit 12 receives from the interpreter unit 11 a script variable including the attribute information in the column R1 shown in FIG. 6 and the attribute information Z1 shown in FIG.
  • the animation control unit 12 generates the position of the GUI object OB1 at a predetermined time stamp with reference to the attribute information Z1 shown in FIG. In the example of FIG. 8, 0, 3, and 6 are defined as predetermined time stamps. Therefore, the animation control unit 12 uses the GUI of the third frame and the sixth frame from the start point and the change amount illustrated in FIG. 7. By determining the position of the object OB1, the change schedule information IF1 shown in FIG. 8 is generated. Then, the animation control unit 12 notifies the interpreter unit 11 of the generated change schedule information IF1 and stores it in the change schedule information storage unit 23. The interpreter unit 11 also stores the notified change schedule information IF1 in the change schedule information storage unit 22.
  • the animation control part 12 should just obtain
  • the asynchronous flag storage unit 24 stores the asynchronous flag set by the interpreter unit 11.
  • the script variable storage unit 25 is a script variable managed by the interpreter unit 11 and stores script variables other than the change schedule information.
  • the native variable storage unit 26 is a native variable that is sequentially updated by the animation control unit 12 and stores native variables other than the change schedule information.
  • the display device 30 is configured by a plasma display or a liquid crystal display, and displays an animation drawn by the animation drawing device 10.
  • FIG. 2 is a timing chart showing data exchange between the components of the animation drawing apparatus 10 according to the first embodiment of the present invention.
  • the interpreter unit 11 when an input event for displaying a GUI animation occurs, the interpreter unit 11 includes the attribute information described in the column R1 of FIG. 6 and the attribute information Z1 shown in FIG. 7 in the script variable. It outputs to the animation control part 12 as a drawing request (timing TM1).
  • the animation control unit 12 when the animation control unit 12 receives the drawing request, the animation control unit 12 generates the change schedule information IF1 and outputs it to the interpreter unit 11 (timing TM2). Next, the animation control unit 12 outputs a drawing instruction to the graphics drawing control unit 13 every time the drawing timing of one frame arrives (timing TM3 to TM5).
  • the graphics drawing control unit 13 generates a low-level drawing command that can be executed by the graphics processor unit 14 every time a drawing instruction is received, and causes the graphics processor unit 14 to draw one frame of GUI. Then, the graphics drawing control unit 13 outputs a completion notification to the animation control unit 12 when drawing of one frame is completed.
  • Timing TM5 corresponds to the drawing time indicated by the time stamp of the change schedule information IF1. Therefore, the animation control unit 12 outputs the current native variable to the interpreter unit 11 as a change notification.
  • the animation control unit 12 outputs a completion notification indicating that the animation is completed to the interpreter unit 11 (timing TM6).
  • FIG. 3 is a flowchart showing processing of the animation drawing apparatus 10 according to Embodiment 1 of the present invention.
  • the interpreter unit 11 sequentially interprets the script data and outputs a drawing request to the animation control unit 12 when the animation drawing instruction is interpreted.
  • the interpreter unit 11 outputs a script variable including the attribute information shown in the column R1 of FIG. 6 and the attribute information Z1 shown in FIG. 7 as a drawing request.
  • the interpreter unit 11 causes the script variable storage unit 25 to store the script variable output to the animation control unit 12.
  • the animation control unit 12 generates the change schedule information IF1 shown in FIG. 8 from the script variable (step S2), stores it in the change schedule information storage unit 23, and outputs it to the interpreter unit 11.
  • the interpreter unit 11 converts the change schedule information IF1 output from the animation control unit 12 into a script variable, stores it in the change schedule information storage unit 22, and sets an asynchronous flag (step S3).
  • the animation control unit 12 initializes the native variable by converting the script variable output as a drawing request from the interpreter unit 11 into a native variable (step S4).
  • the native variable conceptually has the same contents as the attribute information shown in the column R1 in FIG. 6 and the attribute information Z1 shown in FIG.
  • the animation control unit 12 outputs a drawing instruction for drawing the GUI of the 0th frame to the graphics drawing control unit 13 (step S5).
  • the graphics drawing control unit 13 outputs a drawing command to the graphics processor unit 14, and the GUI for the 0th frame is displayed on the display device 30.
  • the animation control unit 12 draws the GUI object OB1 at the position PS0 as shown in FIG. A drawing instruction is output to the graphics drawing control unit 13.
  • the animation control unit 12 updates the native variable to draw the next one frame, and sends a drawing instruction reflecting the updated native variable to the graphics drawing control unit 13.
  • Output and sleep for a predetermined time for example, a period from when the animation control unit 12 outputs a drawing instruction to when the graphics drawing control unit 13 outputs a completion notification that tells the completion of drawing of one frame can be employed. . That is, the animation control unit 12 is released from sleep by the completion notification output from the graphics drawing control unit 13.
  • the animation control unit 12 may use, as the native variable, the attribute information Z1 illustrated in FIG. 7 to which a column for storing the current position of the GUI object OB1 is added.
  • the animation control unit 12 determines whether or not the animation is completed (step S7).
  • the animation control unit 12 may determine that the animation is completed when the current position of the native variable matches the completion point shown in FIG.
  • step S7 when it is determined that the animation has not been completed (NO in step S7), the animation control unit 12 determines whether or not the current frame corresponds to the frame indicated by the time stamp of the change schedule information IF1 (step S7). S8). That is, if the current frame is the third frame, the animation control unit 12 determines YES in step S8, outputs the current native variable to the interpreter unit 11 as a change notification (step S9), and the process proceeds to step S6. return. Thereby, the script variable and the native variable are synchronized, and the interpreter unit 11 can recognize the current position of the GUI object OB1.
  • the interpreter unit 11 that has received the change notification converts the native variable into a script variable, adds a current position field to the attribute information Z1 shown in FIG. 7, writes the current position of the GUI object OB1 in this field, Update variables.
  • the animation control unit 12 determines NO in step S8 and performs processing. Is returned to step S6.
  • step S7 when it is determined that the animation is completed (YES in step S7), the animation control unit 12 outputs a completion notification to the interpreter unit 11 (step S10).
  • the interpreter unit 11 defeats the asynchronous flag (step S11) and ends the process.
  • the animation control unit 12 does not output the native variable to the interpreter unit 11 for each frame, but outputs the native variable to the interpreter unit 11 in the frame indicated by the time stamp. , It is possible to prevent a decrease in the execution speed of the GUI animation.
  • FIG. 4 is a timing chart showing data exchange between the components of the animation drawing apparatus 10 according to the modification of the first embodiment of the present invention.
  • the animation control unit 12 outputs the native variable to the interpreter unit 11 as a change notification at the drawing time indicated by the time stamp.
  • the animation control unit 12 outputs a native variable to the interpreter unit 11 when receiving a synchronization instruction from the interpreter unit 11.
  • timings TM1 to TM4 and TM6 shown in FIG. 4 are the same as those in FIG.
  • the interpreter unit 11 outputs a synchronization instruction to the animation control unit 12. This is because an input event occurs in which the user clicks the mouse while the GUI object OB1 is being animated.
  • the animation control unit 12 Upon receiving the synchronization instruction, the animation control unit 12 outputs a native variable including the current position of the GUI object OB1 to the interpreter unit 11 as current information.
  • the interpreter unit 11 When the interpreter unit 11 receives the current information, the interpreter unit 11 converts the native variable into a script variable and updates the script variable. As a result, the script variable and the native variable have the same value, and both variables are synchronized.
  • FIG. 5 is a flowchart showing processing of the animation drawing apparatus 10 in the modification of the first embodiment of the present invention.
  • the flowchart of FIG. 5 is a flowchart executed by the animation drawing apparatus 10 when a synchronization instruction is output at the timing TM5 of FIG.
  • step S21 when the user clicks the mouse and an input event occurs (YES in step S21), the interpreter unit 11 determines whether or not an asynchronous flag is set (step S22). On the other hand, if no input event has occurred (NO in step S21), the process returns to step S21.
  • the interpreter unit 11 When the asynchronous flag is set (YES in step S22), the interpreter unit 11 outputs a synchronization instruction to the animation control unit 12 (step S23).
  • the interpreter unit 11 when the asynchronous flag is set, the animation is being executed and the script variable and the native variable are not synchronized. Therefore, the current script variable does not indicate the current position of the GUI object OB1. Therefore, the interpreter unit 11 outputs a synchronization instruction to the animation control unit 12 in order to synchronize the script variable and the native variable.
  • the animation control unit 12 outputs the current native variable as current information to the interpreter unit 11 (step S24).
  • the interpreter unit 11 converts the native variable into a script variable, updates the script variable, and synchronizes the script variable and the native variable (step S25).
  • the interpreter unit 11 can recognize the current position of the GUI object OB1, and can determine whether or not the mouse pointer PT and the GUI object OB1 overlap with each other.
  • the interpreter unit 11 determines that the user has clicked on the GUI object OB1, and can be executed when the GUI object OB1 is clicked.
  • a predetermined processing program may be executed.
  • the interpreter unit 11 specifies the width and height of the GUI object OB1 shown in FIG. 6 from the current position of the GUI object OB1, and sets the area in which the GUI object OB1 is drawn from the specified width and height. . If the mouse pointer PT is located within this area, the interpreter unit 11 may determine that the mouse pointer PT and the GUI object OB1 overlap.
  • step S22 when the asynchronous flag is not set in step S22 (NO in step S22), since the script variable and the native variable are synchronized, the interpreter unit 11 refers to the script variable (step S26). The position of the GUI object OB1 is recognized.
  • a time stamp is adopted as the change schedule information IF1 as shown in FIG. 8, but the time after the animation is started may be adopted instead.
  • the position of the GUI object OB1 is adopted as the attribute information as the scheduled change information IF1, it is not limited to this, and the size of the GUI object OB1 is added to the position of the GUI object OB1 in addition to the position of the GUI object OB1.
  • Enlargement / reduction ratio, rotation rate (roll angle, pitch angle, yaw angle), color, transparency, and image may be included.
  • the animation control unit 12 generates the change schedule information IF1, but the interpreter unit 11 may generate the change schedule information IF1.
  • the interpreter unit 11 uses the attribute information shown in the column R1 in FIG. 6 and the change schedule information IF1 shown in FIG. 8 from the attribute information Z1 shown in FIG. It only has to be generated.
  • the interpreter unit 11 may store the generated change schedule information IF1 in the change schedule information storage unit 22 and output it to the animation control unit 12.
  • the animation control unit 12 that has received the change schedule information IF1 from the interpreter unit 11 may convert the change schedule information IF1 into a native variable and store it in the change schedule information storage unit 23.
  • both the interpreter unit 11 and the animation control unit 12 can refer to the change schedule information IF1, and the amount of data transmitted and received between the interpreter unit 11 and the animation control unit 12 can be reduced.
  • a focus attribute is known as attribute information of a GUI object.
  • the focus attribute is attribute information indicating whether or not the GUI object is currently an operation target.
  • the focus attribute of a GUI object indicates a state of “hit” and the animation is started and the asynchronous flag is set, the focus attribute of the GUI object is changed to “out”. Also good.
  • This configuration is effective for, for example, a GUI animation in which an animation is started and the GUI object starts moving, and the mouse pointer and the GUI object are assumed to be in a non-overlapping state. Become.
  • the interpreter unit 11 determines whether the GUI object and the mouse pointer overlap from the coordinates of the completion point of the GUI object and the current mouse pointer position.
  • the focus attribute may be updated based on the determination result, and the focus attribute may be updated to the latest state.
  • the interpreter unit 11 can appropriately synchronize the script variable with the native variable during the execution of the animation, so that the mouse pointer PT and the GUI can be used even during the execution of the animation. It can be determined whether or not the object OB1 overlaps.
  • the interpreter unit 11 does not perform the synchronization process, and the animation control unit 12 sequentially updates the native variable to execute the animation drawing process. Therefore, the animation control unit 12 can execute an animation drawing process without taking in script variables from the interpreter unit 11. As a result, a decrease in the animation execution speed can be prevented.
  • the animation drawing apparatus 10 according to the first embodiment and the animation drawing apparatus 10 according to the modification may be combined. That is, the animation control unit 12 may output the native variable according to the time stamp, and the interpreter unit 11 may synchronize the script variable with the native variable as necessary.
  • FIG. 10 shows a configuration diagram of an animation drawing apparatus 10 according to the second embodiment of the present invention.
  • the same thing as Embodiment 1 uses the same code
  • FIGS. 6, 7, and 9 are referred to in the description of this embodiment.
  • the interpreter unit 11 outputs the position of the mouse pointer PT displayed on the screen 301 to the animation control unit 12 when interpreting the animation drawing instruction.
  • the animation control unit 12 converts the position of the mouse pointer PT output from the interpreter unit 11 into a native variable and stores it in the pointer information storage unit 28.
  • the animation control unit 12 When the overlapping state between the mouse pointer PT and the GUI object OB1 constituting the GUI changes during the execution of the animation, the animation control unit 12 outputs the native variable at that time to the interpreter unit 11.
  • the animation control unit 12 refers to the position of the mouse pointer PT stored in the pointer information storage unit 28, and compares the two to determine the GUI object OB1 and the mouse pointer PT. What is necessary is just to determine whether the overlap state of changed.
  • the animation control unit 12 does not overlap the GUI object OB1 and the mouse pointer PT. It may be determined that the overlapping state with the pointer PT has changed.
  • the animation control unit 12 determines whether the GUI object OB1 and the mouse pointer PT overlap each other. What is necessary is just to determine with the overlapping state having changed.
  • the animation control unit 12 specifies the position of the GUI object OB1 from the current native variable. Then, the animation control unit 12 sets the specified position as the top left vertex of the GUI object OB1, and sets a rectangular area defined by the width and height of the GUI object OB1 stored in the column R1 shown in FIG. Then, when the position of the mouse pointer PT stored in the pointer information storage unit 28 is located within this rectangular area, the animation control unit 12 determines that the GUI object OB1 and the mouse pointer PT overlap. If the mouse pointer PT is not located within this rectangular area, it may be determined that the mouse pointer PT and the GUI object OB1 do not overlap.
  • the animation control unit 12 determines that the overlap state of the GUI object OB1 and the mouse pointer PT has changed when the determination result of the overlap state in the previous frame is different from the determination result of the overlap state in the current frame. That's fine.
  • the pointer information storage unit 27 stores the position of the mouse pointer PT managed by the interpreter unit 11.
  • the pointer information storage unit 28 stores the position of the mouse pointer PT managed by the animation control unit 12, and the position of the mouse pointer PT is a copy of the position of the mouse pointer PT managed by the interpreter unit 11.
  • the mouse pointer PT is moved by the user performing an operation using the input device 40.
  • the interpreter unit 11 may detect the position of the mouse pointer PT on the screen 301 based on a signal output from the input device 40.
  • the interpreter unit 11 detects (107, 113) as the position of the mouse pointer PT.
  • the upper left coordinate of the mouse pointer PT will be described as the position of the mouse pointer PT.
  • FIG. 11 is a timing chart showing data exchange between components of the animation drawing apparatus 10 according to the second embodiment of the present invention.
  • the interpreter unit 11 interprets the animation drawing instruction described in the script data, and outputs a pointer information registration instruction for registering the position of the mouse pointer PT at this time to the animation control unit 12.
  • the animation control unit 12 causes the pointer information storage unit 28 to store the position of the mouse pointer PT when the input event occurs.
  • the interpreter unit 11 outputs a drawing request to the animation control unit 12 as in FIG. 2 (timing TM2). That is, the script variable including the attribute information shown in the column R1 in FIG. 6 and the attribute information Z1 shown in FIG. 7 is output as a drawing request.
  • the animation control unit 12 determines whether or not the GUI object OB1 and the mouse pointer PT overlap.
  • the animation control unit 12 repeatedly sends and receives drawing instructions and completion notifications with the graphics drawing control unit 13, and displays the animation of the GUI while sequentially updating the native variables (timing TM3, TM4).
  • the animation control unit 12 compares the position of the mouse pointer PT stored in the pointer information storage unit 28 with the position of the GUI object OB1 indicated by the native variable, and It is monitored whether or not the overlapping state with the GUI object OB1 has changed.
  • the animation control unit 12 outputs the native variable as a change notification to the interpreter unit 11 as in FIG. Thereby, the interpreter unit 11 can recognize the current position of the GUI object OB1.
  • the animation control unit 12 outputs a completion notification to the interpreter unit 11 when the animation is completed (timing TM6).
  • FIG. 12 is a flowchart showing processing of the animation drawing apparatus 10 according to Embodiment 2 of the present invention.
  • the interpreter unit 11 sequentially interprets the script data and interprets the animation drawing instruction
  • the interpreter unit 11 outputs a pointer information registration instruction and a drawing request for registering the current position of the mouse pointer PT to the animation control unit 12 (Step S1). S31).
  • the animation control part 12 can recognize the position of the mouse pointer PT at the start of the animation.
  • the coordinates of the mouse pointer PT are adopted as the position of the mouse pointer PT, but the present invention is not limited to this, and the mouse pointer PT area may be adopted.
  • the area of the mouse pointer PT information that can specify the outline of the mouse pointer PT shown in FIG. 9 may be employed.
  • the animation control unit 12 stores the position of the mouse pointer PT indicated by the pointer registration information output from the interpreter unit 11 in the pointer information storage unit 28 (step S32).
  • Steps S33 to S36 and S39 are the same as steps S4 to S7 and S10 shown in FIG.
  • step S37 the animation control unit 12 compares the native variable with the position of the mouse pointer PT stored in the pointer information storage unit 28, and determines whether the overlapping state of the GUI object OB1 and the mouse pointer PT has changed. To do. If the animation control unit 12 determines that the overlapping state between the mouse pointer PT and the GUI object OB1 has changed (YES in step S37), the process proceeds to step S38, and if the overlapping state has not changed (step The process returns to step S35.
  • the GUI object OB1 is located at the position PS2 at the drawing time of the second frame from the start of the animation, and the overlapping state is “overlapping”. It changes from “Yes” to “No overlap”.
  • the animation control unit 12 determines that the overlapping state of the GUI object OB1 and the mouse pointer PT has changed, and outputs a native variable including the position PS2 to the interpreter unit 11 as a change notification (step S38).
  • the interpreter unit 11 captures the native variable from the animation control unit 12 to The current position of the object OB1 can be recognized. Then, the interpreter unit 11 can detect a change in the overlapping state between the current position of the mouse pointer PT and the recognized position of the current GUI object OB1.
  • the interpreter unit 11 can respond to an operation from the user even while an animation is being executed.
  • the animation control unit 12 sequentially updates the native variables to execute the animation drawing process, so that the animation execution speed can be increased.
  • the interpreter unit 11 may output a pointer information registration instruction when an input event occurs, for example, when a mouse button is clicked.
  • the interpreter unit 11 may include the position of the mouse pointer PT when the input event occurs in the pointer information registration instruction, and store this position in the pointer information storage unit 27.
  • the animation control unit 12 that has received the pointer information registration instruction stores the position of the mouse pointer PT included in the pointer information registration instruction in the pointer information storage unit 28, and this mouse pointer PT every time the native variable is updated. And a change in the overlap state between the GUI object OB1 and the mouse pointer PT may be detected.
  • each block shown in FIGS. 1 and 10 is typically realized by an LSI which is an integrated circuit.
  • each block may be individually made into one chip, or may be made into one chip so that a part or all of them are included.
  • the LSI includes an IC, an LSI, a system LSI, a super LSI, an ultra LSI, and the like depending on the degree of integration.
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. Further, an FPGA (Field Programmable Gate Array) that can be programmed after manufacturing the LSI, or a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • FPGA Field Programmable Gate Array
  • each block shown in FIGS. 1 and 10 may be configured by software.
  • the blocks shown in FIGS. 1 and 10 may be realized by installing an animation drawing program for causing the computer to function as the animation drawing device 10 in the computer.
  • the animation drawing program may be stored in a computer-readable recording medium such as a DVD-ROM or CD-ROM and provided to the user.
  • the animation drawing program may be stored on a WEB server and provided to the user by being downloaded via the Internet.
  • the interpreter unit 11 to graphics rendering control unit 13 shown in FIG. 1 are configured by, for example, a CPU
  • the graphics processor unit 14 is configured by, for example, a GPU
  • the script data storage unit 21 to native variable storage unit 26 are, for example, RAM, ROM Therefore, the rewritable storage device such as a flash memory is used.
  • the interpreter unit 11 to the graphics drawing control unit 13 are configured by a CPU
  • the graphics processor unit 14 is configured by a GPU
  • pointer information storage units 27 and 28 a script variable storage unit 25
  • a native variable storage unit. 26 is constituted by a storage device.
  • FIG. 13 is a diagram showing an example of script data used in the animation drawing apparatus 10 according to the first and second embodiments of the present invention.
  • FIG. 14 is a diagram showing an example of script data used in a conventional GUI animation drawing apparatus.
  • the script data of FIG. 13 and FIG. 14 will be described in comparison.
  • the conventional script data in FIG. 14 will be described.
  • 1st line to 3rd line Declaration to start HTML document. In the third line, it is declared that the title of the script data is a sample script.
  • Line 6 A timer value that determines the interval of one frame of animation is specified.
  • 8th to 12th lines A class declaration for storing 2D coordinates.
  • Line 14 Declaration of the data structure of the variable that stores the completion point of the GUI object.
  • 15th line Declaration of the data structure of the variable that stores the change amount of the GUI object.
  • Lines 17 to 26 Main routine of the sample script.
  • the variable of the start point of the GUI object is declared, and the value of the start point is stored in the variable.
  • a completion point variable is declared, and the value of the completion point is stored in the variable.
  • a variable of the change amount is declared, and the value of the change amount is stored in the variable.
  • the animation start function (anime) is called.
  • the function on the 25th line corresponds to an animation drawing instruction.
  • Lines 28 to 31 Declaration of a function (done) called at the end of the animation.
  • Lines 33 to 40 Declaration of a function (anime) that starts drawing one frame.
  • the completion point and the change amount are decomposed into the X component and the Y component, temporarily stored in variables, and in the 39th line, a function (moveObj) for drawing one frame is called.
  • 42nd line to 56th line A declaration of a function (moveObj) that draws a frame.
  • the ID of the GUI object to be animated is acquired.
  • the X component of the GUI object is added by the change amount of the X component declared in the 23rd line.
  • the Y component of the GUI object is added by the change amount of the Y component declared in the 24th line. It is determined whether or not the animation is completed in the 47th line. If not completed, the 49th to 50th lines are executed. If completed, the 54th line is executed.
  • Lines 57 to 58 End declaration of JavaScript (registered trademark) embedded in the HTML document.
  • Line 59 End declaration of the HEAD part of the HTML document.
  • Line 60 Declaration for calling the main routine of the sample script when the HTML document is loaded.
  • Line 61 Declaration of a character string indicating a GUI object to be animated, and “obj” is designated as “id” for designating the GUI object.
  • Lines 62-63 Declaration of the end of the HTML document.
  • FIG. 13 will be described.
  • the description of the same script as in FIG. 14 is omitted.
  • 33rd line to 36th line It is different from the conventional script data. Control is transferred to the animation control unit 12 by “nativeAnime” on the 35th line. That is, the interpreter unit 11 sequentially interprets the script of the main routine on the 17th to 26th lines and interprets “anime” on the 25th line which is an animation drawing instruction, according to “nativeAim” on the 35th line. Script variables such as “ObjName”, “ep”, “d”, and “df” are output as drawing requests to the animation control unit 12, and control is transferred to the animation control unit 12.
  • the animation control unit 12 renders an animation by executing a native language program module corresponding to “nativeAnime”.
  • the animation control unit 12 outputs a completion notification to the interpreter unit 11 when the animation is completed. Since the animation control unit 12 executes the program module described in the native language and draws the animation, it is not necessary to execute a search process as shown in the 44th line of FIG. 14 every time one frame is drawn. Therefore, according to the animation drawing apparatus 10, the execution speed of animation can be increased.
  • the script data shown in FIG. 13 and FIG. 14 is a typical example for showing the difference between the script and the conventional GUI animation drawing apparatus, and the contents other than the purpose are omitted. Further, various modifications can be made according to the purpose.
  • the animation drawing device is an animation drawing device that displays a GUI (graphical user interface) by executing script data described in an interpreter-type script language, and sequentially outputs the script data in an interpreter manner.
  • the animation control unit sets the script variable to the native language format. It was converted to a number, the GUI while sequentially updating the native variable to the animation display.
  • the animation control unit can display the GUI animation while sequentially updating the native variable independent of the interpreter unit. For this reason, the animation control unit does not need to access the interpreter unit during the animation, and the search processing that has occurred in the interpreter unit when the interpreter unit is accessed is eliminated. As a result, the execution speed of the animation can be increased.
  • the animation control unit generates change schedule information indicating the state of the GUI at one or more drawing times from the start to the completion of the animation based on the script variable, and the change schedule information
  • the native variable at the time of drawing is preferably output to the interpreter unit, and a completion notification is output to the interpreter unit when the animation is completed.
  • the animation control unit outputs the native variable to the interpreter unit only when the drawing time point indicated by the change schedule information is reached.
  • the number of times of data exchange between the animation control unit and the interpreter unit is greatly reduced, and as a result, a decrease in the animation execution speed can be prevented.
  • the animation control unit outputs the change schedule information to the interpreter unit.
  • the interpreter unit since the interpreter unit also holds the change schedule information, the amount of data exchanged between the interpreter unit and the animation control unit can be reduced, and the processing load on the animation control unit and the interpreter unit can be reduced. Can be achieved.
  • the interpreter unit sets an asynchronous flag indicating that the script variable is not synchronized with the native variable, and receives the completion notification from the animation control unit.
  • a predetermined input event occurs when the user operates the input device while defeating the flag and setting the asynchronous flag
  • a synchronous process for causing the animation control unit to output the native variable may be executed. preferable.
  • the interpreter unit when an input event occurs, the interpreter unit forces the animation control unit to output the current native variable, and synchronizes the script variable and the native variable.
  • the interpreter unit can recognize the current state of the GUI object, and can perform processing for determining whether or not the mouse pointer and the GUI object overlap when an input event occurs.
  • the interpreter unit generates change schedule information indicating a state of the GUI at one or a plurality of drawing points from the start to the completion of the animation based on the script variable, and the change schedule information
  • the animation control unit outputs to the animation control unit, when the drawing time indicated by the change schedule information is reached, the native variable at the time of drawing is output to the interpreter unit, and is completed when the animation is completed.
  • the notification is preferably output to the interpreter unit.
  • the interpreter unit outputs the change schedule information to the animation control unit.
  • the animation control unit since the animation control unit also holds the change schedule information, the amount of data exchanged between the interpreter unit and the animation control unit can be reduced, and the processing load on the animation control unit and the interpreter unit can be reduced. Can be reduced.
  • the interpreter unit sets a flag indicating that the animation drawing instruction is being executed when the change schedule information is output to the animation control unit, and defeats the flag when the completion notification is received.
  • a predetermined input event occurs while the flag is set, it is preferable to execute a synchronization process for causing the animation control unit to output the native variable.
  • the change schedule information indicates the drawing time using a time stamp indicating what number frame the animation has started.
  • the animation control unit can detect the output timing of the native variable only by counting the number of frames updated after the animation is started. Can do.
  • the change schedule information includes attribute information of the GUI object at the time of drawing.
  • the interpreter unit interprets the animation drawing instruction
  • the interpreter unit outputs a position of the pointer displayed on the screen to the animation control unit
  • the animation control unit receives the pointer output from the interpreter unit.
  • the position of the pointer is stored in the storage device, and the position of the pointer stored in the storage device during the execution of the animation is compared with the native variable, so that the overlapping state of the pointer with the GUI object constituting the GUI is determined.
  • the interpreter unit captures a native variable from the animation control unit 12 when an input event occurs during the execution of the animation and it is necessary to recognize the current state of the GUI object.
  • the current state of the GUI object can be recognized.
  • a graphics drawing control unit that controls the graphics processor unit is further provided, and the animation control unit updates the native variable every time the drawing time of one frame is reached, and a drawing instruction for drawing one frame
  • the graphics drawing control unit receives a drawing instruction from the animation control unit
  • the graphics drawing control unit decomposes the received drawing instruction into low-level drawing commands that can be executed by the graphics processor unit.
  • the drawing command is preferably output to the graphics processor unit.
  • the animation control unit since the animation control unit causes the graphics drawing processing unit to execute low-level drawing processing, the processing load on the animation control unit can be reduced.
  • the interpreter unit accesses the script variable using a hash search.
  • script variables are accessed using a hash search with a large processing load.
  • the configuration (1) or the like the number of accesses can be reduced and the execution speed of animation can be increased.
  • the GUI animation drawing apparatus can draw a GUI animation written in an interpreter type script language at high speed, and thus is useful in a device equipped with a Web browser.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

インタプリタ部11は、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力する。アニメーション制御部12は、ネイティブ言語で記述されたプログラムモジュールを実行することで、GUIをアニメーション表示する。そして、アニメーション制御部12は、描画依頼を受け付けたとき、スクリプト変数をネイティブ言語の形式のネイティブ変数に変換し、ネイティブ変数を逐次更新しながらGUIをアニメーション表示する。

Description

アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法
 本発明は、インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示する技術に関するものである。
 近年、GUIは、コンピュータの処理性能向上とスクリプト言語を用いるWebブラウザの機能向上とに呼応してアニメーション表示が可能となっている。そのため、近年のWebブラウザは、GUIをアニメーション表示するためのアニメーション描画機能を内包しているのが一般的である。
 このようなWEBブラウザは、インタプリタ型のスクリプト言語で記述されたスクリプトデータを逐次実行し、GUIをアニメーション表示する。このようなスクリプトデータを実行して、GUIをアニメーション表示する技術として、例えば、特許文献1が知られている。図15は、特許文献1に示されるような、スクリプトデータを実行することでGUIをアニメーション表示する従来のアニメーション描画装置70の一般的な構成を示したブロック図である。
 図15に示すアニメーション描画装置70は、スクリプトデータ記憶部701、インタプリタ部702、グラフィクス描画制御部703、及びグラフィクスプロセッサ部704を備えている。表示装置71は、アニメーション描画装置70により描画されるアニメーションを表示する装置である。スクリプトデータ記憶部701は、GUIをアニメーション表示するためのスクリプトデータを記憶している。ここで、スクリプトデータは、インタプリタ型のスクリプト言語で記述されたデータであり、例えば、JavaScript(登録商標)等で記述されている。
 このスクリプトデータは、アニメーション対象となるGUIを構成するGUIオブジェクトの属性情報を定義するためのデータや、GUIをアニメーション表示するためのアニメーション描画指示が記述されている。
 属性情報とは、表示されるGUIオブジェクトの座標、サイズ、拡大縮小率、回転率(ロール角、ピッチ角、ヨー角)、色、透過度、画像等を定義するデータである。例えば、GUIオブジェクトを表示装置71の画面上で直線的に移動させるアニメーションを実現する場合、始点の座標及び終点の座標を変数とし、この変数を少しずつ変化させてGUIオブジェクトを少しずつ移動させるといったループ処理が、スクリプトデータに記述される。
 インタプリタ部702は、スクリプトデータを逐次解釈し、解釈する毎にグラフィクス描画指示をグラフィクス描画制御部703に出力する。
 グラフィクス描画制御部703は、インタプリタ部702から指示されたグラフィクス描画指示をグラフィクスプロセッサ部704が実行可能な低レベルの描画コマンドに分解し、描画コマンドをグラフィクスプロセッサ部704に出力する。グラフィクス描画制御部703は、ソフトウェアで構成され、一般的には、グラフィクス・ライブラリ又はデバイス・ドライバ等と呼ばれている。
 グラフィクスプロセッサ部704は、グラフィクス描画制御部703から出力された描画コマンドを実行し、内蔵するフレームバッファにフレームを描画することによりグラフィクスを生成する。グラフィクスプロセッサ部704は、グラフィクス・プロセッシング・ユニット(略称GPU)等のハードウェアで構成されている。
 図16は、従来のアニメーション描画装置70を用いた場合に記述されるスクリプトデータ701aの構造を概念的に示した図である。図16に示すように、スクリプトデータ701aは、GUIをアニメーション表示するために記述されたアニメーション制御プログラム7011を含んでいることが分かる。
 しかしながら、アニメーション制御プログラム7011は、インタプリタ型のスクリプト言語で記述されているため、インタプリタ部702は、検索処理を頻繁に実行する必要がある。この検索処理により、アニメーション描画装置70は、GUIをアニメーション表示する際の実行速度を上げることができないという課題があった。
 一方、GUIをアニメーション表示する際の実行速度を上げる手法としてスクリプト言語で記述されたアニメーション処理をネイティブ言語で記述されたネイティブのプログラムに置き換える手法が知られている。この場合、スクリプトデータ701aはインタプリタ部702を介してネイティブのプログラムのAPIを呼び出し、このAPIにアニメーションの処理を実行させていた。周知のように、ネイティブ言語のプログラムは、スクリプト言語のプログラムに比較して処理時間が短いため、この置き換える手法によれば、アニメーションの実行速度を上げることができる。
 しかしながら、この従来の手法では、ネイティブ言語のプログラムはインタプリタ部702から変数を取り込んでアニメーション処理を行う必要があったため、取り込み時にインタプリタ部702に変数の検索処理が発生する結果、GUIの実行速度が低下するという問題があった。
特開2001-6001号公報
 本発明の目的は、GUIのアニメーションの実行速度を上げることができる技術を提供することである。
 本発明の一局面によるアニメーション描画装置は、インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示するアニメーション描画装置であって、前記スクリプトデータをインタプリタ方式で逐次解釈するインタプリタ部と、ネイティブ言語で記述されたプログラムモジュールを実行することで、前記GUIをアニメーション表示するアニメーション制御部とを備え、前記インタプリタ部は、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力し、前記アニメーション制御部は、前記描画依頼を受け付けたとき、前記スクリプト変数を前記ネイティブ言語の形式のネイティブ変数に変換し、前記ネイティブ変数を逐次更新しながら前記GUIをアニメーション表示する。
 本発明の別の一局面によるアニメーション描画プログラムは、インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示するアニメーション描画装置としてコンピュータを機能させるアニメーション描画プログラムであって、前記スクリプトデータをインタプリタ方式で逐次解釈するインタプリタ部と、ネイティブ言語で記述されたプログラムモジュールを実行することで、前記GUIをアニメーション表示するアニメーション制御部としてコンピュータを機能させ、前記インタプリタ部は、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力し、前記アニメーション制御部は、前記描画依頼を受け付けたとき、前記スクリプト変数を前記ネイティブ言語の形式のネイティブ変数に変換し、前記ネイティブ変数を逐次更新しながら前記GUIをアニメーション表示する。
 本発明の更に別の一局面によるアニメーション描画方法は、インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示するアニメーション描画方法であって、インタプリタ部が、前記スクリプトデータをインタプリタ方式で逐次解釈するインタプリタステップと、アニメーション制御部が、ネイティブ言語で記述されたプログラムモジュールを実行することで、前記GUIをアニメーション表示するアニメーション制御ステップとを備え、前記インタプリタステップは、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力し、前記アニメーション制御ステップは、前記描画依頼を受け付けたとき、前記スクリプト変数を前記ネイティブ言語の形式のネイティブ変数に変換し、前記ネイティブ変数を逐次更新しながら前記GUIをアニメーション表示する。
本発明の実施の形態1におけるアニメーション描画装置の構成図である。 本発明の実施の形態1におけるアニメーション描画装置の構成要素間におけるデータの授受を示したタイミングチャートである。 本発明の実施の形態1におけるアニメーション描画装置の処理を示すフローチャートである。 本発明の実施の形態1の変形例におけるアニメーション描画装置の構成要素間のデータの授受を示したタイミングチャートである。 本発明の実施の形態1の変形例におけるアニメーション描画装置の処理を示すフローチャートである。 本発明の実施の形態におけるスクリプトデータに記述された属性情報をテーブル形式で示した属性情報テーブルを示した図である。 アニメーション開始時にインタプリタ部がアニメーション制御部に描画依頼として出力するスクリプト変数の一例を示した図である。 本発明の実施の形態1における変更予定情報の一例を示した図である。 本発明の実施の形態におけるスクリプトデータにしたがって、表示装置の画面にアニメーション表示されるGUIを示した画面図である。 本発明の実施の形態2によるアニメーション描画装置の構成図を示している。 本発明の実施の形態2におけるアニメーション描画装置の構成要素間のデータの授受を示すタイミングチャートである。 本発明の実施の形態2におけるアニメーション描画装置の処理を示すフローチャートである。 本発明の実施の形態1及び2のアニメーション描画装置において用いられるスクリプトデータの一例を示した図である。 従来のGUIアニメーション描画装置において用いられていたスクリプトデータの一例を示した図である。 特許文献1に示されるような、スクリプトデータを実行することでGUIをアニメーション表示する従来のアニメーション描画装置の一般的な構成を示したブロック図である。 従来のアニメーション描画装置を用いた場合に記述されるスクリプトデータの構造を概念的に示した図である。
 以下、本発明の実施の形態について、図面を参照しながら説明する。
 (実施の形態1)
 図1は、本発明の実施の形態1におけるアニメーション描画装置10の構成図である。図1に示すアニメーション描画装置10は、インタプリタ部11、アニメーション制御部12、グラフィクス描画制御部13、グラフィクスプロセッサ部14、スクリプトデータ記憶部21、変更予定情報記憶部22,23、非同期フラグ記憶部24、スクリプト変数記憶部25、及びネイティブ変数記憶部26を備えている。
 インタプリタ部11は、スクリプトデータ記憶部21に記憶されたGUIをアニメーション表示するスクリプトデータをインタプリタ方式で逐次解釈する。本実施の形態では、インタプリタ部11は、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼をアニメーション制御部12に出力する。
 アニメーション制御部12は、ネイティブ言語で記述されたプログラムモジュールを実行することで、GUIをアニメーション表示する。本実施の形態では、アニメーション制御部12は、インタプリタ部11からの描画依頼を受け付けたとき、スクリプト変数をネイティブ言語の形式のネイティブ変数に変換し、ネイティブ変数を逐次更新しながらGUIをアニメーション表示する。
 このように、アニメーション制御部12は、スクリプト変数とは独立したネイティブ変数を逐次更新しながらGUIをアニメーション表示することができる。そのため、アニメーション制御部12は、アニメーションの途中でインタプリタ部11から変数を取り込む必要がなくなり、アニメーション制御部12が変数を取り込む際にインタプリタ部11で発生する検索処理が無くなる結果、アニメーションの実行速度を高めることができる。
 つまり、ネイティブ言語で記述されたプログラムモジュールが実行される際、スクリプト変数のコピーであるネイティブ変数がプログラムモジュールに代入される。ここで、GUIアニメーションにおいては、スクリプト変数として、GUIオブジェクトの属性情報が採用される。
 ネイティブ言語で記述されたプログラムモジュールはアニメーションの実行過程においてGUIオブジェクトの属性情報に頻繁にアクセスするが、アクセス先はネイティブ変数の属性情報であるため、アクセスに要する時間は、スクリプト言語の属性情報をアクセスする場合に比べて大幅に小さい。そのため、アニメーションの実行速度を高めることができる。なお、ネイティブ言語としては、機械語が採用される。また、インタプリタ部11が行う検索処理としては、処理負担が高い例えばハッシュ検索が採用される。
 また、アニメーション制御部12は、スクリプト変数に基づいて、アニメーションを開始してから完了するまでの1又は複数の描画時点におけるGUIの状態を示す変更予定情報を生成する。そして、アニメーション制御部12は、変更予定情報が示す描画時点に到達したとき、その描画時点におけるネイティブ変数をインタプリタ部11に出力する。
 ネイティブ変数が更新されてもスクリプト変数にはその更新が全く反映されないとすると、インタプリタ部11は、アニメーションの実行途中におけるネイティブ変数を把握できず、GUIオブジェクトの属性情報が把握できなくなってしまう。
 一方、アニメーション制御部12がネイティブ変数を更新する毎に、ネイティブ変数をインタプリタ部11に通知すれば、インタプリタ部11は、スクリプト変数がネイティブ変数と同期するため、現在のアニメーションの状態を把握することができる。しかしながら、これでは、アニメーション制御部12とインタプリタ部11との間でデータの授受が頻繁に行われ、アニメーション制御部12の処理負担が増大し、却って、アニメーションの実行速度を低下させる虞がある。
 そこで、アニメーション制御部12は、変更予定情報が示す描画時点に到達したときにだけ、ネイティブ変数をインタプリタ部11に出力している。これにより、アニメーション制御部12とインタプリタ部11との間でのデータの授受の回数が大幅に減少する結果、アニメーションの実行速度の低下を防止することができる。
 また、アニメーション制御部12は、アニメーションが完了したとき完了通知をインタプリタ部11に出力する。これにより、インタプリタ部11は、アニメーションが完了したことを認識することができる。
 また、アニメーション制御部12は、変更予定情報を変更予定情報記憶部23に記憶させると共に、変更予定情報をインタプリタ部11に出力する。このとき、インタプリタ部11は、出力された変更予定情報を変更予定情報記憶部22に記憶させる。
 このように、変更予定情報記憶部22,23の両方に変更予定情報を記憶させることで、インタプリタ部11及びアニメーション制御部12間で授受されるデータ量を減少させることができ、アニメーション制御部12及びインタプリタ部11の処理負担の軽減を図ることができる。
 ここで、変更予定情報記憶部22は、インタプリタ部11がアクセス可能な記憶領域又は記憶装置により構成され、変更予定情報記憶部23は、アニメーション制御部12がアクセス可能な記憶領域又は記憶装置により構成されている。
 また、アニメーション制御部12は、例えば1フレームの描画時点に到達する毎に、ネイティブ変数を更新し、更新したネイティブ変数にしたがって次の1フレームを描画させるための描画指示をグラフィクス描画制御部13に出力し、グラフィクス描画制御部13に1フレームのGUIの描画処理を行わせる。また、アニメーション制御部12は、1フレームの描画処理が完了する毎にグラフィクス描画制御部13から完了通知を受ける。
 グラフィクス描画制御部13は、アニメーション制御部12から描画指示が通知されると、その描画指示を、グラフィクスプロセッサ部14が実行可能な低レベルの描画コマンドに分解し、描画コマンドをグラフィクスプロセッサ部14に出力する。ここで、グラフィクス描画制御部13は、一般的には、グラフィクス・ライブラリ又はデバイス・ドライバ等と呼ばれている。
 グラフィクスプロセッサ部14は、グラフィクス描画制御部13から出力された描画コマンドを実行し、内蔵するフレームバッファにフレームを描画することによりグラフィクスを生成する。
 上記のインタプリタ部11は、アニメーションが開始されたとき、スクリプト変数がネイティブ変数と同期していないことを示す非同期フラグを立て、アニメーション制御部12から完了通知を受けたとき、非同期フラグを倒す。そして、インタプリタ部11は、非同期フラグを立てている間に、ユーザが入力装置40を操作することで所定の入力イベントが発生した場合、アニメーション制御部12にネイティブ変数を出力させる同期処理を実行する。
 例えば、GUIオブジェクトが移動するアニメーションの実行途中で、ユーザがマウスをクリックする入力イベントが発生した場合を考える。アニメーションの実行途中では、スクリプト変数とネイティブ変数とが同期していないため、インタプリタ部11は現在のGUIオブジェクトの位置を知ることができず、クリック時においてマウスポインタがGUIオブジェクトと重なっていたのか否かを判定することができなくなる。
 そこで、入力イベントが発生した場合、インタプリタ部11は、アニメーション制御部12に現在のネイティブ変数を強制的に出力させ、スクリプト変数とネイティブ変数とを同期させている。これにより、インタプリタ部11は、現在のGUIオブジェクトの位置を認識することができ、入力イベントが発生したときにマウスポインタとGUIオブジェクトとが重なっていたか否かを判定することができる。そして、マウスポインタとGUIオブジェクトとが重なっていると判定した場合、インタプリタ部11は、スクリプトデータに従って、そのGUIオブジェクトがクリックされたときに発生する処理を実行すればよい。
 なお、インタプリタ部11は、アニメーション制御部12から出力されたネイティブ変数をスクリプト変数に変換し、現在、スクリプト変数記憶部25で記憶されているスクリプト変数を変換したスクリプト変数で更新すればよい。また、インタプリタ部11は、非同期フラグを立てるときは、非同期フラグ記憶部24に例えば「1」のデータを格納し、非同期フラグを倒すときは、非同期フラグ記憶部24に例えば「0」のデータを格納すればよい。
 スクリプトデータ記憶部21は、GUIをアニメーション表示するためのスクリプトデータを記憶している。ここで、スクリプトデータは、インタプリタ型のスクリプト言語で記述されたデータであり、例えば、JavaScript(登録商標)等で記述されている。このスクリプトデータには、アニメーション対象となるGUIを構成するGUIオブジェクトの属性情報を定義するためのデータや、GUIをアニメーション表示するためのアニメーション描画指示等が記述されている。
 変更予定情報記憶部22は、アニメーション制御部12から出力され、インタプリタ部11により受け付けられた変更予定情報を記憶している。ここで、変更予定情報記憶部22が記憶する変更予定情報は、例えばインタプリタ部11によりスクリプト変数に変換された変更予定情報である。
 変更予定情報記憶部23は、アニメーション制御部12により生成された変更予定情報を記憶している。ここで、変更予定情報記憶部23に記憶された変更予定情報は、ネイティブ変数の変更予定情報である。
 図6は、本発明の実施1の形態におけるスクリプトデータに記述された属性情報をテーブル形式で示した属性情報テーブルTB1を示した図である。図6に示すように、属性情報テーブルTB1は、GUIオブジェクト識別子、X座標、Y座標、幅、及び高さの欄を備え、各GUIの属性情報は、これらのデータが含まれていることが分かる。なお、図6に示す属性情報を構成するデータは、座標が変化するアニメーションを実現する際に必要となるデータを例示的に示したにすぎず、図6に示すデータに限定されない。例えば、色や透明度が変化するアニメーションを採用する場合は、色及び透明度を属性情報に含ませればよい。
 GUIオブジェクト識別子は、各GUIオブジェクトを識別するために各GUIオブジェクトに一意的に割り付けられた文字列により構成されている。X座標及びY座標は、GUIオブジェクトの表示位置を示す。図6の例では、表示装置30の画面の例えば左上の頂点が原点とされ、垂直方向の下方に向けてY座標が定義され、水平方向の右側に向けてX座標が定義されている。よって、X座標及びY座標は、GUIオブジェクトの画面上での各画素の位置を示す。
 幅はGUIオブジェクトの水平方向の大きさを示している。高さはGUIオブジェクトの垂直方向の大きさを示している。なお、以降の説明においては、1行目の欄R1に記述されたGUIオブジェクト識別子が「ID1」のGUIオブジェクトを、移動表示させるアニメーションを例に挙げて説明する。
 図9は、本発明の実施の形態におけるスクリプトデータにしたがって、表示装置30の画面301にアニメーション表示されるGUIを示した画面図である。このGUIは、GUIオブジェクトOB1を右斜め下側に向けて移動させるものである。GUIオブジェクトOB1は、図6に示すGUIオブジェクト識別子がID1のGUIオブジェクトである。
 アニメーション開始時において、GUIオブジェクトOB1は位置PS0に位置している。以後、フレームが更新される毎にGUIオブジェクトOB1は、位置PS1,PS2,PS3,PS4,PS5というように、右斜め下に向けて移動していき、最終的に位置PS6まで移動する。マウスポインタPTは、ユーザにより入力装置40が操作されると、それに応じて画面301上を移動する。
 なお、図9において、GUIオブジェクトOB1が位置PS3に位置する3フレーム目は、図8に示す変更予定情報のタイムスタンプで示された描画時点であり、アニメーション制御部12はインタプリタ部11にオブジェクトOB1の座標を含むネイティブ変数を出力する。ここで、GUIオブジェクトOB1の座標としては、例えば、GUIオブジェクトOB1の左上の頂点の座標が採用されている。但し、これは一例であり、右上、右下、左下、中心等の座標を採用してもよい。
 図7は、アニメーション開始時にインタプリタ部11がアニメーション制御部12に描画依頼として出力するスクリプト変数を構成する属性情報Z1の一例を示した図である。この属性情報Z1には、GUIオブジェクト識別子、開始点、完了点、及び変化量を格納する欄が含まれている。オブジェクト識別子は、アニメーション対象となるGUIオブジェクトの識別子である。図7の例では、GUIオブジェクト識別子の欄にID1が格納されており、この属性情報Z1には図9に示すGUIオブジェクトOB1の属性情報が含まれていることが分かる。なお、アニメーション対象となるGUIオブジェクトが複数存在する場合、属性情報Z1には複数のGUIオブジェクトに関する属性情報が含まれることになる。なお、属性情報Z1はスクリプトデータに予め記述されている。
 開始点は、アニメーションの開始時におけるGUIオブジェクトの位置を示している。図7の例では、開始点としてX座標=100、Y座標=100と定義されているため、図9に示すように、GUIオブジェクトOB1は、アニメーションの開始時に、X座標=100、Y座標=100の位置PS0に表示される。
 完了点は、アニメーションの完了時におけるGUIオブジェクトの位置を示している。図7の例では、X座標=130、Y座標=160と定義されているため、GUIオブジェクトOB1はアニメーションの終了時にX座標=130、Y座標=160の位置PS6に表示される。
 変化量は、アニメーションの処理が1フレーム進行する毎にGUIオブジェクトの位置をどれだけ変化させるかを示す値である。図7の例では、変化量として、X成分=5、Y成分=10が定義されているため、GUIオブジェクトOB1は1フレーム進行する毎にX座標が5、Y座標が10ずつ増加される。なお、変化量の単位はピクセルである。
 図8は、本発明の実施の形態1における変更予定情報IF1の一例を示した図である。変更予定情報IF1は、タイムスタンプ、X座標、及びY座標を格納する欄を備えている。図8に示す変更予定情報IF1の例では、3個の描画時点におけるGUIオブジェクトOB1の位置が含まれている。
 タイムスタンプは、アニメーション制御部12がインタプリタ部11にネイティブ変数を通知する描画時点を示しており、本実施の形態では、アニメーション開始時に表示されるフレームを0フレーム目としたとき、何枚目のフレームであるかを示す値が採用されている。図8の例では、タイムスタンプとして0、3、6が定義されているため、アニメーション制御部12は、アニメーション開始時から0フレーム目、3フレーム目、6フレーム目におけるGUIオブジェクトOB1の位置をインタプリタ部11に出力する。なお、0フレーム目はアニメーション開始時点を示し、6フレーム目はアニメーションの完了時点を示しているため、アニメーション制御部12は、GUIオブジェクトOB1の位置を出力しなくともよい。
 ここで、変更予定情報IF1は、アニメーション制御部12により下記のようにして生成される。まず、アニメーションの開始時点において、アニメーション制御部12は、インタプリタ部11から、図6に示す欄R1の属性情報及び図7に示す属性情報Z1が含まれるスクリプト変数を受け付ける。
 次に、アニメーション制御部12は、予め定められたタイムスタンプにおけるGUIオブジェクトOB1の位置を、図7に示す属性情報Z1を参照して生成する。図8の例では、0、3、6が予め定められたタイムスタンプとして定義されているため、アニメーション制御部12は、図7に示す開始点及び変化量から3フレーム目及び6フレーム目のGUIオブジェクトOB1の位置を求めることで、図8に示す変更予定情報IF1を生成する。そして、アニメーション制御部12は、生成した変更予定情報IF1をインタプリタ部11に通知すると共に、変更予定情報記憶部23に記憶させる。また、インタプリタ部11は、通知された変更予定情報IF1を変更予定情報記憶部22に記憶させる。
 なお、図8では、タイムスタンプが3個の場合を例に挙げて説明したが、これに限定されず、2個又は4個以上の所定の値を予め定められたタイムスタンプとして採用してもよい。この場合、アニメーション制御部12は、図7に示す開始点及び変化量を用いて各タイムスタンプにおけるGUIオブジェクトOB1の位置を求めればよい。
 図1に戻り、非同期フラグ記憶部24は、インタプリタ部11により設定される非同期フラグを記憶する。スクリプト変数記憶部25は、インタプリタ部11が管理するスクリプト変数であって、変更予定情報以外のスクリプト変数を記憶する。ネイティブ変数記憶部26は、アニメーション制御部12により逐次更新されるネイティブ変数であって、変更予定情報以外のネイティブ変数を記憶する。表示装置30は、プラズマディスプレイや液晶ディスプレイにより構成され、アニメーション描画装置10により描画されるアニメーションを表示する。
 図2は、本発明の実施の形態1におけるアニメーション描画装置10の構成要素間におけるデータの授受を示したタイミングチャートである。
 まず、インタプリタ部11は、GUIをアニメーション表示するための入力イベントが発生すると、図6の欄R1に記載された属性情報及び図7に示す属性情報Z1をスクリプト変数に含ませ、このスクリプト変数を描画依頼としてアニメーション制御部12に出力する(タイミングTM1)。
 次に、アニメーション制御部12は、描画依頼を受け付けると、変更予定情報IF1を生成し、インタプリタ部11に出力する(タイミングTM2)。次に、アニメーション制御部12は、1フレームの描画タイミングが到達する毎に描画指示をグラフィクス描画制御部13に出力する(タイミングTM3~TM5)。
 なお、グラフィクス描画制御部13は、描画指示を受け付ける毎にグラフィクスプロセッサ部14が実行可能な低レベルの描画コマンドを生成し、グラフィクスプロセッサ部14に1フレームのGUIを描画させる。そして、グラフィクス描画制御部13は、1フレームの描画が完了すると、完了通知をアニメーション制御部12に出力する。
 タイミングTM5は、変更予定情報IF1のタイムスタンプが示す描画時点に該当する。そのため、アニメーション制御部12は、現在のネイティブ変数を変更通知としてインタプリタ部11に出力する。
 上記の処理が繰り返され、GUIがアニメーション表示される。そして、最終のフレームの描画指示に対する完了通知がグラフィクス描画制御部13から出力されると、アニメーション制御部12は、アニメーションが完了したことを示す完了通知をインタプリタ部11に出力する(タイミングTM6)。
 図3は、本発明の実施の形態1におけるアニメーション描画装置10の処理を示すフローチャートである。ステップS1において、インタプリタ部11は、スクリプトデータを逐次解釈していき、アニメーション描画指示を解釈すると、描画依頼をアニメーション制御部12に出力する。ここで、インタプリタ部11は、図6の欄R1に示す属性情報及び図7に示す属性情報Z1を含むスクリプト変数を描画依頼として出力する。また、インタプリタ部11は、アニメーション制御部12に出力したスクリプト変数をスクリプト変数記憶部25に記憶させる。
 次に、アニメーション制御部12は、スクリプト変数から図8に示す変更予定情報IF1を生成し(ステップS2)、変更予定情報記憶部23に記憶させると共に、インタプリタ部11に出力する。
 次に、インタプリタ部11は、アニメーション制御部12から出力された変更予定情報IF1をスクリプト変数に変換して、変更予定情報記憶部22に記憶させ、非同期フラグを立てる(ステップS3)。
 次に、アニメーション制御部12は、インタプリタ部11から描画依頼として出力されたスクリプト変数をネイティブ変数に変換することで、ネイティブ変数を初期化する(ステップS4)。なお、ネイティブ変数は、概念的には図6の欄R1に示す属性情報及び図7に示す属性情報Z1と同一内容である。
 次に、アニメーション制御部12は、0フレーム目のGUIを描画するための描画指示をグラフィクス描画制御部13に出力する(ステップS5)。これにより、グラフィクス描画制御部13は、グラフィクスプロセッサ部14に描画コマンドを出力し、表示装置30には0フレーム目のGUIが表示される。
 つまり、アニメーション制御部12は、図7に示す属性情報Z1の開始点がX座標=100、Y座標=100であるため、図9に示すように、位置PS0にGUIオブジェクトOB1が描画されるようにグラフィクス描画制御部13に描画指示を出力する。
 次に、アニメーション制御部12は、1フレームの描画時点に到達すると、次の1フレームを描画するためにネイティブ変数を更新し、更新したネイティブ変数が反映された描画指示をグラフィクス描画制御部13に出力し、所定時間スリープする(ステップS6)。ここで、所定時間としては、例えば、アニメーション制御部12が描画指示を出力してからグラフィクス描画制御部13が1フレームの描画の完了を告げる完了通知を出力するまでの期間を採用することができる。つまり、アニメーション制御部12は、グラフィクス描画制御部13から出力される完了通知によってスリープが解除される。
 また、アニメーション制御部12は、ステップS4でネイティブ変数に変換したネイティブ変数の開始点のX座標=100、Y座標=100に変化量のX成分=5、Y成分=10をそれぞれ加算して、1フレーム目のGUIオブジェクトOB1の位置(X座標=105、Y座標=110)を算出し、算出した位置をネイティブ変数に含ませ、ネイティブ変数を更新する。この場合、アニメーション制御部12は、例えば、図7に示す属性情報Z1において、GUIオブジェクトOB1の現在位置を格納する欄を追加したものをネイティブ変数とすればよい。
 そして、アニメーション制御部12は、2フレーム目以降において、1フレームが進行する毎に、GUIオブジェクトOB1の現在の位置のX座標及びY座標に、変化量のX成分=5及びY成分=10をそれぞれ加算して、ネイティブ変数を更新する。
 次に、アニメーション制御部12は、アニメーションが完了したか否かを判定する(ステップS7)。ここで、アニメーション制御部12は、ネイティブ変数の現在位置が図7に示す完了点に一致したときアニメーションが完了したと判定すればよい。
 次に、アニメーション制御部12は、アニメーションが完了していないと判定した場合(ステップS7でNO)、現フレームが変更予定情報IF1のタイムスタンプが示すフレームに該当するか否かを判定する(ステップS8)。つまり、アニメーション制御部12は、現フレームが3フレーム目である場合、ステップS8でYESと判定し、現在のネイティブ変数を変更通知としてインタプリタ部11に出力し(ステップS9)、処理をステップS6に戻す。これにより、スクリプト変数とネイティブ変数との同期が図られ、インタプリタ部11は、GUIオブジェクトOB1の現在位置を認識することが可能となる。
 なお、変更通知を受け付けたインタプリタ部11は、ネイティブ変数をスクリプト変数に変換し、図7に示す属性情報Z1に現在位置の欄を追加し、この欄にGUIオブジェクトOB1の現在位置を書き込み、スクリプト変数を更新する。
 一方、アニメーション制御部12は、現フレームが変更予定情報IF1のタイムスタンプが示すフレームに該当していない場合、つまり、現フレームが3フレーム目に該当しない場合、ステップS8でNOと判定し、処理をステップS6に戻す。
 ステップS7において、アニメーション制御部12はアニメーションが完了したと判定した場合(ステップS7でYES)、完了通知をインタプリタ部11に出力する(ステップS10)。次に、インタプリタ部11は、非同期フラグを倒し(ステップS11)、処理を終了する。
 以上の処理により、アニメーション制御部12は、1フレーム毎にネイティブ変数をインタプリタ部11に出力するのではなく、タイムスタンプが示すフレームにおいてネイティブ変数をインタプリタ部11に出力するため、処理負担が軽減し、GUIのアニメーションの実行速度の低下を防止することができる。
 図4は、本発明の実施の形態1の変形例におけるアニメーション描画装置10の構成要素間のデータの授受を示したタイミングチャートである。図2においては、アニメーション制御部12は、タイムスタンプに示す描画時点において、ネイティブ変数を変更通知としてインタプリタ部11に出力していた。
 一方、図4に示す変形例では、アニメーション制御部12は、インタプリタ部11から同期指示を受け付けたとき、ネイティブ変数をインタプリタ部11に出力している。
 図4に示すタイミングTM1~TM4、TM6は図2と同一であるため、説明を省く。タイミングTM5において、インタプリタ部11は、アニメーション制御部12に同期指示を出力している。これは、GUIオブジェクトOB1がアニメーション表示されている途中で、ユーザがマウスをクリックする入力イベントが発生したためである。
 同期指示を受けたアニメーション制御部12は、GUIオブジェクトOB1の現在位置を含むネイティブ変数を現在情報としてインタプリタ部11に出力する。
 インタプリタ部11は、現在情報を受け付けると、ネイティブ変数をスクリプト変数に変換し、スクリプト変数を更新する。これにより、スクリプト変数とネイティブ変数とが同じ値となり、両変数が同期する。
 図5は、本発明の実施の形態1の変形例におけるアニメーション描画装置10の処理を示すフローチャートである。図5のフローチャートは図4のタイミングTM5において同期指示が出力されたときに、アニメーション描画装置10により実行されるフローチャートである。
 まず、インタプリタ部11は、ユーザによりマウスがクリックされ、入力イベントが発生すると(ステップS21でYES)、非同期フラグが立っているか否かを判定する(ステップS22)。一方、入力イベントが発生していない場合(ステップS21でNO)、処理がステップS21に戻される。
 インタプリタ部11は、非同期フラグが立っている場合(ステップS22でYES)、アニメーション制御部12に同期指示を出力する(ステップS23)。ここで、非同期フラグが立っている場合、アニメーションが実行途中であり、スクリプト変数とネイティブ変数とが同期していない。そのため、現在のスクリプト変数は、GUIオブジェクトOB1の現在位置を示していない。そこで、インタプリタ部11は、スクリプト変数とネイティブ変数とを同期させるために同期指示をアニメーション制御部12に出力する。
 次に、アニメーション制御部12は、現在のネイティブ変数を現在情報としてインタプリタ部11に出力する(ステップS24)。次に、インタプリタ部11は、ネイティブ変数をスクリプト変数に変換し、スクリプト変数を更新し、スクリプト変数とネイティブ変数とを同期させる(ステップS25)。
 これにより、インタプリタ部11は、GUIオブジェクトOB1の現在位置を認識することができ、マウスポインタPTとユーザがGUIオブジェクトOB1とが重なっているか否かを判定することができる。
 ここで、インタプリタ部11は、GUIオブジェクトOB1とマウスポインタPTとが重なっていると判定した場合、ユーザがGUIオブジェクトOB1をクリックしたと判定し、GUIオブジェクトOB1がクリックされた際に実行することが予め定められていた処理プログラムを実行すればよい。一方、GUIオブジェクトOB1とマウスポインタPTとが重なっていないと判定した場合、GUIオブジェクトOB1のクリック時に実行させる処理プログラムを実行しなければよい。
 なお、インタプリタ部11は、GUIオブジェクトOB1の現在の位置から、図6に示すGUIオブジェクトOB1の幅及び高さを特定し、特定した幅及び高さからGUIオブジェクトOB1が描画された領域を設定する。そして、この領域内にマウスポインタPTが位置すれば、インタプリタ部11は、マウスポインタPTとGUIオブジェクトOB1とが重なっていると判定すればよい。
 一方、ステップS22において、非同期フラグが立っていない場合(ステップS22でNO)、スクリプト変数とネイティブ変数とは同期しているため、インタプリタ部11は、スクリプト変数を参照し(ステップS26)、現在のGUIオブジェクトOB1の位置を認識する。
 上記説明では、変更予定情報IF1として、図8に示すように、タイムスタンプを採用したが、これに代えてアニメーションが開始されてからの時刻を採用してもよい。また、変更予定情報IF1としてGUIオブジェクトOB1の位置を属性情報として採用したが、これに限定されず、GUIオブジェクトOB1の位置に加えて、又はGUIオブジェクトOB1の位置に代えて、GUIオブジェクトOB1のサイズ、拡大縮小率、回転率(ロール角、ピッチ角、ヨー角)、色、透過度、及び画像の少なくともいずれか1つを含めても良い。
 この場合、図8に示す変更予定情報IF1において、サイズ、拡大縮小率、回転率(ロール角、ピッチ角、ヨー角)、色、透過度、及び画像の欄を設け、タイムスタンプ毎にこれらの情報を規定すればよい。
 また、上記説明では、アニメーション制御部12が変更予定情報IF1を生成したが、インタプリタ部11が変更予定情報IF1を生成してもよい。この場合、インタプリタ部11は、アニメーション制御部12と同様、アニメーションを開始するときに、図6の欄R1に示す属性情報及び図7に示す属性情報Z1等から図8に示す変更予定情報IF1を生成すればよい。
 そして、インタプリタ部11は、生成した変更予定情報IF1を変更予定情報記憶部22に記憶させると共に、アニメーション制御部12に出力すればよい。なお、インタプリタ部11から変更予定情報IF1を受け付けたアニメーション制御部12は、変更予定情報IF1をネイティブ変数に変換して、変更予定情報記憶部23に記憶させればよい。
 これにより、インタプリタ部11及びアニメーション制御部12の双方が変更予定情報IF1を参照することが可能となり、インタプリタ部11及びアニメーション制御部12間で送受されるデータ量を少なくすることができる。
 なお、GUIオブジェクトの属性情報としてフォーカスの属性が知られている。このフォーカスの属性は、GUIオブジェクトが現在、操作対象となっているか否かを示す属性情報である。フォーカスの属性としては、「当っている」又は「外れている」の2通りの状態が存在する。例えば、GUIオブジェクトとマウスポインタとが重なっている場合、フォーカスの属性は「当っている」となる。あるGUIオブジェクトのフォーカスの属性が「当っている」の状態を示す場合において、アニメーションが開始されて非同期フラグが立てられた場合、そのGUIオブジェクトのフォーカスの属性を「外れている」に変更しても良い。この構成は、例えば、アニメーションが開始されてGUIオブジェクトが移動を開始し、マウスポインタとGUIオブジェクトとが重なっている状態から重なっていない状態になることが想定されるGUIのアニメーションに対して有効となる。
 また、アニメーションが完了して非同期フラグが倒された場合、インタプリタ部11は、GUIオブジェクトの完了点の座標と、現在のマウスポインタの位置とからGUIオブジェクトとマウスポインタとが重なっているか否かを判定し、その判定結果でフォーカスの属性を更新し、フォーカスの属性を最新状態に更新しても良い。
 以上説明した変形例によれば、インタプリタ部11は、アニメーションの実行途中で適宜、スクリプト変数をネイティブ変数に同期させることが可能であるため、アニメーションの実行途中であっても、マウスポインタPTとGUIオブジェクトOB1とが重なっているか否かを判定することができる。一方、インタプリタ部11は、スクリプト変数をネイティブ変数に同期させる必要がない場合は同期処理を行わず、アニメーション制御部12は、逐次ネイティブ変数を更新してアニメーションの描画処理を実行する。そのため、アニメーション制御部12は、インタプリタ部11からスクリプト変数を取り込むことなくアニメーションの描画処理を実行することができる。その結果、アニメーションの実行速度の低下を防止することができる。
 なお、実施の形態1によるアニメーション描画装置10と変形例によるアニメーション描画装置10とを組み合わせても良い。つまり、アニメーション制御部12がタイムスタンプにしたがってネイティブ変数を出力し、かつ、インタプリタ部11が必要に応じてスクリプト変数をネイティブ変数に同期させてもよい。
 (実施の形態2)
 実施の形態2によるアニメーション描画装置10は、アニメーションの実行中にマウスポインタPTとGUIオブジェクトとの重なり状態が変化した場合、アニメーション制御部12がインタプリタ部11にネイティブ変数を出力することを特徴としている。図10は、本発明の実施の形態2によるアニメーション描画装置10の構成図を示している。なお、本実施の形態において実施の形態1と同一のものは同一の符号を用いて説明を省略する。また、図6、図7、図9は本実施の形態の説明においても参照する。
 本実施の形態において、インタプリタ部11は、アニメーション描画指示を解釈したとき、画面301上に表示されたマウスポインタPTの位置をアニメーション制御部12に出力する。
 アニメーション制御部12は、インタプリタ部11から出力されたマウスポインタPTの位置をネイティブ変数に変換し、ポインタ情報記憶部28に記憶させる。
 そして、アニメーション制御部12は、アニメーションの実行中にマウスポインタPTとGUIを構成するGUIオブジェクトOB1との重なり状態が変化したとき、そのときのネイティブ変数をインタプリタ部11に出力する。
 ここで、アニメーション制御部12は、ネイティブ変数を更新する毎に、ポインタ情報記憶部28に記憶されたマウスポインタPTの位置を参照し、両者を比較することで、GUIオブジェクトOB1とマウスポインタPTとの重なり状態が変化したか否かを判定すればよい。
 具体的には、アニメーション制御部12は、前回の判定時にGUIオブジェクトOB1とマウスポインタPTとが重なっていた場合において、GUIオブジェクトOB1とマウスポインタPTとが重ならなくなった場合、GUIオブジェクトOB1とマウスポインタPTとの重なり状態が変化したと判定すればよい。
 一方、アニメーション制御部12は、前回の判定時にGUIオブジェクトOB1とマウスポインタPTとが重なっていなかった場合において、GUIオブジェクトOB1とマウスポインタPTとが重なった場合、GUIオブジェクトOB1とマウスポインタPTとの重なり状態が変化したと判定すればよい。
 より具体的には、アニメーション制御部12は、現在のネイティブ変数からGUIオブジェクトOB1の位置を特定する。そして、アニメーション制御部12は、特定した位置をGUIオブジェクトOB1の左上の頂点とし、図6に示す欄R1に格納されたGUIオブジェクトOB1の幅及び高さによって規定される矩形領域を設定する。そして、アニメーション制御部12は、ポインタ情報記憶部28に記憶されたマウスポインタPTの位置がこの矩形領域の領域内に位置する場合、GUIオブジェクトOB1とマウスポインタPTとの重なっていると判定し、この矩形領域内にマウスポインタPTが位置していない場合、マウスポインタPTとGUIオブジェクトOB1とは重なっていないと判定すればよい。
 そして、アニメーション制御部12は、1フレーム前における重なり状態の判定結果と、現フレームにおける重なり状態の判定結果とが相違した場合、GUIオブジェクトOB1とマウスポインタPTとの重なり状態が変化したと判定すればよい。
 ポインタ情報記憶部27は、インタプリタ部11が管理するマウスポインタPTの位置を記憶する。ポインタ情報記憶部28は、アニメーション制御部12が管理するマウスポインタPTの位置を記憶し、このマウスポインタPTの位置は、インタプリタ部11が管理するマウスポインタPTの位置のコピーである。
 図9に示すように、マウスポインタPTは、ユーザが入力装置40を用いた操作を行うことによって移動される。ここで、インタプリタ部11は、入力装置40から出力される信号に基づいてマウスポインタPTの画面301上での位置を検出すればよい。
 図9の例では、入力イベントの発生時におけるマウスポインタPTは、左上の座標が(107,113)に位置している。そのため、インタプリタ部11は、(107,113)をマウスポインタPTの位置として検出する。以下、マウスポインタPTの左上の座標をマウスポインタPTの位置として説明する。
 図11は、本発明の実施の形態2におけるアニメーション描画装置10の構成要素間のデータの授受を示すタイミングチャートである。
 まず、タイミングTM1において、インタプリタ部11は、スクリプトデータに記述されたアニメーション描画指示を解釈すると、このときのマウスポインタPTの位置を登録するためのポインタ情報登録指示をアニメーション制御部12に出力する。これにより、アニメーション制御部12は、入力イベントが発生したときのマウスポインタPTの位置をポインタ情報記憶部28に記憶させる。
 次に、インタプリタ部11は、図2と同様、描画依頼をアニメーション制御部12に出力する(タイミングTM2)。つまり、図6の欄R1に示す属性情報及び図7に示す属性情報Z1を含むスクリプト変数が描画依頼として出力される。このとき、アニメーション制御部12は、GUIオブジェクトOB1とマウスポインタPTとが重なっているか否かを判定する。
 次に、図2と同様、アニメーション制御部12はグラフィクス描画制御部13との間で描画指示及び完了通知の送受を繰り返し、ネイティブ変数を逐次更新しながらGUIをアニメーション表示する(タイミングTM3,TM4)。ここで、アニメーション制御部12は、ネイティブ変数を更新する毎に、ポインタ情報記憶部28に記憶されたマウスポインタPTの位置とネイティブ変数が示すGUIオブジェクトOB1の位置とを比較し、マウスポインタPTとGUIオブジェクトOB1との重なり状態が変化したか否かを監視する。
 次に、タイミングTM5において、アニメーション制御部12は、GUIオブジェクトOB1とマウスポインタPTとの重なり状態が変化したと判定した場合、変更通知をインタプリタ部11に出力する。
 ここで、アニメーション制御部12は、図2と同様、ネイティブ変数を変更通知としてインタプリタ部11に出力する。これにより、インタプリタ部11は、GUIオブジェクトOB1の現在の位置を認識することができる。
 次に、アニメーション制御部12は、図2と同様、アニメーションが完了すると、完了通知をインタプリタ部11に出力する(タイミングTM6)。
 図12は、本発明の実施の形態2におけるアニメーション描画装置10の処理を示すフローチャートである。インタプリタ部11は、スクリプトデータを逐次解釈していき、アニメーション描画指示を解釈すると、現在のマウスポインタPTの位置を登録するためのポインタ情報登録指示及び描画依頼をアニメーション制御部12に出力する(ステップS31)。これにより、アニメーション制御部12は、アニメーション開始時のマウスポインタPTの位置を認識することができる。なお、マウスポインタPTの位置としては、マウスポインタPTの座標を採用するが、これに限定されず、マウスポインタPTの領域を採用しても良い。マウスポインタPTの領域としては、図9に示すマウスポインタPTの輪郭を特定することができる情報を採用すればよい。
 次に、アニメーション制御部12は、インタプリタ部11から出力されたポインタ登録情報が示すマウスポインタPTの位置をポインタ情報記憶部28に記憶させる(ステップS32)。
 ステップS33~S36,S39は図3に示すステップS4~S7,S10と同一であるため、説明を省略する。
 ステップS37において、アニメーション制御部12は、ネイティブ変数と、ポインタ情報記憶部28に記憶されたマウスポインタPTの位置とを比較して、GUIオブジェクトOB1とマウスポインタPTとの重なり状態が変化したか判定する。そして、アニメーション制御部12は、マウスポインタPTとGUIオブジェクトOB1との重なり状態が変化したと判定した場合(ステップS37でYES)、ステップS38に処理を進め、重なり状態が変化していない場合(ステップS37でNO)、処理をステップS35に戻す。
 図9の例では、マウスポインタPTの位置が変化していないとすると、アニメーションが開始されてから、2フレーム目の描画時点でGUIオブジェクトOB1は位置PS2に位置しており、重なり状態が「重なっている」から「重なっていない」に変化する。
 具体的には、図9において、GUIオブジェクトOB1が位置PS2に位置するとき、GUIオブジェクトOB1の左上の頂点の座標は(110,120)であり、マウスポインタPTの位置は(107,113)であるため、GUIオブジェクトOB1とマウスポインタPTとは重なっていない。したがって、アニメーション制御部12は、GUIオブジェクトOB1とマウスポインタPTとの重なり状態が変化したと判定し、位置PS2を含むネイティブ変数を変更通知としてインタプリタ部11に出力する(ステップS38)。
 これにより、インタプリタ部11は、アニメーションの実行途中において、入力イベントが発生して、GUIオブジェクトOB1の現在の位置を認識する必要が生じた場合、アニメーション制御部12からネイティブ変数を取り込むことで、GUIオブジェクトOB1の現在の位置を認識することができる。そして、インタプリタ部11は、現在のマウスポインタPTの位置と、認識した現在のGUIオブジェクトOB1の位置とから両者の重なり状態の変化を検出することができる。
 そして、重なり状態の変化を検出した場合は、例えば、その変化に応じて予め定められたプログラムを実行する。これにより、インタプリタ部11は、アニメーションの実行中であってもユーザからの操作に対応することが可能となる。
 一方、アニメーションの表示が開始されると、アニメーション制御部12がネイティブ変数を逐次更新させてアニメーションの描画処理が実行されるため、アニメーションの実行速度を上げることができる。
 なお、上記説明では、ポインタ情報登録指示は1回だけ出力される場合を例に挙げて説明したが、アニメーションの実行途中において、ポインタ情報登録指示は何回出力されても良い。この場合、インタプリタ部11は、例えば、マウスボタンがクリックされる等の入力イベントが発生したときに、ポインタ情報登録指示を出力すればよい。そして、インタプリタ部11は、ポインタ情報登録指示に入力イベントが発生したときのマウスポインタPTの位置を含ませ、この位置をポインタ情報記憶部27に記憶させればよい。
 ポインタ情報登録指示を受け付けたアニメーション制御部12は、このポインタ情報登録指示に含まれているマウスポインタPTの位置をポインタ情報記憶部28に記憶させ、ネイティブ変数を更新する毎に、このマウスポインタPTの位置とネイティブ変数とを比較してGUIオブジェクトOB1とマウスポインタPTとの重なり状態の変化を検出すればよい。
 なお、図1及び図10に示す各ブロックは、典型的には集積回路であるLSIにより実現される。LSIにより実現する場合、各ブロックは個別に1チップ化されても良いし、一部又は全てが含まれるように1チップ化されても良い。
 ここで、LSIには、集積度の違いにより、IC、LSI、システムLSI、スーパーLSI、ウルトラLSI等が含まれる。
 また、集積回路化の手法としては、LSIに限られず、専用回路又は汎用プロセッサで実現してもよい。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて各ブロックの集積化を行ってもよい。LSIに置き換わる集積回路の技術として、例えばバイオ技術によるものが可能性としてあり得る。
 また、図1及び図10に示す各ブロックをソフトウェアにより構成してもよい。この場合、コンピュータをアニメーション描画装置10として機能させるためのアニメーション描画プログラムをコンピュータにインストールすることで、図1及び図10に示す各ブロックを実現すればよい。このアニメーション描画プログラムは、DVD-ROMやCD-ROM等のコンピュータ読み取り可能な記録媒体に格納してユーザに提供されてもよい。また、アニメーション描画プログラムをWEBサーバ上に格納し、インターネットを介してダウンロードさせることでユーザに提供してもよい。
 この場合、図1に示すインタプリタ部11~グラフィクス描画制御部13は例えばCPUにより構成され、グラフィクスプロセッサ部14は例えばGPUにより構成され、スクリプトデータ記憶部21~ネイティブ変数記憶部26は例えばRAM、ROM、フラッシュメモリ等の書き換え可能な記憶装置により構成されることになる。
 また、図10では、インタプリタ部11~グラフィクス描画制御部13がCPUにより構成され、グラフィクスプロセッサ部14がGPUにより構成され、ポインタ情報記憶部27,28、スクリプト変数記憶部25、及びネイティブ変数記憶部26が記憶装置により構成されることになる。
 次に、本発明の具体例について説明する。図13は、本発明の実施の形態1及び2のアニメーション描画装置10において用いられるスクリプトデータの一例を示した図である。図14は、従来のGUIアニメーション描画装置において用いられていたスクリプトデータの一例を示した図である。以下、図13と図14とのスクリプトデータを対比説明する。まず、図14の従来のスクリプトデータから説明する。
 1行目~3行目:HTML文書の開始宣言である。3行目において、このスクリプトデータのタイトルがサンプルスクリプトであることが宣言されている。
 4行目~5行目:JavaScript(登録商標)がHTMLに埋め込まれていることを宣言している。
 6行目:アニメーションの1フレームの間隔を決定するタイマーの値が規定されている。
 8行目~12行目:2次元の座標を格納するためのクラスの宣言である。
 14行目:GUIオブジェクトの完了点を格納する変数のデータ構造の宣言である。
 15行目:GUIオブジェクトの変化量を格納する変数のデータ構造の宣言である。
 17行目~26行目:サンプルスクリプトのメインルーチンである。
 19行目~20行目においてGUIオブジェクトの開始点の変数が宣言され、開始点の値がその変数に格納されている。21行目~22行目において完了点の変数が宣言され、その変数に完了点の値が格納されている。23行目~24行目において変化量の変数が宣言され、その変数に変化量の値が格納されている。25行目において、アニメーション開始の関数(anime)が呼び出されている。この25行目の関数がアニメーション描画指示に該当する。
 28行目~31行目:アニメーションの終了時に呼び出される関数(done)の宣言である。
 33行目~40行目:1フレームの描画を開始する関数(anime)の宣言である。35行目~38行目で完了点と変化量とがX成分及びY成分に分解され、一時的に変数に格納され、39行目で1フレームを描画する関数(moveObj)が呼び出される。
 42行目~56行目:1フレームを描画する関数(moveObj)の宣言である。44行目においてアニメーション対象のGUIオブジェクトのIDが取得されている。45行目においてGUIオブジェクトのX成分が23行目で宣言されたX成分の変化量だけ加算されている。46行目において、GUIオブジェクトのY成分が24行目で宣言されたY成分の変化量だけ加算されている。47行目においてアニメーションが完了したか否かが判定され、完了していない場合、49行目~50行目が実行され、完了した場合、54行目が実行される。
 49行目~50行目において、waitTimeが経過する毎に関数(moveObj)が実行され1フレームが描画される。54行目において、アニメーション終了時に呼び出される関数(df=done)が呼び出される。
 57行目~58行目:HTML文書に埋め込まれたJavaScript(登録商標)の終了宣言である。
 59行目:HTML文書のHEAD部の終了宣言である。
 60行目:HTML文書のロード時にサンプルスクリプトのメインルーチンを呼び出すための宣言である。
 61行目:アニメーション対象のGUIオブジェクトを示す文字列の宣言であり、GUIオブジェクトを指定するための“id”として“obj”が指定されている。
 62行目~63行目:HTML文書の終了宣言である。
 このように、従来のスクリプトデータでは、例えば、44行目に示すように1フレームを描画する毎に、idを取得するための検索処理が実行され、アニメーションの実行速度を上げることは困難であった。
 次に、図13について説明する。図13において、図14と同じスクリプトは説明を省略する。
 33行目~36行目:従来のスクリプトデータと異なる箇所である。35行目の“nativeAnime”により、アニメーション制御部12に制御が移される。つまり、インタプリタ部11は、17~26行目のメインルーチンのスクリプトを逐次解釈していき、アニメーション描画指示である25行目の“anime”を解釈すると、35行目の“nativeAnime”にしたがって、”ObjName”、“ep”、“d”、“df”等のスクリプト変数を描画依頼として、アニメーション制御部12に出力し、アニメーション制御部12に制御を移す。
 これにより、アニメーション制御部12は、“nativeAnime”に対応するネイティブ言語のプログラムモジュールを実行することで、アニメーションを描画する。
 そして、アニメーション制御部12は、アニメーションが完了すると完了通知をインタプリタ部11に出力する。アニメーション制御部12は、ネイティブ言語で記述されたプログラムモジュールを実行してアニメーションを描画するため、1フレームを描画する毎に図14の44行目に示すような検索処理を実行する必要がない。よって、アニメーション描画装置10によれば、アニメーションの実行速度を高めることができる。
 なお、図13及び図14で示したスクリプトデータは、従来のGUIアニメーション描画装置とのスクリプトの差異を示すための典型例であり、その趣旨を示す以外の内容は省略している。また、その趣旨にしたがい種々の変形が可能である。
 上記のアニメーション描画装置の技術的特徴は下記のようにまとめることができる。
 (1)上記アニメーション描画装置は、インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示するアニメーション描画装置であって、前記スクリプトデータをインタプリタ方式で逐次解釈するインタプリタ部と、ネイティブ言語で記述されたプログラムモジュールを実行することで、前記GUIをアニメーション表示するアニメーション制御部とを備え、前記インタプリタ部は、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力し、前記アニメーション制御部は、前記描画依頼を受け付けたとき、前記スクリプト変数を前記ネイティブ言語の形式のネイティブ変数に変換し、前記ネイティブ変数を逐次更新しながら前記GUIをアニメーション表示する。
 この構成によれば、アニメーション制御部は、インタプリタ部とは独立したネイティブ変数を逐次更新しながらGUIをアニメーション表示することができる。そのため、アニメーション制御部は、アニメーションの途中でインタプリタ部にアクセスする必要がなくなり、インタプリタ部にアクセスした際にインタプリタ部で発生していた検索処理が無くなる結果、アニメーションの実行速度を高めることができる。
 (2)前記アニメーション制御部は、前記スクリプト変数に基づいて、アニメーションを開始してから完了するまでの1又は複数の描画時点における前記GUIの状態を示す変更予定情報を生成し、前記変更予定情報が示す描画時点に到達したとき、その描画時点における前記ネイティブ変数を前記インタプリタ部に出力すると共に、アニメーションが完了したとき完了通知を前記インタプリタ部に出力することが好ましい。
 この構成によれば、アニメーション制御部は、変更予定情報が示す描画時点に到達したときにだけ、ネイティブ変数をインタプリタ部に出力している。これにより、アニメーション制御部とインタプリタ部との間でのデータの授受の回数が大幅に減少する結果、アニメーションの実行速度の低下を防止することができる。
 (3)前記アニメーション制御部は、前記変更予定情報を前記インタプリタ部に出力することが好ましい。
 この構成によれば、インタプリタ部も変更予定情報を保持しているため、インタプリタ部及びアニメーション制御部間で授受されるデータ量を減少させることができ、アニメーション制御部及びインタプリタ部の処理負担の軽減を図ることができる。
 (4)前記インタプリタ部は、アニメーションが開始されたとき、前記スクリプト変数が前記ネイティブ変数と同期していないことを示す非同期フラグを立て、前記アニメーション制御部から前記完了通知を受けたとき、前記非同期フラグを倒し、前記非同期フラグを立てている間に、ユーザが入力装置を操作することで所定の入力イベントが発生した場合、前記アニメーション制御部に前記ネイティブ変数を出力させる同期処理を実行することが好ましい。
 この構成によれば、入力イベントが発生した場合、インタプリタ部は、アニメーション制御部に現在のネイティブ変数を強制的に出力させ、スクリプト変数とネイティブ変数とを同期させている。これにより、インタプリタ部は、現在のGUIオブジェクトの状態を認識することができ、入力イベントが発生したときにマウスポインタとGUIオブジェクトとが重なっていたか否かを判定する処理等を行うことができる。
 (5)前記インタプリタ部は、前記スクリプト変数に基づいて、アニメーションを開始してから完了するまでの1又は複数の描画時点における前記GUIの状態を示す変更予定情報を生成し、前記変更予定情報を前記アニメーション制御部に出力し、前記アニメーション制御部は、前記変更予定情報が示す描画時点に到達したとき、その描画時点における前記ネイティブ変数を、前記インタプリタ部に出力すると共に、アニメーションが完了したとき完了通知を前記インタプリタ部に出力することが好ましい。
 この構成によれば、(2)と同様、アニメーションの実行速度の低下を防止することができる。また、変更予定情報がインタプリタ部により生成されているため、アニメーション制御部の処理負担を軽減させることができる。
 (6)前記インタプリタ部は、前記変更予定情報を前記アニメーション制御部に出力することが好ましい。
 この構成によれば、アニメーション制御部も変更予定情報を保持しているため、インタプリタ部及びアニメーション制御部間で授受されるデータ量を減少させることができ、アニメーション制御部及びインタプリタ部の処理負担を軽減することができる。
 (7)前記インタプリタ部は、前記変更予定情報を前記アニメーション制御部に出力したとき、前記アニメーション描画指示が実行中であることを示すフラグを立て、前記完了通知を受けたとき、前記フラグを倒し、前記フラグを立てている間に、所定の入力イベントが発生した場合、前記アニメーション制御部に前記ネイティブ変数を出力させる同期処理を実行することが好ましい。
 この構成によれば、(4)と同じ効果を得ることができる。
 (8)前記変更予定情報は、アニメーションが開始されてから何番目のフレームであるかを示すタイムスタンプを用いて前記描画時点を示すことが好ましい。
 この構成によれば、タイムスタンプにより描画時点が指定されているため、アニメーション制御部は、アニメーションが開始されてから、更新されるフレーム数をカウントするだけで、ネイティブ変数の出力タイミングを検出することができる。
 (9)前記変更予定情報は、前記描画時点におけるGUIオブジェクトの属性情報を含むことが好ましい。
 この構成によれば、スクリプトデータで定義されている属性情報を用いて変更予定情報を生成することができるため、簡便な処理により変更予定情報を生成することができる。
 (10)前記インタプリタ部は、前記アニメーション描画指示を解釈したとき、画面上に表示されたポインタの位置を前記アニメーション制御部に出力し、前記アニメーション制御部は、前記インタプリタ部から出力されたポインタの位置を記憶装置に記憶させ、アニメーションの実行中に前記記憶装置に記憶させたポインタの位置と前記ネイティブ変数とを比較することで、前記GUIを構成するGUIオブジェクトとの前記ポインタとの重なり状態が変化したことを検出したとき、そのときの前記ネイティブ変数を前記インタプリタ部に出力することが好ましい。
 この構成によれば、インタプリタ部は、アニメーションの実行途中において、入力イベントが発生して、GUIオブジェクトの現在の状態を認識する必要が生じた場合、アニメーション制御部12からネイティブ変数を取り込むことで、GUIオブジェクトの現在の状態を認識することができる。
 (11)グラフィクスプロセッサ部を制御するグラフィクス描画制御部を更に備え、前記アニメーション制御部は、1フレームの描画時点に到達する毎に、前記ネイティブ変数を更新し、1フレームを描画するための描画指示を前記グラフィクス描画制御部に出力し、前記グラフィクス描画制御部は、前記アニメーション制御部から描画指示を受け付けると、受け付けた描画指示を、前記グラフィクスプロセッサ部が実行可能な低レベルの描画コマンドに分解し、描画コマンドを前記グラフィクスプロセッサ部に出力することが好ましい。
 この構成によれば、アニメーション制御部は、低レベルの描画処理をグラフィクス描画処理部に実行させるため、アニメーション制御部の処理負担を軽減することができる。
 (12)前記インタプリタ部は、ハッシュ検索を用いて前記スクリプト変数にアクセスすることが好ましい。
 この構成は、処理負担の大きなハッシュ検索を用いてスクリプト変数がアクセスされるが、(1)等の構成を採用することで、このアクセスの回数が減り、アニメーションの実行速度を上げることができる。
 本発明にかかるGUIアニメーション描画装置は、インタプリタ型のスクリプト言語で記述されたGUIアニメーションを高速に描画することができるため、Webブラウザを搭載する機器において有用である。

Claims (14)

  1.  インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示するアニメーション描画装置であって、
     前記スクリプトデータをインタプリタ方式で逐次解釈するインタプリタ部と、
     ネイティブ言語で記述されたプログラムモジュールを実行することで、前記GUIをアニメーション表示するアニメーション制御部とを備え、
     前記インタプリタ部は、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力し、
     前記アニメーション制御部は、前記描画依頼を受け付けたとき、前記スクリプト変数を前記ネイティブ言語の形式のネイティブ変数に変換し、前記ネイティブ変数を逐次更新しながら前記GUIをアニメーション表示するアニメーション描画装置。
  2.  前記アニメーション制御部は、前記スクリプト変数に基づいて、アニメーションを開始してから完了するまでの1又は複数の描画時点における前記GUIの状態を示す変更予定情報を生成し、前記変更予定情報が示す描画時点に到達したとき、その描画時点における前記ネイティブ変数を前記インタプリタ部に出力すると共に、アニメーションが完了したとき完了通知を前記インタプリタ部に出力する請求項1記載のアニメーション描画装置。
  3.  前記アニメーション制御部は、前記変更予定情報を前記インタプリタ部に出力する請求項2記載のアニメーション描画装置。
  4.  前記インタプリタ部は、アニメーションが開始されたとき、前記スクリプト変数が前記ネイティブ変数と同期していないことを示す非同期フラグを立て、前記アニメーション制御部から前記完了通知を受けたとき、前記非同期フラグを倒し、前記非同期フラグを立てている間に、ユーザが入力装置を操作することで所定の入力イベントが発生した場合、前記アニメーション制御部に前記ネイティブ変数を出力させる同期処理を実行する請求項2又は3記載のアニメーション描画装置。
  5.  前記インタプリタ部は、前記スクリプト変数に基づいて、アニメーションを開始してから完了するまでの1又は複数の描画時点における前記GUIの状態を示す変更予定情報を生成し、前記変更予定情報を前記アニメーション制御部に出力し、
     前記アニメーション制御部は、前記変更予定情報が示す描画時点に到達したとき、その描画時点における前記ネイティブ変数を、前記インタプリタ部に出力すると共に、アニメーションが完了したとき完了通知を前記インタプリタ部に出力する請求項1記載のアニメーション描画装置。
  6.  前記インタプリタ部は、前記変更予定情報を前記アニメーション制御部に出力する請求項5記載のアニメーション描画装置。
  7.  前記インタプリタ部は、アニメーションが開始されたとき、前記スクリプト変数が前記ネイティブ変数と同期していないことを示す非同期フラグを立て、前記アニメーション制御部から前記完了通知を受けたとき、前記非同期フラグを倒し、前記非同期フラグを立てている間に、ユーザが入力装置を操作することで所定の入力イベントが発生した場合、前記アニメーション制御部に前記ネイティブ変数を出力させる同期処理を実行する請求項5又は6記載のアニメーション描画装置。
  8.  前記変更予定情報は、アニメーションが開始されてから何番目のフレームであるかを示すタイムスタンプを用いて前記描画時点を示す請求項2~7のいずれかに記載のアニメーション描画装置。
  9.  前記変更予定情報は、前記描画時点におけるGUIオブジェクトの属性情報を含む請求項2~8のいずれかに記載のアニメーション描画装置。
  10.  前記インタプリタ部は、前記アニメーション描画指示を解釈したとき、画面上に表示されたポインタの位置を前記アニメーション制御部に出力し、
     前記アニメーション制御部は、前記インタプリタ部から出力されたポインタの位置を記憶装置に記憶させ、アニメーションの実行中に前記記憶装置に記憶させたポインタの位置と前記ネイティブ変数とを比較することで、前記GUIを構成するGUIオブジェクトとの前記ポインタとの重なり状態が変化したことを検出したとき、そのときの前記ネイティブ変数を前記インタプリタ部に出力する請求項1記載のアニメーション描画装置。
  11.  グラフィクスプロセッサ部を制御するグラフィクス描画制御部を更に備え、
     前記アニメーション制御部は、1フレームの描画時点に到達する毎に、前記ネイティブ変数を更新し、1フレームを描画するための描画指示を前記グラフィクス描画制御部に出力し、
     前記グラフィクス描画制御部は、前記アニメーション制御部から描画指示を受け付けると、受け付けた描画指示を、前記グラフィクスプロセッサ部が実行可能な低レベルの描画コマンドに分解し、描画コマンドを前記グラフィクスプロセッサ部に出力する請求項1~10のいずれかに記載のアニメーション描画装置。
  12.  前記インタプリタ部は、ハッシュ検索を用いて前記スクリプト変数にアクセスする請求1~11のいずれかに記載のアニメーション描画装置。
  13.  インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示するアニメーション描画装置としてコンピュータを機能させるアニメーション描画プログラムであって、
     前記スクリプトデータをインタプリタ方式で逐次解釈するインタプリタ部と、
     ネイティブ言語で記述されたプログラムモジュールを実行することで、前記GUIをアニメーション表示するアニメーション制御部としてコンピュータを機能させ、
     前記インタプリタ部は、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力し、
     前記アニメーション制御部は、前記描画依頼を受け付けたとき、前記スクリプト変数を前記ネイティブ言語の形式のネイティブ変数に変換し、前記ネイティブ変数を逐次更新しながら前記GUIをアニメーション表示するアニメーション描画プログラム。
  14.  インタプリタ型のスクリプト言語で記述されたスクリプトデータを実行することでGUI(グラフィカルユーザインターフェイス)をアニメーション表示するアニメーション描画方法であって、
     インタプリタ部が、前記スクリプトデータをインタプリタ方式で逐次解釈するインタプリタステップと、
     アニメーション制御部が、ネイティブ言語で記述されたプログラムモジュールを実行することで、前記GUIをアニメーション表示するアニメーション制御ステップとを備え、
     前記インタプリタステップは、所定のスクリプト変数を用いて定義されたアニメーション描画指示を解釈したとき、描画依頼を前記アニメーション制御部に出力し、
     前記アニメーション制御ステップは、前記描画依頼を受け付けたとき、前記スクリプト変数を前記ネイティブ言語の形式のネイティブ変数に変換し、前記ネイティブ変数を逐次更新しながら前記GUIをアニメーション表示するアニメーション描画方法。
PCT/JP2011/003716 2010-07-23 2011-06-29 アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法 WO2012011228A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012525301A JP5715133B2 (ja) 2010-07-23 2011-06-29 アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法
CN201180003952.3A CN102511055B (zh) 2010-07-23 2011-06-29 动画描绘装置以及动画描绘方法
US13/497,348 US8963929B2 (en) 2010-07-23 2011-06-29 Animation drawing device, computer-readable recording medium, and animation drawing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-165987 2010-07-23
JP2010165987 2010-07-23

Publications (1)

Publication Number Publication Date
WO2012011228A1 true WO2012011228A1 (ja) 2012-01-26

Family

ID=45496666

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/003716 WO2012011228A1 (ja) 2010-07-23 2011-06-29 アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法

Country Status (4)

Country Link
US (1) US8963929B2 (ja)
JP (1) JP5715133B2 (ja)
CN (1) CN102511055B (ja)
WO (1) WO2012011228A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140148423A (ko) * 2012-04-12 2014-12-31 구글 인코포레이티드 사용자에 디스플레이되는 애니메이션 변경
JP2016004319A (ja) * 2014-06-13 2016-01-12 キヤノン株式会社 装置、方法、及びプログラム
JP2016127513A (ja) * 2015-01-07 2016-07-11 株式会社クリエ・ジャパン 動画生成サーバ、動画生成プログラム、動画生成方法、動画生成システム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798524B1 (en) * 2007-12-04 2017-10-24 Axway, Inc. System and method for exposing the dynamic web server-side
US20130063446A1 (en) * 2011-09-10 2013-03-14 Microsoft Corporation Scenario Based Animation Library
US10084611B2 (en) * 2012-06-29 2018-09-25 Siemens Schweiz Ag Programmable symbol animation pre-processor for building automation graphics
US20160269758A1 (en) * 2013-11-05 2016-09-15 Utc Fire And Security Americas Corporation, Inc. Drawing operation replay in memory
USD742971S1 (en) * 2014-06-26 2015-11-10 Peccini Silvano E Figlio Di Peccini Silvano & C. Target
US9734798B2 (en) * 2015-03-17 2017-08-15 Dreamworks Animation Llc Timing-based scheduling for computer-generated animation
CN106485771B (zh) * 2015-08-27 2019-07-19 博雅网络游戏开发(深圳)有限公司 动画性能检测方法和系统
CN110020370B (zh) * 2017-12-25 2023-03-14 阿里巴巴集团控股有限公司 在客户端应用中实现动画的方法、装置及动画脚本的框架
CN110634174B (zh) * 2018-06-05 2023-10-10 深圳市优必选科技有限公司 一种表情动画过渡方法、系统及智能终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001006001A (ja) * 1999-06-18 2001-01-12 Hitachi Ltd 三次元表現制御システムと方法およびその処理プログラムを記録した記録媒体
JP2002169696A (ja) * 2000-12-04 2002-06-14 Mitsubishi Electric Corp データ処理装置
JP2009211187A (ja) * 2008-02-29 2009-09-17 Hitachi Ltd 情報処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764241A (en) * 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
US6389590B1 (en) * 1999-06-22 2002-05-14 Microsoft Corporation Indefinite-size variables within an intermediate language
US6785691B1 (en) * 1999-10-13 2004-08-31 Avaya Technology Corp. Object oriented processing system and data sharing environment for applications therein
JP3755499B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム
JP3963174B2 (ja) * 2003-03-14 2007-08-22 オムロン株式会社 表示・編集装置及び表示方法並びにプログラム
US7746347B1 (en) * 2004-07-02 2010-06-29 Nvidia Corporation Methods and systems for processing a geometry shader program developed in a high-level shading language
WO2008018465A1 (fr) * 2006-08-11 2008-02-14 Panasonic Corporation processeur d'événement

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001006001A (ja) * 1999-06-18 2001-01-12 Hitachi Ltd 三次元表現制御システムと方法およびその処理プログラムを記録した記録媒体
JP2002169696A (ja) * 2000-12-04 2002-06-14 Mitsubishi Electric Corp データ処理装置
JP2009211187A (ja) * 2008-02-29 2009-09-17 Hitachi Ltd 情報処理装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Part2 Browser ga Kawaru Apuri Taio ni Shinka shita HTML 5 Nandemo Dekiru Web ni Naru", NIKKEI NETWORK, 28 August 2009 (2009-08-28), pages 29 - 33 *
FUMIO NONAKA: "Macromedia Flash MX ActionScript Step Up Koza", MAC POWER, vol. 14, no. 11, 1 November 2003 (2003-11-01), pages 160 - 161 *
HAJIME MORITA: "Dai 2 Bu <Tettei Kaibo> Shingata Engine 'V8' wa Naze Hayai noka", NIKKEI ELECTRONICS, 3 November 2008 (2008-11-03), pages 61 - 73 *
YOSHINORI TAKESAKO: "Capter 1 Ima, Software Gijutsu no Sekai de Okiteiru Koto Kosokuka Kyoso wa CPU kara JavaScript Engine e", SOFTWAREDESIGN, 18 May 2010 (2010-05-18), pages 17 - 20 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140148423A (ko) * 2012-04-12 2014-12-31 구글 인코포레이티드 사용자에 디스플레이되는 애니메이션 변경
JP2016004319A (ja) * 2014-06-13 2016-01-12 キヤノン株式会社 装置、方法、及びプログラム
US10228890B2 (en) 2014-06-13 2019-03-12 Canon Kabushiki Kaisha Apparatus, method, and non-transitory computer-readable storage medium
JP2016127513A (ja) * 2015-01-07 2016-07-11 株式会社クリエ・ジャパン 動画生成サーバ、動画生成プログラム、動画生成方法、動画生成システム

Also Published As

Publication number Publication date
CN102511055A (zh) 2012-06-20
JP5715133B2 (ja) 2015-05-07
US20120236007A1 (en) 2012-09-20
CN102511055B (zh) 2015-04-01
JPWO2012011228A1 (ja) 2013-09-09
US8963929B2 (en) 2015-02-24

Similar Documents

Publication Publication Date Title
JP5715133B2 (ja) アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法
KR101862180B1 (ko) 스푸프 클록의 사용 및 미세 수준 주파수 제어를 통한 역 호환성
RU2420806C2 (ru) Плавные переходы между анимациями
AU2012203414B2 (en) List display apparatus
US9047389B2 (en) Information display device
JP2006148510A (ja) 画像処理装置および画像処理プログラム
JP6220079B2 (ja) 表示制御装置、表示制御方法および表示制御プログラム
CN110020300B (zh) 一种浏览器页面合成方法及终端
US7793012B2 (en) Information processing unit, system and method, and processor
JP5672311B2 (ja) 同期処理方法
EP3008697B1 (en) Coalescing graphics operations
JP2000200179A (ja) 組込みシステム内におけるバッファレス子グラフィックス・コンテキストを使用したアプレット及びアプリケ―ションの表示
WO2018217970A2 (en) Method and apparatus for hardware accelerated graphics rendering in bridge apis
WO2023134655A1 (zh) 操作方法、装置、电子设备和计算机可读存储介质
JP2010175786A (ja) 状態表示装置
JPH10244044A (ja) パチンコ機の可変表示装置
JP5087031B2 (ja) 表示制御装置、入力操作装置、表示システム、及び管制システム
JP2007301020A (ja) ゲームプログラムおよびゲーム装置
KR20130022406A (ko) 캠 데이터 작성 장치 및 캠 데이터 작성 프로그램
JP5407590B2 (ja) 画像表示装置
CN117270855A (zh) 一种基于vue实现表格高度自适应的方法
CN112540711A (zh) 一种在网页端选取三维空间物体的控制方法、装置及设备
JP2020042337A (ja) 情報処理装置及びプログラム
JP2019075111A (ja) 情報処理装置、画像表示方法、および画像表示プログラム
Feske et al. Genode FX: an FPGA-based GUI with Bounded Output Latency and Guaranteed Responsiveness to User Input

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180003952.3

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11809407

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012525301

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13497348

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11809407

Country of ref document: EP

Kind code of ref document: A1