JP3734528B2 - プログラム処理方法およびそれを用いたアニメーション表示装置 - Google Patents
プログラム処理方法およびそれを用いたアニメーション表示装置 Download PDFInfo
- Publication number
- JP3734528B2 JP3734528B2 JP12072295A JP12072295A JP3734528B2 JP 3734528 B2 JP3734528 B2 JP 3734528B2 JP 12072295 A JP12072295 A JP 12072295A JP 12072295 A JP12072295 A JP 12072295A JP 3734528 B2 JP3734528 B2 JP 3734528B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- routine
- display
- animation
- instruction
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Description
【産業上の利用分野】
本願発明は、プログラム処理方法およびそれを用いたアニメーション表示装置に関し、特に、例えば、コンピュータグラフィックスによりアニメーション映像を表示するためのプログラム処理方法およびアニメーション表示装置に関する。より具体的には、初心者が小規模のアニメーション映像を作成する場合に、簡便に表示シーケンスを定義できるようにするためのものである。
【0002】
【従来の技術】
従来のプログラム記述言語としては、BASICやC言語といったものがある。これらはパーソナルコンピュータのプログラムを作成するための汎用のプログラム記述言語であり、アニメーション表示のみならず、データベースやワードプロセッサ、あるいは表計算ソフト等のプログラム開発に広く用いられている。
【0003】
これらのプログラム記述言語は、演算命令,I/O制御命令および分岐命令を含む。また、I/O制御命令は、表示制御命令,フロッピーディスク制御命令,プリンタ制御命令およびネットワーク制御命令等を含む。熟練したプログラマーは、これら命令を組み合わせて、大規模で複雑なプログラムを作成できる。
【0004】
分岐命令は、絶対分岐命令,条件分岐命令,ループ命令およびサブルーチン命令等を含む。サブルーチン命令は、サブルーチンコール命令とリターン命令を含み、プログラムの構造化に用いられる。プログラマーは、プログラムの各部分を機能的に分類し、サブルーチンとしてこれを整理する。サブルーチンは、メインルーチン上あるいはサブルーチン上からサブルーチンコール命令を用いて呼び出され、特定の処理を目的として利用される。呼び出されたサブルーチンは、終端に設置されるリターン命令によってその処理を終了し、呼び出された元のプログラム(すなわちサブルーチンコール命令が実行されたプログラム)に復帰するよう制御される。
【0005】
図1は、従来のサブルーチンを用いた場合のプログラムフローである。従来のプログラムの流れは、図1に示すようにメインルーチンからサブルーチンへ移行し、予め指定された処理を終了した後、再びメインルーチンへ復帰する。このようなサブルーチン手法は、回帰型サブルーチンと考えられる。この方法によれば、プログラムフローの道筋が一義的に決定されるため、プログラマーが処理の流れを把握しやすく、不具合が生じた時にプログラムを修正する作業(以降デバッグと呼ぶ)を比較的容易に行うことができる。
【0006】
一方、メインルーチンとサブルーチンとの組み合わせによるプログラム処理以外の処理方法としては、マルチタスクと呼ばれる手法がある。マルチタスクは、複数のプログラムを時分割で並列動作させる手法であり、これを用いることによって複数のプログラムがあたかも同時に実行されているかのように処理される。この手法は、例えばワードプロセッサにおいて、文章を編集しながら他の文章を印刷する場合に用いられる。
【0007】
【発明が解決しようとする課題】
従来のプログラム記述言語は、熟練したプログラマーが大規模で複雑なプログラムを作成するのに適しているが、初心者が簡単なアニメーション映像を表示するためにこれを用いる場合、大変な熟練を要する。なぜならば、これらのプログラム記述言語は、プログラムの流れを制御するための分岐命令を熟知しなければ、表示制御命令を有効的に利用することができないためである。そのため、比較的簡単なアニメーション映像プログラムを手軽に、しかも大量に作成するための方法が求められている。例えば、衛星データ放送や文字放送に代表されるデータ放送において、放送局は常にデータを視聴者に供給する義務を有するので、プログラムを迅速かつ用意に作成できることが要求されるからである。通常のTV放送であれば、TVカメラによって比較的容易にデータを作成することが可能であるが、データ放送の場合は、データの供給源が熟練したプログラマーに依存し、かつデータの作成に多大の時間を要する。
【0008】
また、従来のプログラム記述言語は、コンピュータのCPUにとって処理しやすいプログラム構造を持つため、人間の通常の思考形態とはかけはなれた論理構造を有する。例えば、図2に示すアニメーション画像を生成する場合、人間の思考形態では、「左から右へ飛んできた矢100が右から左へ飛んできた板102に衝突したとき、矢100はまっすぐ突き抜けるが、板102は2つに分裂して一方(104)が左上に、他方(106)が左下に回転しながら飛んでゆく」というように、個々の物体(オブジェクト)の動きに分けて認識される。これに対して従来のプログラム記述言語では、「全体的な時間進行の中で、各々の矢100,板102,分裂した板104および106がどの位置に存在する。」というように、連続的な時間経過における全物体の座標位置の変化が重要であるため、プログラマは個々の物体の動きを時間軸を基準として統合するという作業が必要であった。熟練したプログラマならば無意識のうちに個別物体の動きを時間経過によって統合し、これをプログラム記述言語で容易に表現することができる。しかし、初心者にはこの時間経過による統合を概念的に把握することが難しく、よほど熟練しなければ正常に動作するプログラムを作成することが困難である。
【0009】
時間経過による統合が必要な理由は、回帰型サブルーチンにある。従来のプログラム記述言語のような回帰型サブルーチンは、プログラムの流れを追うには便利であるが、反面、異なるサブルーチンを同時に処理することができない。例えば図2において、矢100を動かすサブルーチンと板102を動かすサブルーチンを別々にプログラムすると、これを同時に処理することができないため、矢100と板102を同時に動かすことができない。この場合は、2つのサブルーチンを時分割的に処理するように矢と板を時間軸で統合した統合プログラムを作成する必要が生ずる。
【0010】
一方、マルチタスクを用いて複数のサブルーチンを同時に処理するという初期的な試みもなされている。前述のワードプロセッサーでは、マルチタスク処理により、文章編集と文章印刷の2つのサブルーチンを同時に処理している。しかしながら、従来のマルチタスク処理では、各々のサブルーチンの間に関連性がなく、2つのサブルーチンが単純に並列的に処理されているだけのものであった。したがって、例えば矢が動くプログラムと板が動くプログラムを準備しても、各々の時間軸方向の調整をとることができないため、1つのプログラムから他のプログラムへの切換タイミングを結果的に所望する物体が表示されるようプログラム毎に調整する必要がある。
【0011】
従って、従来のマルチタスク処理では、時分割処理の切り替えタイミングが各々のサブルーチンによって任意に決定されるため、全体的なプログラムの進行状況を一義的に決定することができない。したがって各々のサブルーチンを関連付け、多くのサブルーチンを同時に動作させると、特定の処理がどのタイミングで行われるかがを判別できずデバッグが困難になるという問題点があった。
【0012】
それゆえに、本願発明の目的は、初心者や未熟なプログラマーでも、コンピュータグラフィックスを用いて比較的小規模のアニメーション表示プログラムを容易に作成することが可能な、プログラム処理方法およびアニメーション表示装置を提供することである。
【0013】
本願発明の他の目的は、個々の非回帰型サブルーチンを時間的に関連付けながらも、デバッグが容易なプログラム処理方法およびアニメーション表示装置を提供することである。
【0014】
【課題を解決するための手段】
本願第1の発明のプログラム処理方法は、コンピュータグラフィックスによりアニメーション映像をディスプレイに表示するために用いられるプログラム処理方法において、表示オブジェクトに対応する複数のプログラムルーチン(図6のUNIT1〜UNIT4)と、少なくとも1つの表示オブジェクトに対応するプログラムルーチンを起動するための起動命令を含むエントリルーチン(UNIT0)とを有するアニメーションプログラムを入力するステップ(S1,S2)と、前記エントリルーチンを起動するステップ(S3)と、前記エントリルーチンに含まれる起動命令に応答して、前記表示オブジェクトに対応するプログラムルーチンを起動するステップ(図9のS44)と、前記プログラムルーチンが複数個起動した時に順次各プログラムルーチンの一部を時分割処理し、各プログラムルーチンに対応するオブジェクトを各々発生するステップ(図15のS460,S462)と、発生した複数のオブジェクトを一表示単位としてディスプレイ表示するステップ(図8のS6)とを含み、少なくとも1つの表示オブジェクトに対応するプログラムルーチンは、他の表示オブジェクトを新たに表示するために、該表示オブジェクトに対応するプログラムルーチンを新たに起動する起動命令を含み、この起動命令に応答して他の表示オブジェクトを新たに表示するステップとを含む。
【0015】
本願第2の発明のアニメーション表示装置は、コンピュータグラフィックスによりアニメーション映像をディスプレイに表示するために用いられるものであって、表示オブジェクトに対応する複数のプログラムルーチンおよび少なくとも1つの表示オブジェクトに対応する起動命令を含むアニメーションプログラムを入力する入力手段(実施例との対応関係を示せば、放送受信アダプタ4)と、前記アニメーションプログラムを記憶する記憶手段(メモリパック7)と、実行すべき前記プログラムルーチンを識別する識別データを記憶する識別データ記憶手段(図7のアクティブユニット記憶領域)と、アニメーションプログラムを実行することにより、前記起動命令に応答して対応するプログラムルーチンの識別データを前記識別データ記憶手段に記憶し、識別データに基づいて複数のプログラムルーチンを時分割処理する処理手段(CPU24)と、前記処理手段の時分割処理によって、複数のプログラムルーチンの各々に対応して発生される表示オブジェクトを合成し、一表示単位としてディスプレイに出力する表示画像出力手段(PPU28)とを含み、少なくとも1つの表示オブジェクトに対応するプログラムルーチンは、他の表示オブジェクトを新たに表示するために、該表示オブジェクトに対応するプログラムルーチンを新たに起動する起動命令を含み、この起動命令に応答して他の表示オブジェクトを新たに表示する手段とを備える。
【0016】
【作用】
キーボード,外部記憶媒体,モデムまたはデータ放送受信装置からアニメーションプログラムが入力される。アニメーションプログラムは、表示オブジェクトに対応する複数のプログラムルーチンと、動作を開始するためのエントリルーチンとを含む。次にアニメーション表示装置は、エントリルーチンを起動する。エントリルーチンは、プログラムルーチンの起動命令を含む。この起動命令によって前記表示オブジェクトに対応するプログラムルーチンが起動する。これら複数のプログラムルーチンを時分割で処理することにより、複数のオブジェクト画像を同時に生成する。又、表示オブジェクトのプログラムルーチンから新たな他の表示オブジェクトの表示を可能とし、両表示オブジェクト間の表示タイミングを合わせ易くする。時分割処理が一巡すると、アニメーション表示装置は生成されたオブジェクト画像を1画面分の表示データとしてディスプレイ上に表示する。
【0017】
また、入力手段は、アニメーションプログラムを入力する。記憶手段は、入力手段によって入力されたアニメーションプログラムを記憶する。処理手段は記憶手段に記憶されたアニメーションプログラムに含まれる起動命令に応答して、実行すべきプログラムルーチンの識別データを識別データ記憶手段に登録し、この登録情報に基づいてプログラムルーチンを時分割に処理する。処理された各プログラムルーチンは対応するオブジェクトを発生し、表示画像出力手段は発生した複数のオブジェクトを1画面分の表示データとしてディスプレイに出力する。又、表示オブジェクトのプログラムルーチンから新たな他の表示オブジェクトの表示を可能とし、両表示オブジェクト間の表示タイミングを合わせ易くする。
【0018】
プログラムルーチンは対応するオブジェクト画像を表示する。また、複数のプログラムルーチンは時分割で実行される。そのため、オブジェクト別にプログラムルーチンを作成するだけで、自動的に複数のオブジェクトが同時に表示される。又、表示オブジェクトのプログラムルーチンから新たな他の表示オブジェクトの表示を可能とし、両表示オブジェクト間の表示タイミングを合わせ易くする。このため初心者でも簡便にアニメーション画像を作成することができる。また、オブジェクトの表示を変更したい場合でも、プログラムルーチンがオブジェクトに対応しているため、容易にプログラムを変更できる。
【0019】
この発明の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかになろう。
【0020】
【実施例】
図3は本願発明のアニメーション表示装置の一例のブロック図である。この実施例のアニメーション表示装置は、ゲーム機に放送受信アダプタを接続することにより衛星データ放送を受信し、受信したデータに基づいてアニメーション映像を再生するものである。具体的には、アニメーション表示装置(画像表示装置)の一例のゲーム機2には、放送受信アダプタ4、メモリカートリッジ6およびコントローラ8が接続される。メモリカートリッジ6には、受信したデータを保存するためのメモリパック7が接続される。コントローラ8は、ユーザーが操作情報を入力するために用いられる。
【0021】
BSアンテナ10は、衛星データ放送を受信し、その受信データをBSチューナ12に与える。BSチューナ12は、複数の衛星放送の中から特定のチャンネルを検波し、副搬送波で伝送されるPCMデジタル音声信号およびデジタルデータを放送受信アダプタ4に出力する。PCMデコーダ22は、BSチューナ12から与えられたPCMデジタル音声信号をデコードし、D−Aコンバータ23を介してアナログステレオオーディオ信号を生成し、ゲーム機2内のミキサー38に出力する。データチャンネルデコーダ20は、BSチューナ12から与えられたデジタルデータをデコードする。
【0022】
カートリッジ6内のROM46は、データ放送受信プログラムに加えて、アニメーション表示プログラムを実行するためのインタプリタプログラムを記憶する。ゲーム機2内のCPU24は、ROM46に記憶されたデータ放送受信プログラムに基づいて、前記データチャンネルデコーダ20に対して受信すべきデジタルデータを指定する。データチャンネルデコーダ20は、CPU24から指定されたデジタルデータのみをデコードし、内部バッファにストアする。CPU24は、定期的にデータチャンネルデコーダ20を監視し、データが受信された場合にこの受信データをワークRAM26,PS−RAM44,S−RAM42またはフラッシュメモリ49のいずれかのメモリに転送する。
【0023】
転送先のメモリは、受信データの種類によって決定される。例えばCPU24は、放送メニューのような頻繁に受信すべき放送データを、揮発性のメモリであるワークRAM26またはPS−RAM44に記憶させ、環境設定データをS−RAM42に記憶させ、さらにアニメーション表示プログラムをフラッシュメモリ49に保存する。
【0024】
データ放送によって与えられる複数のアニメーション表示プログラムは、主としてフラッシュメモリ49に記憶され、ROM46内のインタプリタプログラムによって解釈され、実行される。フラッシュメモリ49を含むメモリパック7は、コネクタ47および48によって着脱自在に構成される。なお、アニメーション表示プログラムを、S−RAM42,PS−RAM44またはWORK−RAM26に記憶されてもよい。
【0025】
CPU24は、コントローラ8から入力される操作情報に基づいて、前記複数のアニメーション表示プログラムの内の1つを、ROM46に記憶されたインタプリタプログラムを用いて実行し、画像データおよび音声データを生成する。CPU24によって生成された画像データは、PPU28を介してビデオRAM30に格納される。また、CPU24によって生成された音声データはAPU34を介してオーディオRAM36に格納される。
【0026】
PPU28は、ビデオRAM30のデータに基づいて、D−Aコンバータ31およびビデオエンコーダ32と協働してビデオ信号を生成し、TV14に与える。また、PPU28は、TVの垂直ブランキング信号に同期して、CPU24に割り込み信号を発生する。APU34は、オーディオRAM36のデータに基づいて、D−Aコンバータ37と協働してオーディオ信号を生成し、ミキサー38に出力する。ミキサー38は、D−Aコンバータ37からのオーディオ信号と、PCMデコーダ22からのオーディオ信号とを合成し、TV14に与える。
【0027】
図4は本願発明のプログラム処理方法の概念図である。メインプログラム50は、実行時にプログラムカウンタ50a,フレームカウンタ50bおよび対応ワークエリア50cを与えられる。メインプログラム50は、オブジェクトの表示に際して、必要となるオブジェクトと同数のユニットプログラムを起動する。例えば、表示オブジェクト数が2の場合には、図4に示すようにユニットプログラム52、54を起動する。
【0028】
ユニットプログラム52は、主として表示オブジェクトの移動を司るユニットルーチン52aと、主として表示オブジェクトのアニメーションパターンを司るアニメルーチン52bとを含む。ユニットルーチン52aおよびアニメルーチン52bには、実行時にプログラムカウンタ52aa,52baとフレームカウンタ52ab,52bbと対応ワークエリア52ac,52bcとが各々与えられる。
【0029】
プログラムカウンタは、対応するルーチンまたはプログラムにおいて実行すべき命令の位置を示すポインタであり、命令が進行するたびに更新される。フレームカウンタは、表示すべきオブジェクトの表示シーケンスを制御するためのシーケンスカウンタであり、TVの垂直ブランキングに対応して更新される。また、対応ワークエリアは、表示すべきオブジェクトの位置や属性を示すデータを記憶するメモリ領域を示すアドレス値である。ユニットルーチンとアニメルーチンは同じ対応ワークエリアを与えられ、オブジェクトを表示するために必要な各種データを共有する。プログラムポインタ,フレームカウンタおよび対応ワークエリアは、例えば図3のワークRAM26上に記憶される。
【0030】
ユニットプログラム54は、ユニットプログラム52と同じ内部構成を持つ。ユニットプログラムが起動すると、メインプログラムと、各々のユニットプログラムのユニットルーチンおよびアニメルーチンとはそれぞれマルチタスク手法により並列処理される。
【0031】
図2のオブジェクトを図4に対応させた場合、ユニットプログラム52を矢100に、ユニットプログラム54を板102に対応させることができる。この時点では、ユニットプログラム52と54とが並列動作しているため、別々に作成された矢のプログラムと板のプログラムが同時に処理される。具体的には、矢が左から右に動くと同時に、板が右から左へと移動する。各々のプログラムの進行がフレームカウンタによってTVの垂直ブランキングに同期して制御されるため、ユニットプログラム間で動作スピードを調整する必要はない。
【0032】
ユニットプログラム54は、プログラムの終了直前に同様の構造を持つユニットプログラム56および58を生成する。すなわち、ユニットプログラム54は、板102が矢100に当たって消滅したとき、分裂した板の破片104および105を生成する。この時点で並列処理されるユニットプログラムは、矢100と分裂後の板104および105だけとなり、それぞれ別個に作成された各オブジェクトのアニメーションプログラムにしたがって各オブジェクトが表示される。
【0033】
ここで、矢100が2つに折れるという画像を必要とする場合には、折れた矢の表示プログラムを別途作成し、矢100に対応するユニットルーチン52に折れた矢の表示プログラムの起動命令を含めればよい。また、既に表示されているオブジェクトとは無関係に新たなオブジェクトを発生させる場合には、メインプログラムに当該プログラムの起動命令を含めればよい。
【0034】
このように本願発明によると、各オブジェクトに着目してプログラムを作成するだけで、結果的に各々のオブジェクトが連動したアニメーション映像を生成することが可能であるため、時間経過に基づいて各オブジェクト表示プログラムを統合する必要が無く、初心者にも容易にプログラムを作成することが可能となる。
【0035】
図5は、本願発明のプログラム処理方法を用いた場合のプログラムフローである。メインプログラム50はユニットプログラム52および54を生成し、ユニットプログラム54はユニットプログラム56、58を生成する。図の中で上下方向に並ぶプログラムは、マルチタスクによって同時処理される。ユニットプログラム54はユニットプログラム52より遅れて起動するが、この時間差はTVの1フィールド(すなわち約16.7mS)より格段に小さいため、実際の表示においては時間差は生じない。これは、ユニットプログラム56とユニットプログラム56においても同様である。
【0036】
メインプログラム50は、ユニットプログラム54を生成した時点で処理を終了してもよいが、全体を通しての時間を管理するために、何もしない命令(nop命令)を一定時間実行した後、プログラムの終了を意味するエンドマーク表示用ユニットプログラムを起動してもよい。また、メインプログラム50にもアニメルーチンを対応させ、マーカーが画面上を移動するようプログラムしてもよい。こうすることにより、実行時の時間の進みかたを視覚的に確認することができる。
【0037】
図6は具体的なアニメーション表示プログラムの一例である。メインプログラム50は、ユニットプログラムを起動するための命令であるuPUT命令を含む。このuPUT命令は3つのパラメータを必要とする。第1のパラメータはユニットルーチンの開始アドレス(UNIT1およびUNIT2)であり、第2のパラメータは当該ユニットにより処理されるオブジェクトの水平方向の初期座標(X1およびX2)であり、第3のパラメータは同じくオブジェクトの垂直方向の初期座標(Y1およびY2)である。
【0038】
uPUT命令によってユニットルーチンが起動されると、当該ユニットルーチン専用のプログラムカウンタ,フレームカウンタおよび対応ワークエリアがアクティブユニットリストに登録され、前記ユニットルーチンの開始アドレスがプログラムカウンタにセットされ、前記オブジェクトの初期座標が対応ワークエリアにセットされる。アクティブユニットリストとは、マルチタスクによって同時処理されるべきプログラムルーチンの一覧表であり、主としてワークRAM26に設けられる。なお、アクティブユニットリストに登録された時点では、まだこれらのユニットルーチンは実行されない。uPUT命令は複数フレームにまたがるような長期的命令ではないため、メインルーチン50は、2つのユニットルーチンを起動後uEND命令によってただちに処理を終了する。
【0039】
メインルーチン50が終了すると、アクティブユニットリストが検索され、次の実行プログラムであるユニットルーチン52aの処理が開始される。ユニットルーチン52aはアニメルーチンを起動するための命令であるuANIME命令と、オブジェクトを移動させるための命令であるuMOVE命令を含む。uANIME命令は、アニメルーチンの開始アドレス(A)をパラメータとして持ち、uMOVE命令は処理フレーム数(M)、移動パラメータ(I1,J1)をパラメータとして持つ。
【0040】
uANIME命令が実行されると、uPUT命令と同様に当該アニメルーチン専用のプログラムカウンタおよびフレームカウンタがアクティブユニットリストに登録され、前記ユニットルーチンの開始アドレスがプログラムカウンタにセットされる。また、uANIME命令のあるユニットルーチンと共通の対応ワークエリアがアニメルーチンに割り当てられる。uANIME命令もuPUT命令と同様に長期的命令ではないため、アニメルーチン起動後はただちに次のuMOVE命令が実行される。
【0041】
uMOVE命令が実行されると、指定された処理フレーム数がフレームカウンタにセットされ、速度ベクトルという形で与えられる移動パラメータが、対応ワークメモリのオブジェクト位置データに加算される。これによってオブジェクトの位置が変化する。uMOVE命令は長期的命令であるため、フレームカウンタの制御を伴う。移動パラメータ加算後、フレームカウンタがデクリメントされ、フレームカウンタの値が0ならば続けて次の命令を処理し、0でなければユニットルーチン52aの処理を保留して、アクティブユニットリストを検索し、次の実行プログラムであるユニットルーチン54aの処理を開始する。
【0042】
ユニットルーチン54aは、ユニットルーチン52aと同様に、uANIME命令によってアニメルーチン54bを起動した後、uMOVE命令によってオブジェクトの位置を変化させる。ユニットルーチン54a用に設けられたフレームカウンタがデクリメントされ、次の命令を実行するか、ユニットルーチン54aの処理を保留にするかが決定される。ユニットルーチン54aの処理が保留になった場合、アクティブユニットリストが検索され、次の実行プログラムであるアニメルーチン52bの処理が開始される。
【0043】
アニメルーチン52bはuPOSE命令を含む。uPOSE命令は、処理フレーム数「8」と、表示データの格納アドレス(DA1)をパラメータとして持つ。uPOSE命令が実行されると、処理フレーム数がアニメルーチン52b用に設けられたフレームカウンタにセットされ、対応ワークエリアのオブジェクト位置データに基づいてDA1に格納されたオブジェクト画像データを表示バッファに転送する。
【0044】
uPOSE命令は長期的命令であり、オブジェクト画像表示後フレームカウンタがデクリメントされ、次の命令を実行するか、アニメルーチン52bの処理を保留にするかが決定される。ユニットルーチン54aの処理が保留になった場合、次の実行プログラムであるアニメルーチン54bの処理が開始される。アニメルーチン54bにおいて、アニメルーチン52bと同様にuPOSE命令が実行され、対応するオブジェクト画像データ(DB1)が表示バッファに転送される。その後フレームカウンタがデクリメントされ、次の命令を実行するか、アニメルーチン54bの処理を保留にするかが決定される。
【0045】
アニメルーチン54bの処理が保留になった時点で、アクティブユニットリストに登録されているプログラムルーチンの実行が一巡したことになる。ここでこれらアニメーションプログラムは、TVの垂直ブランキングが発生し、ブランキング処理がなされるまで、保留状態を維持する。ブランキング処理において、表示バッファに書き込まれた画像データがビデオRAMに転送され、次のフレームにおいて転送された画像データが表示される。
【0046】
ブランキング処理が終了すると、ユニットルーチン52aの処理が再開される。ここで、メインプログラム50がもうすでに処理を終了している点に留意すべきである。メインプログラム50はuEND命令によってアクティブユニットリスト上の登録を抹消されているため、すでにマルチタスク処理の対象外となっている。
【0047】
ユニットルーチン52aは、前回と同じuMOVE命令を実行する。ただしこの場合には、処理フレーム数(M)はフレームカウンタにはセットされない。フレームカウンタには前回デクリメントしたフレーム数が記憶されており、uMOVE命令がオブジェクトの位置を変化させると、再度フレームカウンタがデクリメントされる。このように長期的命令では、TVフィールドに同期してフレームカウンタがデクリメントされ、フレームカウンタの値が0になるまで同じ処理が繰り返される。
【0048】
同じように、ユニットルーチン54bではuMOVE命令が、アニメルーチン52bおよび54bではuPOSE命令が、それぞれ対応するフレームカウンタの値が0になるまで繰り返される。ここで、各ルーチンの命令が8回繰り返し処理された場合、アニメルーチン52bのuPOSE命令が真っ先にフレームカウンタを0にする。アニメルーチン52bにおいてフレームカウンタが0になると対応するプログラムカウンタが歩進され、次の命令が実行される。
【0049】
次もやはりuPOSE命令であるが、オブジェクト画像データがDA1からDA2に変化している。また、その次のuJUMP命令によってこれら2つのuPOSE命令がくり返し実行されるようにプログラムされている。これにより、アニメルーチン52bは、DA1とDA2を8フィールド毎に交互に表示し、オブジェクトの形状に関するアニメーション画像を制御する。
【0050】
TVフィールドがM回経過すると、ユニットルーチン52aで次のuMOVE命令が実行されるとともにユニットルーチン54aで2つのuPUT命令およびuEND命令が連続的に実行される。一方のuPUT命令でユニットルーチン56aが起動し、もう一方のuPUT命令でユニットルーチン58aが起動する。両ユニットルーチンはそれぞれ対応のアニメルーチン56bおよび58bを起動し、これによってオブジェクト画像DB1が消滅すると同時にDC1からDC4によって表現されるオブジェクト画像およびDD1からDD4によって表現されるオブジェクトオブジェクト画像が出現する。
【0051】
上記のプログラムは図2の絵を表示するためのプログラム例であり、ユニットルーチン52aとアニメルーチン52bが矢のプログラムに対応し、ユニットルーチン54aとアニメルーチン54bが板のプログラムに対応し、ユニットルーチン56a,58a,アニメルーチン56bおよび58bが分裂した板のプログラムに対応している。
【0052】
このようなプログラム処理方法によると、板の分裂制御はプログラム構造によって自動的に決定され、矢と板の衝突タイミングは処理フレーム数Mによって容易に調整されるため、プログラムの際に全オブジェクトの座標を経過時間において統合する必要が無く、初心者でも容易にプログラムを行うことが可能になる。また、オブジェクトと処理ルーチンとが明確に対応しているためデバッグを容易に行うことができる。
【0053】
なお、uMOVE命令において、移動パラメータに速度ベクトルの代わりに最終到達座標を指定することにより、さらにプログラム作成を簡便にすることが可能である。この場合には、処理フレーム数と現在の位置データおよび最終到達座標に基づいて速度ベクトルを予め計算するようにすればよい。
【0054】
図7は、前述のプログラム処理方法を実現するためのメモリマップの一例である。RAMエリア60は図3のワークRAM26,PS−RAM44およびS−RAM42に対応し、ROMエリア62はROM46およびフラッシュメモリ49に対応する。
【0055】
ROMエリア62は、プログラム領域62aとオブジェクト描画データ領域62bを含む。プログラム領域62aは、メインプログラム50,ユニットルーチン52a,54a,56a,58a,アニメルーチン52b,54b,56bおよび58bを含む。また、オブジェクト描画データ領域62bは、オブジェクト描画データDA1,DA2,DB1,DC1,DC2,DC3,DC4,DD1,DD2,DD3およびDD4を含む。これらのルーチンおよびデータは、主としてデータ放送によって伝送され、フラッシュメモリ49に記憶される。しかし、予めROM46に使用頻度の高いオブジェクト描画データを記憶しておくことにより、伝送するデータ量を減少させることができる。
【0056】
メインルーチン,ユニットルーチンおよびアニメルーチンの各命令は、中間言語として伝送され、記憶される。例えば、前述のuPUT命令は、命令コード01Hとして記憶される。これによって、各ルーチンは高速に伝送され、少ない記憶容量でフラッシュメモリ49に記憶される。
【0057】
またROMエリア62は、前述の様々なプログラムをマルチタスクを用いて実行するためのインタプリタプログラムを記憶するインタプリタ領域62cを含む。インタプリタ領域62cは、主としてROM46内に割り当てられるが、放送によってインタプリタプログラムが伝送されたときにフラッシュメモリ49内に設けられてもよい。また、基本的な命令を含むインタプリタプログラム本体はROM46上に記憶され、放送によって伝送された追加すべき命令を含むサブインタプリタはフラッシュメモリ49上に記憶されてもよい。この場合、サブインタプリタは、インタプリタ本体から適時利用される。
【0058】
RAMエリア60は、アクティブユニットリスト記憶領域60a,対応ワークエリア記憶領域60bおよび実行ユニットポインタ領域60cを含む。アクティブユニットリスト領域60aは、各ユニットプログラムに対応するプログラムカウンタ,フレームカウンタおよび対応ワークアドレスを含む。
【0059】
対応ワークエリア記憶領域60bは、ユニットの位置や属性を示すデータを記憶する。実行ユニットポインタ60cは、実行中のユニットプログラムに対応するアクティブユニットリスト上のアドレスを記憶する。実行ユニットポインタ60cは、TVの垂直ブランキングに同期してリセットされ、ユニットプログラムが消滅、あるいは処理を保留するのに対応して歩進される。その結果、次に実行すべきユニットルーチンまたはアニメルーチンのアクティブユニットリスト上のアドレスを順次指定する。
【0060】
実行されるべきユニットプログラムは、アクティブユニットリスト領域60aに専用のプログラムカウンタおよびフレームカウンタが登録され、対応ワークエリア領域に専用の作業領域が割り当てられ、割り当てられた作業領域領域を示す対応ワークアドレスがアクティブユニットリストに登録されることによって能動化される。
【0061】
能動化されたユニットプログラムが実行ユニットポインタ60cによって順次スキャンされることに応じて、対応するROMエリア62上のプログラムが実行される。メインルーチン,ユニットルーチンおよびアニメルーチンは、全てアクティブユニットリスト上で同等のマルチタスクプログラムとして扱われ、リストへの登録順に実行される。
【0062】
ここで、各アニメルーチンがユニットルーチン上から起動している点に着目すべきである。なぜなら、これによってアニメルーチンは対応するユニットルーチンよりも必ずアクティブユニットリスト上の登録が遅れる。したがって、ユニットルーチンによってオブジェクトの位置が変更された後に、アニメルーチンによってその位置にオブジェクトが表示されることになる。
【0063】
これを応用して、1つのユニットルーチンに複数のアニメルーチンを対応させることにより、複数のオブジェクト描画データの組み合わせで1つのオブジェクトを形成してもよい。この場合でも対応ワークアドレスは各アニメルーチンに対してすべて共通に与えられるため、複数のオブジェクト描画データは各々相対的に所定の位置を保ったまま画面上を移動することになる。
【0064】
なお、アニメルーチンを持たないユニットルーチンがあっても良い。例えば、ユニットルーチンは、BGMを発生させるためのサウンド発生プログラムを持っていてもよい。また、ユニットルーチンは、コントローラ8を監視することによりボタンが押された場合にデータ放送受信メニューを発生するプログラムを持っていてもよい。どちらの場合にも画像とは無関係のユニットルーチンであるため、アニメルーチンを特に指定する必要はない。
【0065】
さらに、アニメルーチンをユニットルーチン内に組み込むことにより、専用のアニメルーチンを持たないように構成することも可能である。例えば、図2における板のように、対応するオブジェクト描画データが1つ(図6におけるDB1)しか無い場合、ANIME命令に代えて直接POSE命令をユニットルーチンに記述することができる。
【0066】
この場合、ユニットルーチンの対応ワークエリアには、組込みアニメルーチンであることを示すフラグと、実行すべき命令(例えばPOSE命令)の位置を示すアドレスが記憶される。動作においては、ユニットルーチンの処理終了後、このフラグが参照され、指定されたアドレスの命令が実行されることにより、オブジェクトが表示される。
【0067】
また、組込みアニメルーチンと同様に、複数の命令からなるアニメルーチンを対応ワークエリアを用いて処理するようにしてもよい。この場合には、アクティブユニットリスト上にアニメルーチンは登録されず、対応ワークエリア上にはアニメルーチンのプログラムカウンタとともに、アニメルーチン用のフレームカウンタが設けられる。ユニットルーチン終了時にこれらプログラムカウンタおよびフレームカウンタが参照され、自動的に対応するアニメルーチンが実行される。
【0068】
図8は本願のプログラム処理方法の全体的な流れを示すフローチャートである。アニメーション表示装置の電源が投入されると、S1においてアニメーションプログラムが放送受信アダプタ4(図3)を介して受信される。受信されたアニメーションプログラムは、S2においてメモリパック7(図3)に保存され、S3においてCPU24(図3)により起動される。
【0069】
S3においてアニメーションプログラムが起動されると、S4においてエントリルーチンであるメインプログラム50(図4)が実行される。メインプログラム50は、S4においてユニットプログラム52および54(図4)を起動する。起動されたユニットプログラム52および54は、S4においてメインプログラム50とともに時分割処理される。また、S4において、ユニットプログラム54は、ユニットプログラム56および58を起動し、時分割処理される。S4の一連の処理をユニット処理と呼び、この詳細は図9を用いて後述する。
【0070】
S4において各プログラムは、他のプログラムの起動制御とともに対応する表示オブジェクトの生成を行う。S4の時分割処理が一巡すると、S6において生成された複数の表示オブジェクトが1画面分の画像データとして表示される。実際には、S6は前述のブランキング処理に対応し、ビデオRAM30(図3)へ画像データを転送し、画像データを表示する。S4のユニット処理とS6のブランキング処理は、TVのフィールド周波数に対応して交互に実行される。
【0071】
図9は、ユニット処理のフローチャートである。ユニット処理はアクティブユニットリストの管理および各ユニットプログラムの実行を行うインタプリタによって実施される。インタプリタは、アクティブユニットリストの登録内容にしたがって各ユニットプログラムを実行し、各ユニットプログラム内の起動命令にしたがって指定のプログラムをアクティブユニットリストに登録する。そしてインタプリタは新たに登録されたユニットプログラムをさらに実行する。
【0072】
ユニット処理では、S41においてまずユニットポインタが初期化され、アクティブユニットリストに登録されている先頭のユニットプログラムが指定される。次にS42において指定されたアクティブユニットのプログラムカウンタが参照され、S43においてプログラムカウンタによって示される命令がフェッチされる。フェッチされた命令は、S44において実行される。
【0073】
S44において実行された命令がルーチンの終了を意味する命令(例えばuEND命令)であった場合には、処理がS45からS51へ移行する。そうでない場合には、処理がS45からS46へ移行し、S44において実行された命令が長期的命令であったかどうかがチェックされる。S44において実行された命令が例えばuPUT等の即時実行命令であった場合には、S46からS47に処理が移行し、プログラムカウンタを次の命令位置まで歩進して、再度S43からの処理を繰り返す。
【0074】
S44において実行された命令が例えばuMOVE等の長期的命令であった場合には、S48においてフレームカウンタ制御が行なわれる。もし、フレームカウンタの値が0である場合には、S44で実行された長期的命令のパラメータである処理フレーム数をフレームカウンタにセットし、フレームカウンタの値をデクリメントする。フレームカウンタの値が0でなかった場合には単にデクリメントのみを行う。
【0075】
S48のデクリメントによってフレームカウンタが1から0に変化すると、当該長期的命令の実行が指定された処理フレーム数だけ行なわれたことを意味する。したがってこの場合、コマンドエンドとしてS49からS50へ処理が移行し、プログラムカウンタが歩進される。デクリメントによってフレームカウンタの値が0にならなかった場合には、長期的命令はまだ指定した回数分だけ処理を終えていないということになり、処理をS49からS51に移行して、プログラムカウンタを現行のまま保持する。
【0076】
次にS51においてユニットポインタが歩進され、アクティブユニットリスト上の次のルーチンのプログラムカウンタ位置が示される。アクティブユニットリストに次のルーチンがある場合には、S52からS42に移行して、前述と同様に次のルーチンを処理する。もし、アクティブユニットリストに次のルーチンがない場合には、ユニットエンドとしてS52からS53へ処理が移行し、垂直ブランキングを待ってユニット処理を終了する。
【0077】
ユニット処理が終了すると、ただちにブランキング処理が実行される。また、ブランキング処理が終了すると、ただちに再度ユニット処理が実行される。もし、ユニット処理の処理時間がTVのフィールド表示期間を越えた場合は、複数TVフィールドを用いてアクティブユニットリストのルーチン処理を一巡させる。この場合でもS53で最終的に垂直ブランキングと同期をとっているため、各ルーチン間のフレームカウントスピードには結果的にばらつきが出ず、ユニット処理は常にTVフィールドに同期して実行される。
【0078】
図10は図9のS44において、uPUT命令を実行するためのプログラムフローチャートである。uPUT命令が実行されると、S410においてパラメータに記述された起動アドレスがプログラムカウンタとしてアクティブユニットリスト上に登録され、S412において専用のフレームカウンタが準備される。また、S414において、対応ワークエリアが確保され、対応ワークアドレスがアクティブユニットリストに登録される。さらに対応ワークエリア内に、パラメータとして与えられているオブジェクトの初期位置データが記憶される。
【0079】
図11は、uANIME命令を実行するためのプログラムフローチャートである。uANIME命令が実行されると、S420においてパラメータに記述された起動アドレスがプログラムカウンタとしてアクティブユニットリスト上に登録され、S422において専用のフレームカウンタが準備される。また、S424において、uANIME命令のあるユニットルーチンと同じ対応ワークエリアアドレスが、アクティブユニットリストに登録される。
【0080】
図12は、uEND命令を実行するためのプログラムフローチャートである。uEND命令が実行されると、S430およびS432においてuEND命令のあるユニットルーチンのプログラムカウンタおよびフレームカウンタがアクティブユニットリスト上から削除される。また、S434において対応ワークエリアのメモリ領域が開放され、対応ワークアドレスがアクティブユニットリスト上から削除される。
【0081】
さらに、S436において、uEND命令のあるユニットルーチンと対応関係にある(例えば、共通のワークエリアを持つ)アニメルーチンが検索され、S438において、発見されたアニメルーチンのプログラムカウンタ,フレームカウンタおよび対応ワークアドレスがアクティブユニットリスト上から削除される。
【0082】
図13は、uJUMP命令を実行するためのプログラムフローチャートである。uJUMP命令が実行されると、S440において、パラメータに記述された指定アドレスが、実行中のルーチンに対応するプログラムカウンタにセットされる。これにより次の命令実行時には、指定アドレスから命令フェッチを行うようになる。
【0083】
図14は、uMOVE命令を実行するためのプログラムフローチャートである。uMOVE命令が実行されると、S450において当該uMOVEコマンドが第1回目の実行であるか否かが判断される。第1回目の実行時の場合には、S452において移動パラメータのセットが行なわれる。もし、移動パラメータが最終到達座標である場合には、ここで速度ベクトルが計算され、対応ワークエリアに保存される。また、移動パラメータが速度ベクトルそのものである場合には、単に対応ワークエリアに速度ベクトルを書き移す。
【0084】
第2回目以降の実行時には、S454において対応ワークエリア上の位置データと、第1回目の実行時に保存された速度ベクトルが加算され、新たな位置データとして記憶される。与えられた移動パラメータが速度ベクトルであるか最終到達座標であるかは、専用の識別フラグをパラメータに加えることによって区別してもよいし、uMOVE命令とは異なる命令を用意することにより、一方を速度ベクトル用の命令、他方を最終到達座標用の命令として区別してもよい。
【0085】
図15は、uPOSE命令を実行するためのプログラムフローチャートである。uPOSE命令が実行されると、S460において対応ワークエリアからオブジェクト位置データが読み出され、S462において読み出されたオブジェクト位置と、指定されたオブジェクト描画データに基づいてオブジェクトが表示される。ただし、この段階では単に表示バッファに表示に必要なデータを転送する作業のみが行なわれ、実際のビデオRAMへの書き込みはブランキング処理においてなされる。
【0086】
これらの命令はほんの一例であり、実際にはより多くの、またより複雑な命令が準備される。しかしながら、本願のプログラム処理方法の構成上、プログラムの流れを制御するための命令は従来のプログラム記述言語に比べて極めて少なくできる。そのため、プログラムそのものは、オブジェクトの移動制御あるいはアニメーション制御のための複雑な命令を準備しても構造的に単純であるため、初心者でも容易にプログラムを作成可能である。
【0087】
以上は本願発明を衛星放送を利用したデータ放送で行う例について述べたが、本願のプログラム処理方法によれば簡単なアニメーションプログラムを大量に作成するのに便利であるため、単方向大量通信用のプログラムにおいてその効果を最大限に発揮する。しかし、本願は、広く一般的にプログラムを入力してアニメーションを表示する機器すべてに応用することが可能である。また、本願実施例では、アニメーションプログラムを実行するためにインタプリタを用いたが、コンパイラを用いて実行形式のプログラムに変換した後にこれを実行するようにしてもよい。
【0088】
【発明の効果】
本願発明を用いると、時間的に各サブルーチンに関連を持たせたマルチタスク処理により自動的に経過時間の統合が行なわれる。そのため、初心者や未熟なプログラマーでも物体個々の動きを記述するだけで容易にコンピュータグラフィックスを用いたアニメーション表示プログラムを作成可能である。
【0089】
また、1つのルーチンから他の複数のルーチンを起動できるため、ドミノ倒しのように連鎖的に各ルーチン処理が実行に移される。したがって、特別なプログラムフロー制御命令を用いることなく、簡単なプログラムで複雑なアニメーション画像を作成できる。
【0090】
また、各サブルーチンがTVフィールド周波数に関連して動作するとともに、サブルーチンに対応してオブジェクトの表示が行なわれるため、表示を変更したい場合にプログラムのどの部分を修正すべきかを容易に特定できる。すなわち、プログラムのデバッグ作業が容易である。
【0091】
さらに、オブジェクト単位で動作を指定すればそのままアニメーションプログラムとして利用できるため、対話形式でオブジェクトの動作を指定するようなアニメーションプログラム作成ツールの開発が容易である。このため、アニメーションプログラムが簡便に作成可能となる。
【0092】
このように、初心者でも簡便にプログラムを作成できる本願のプログラム処理方法は、比較的小規模なアニメーションプログラムを大量に必要とするデータ放送等に好適する。これによって放送局は、放送用のデータを大量に、しかも安価に入手可能となる。
【図面の簡単な説明】
【図1】従来のサブルーチンを用いた場合のプログラムフローである。
【図2】アニメーション画像の一例である。
【図3】本願発明のアニメーション表示装置の一例のブロック図である。
【図4】本願発明のプログラム処理方法の概念図である。
【図5】本願発明のプログラム処理方法を用いた場合のプログラムフローである。
【図6】具体的なアニメーション表示プログラムの一例である。
【図7】本願のプログラム処理方法を実現するためのメモリマップの一例である。
【図8】本願のプログラム処理方法の全体的な流れを示すフローチャートである。
【図9】ユニット処理のフローチャートである。
【図10】uPUT命令を実行するためのプログラムフローチャートである。
【図11】uANIME命令を実行するためのプログラムフローチャートである。
【図12】uEND命令を実行するためのプログラムフローチャートである。
【図13】uJUMP命令を実行するためのプログラムフローチャートである。
【図14】uMOVE命令を実行するためのプログラムフローチャートである。
【図15】uPOSE命令を実行するためのプログラムフローチャートである。
Claims (10)
- コンピュータグラフィックスによりアニメーション映像をディスプレイに表示するために用いられるプログラム処理方法であって、表示オブジェクトに対応する複数のプログラムルーチンと、少なくとも1つの表示オブジェクトに対応するプログラムルーチンを起動するための起動命令を含むエントリルーチンとを有するアニメーションプログラムを入力するステップと、前記エントリルーチンを起動するステップと、前記エントリルーチンに含まれる起動命令に応答して、前記表示オブジェクトに対応するプログラムルーチンを起動するステップと、前記プログラムルーチンが複数個起動した時に各プログラムルーチンの一部を順次時分割処理し、各プログラムルーチンに対応するオブジェクトを各々発生するステップと、発生した複数のオブジェクトを一表示単位としてディスプレイ表示するステップとを含み、少なくとも1つの前記表示オブジェクトに対応するプログラムルーチンは、他の表示オブジェクトを新たに表示するために、前記表示オブジェクトに対応するプログラムルーチンを新たに起動する起動命令を含み、さらに、この起動命令に応答して他の表示オブジェクトを新たに表示するステップと、を含むプログラム処理方法。
- 前記表示オブジェクトに対応するプログラムルーチンは、短期的命令と長期的命令を含み、前記複数のオブジェクト画像を表示するステップは、短期的命令を処理した後には同じプログラムルーチンの次の命令を実行し、長期的命令を処理した後には当該プログラムルーチンの実行を保留して次のプログラムルーチンの実行を行うことにより時分割処理を行う特許請求の範囲請求項1に記載のプログラム処理方法。
- 前記表示オブジェクトに対応するプログラムルーチンは、主としてオブジェクトの移動を制御する移動制御ルーチンと、主としてオブジェクトの表示態様を制御する表示制御ルーチンを含み、前記複数のオブジェクト画像を表示するステップは、移動制御ルーチンと表示制御ルーチンを前記時分割処理によって各々実行することにより、対応するオブジェクト画像を表示する特許請求の範囲請求項1に記載のプログラム処理方法。
- コンピュータグラフィックスによりアニメーション映像をディスプレイに表示するために用いられるアニメーション表示装置であって、表示オブジェクトに対応する複数のプログラムルーチンおよび少なくとも1つのオブジェクトに対応する起動命令を含むアニメーションプログラムを入力する入力手段と、前記アニメーションプログラムを記憶する記憶手段と、実行すべき前記プログラムルーチンを識別する識別データを記憶する識別データ記憶手段と、アニメーションプログラムを実行することにより、前記起動命令に応答して対応するプログラムルーチンの識別データを前記識別データ記憶手段に記憶し、識別データに基づいて複数のプログラムルーチンを時分割処理する処理手段と、前記処理手段の時分割処理によって、複数のプログラムルーチンの各々に対応して発生される表示オブジェクトを合成し、一表示単位としてディスプレイに出力する表示画像出力手段とを含み、少なくとも1つの前記表示オブジェクトに対応するプログラムルーチンは、他の表示オブジェクトを新たに表示するために、前記表示オブジェクトに対応するプログラムルーチンを新たに起動する起動命令を含み、さらに、この起動命令に応答して他の表示オブジェクトを新たに表示する手段と、を備えるアニメーション表示装置。
- 前記プログラムルーチンは、複数の表示画像の出力にまたがって実行される長期的命令を含み、前記処理手段は長期的命令の実行に対応して、前記識別データ記憶手段に記憶された識別データに基づいて前記プログラムルーチンを順次実行し、前記時分割処理を達成する請求項4に記載のアニメーション表示装置。
- 前記識別データ記憶手段は、プログラムルーチン上の実行すべき命令位置を記憶するプログラムカウンタ記憶手段と、長期的命令の実行回数の計数値を記憶するフレームカウンタ記憶手段と、を含む請求項5に記載のアニメーション表示装置。
- コンピュータグラフィックスによりアニメーション映像をディスプレイに表示するアニメーション表示装置を制御する方法であって、
表示オブジェクトに対応する複数のプログラムルーチンと、少なくとも1つの表示オブジェクトに対応するプログラムルーチンを起動するための起動命令を含むエントリルーチンとを有するアニメーションプログラムが入力されるステップと、
前記エントリルーチンを起動するステップと、
前記エントリルーチンに含まれる起動命令に応答して、前記表示オブジェクトに対応するプログラムルーチンを起動するステップと、
前記プログラムルーチンが複数個起動した時に各プログラムルーチンの一部を順次時分割処理し、各プログラムルーチンに対応するオブジェクトを各々発生するステップと、発生した複数のオブジェクトを一表示単位としてディスプレイ表示するステップとを含み、少なくとも1つの前記表示オブジェクトに対応するプログラムルーチンは、他の表示オブジェクトを新たに表示するために、前記表示オブジェクトに対応するプログラムルーチンを新たに起動する起動命令を含み、さらに、この起動命令に応答して他の表示オブジェクトを新たに表示するステップと、を含むアニメーション表示装置の制御方法。 - コンピュータグラフィックスによりアニメーション映像をディスプレイに表示するアニメーション表示装置を制御する方法であって、
表示オブジェクトに対応するプログラムルーチンを起動するための起動命令を含むエントリルーチンを起動するステップと、
前記エントリルーチンに含まれる起動命令に応答して、前記表示オブジェクトに対応するプログラムルーチンを起動するステップと、
前記プログラムルーチンが複数個起動した時に各プログラムルーチンの一部を順次時分割処理し、各プログラムルーチンに対応するオブジェクトを各々発生するステップと、
発生した複数のオブジェクトを一表示単位としてディスプレイ表示するステップとを含み、少なくとも1つの前記表示オブジェクトに対応するプログラムルーチンは、他の表示オブジェクトを新たに表示するために、前記表示オブジェクトに対応するプログラムルーチンを新たに起動する起動命令を含み、さらに、この起動命令に応答して他の表示オブジェクトを新たに表示するステップと、を含むアニメーション表示装置の制御方法。 - 前記表示オブジェクトに対応するプログラムルーチンは、短期的命令と長期的命令を含み、
前記複数のオブジェクト画像を表示するステップは、短期的命令を処理した後には同じプログラムルーチンの次の命令を実行し、長期的命令を処理した後には当該プログラムルーチンの実行を保留して次のプログラムルーチンの実行を行うことにより時分割処理を行う特許請求の範囲請求項7または8に記載のアニメーション表示装置の制御方法。 - 前記表示オブジェクトに対応するプログラムルーチンは、主としてオブジェクトの移動を制御する移動制御ルーチンと、主としてオブジェクトの表示態様を制御する表示制御ルーチンを含み、
前記複数のオブジェクト画像を表示するステップは、移動制御ルーチンと表示制御ルーチンを前記時分割処理によって各々実行することにより、対応するオブジェクト画像を表示する特許請求の範囲請求項7または8に記載のアニメーション表示装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12072295A JP3734528B2 (ja) | 1995-04-21 | 1995-04-21 | プログラム処理方法およびそれを用いたアニメーション表示装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12072295A JP3734528B2 (ja) | 1995-04-21 | 1995-04-21 | プログラム処理方法およびそれを用いたアニメーション表示装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08293040A JPH08293040A (ja) | 1996-11-05 |
JP3734528B2 true JP3734528B2 (ja) | 2006-01-11 |
Family
ID=14793389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12072295A Expired - Lifetime JP3734528B2 (ja) | 1995-04-21 | 1995-04-21 | プログラム処理方法およびそれを用いたアニメーション表示装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3734528B2 (ja) |
-
1995
- 1995-04-21 JP JP12072295A patent/JP3734528B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08293040A (ja) | 1996-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5867175A (en) | Method and apparatus for scriping animation | |
TWI406185B (zh) | 使用可程式硬體之即時顯示後處理 | |
JP2001101440A (ja) | アニメーションデータを記録した記録媒体、それを利用した画像処理方法及び画像処理プログラムを記録した記録媒体 | |
GB2416099A (en) | Motion engine for animating objects | |
EP0314440B1 (en) | Graphic display system with secondary pixel image storage | |
CN108228153B (zh) | 一种面向合作的实物编程方法及系统 | |
JPS6326898B2 (ja) | ||
JP3734528B2 (ja) | プログラム処理方法およびそれを用いたアニメーション表示装置 | |
US6439999B1 (en) | Method for controlling execution of processing in video game, storage medium storing processing execution control program, and game apparatus | |
JP2000200179A (ja) | 組込みシステム内におけるバッファレス子グラフィックス・コンテキストを使用したアプレット及びアプリケ―ションの表示 | |
US20010006386A1 (en) | Navigation device and device for generating navigation device | |
JPH09173643A (ja) | テレビゲームにおける画像情報処理方法 | |
Kimura | Hyperflow: A uniform visual language for different levels of programming | |
JP2906888B2 (ja) | レーダー表示機能を有するゲーム装置とその表示方法 | |
JPH04119444A (ja) | マルチメディアディスク装置 | |
JP3279033B2 (ja) | 提示情報作成装置 | |
JPH05289637A (ja) | 画像情報提示装置 | |
JPH113236A (ja) | 仮想計算機エミュレート装置 | |
JPH0334100B2 (ja) | ||
Shevlin et al. | Designing the Next Generation of UIMS | |
JPH06202805A (ja) | 位置情報入力システム | |
Slonneger | SAMOS in APL | |
Wiseman et al. | An operating system for interactive terminals | |
JPH10263205A (ja) | レーダー表示機能を有するゲーム装置とその表示方法 | |
JPS62204328A (ja) | マン・マシン・インタフエイス管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20020315 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20020315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050830 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051011 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051019 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081028 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101028 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101028 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111028 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111028 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131028 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |