JP3366313B2 - プログラム動作状況表示方法およびシステム - Google Patents
プログラム動作状況表示方法およびシステムInfo
- Publication number
- JP3366313B2 JP3366313B2 JP2000048906A JP2000048906A JP3366313B2 JP 3366313 B2 JP3366313 B2 JP 3366313B2 JP 2000048906 A JP2000048906 A JP 2000048906A JP 2000048906 A JP2000048906 A JP 2000048906A JP 3366313 B2 JP3366313 B2 JP 3366313B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- input
- event
- processing
- program
- 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
Landscapes
- User Interface Of Digital Computer (AREA)
- Input From Keyboards Or The Like (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
【0001】
【産業上の利用分野】本発明は、プログラムの動作状況
を表示する表示技術に関する。
を表示する表示技術に関する。
【0002】
【従来の技術】近年、オブジェクト指向と呼ばれる計算
モデルが広く用いられるようになっている。計算モデル
とは計算を行うにあたっての基本となる考え方、とらえ
方のことであり、計算機などでこのモデルを実現する場
合にはデータ構造とデータの受渡し、データを変換する
手続きをいつ、どのようなタイミングで行うかというこ
とを規定するものである。
モデルが広く用いられるようになっている。計算モデル
とは計算を行うにあたっての基本となる考え方、とらえ
方のことであり、計算機などでこのモデルを実現する場
合にはデータ構造とデータの受渡し、データを変換する
手続きをいつ、どのようなタイミングで行うかというこ
とを規定するものである。
【0003】オブジェクト指向計算モデルで用いる用語
を以下に説明する。
を以下に説明する。
【0004】(a)オブジェクト
これはデータ構造と手続きの組である。データ構造とし
て、(b)のスロットを、手続きとして(b)メソッド
をもつ。
て、(b)のスロットを、手続きとして(b)メソッド
をもつ。
【0005】(b)スロット
オブジェクトのもつデータ構造の名前。たとえば整数オ
ブジェクトなら整数値スロットを、文書オブジェクトな
ら文書スロットをもつ。
ブジェクトなら整数値スロットを、文書オブジェクトな
ら文書スロットをもつ。
【0006】(c)スロット値
オブジェクトのスロットに実際に保持するデータ。
【0007】(d)メソッド
オブジェクトに定義されている手続き。スロットに対す
る操作だけを許すことにより、プログラムのモジュール
性を保証する。
る操作だけを許すことにより、プログラムのモジュール
性を保証する。
【0008】(e)オブジェクトインスタンス
オブジェクトは概念的に扱われ、実際に記憶装置上に配
置されることはない。スロット値を実際にもつオブジェ
クトをオブジェクトインスタンスと呼ぶ。
置されることはない。スロット値を実際にもつオブジェ
クトをオブジェクトインスタンスと呼ぶ。
【0009】(f)メッセージ
メソッド実行のためのコマンド。引数とメソッド名から
構成されるが、引数をオブジェクトインスタンスに限定
することによって、プログラムのモジュール性を保証す
る。
構成されるが、引数をオブジェクトインスタンスに限定
することによって、プログラムのモジュール性を保証す
る。
【0010】オブジェクト指向計算モデルは、計算をオ
ブジェクトインスタンス間のメッセージのやり取りによ
ってのみ許す計算モデルである。計算の結果はオブジェ
クトインスタンスのスロット値の変化として表れる。例
えば、整数オブジェクトは、スロットとして整数値スロ
ットを持ち、またメソッドとして加算メソッド等を持
つ。具体的な値3をもつ整数オブジェクトインスタンス
Aを設計するには、そのスロット値を3にする。この整
数オブジェクトインスタンスAに対して4を加えたいと
きには、別に整数オブジェクトインスタンスBを用意し
て、このBの整数値スロットの値を4として、Aに対し
て、「B 加算」というメッセージを送る。この結果、
Aの整数値スロットの値は7になり、望む結果が得られ
たことになる。ただし、整数のような簡単な状態量に対
してまですべてオブジェクトインスタンスを生成するの
は煩雑であるということから、簡単な状態量はアトムと
呼び、それが引数として用いられる場合にはその値をそ
のまま他のオブジェクトインスタントに与えることを許
す。たとえば、上の例ではAにたいして「4 加算」と
いう略式メッセージをAに送る。
ブジェクトインスタンス間のメッセージのやり取りによ
ってのみ許す計算モデルである。計算の結果はオブジェ
クトインスタンスのスロット値の変化として表れる。例
えば、整数オブジェクトは、スロットとして整数値スロ
ットを持ち、またメソッドとして加算メソッド等を持
つ。具体的な値3をもつ整数オブジェクトインスタンス
Aを設計するには、そのスロット値を3にする。この整
数オブジェクトインスタンスAに対して4を加えたいと
きには、別に整数オブジェクトインスタンスBを用意し
て、このBの整数値スロットの値を4として、Aに対し
て、「B 加算」というメッセージを送る。この結果、
Aの整数値スロットの値は7になり、望む結果が得られ
たことになる。ただし、整数のような簡単な状態量に対
してまですべてオブジェクトインスタンスを生成するの
は煩雑であるということから、簡単な状態量はアトムと
呼び、それが引数として用いられる場合にはその値をそ
のまま他のオブジェクトインスタントに与えることを許
す。たとえば、上の例ではAにたいして「4 加算」と
いう略式メッセージをAに送る。
【0011】この計算モデルを用いることによって、デ
ータと手続きとが同じところに格納されるため、モジュ
ール性に富んだ、判り易いプログラムを作成することが
できる。
ータと手続きとが同じところに格納されるため、モジュ
ール性に富んだ、判り易いプログラムを作成することが
できる。
【0012】例えば、ディスプレイ装置上にオブジェク
トインスタンスを表すアイコンを表示し、操作者はこれ
にマウスなどをもちいてメッセージを送りこのオブジェ
クトインスタンスの状態量を変換させることや、さらに
このアイコンを移動、変形させるようなことが広く行わ
れている。例えば、あるアイコンをマウスで指示するこ
とによって対応するオブジェクトインスタンスを指示
し、引き続いて入力される「(移動量) 移動せよ」を
このオブジェクトインスタンスに対するメッセージと解
釈して、それを実行し、このアイコンを移動させるもの
である。この移動の結果、オブジェクトインスタンス内
の、その位置を表すスロットの値が変化する。
トインスタンスを表すアイコンを表示し、操作者はこれ
にマウスなどをもちいてメッセージを送りこのオブジェ
クトインスタンスの状態量を変換させることや、さらに
このアイコンを移動、変形させるようなことが広く行わ
れている。例えば、あるアイコンをマウスで指示するこ
とによって対応するオブジェクトインスタンスを指示
し、引き続いて入力される「(移動量) 移動せよ」を
このオブジェクトインスタンスに対するメッセージと解
釈して、それを実行し、このアイコンを移動させるもの
である。この移動の結果、オブジェクトインスタンス内
の、その位置を表すスロットの値が変化する。
【0013】また、操作者の入力をメッセージとして受
け取ってこれを実行するだけではなく、アイコンを用い
てプログラミングすることが行われている。すなわち、
オブジェクトインスタンスをアイコンとしてディスプレ
イ上に表示し、これにユーザから操作して、プログラム
を生成する。これは、プログラミング・バイ・イグザン
プル(Programming by Exampl
e:PBE)と呼ばれるもので、さまざまな計算資源で
ある、ファイルだとかアプリケーションプログラムなど
のオブジェクトインスタンスをアイコンにしてディスプ
レイ装置上に表示し、これらのアイコンをマウスなどを
用いて操作者に操作させ、システムがこの操作を解釈
し、この操作で指示されたオブジェクトインスタンスに
たいしてこの操作を実行し、同時にその操作を表わすコ
マンドを生成する。このように、操作、実行、コマンド
生成を繰り返すことにより所望のプログラムが得られ
る。オブジェクトインスタンスは具体的な値(例)を持
つものであるが、これに対する操作をシステムが解釈し
てより一般的なオブジェクトに対するプログラムを生成
することが特徴である。生成されたプログラムはプログ
ラム作成時にユーザが操作した例と異なる例に適用でき
る。これは、オブジェクトインスタンスに対して、この
例に対する操作解釈をそのオブジェクトに属するものす
べてに適用可能な形に変換されているためである。ま
た、具体例を用いてプログラミングするため、通常のプ
ログラミングのようにプログラマが問題を一般化する必
要がなく、プログラミングの労力が軽減される。
け取ってこれを実行するだけではなく、アイコンを用い
てプログラミングすることが行われている。すなわち、
オブジェクトインスタンスをアイコンとしてディスプレ
イ上に表示し、これにユーザから操作して、プログラム
を生成する。これは、プログラミング・バイ・イグザン
プル(Programming by Exampl
e:PBE)と呼ばれるもので、さまざまな計算資源で
ある、ファイルだとかアプリケーションプログラムなど
のオブジェクトインスタンスをアイコンにしてディスプ
レイ装置上に表示し、これらのアイコンをマウスなどを
用いて操作者に操作させ、システムがこの操作を解釈
し、この操作で指示されたオブジェクトインスタンスに
たいしてこの操作を実行し、同時にその操作を表わすコ
マンドを生成する。このように、操作、実行、コマンド
生成を繰り返すことにより所望のプログラムが得られ
る。オブジェクトインスタンスは具体的な値(例)を持
つものであるが、これに対する操作をシステムが解釈し
てより一般的なオブジェクトに対するプログラムを生成
することが特徴である。生成されたプログラムはプログ
ラム作成時にユーザが操作した例と異なる例に適用でき
る。これは、オブジェクトインスタンスに対して、この
例に対する操作解釈をそのオブジェクトに属するものす
べてに適用可能な形に変換されているためである。ま
た、具体例を用いてプログラミングするため、通常のプ
ログラミングのようにプログラマが問題を一般化する必
要がなく、プログラミングの労力が軽減される。
【0014】PBEの一例として、プログラムの起動を
管理するプログラムに対応させて、エージェントと呼ば
れる人物をオブジェクトインスタンスとして定義してこ
れをディスプレイ装置上にアイコンとして表示し、これ
に対して指示を送ってプログラムの実行を依頼するイン
ターフェースを持ったシステムが、日経コンピュータ”
別冊ソフトウェア・マルチメディア時代のユーザ・イン
ターフェース”pp.165−178(1989.7.
28発行)に述べられている(以下、この技術を第1の
公知技術と呼ぶ)。このシステムは、ディスプレイ装置
上にエージェントと呼ばれる管理プログラムのオブジェ
クトインスタンスを表わす、人間の顔をもった二次元図
形からなるアイコンを表示し、ファイル、キャビネット
などを表すオブジェクトインスタンスをそれぞれ表わす
二次元図形からなるアイコンを表示し、操作者は表示さ
れたエージェントアイコンと表示されているその他のア
イコンに対して、マウスやキーボードを用いて指示す
る。エージェントは、ユーザからの入力を解釈して、適
当なプログラムを選択してこれを実行する。このシステ
ムのPBEの機能としては、ユーザからの入力を解釈し
た結果を依頼を受けたエージェントアイコンにくくりつ
けて記憶して、入力例をプログラムとして生成すること
である。
管理するプログラムに対応させて、エージェントと呼ば
れる人物をオブジェクトインスタンスとして定義してこ
れをディスプレイ装置上にアイコンとして表示し、これ
に対して指示を送ってプログラムの実行を依頼するイン
ターフェースを持ったシステムが、日経コンピュータ”
別冊ソフトウェア・マルチメディア時代のユーザ・イン
ターフェース”pp.165−178(1989.7.
28発行)に述べられている(以下、この技術を第1の
公知技術と呼ぶ)。このシステムは、ディスプレイ装置
上にエージェントと呼ばれる管理プログラムのオブジェ
クトインスタンスを表わす、人間の顔をもった二次元図
形からなるアイコンを表示し、ファイル、キャビネット
などを表すオブジェクトインスタンスをそれぞれ表わす
二次元図形からなるアイコンを表示し、操作者は表示さ
れたエージェントアイコンと表示されているその他のア
イコンに対して、マウスやキーボードを用いて指示す
る。エージェントは、ユーザからの入力を解釈して、適
当なプログラムを選択してこれを実行する。このシステ
ムのPBEの機能としては、ユーザからの入力を解釈し
た結果を依頼を受けたエージェントアイコンにくくりつ
けて記憶して、入力例をプログラムとして生成すること
である。
【0015】オブジェクトあるいはメソッドという概念
を用いていないが、アイコンを用いてプログラム作成の
容易化を図る技術として、情報処理学会第30回プログ
ラミング・シンポジウム報告集、pp.9−17(19
89年1月)で発明者らが述べているプログラム生成シ
ステム(以下第2の公知技術と呼ぶ)がある。ここで
は、ディスプレイ装置上に、数値データや配列データな
どのデータの例をアイコンとして表示し入力すべきコマ
ンドの処理対象を指定するのに、それに対応するアイコ
ンを画面上で選択するようになっている。また、プログ
ラム作成時に入力したコマンドをその例データに対して
実行し、結果を操作者に通知するようになっている。ま
た、その結果によっては表示したアイコンを複数の領域
に分けるようになっている。このように、プログラムの
実行状態を表示することにより、作成中のプログラムの
現在の実行状況を正確に、判り易く操作者に通知するこ
とができる。
を用いていないが、アイコンを用いてプログラム作成の
容易化を図る技術として、情報処理学会第30回プログ
ラミング・シンポジウム報告集、pp.9−17(19
89年1月)で発明者らが述べているプログラム生成シ
ステム(以下第2の公知技術と呼ぶ)がある。ここで
は、ディスプレイ装置上に、数値データや配列データな
どのデータの例をアイコンとして表示し入力すべきコマ
ンドの処理対象を指定するのに、それに対応するアイコ
ンを画面上で選択するようになっている。また、プログ
ラム作成時に入力したコマンドをその例データに対して
実行し、結果を操作者に通知するようになっている。ま
た、その結果によっては表示したアイコンを複数の領域
に分けるようになっている。このように、プログラムの
実行状態を表示することにより、作成中のプログラムの
現在の実行状況を正確に、判り易く操作者に通知するこ
とができる。
【0016】また、このシステムでは、作成中のプログ
ラムの実行が失敗である場合には、別のコマンド列から
なるプログラムを作成可能になっている。
ラムの実行が失敗である場合には、別のコマンド列から
なるプログラムを作成可能になっている。
【0017】また、アイ・イー・イー・イー・ワークシ
ョップ・オン・ビジュアルランゲージ(IEEE Wo
rkshop on Visual Languag
e)、pp.80−85 1989(以下第3の従来技
術と呼ぶ)には次の技術がある。
ョップ・オン・ビジュアルランゲージ(IEEE Wo
rkshop on Visual Languag
e)、pp.80−85 1989(以下第3の従来技
術と呼ぶ)には次の技術がある。
【0018】処理対象の例としてハノイの塔を構成する
円板を表示し、これをアイコンのように用いて、第2の
公知技術と同様な方法でプログラムを作成する技術が表
示されている。ここでは、プログラム作成時にその一部
のコマンドとして、円板を移動させるコマンドが入力
し、これを実行するようにしている。しかも、この移動
を動画として行うようになっている。これにより、プロ
グラムの実行状態がより分かりやすくなっている。
円板を表示し、これをアイコンのように用いて、第2の
公知技術と同様な方法でプログラムを作成する技術が表
示されている。ここでは、プログラム作成時にその一部
のコマンドとして、円板を移動させるコマンドが入力
し、これを実行するようにしている。しかも、この移動
を動画として行うようになっている。これにより、プロ
グラムの実行状態がより分かりやすくなっている。
【0019】
【発明が解決しようとする課題】第2および第3の公知
技術では、処理対象に対応するアイコンの表示をプログ
ラムで変化させることにより、プログラムが処理してい
ることを操作者に知らせている。しかし、指示により変
化したプログラムの動作状況を表示できないため、プロ
グラムの動作状況が分かりにくいという課題があった。
技術では、処理対象に対応するアイコンの表示をプログ
ラムで変化させることにより、プログラムが処理してい
ることを操作者に知らせている。しかし、指示により変
化したプログラムの動作状況を表示できないため、プロ
グラムの動作状況が分かりにくいという課題があった。
【0020】したがって、本発明の目的は、プログラム
の動作状況が分かり易いプログラムの動作状況を表示す
るプログラム動作状況表示方法および装置を提供するこ
とにある。
の動作状況が分かり易いプログラムの動作状況を表示す
るプログラム動作状況表示方法および装置を提供するこ
とにある。
【0021】
【0022】
【課題を解決するための手段】上記課題を改善するため
に本発明では、電子秘書を表す電子秘書アイコンを前記
表示手段に表示し、前記電子秘書に対する指示に応答し
て、所定の処理手順を実行し、前記電子秘書アイコンに
おける表示位置の変化の有無に関らず、前記処理手順の
進捗状況に応じて、設定された手順に基づいて前記電子
秘書アイコンの表示態様を変化させるようにする。
に本発明では、電子秘書を表す電子秘書アイコンを前記
表示手段に表示し、前記電子秘書に対する指示に応答し
て、所定の処理手順を実行し、前記電子秘書アイコンに
おける表示位置の変化の有無に関らず、前記処理手順の
進捗状況に応じて、設定された手順に基づいて前記電子
秘書アイコンの表示態様を変化させるようにする。
【0023】
【作用】本発明の原理について説明する。電子秘書を表
す電子秘書アイコンを表示手段に表示する。前記電子秘
書に対する指示に応答して、所定の処理手順を実行す
る。前記電子秘書アイコンにおける表示位置の変化の有
無に関らず、前記処理手順の進捗状況に応じて、設定さ
れた手順に基づいて前記電子秘書アイコンの表示態様を
変化させるようにする。このようにすることにより、指
示により変化したプログラムの動作状況を表示できるた
め、プログラムの動作状況が分かり易くなる。
す電子秘書アイコンを表示手段に表示する。前記電子秘
書に対する指示に応答して、所定の処理手順を実行す
る。前記電子秘書アイコンにおける表示位置の変化の有
無に関らず、前記処理手順の進捗状況に応じて、設定さ
れた手順に基づいて前記電子秘書アイコンの表示態様を
変化させるようにする。このようにすることにより、指
示により変化したプログラムの動作状況を表示できるた
め、プログラムの動作状況が分かり易くなる。
【0024】
【0025】
【実施例】A. 概要
第1図は本発明の実施例によるプログラム生成システム
構成を示す図である。この図で示すようにシステムはデ
ィスプレイ装置101と、マウス109、キーボード1
10および音声入力装置111の3つの入力装置と、プ
ログラム作成用プログラム10を格納した主記憶装置1
12と、補助記憶装置113と、CPU114と、大型
汎用計算機116や電話回線117と接続するためのネ
ットワーク装置115と、音声出力装置118とから構
成されている。
構成を示す図である。この図で示すようにシステムはデ
ィスプレイ装置101と、マウス109、キーボード1
10および音声入力装置111の3つの入力装置と、プ
ログラム作成用プログラム10を格納した主記憶装置1
12と、補助記憶装置113と、CPU114と、大型
汎用計算機116や電話回線117と接続するためのネ
ットワーク装置115と、音声出力装置118とから構
成されている。
【0026】ディスプレイ装置101の表示画面は図に
示すように画面領域102〜107からなる。
示すように画面領域102〜107からなる。
【0027】オブジェクト表示画面102には、オフィ
ス空間内のいろいろの備品、たとえば電話3104、机
3105、端末3106およびそこに立っている秘書を
表わす人物3102をある点ににある、仮想的なTVカ
メラ(図示せず)から見たときの3次元図形があらかじ
め表示される。本実施例では、これらの図形のそれぞれ
に対してオブジェクト指向計算モデルに言う所のオブジ
ェクトが定義される。これらの図形は、それぞれ対応す
るオブジェクトのアイコンとして利用される。これらの
アイコンを利用して所望のプログラムが人物3102に
対するメソッドとして作成される。作成したプログラム
の後の実行時に、その実行状態を操作者に分からせるた
めに、本実施例では人物3102にプログラムの実行状
況に対応した動作をプログラム作成時にさせる。この動
作を指示するコマンドを作成すべきプログラムの一部と
して入力する。後述するように、この人物3102を動
かしながらプログラミングがなされる。モーション・コ
ントロール画面103には、この動きを指示するための
スライダ217〜222が表示される。
ス空間内のいろいろの備品、たとえば電話3104、机
3105、端末3106およびそこに立っている秘書を
表わす人物3102をある点ににある、仮想的なTVカ
メラ(図示せず)から見たときの3次元図形があらかじ
め表示される。本実施例では、これらの図形のそれぞれ
に対してオブジェクト指向計算モデルに言う所のオブジ
ェクトが定義される。これらの図形は、それぞれ対応す
るオブジェクトのアイコンとして利用される。これらの
アイコンを利用して所望のプログラムが人物3102に
対するメソッドとして作成される。作成したプログラム
の後の実行時に、その実行状態を操作者に分からせるた
めに、本実施例では人物3102にプログラムの実行状
況に対応した動作をプログラム作成時にさせる。この動
作を指示するコマンドを作成すべきプログラムの一部と
して入力する。後述するように、この人物3102を動
かしながらプログラミングがなされる。モーション・コ
ントロール画面103には、この動きを指示するための
スライダ217〜222が表示される。
【0028】ビユーコントローラ画面104には、オフ
ィス空間を見る視野を変化させるために、上記仮想的な
VTカメラの位置あるいは姿勢を制御するためのスライ
ダ230〜235が表示される。メソッドプログラミン
グ画面105には作成すべきプログラムを構成するため
に入力されたコマンド等を表示する。プログラムコント
ロール画面106には、操作者により入力されたコマン
ドの実行あるいは記憶など制御するためのメニュー等が
表示される。端末画面107には、入力装置109〜1
11、ディスプレイ装置101からなる端末の状態を操
作者に知らせる制御情報が表示される。オブジェクトモ
デリング画面108には、オブジェクト表示画面に表示
されたいろいろのアイコンの内、操作者が選択したアイ
コンにて表わされるオブジェクトに関する情報が表示さ
れる。201は、表示画面に示されたマウスカーソルを
示す。
ィス空間を見る視野を変化させるために、上記仮想的な
VTカメラの位置あるいは姿勢を制御するためのスライ
ダ230〜235が表示される。メソッドプログラミン
グ画面105には作成すべきプログラムを構成するため
に入力されたコマンド等を表示する。プログラムコント
ロール画面106には、操作者により入力されたコマン
ドの実行あるいは記憶など制御するためのメニュー等が
表示される。端末画面107には、入力装置109〜1
11、ディスプレイ装置101からなる端末の状態を操
作者に知らせる制御情報が表示される。オブジェクトモ
デリング画面108には、オブジェクト表示画面に表示
されたいろいろのアイコンの内、操作者が選択したアイ
コンにて表わされるオブジェクトに関する情報が表示さ
れる。201は、表示画面に示されたマウスカーソルを
示す。
【0029】第2図において、119,120,126
〜136,140〜413は、あらかじめ準備されたプ
ログラム作成用プログラム10のいろいろのモジュール
を示す。このプログラム作成用プログラム10がユーザ
入力を解読してコマンドを作成するとともに、これらの
コマンドを実行するようになっている。
〜136,140〜413は、あらかじめ準備されたプ
ログラム作成用プログラム10のいろいろのモジュール
を示す。このプログラム作成用プログラム10がユーザ
入力を解読してコマンドを作成するとともに、これらの
コマンドを実行するようになっている。
【0030】このプログラム作成用プログラム10のた
めに次の3つのデータベースが主記憶装置112中にあ
らかじめ格納されている。
めに次の3つのデータベースが主記憶装置112中にあ
らかじめ格納されている。
【0031】(1)各オブジェクトの情報すなわち、オ
ブジェクトインスタンスを格納するオブジェクトインス
タンスライブラリ124。各オブジェクトインスタンス
は、各オブジェクトの構造データ、オブジェクトスロッ
ト、オブジェクトメソッドからなる。その一例は第3A
〜3C図に示されている。
ブジェクトインスタンスを格納するオブジェクトインス
タンスライブラリ124。各オブジェクトインスタンス
は、各オブジェクトの構造データ、オブジェクトスロッ
ト、オブジェクトメソッドからなる。その一例は第3A
〜3C図に示されている。
【0032】(2)各オブジェクトを表わす3次元アイ
コンの図形データの集合である3次元形状データベース
123。図形データの一例は第4図に示されている。
コンの図形データの集合である3次元形状データベース
123。図形データの一例は第4図に示されている。
【0033】(3)音声入力装置111からの音声認識
に用いる候補音声データベース125。このデータの例
は第5図に示されている。
に用いる候補音声データベース125。このデータの例
は第5図に示されている。
【0034】これらのデータは元々は補助記憶113中
に格納されているが、プログラム作成用プログラムが必
要とするときに適宜主記憶装置112中に置かれる。
に格納されているが、プログラム作成用プログラムが必
要とするときに適宜主記憶装置112中に置かれる。
【0035】以下、本プログラム作成用プログラム10
の処理の概要を述べる。
の処理の概要を述べる。
【0036】(1)マウス109、キーボード110、
音声入力装置111、の3つの入力装置からのユーザ入
力情報を処理119,126,127,140〜143
により解釈してコマンドを作成し、コマンドバッファ1
20に格納し、これをコマンド待ち行列スタック122
のトップにあるコマンド待ち行列121に加える。以上
の処理は第2図の処理119,126,127,140
−143により行なわれる。コマンドとしては人物アイ
コン3102等に所望の動作させるコマンドも入力され
る。このときは、モーションコントロール画面103内
のいろいろのスライダーが操作される。
音声入力装置111、の3つの入力装置からのユーザ入
力情報を処理119,126,127,140〜143
により解釈してコマンドを作成し、コマンドバッファ1
20に格納し、これをコマンド待ち行列スタック122
のトップにあるコマンド待ち行列121に加える。以上
の処理は第2図の処理119,126,127,140
−143により行なわれる。コマンドとしては人物アイ
コン3102等に所望の動作させるコマンドも入力され
る。このときは、モーションコントロール画面103内
のいろいろのスライダーが操作される。
【0037】(2)オブジェクトメソッド実行処理13
5では、コマンド待ち行列121からコマンドを取り出
して、3次元形状データベース123と、オブジェクト
インスタンスライブラリ124を参照して実行する。つ
まり、この取り出されたコマンドが、指定するオブジェ
クトインスタンスの属するオブジェクトのもつメソッド
が定義済みのものであれば、そのメソッドで指定される
適当なプログラムライブラリを実行する。そのコマンド
が例えば人物アイコン3102を動かすコマンドのとき
には適宜そのオブジェクトに対応する三次元アイコンの
表示を動画的に変える。これにより、ユーザは、プログ
ラム作成時に、どのコマンドが実行されたかを知ること
ができる。この動画表示時には、上記プログラム・ライ
ブラリにしたがい、適宜、そのオブジェクトに関する三
次元形状データベースを実行処理135が更新し、更新
結果に即座に応答してオブジェクト表示処理125がオ
ブジェクト表示画面102の表示をかえる。このように
して、コマンドの実行により3次元画像が動画表示され
るとともに、音声出力装置118によってコマンドの実
行にしたがって操作者に実行状況を知らせるための音声
も出力される。
5では、コマンド待ち行列121からコマンドを取り出
して、3次元形状データベース123と、オブジェクト
インスタンスライブラリ124を参照して実行する。つ
まり、この取り出されたコマンドが、指定するオブジェ
クトインスタンスの属するオブジェクトのもつメソッド
が定義済みのものであれば、そのメソッドで指定される
適当なプログラムライブラリを実行する。そのコマンド
が例えば人物アイコン3102を動かすコマンドのとき
には適宜そのオブジェクトに対応する三次元アイコンの
表示を動画的に変える。これにより、ユーザは、プログ
ラム作成時に、どのコマンドが実行されたかを知ること
ができる。この動画表示時には、上記プログラム・ライ
ブラリにしたがい、適宜、そのオブジェクトに関する三
次元形状データベースを実行処理135が更新し、更新
結果に即座に応答してオブジェクト表示処理125がオ
ブジェクト表示画面102の表示をかえる。このように
して、コマンドの実行により3次元画像が動画表示され
るとともに、音声出力装置118によってコマンドの実
行にしたがって操作者に実行状況を知らせるための音声
も出力される。
【0038】(3)コマンドが指定するオブジェクトの
もつメソッドの中にそのコマンドが要求するメソッドが
定義されていない場合には、新しいメソッドをオブジェ
クトメソッド実行処理135を利用して生成する。
もつメソッドの中にそのコマンドが要求するメソッドが
定義されていない場合には、新しいメソッドをオブジェ
クトメソッド実行処理135を利用して生成する。
【0039】(4)コマンドを実行した結果、なんらか
の支障があったときには、コマンド失敗が報告される。
この場合には、実行したコマンドが指定するメソッド
の、再プログラミングが行わなわれる。これもオブジェ
クトメソッド実行処理135のを利用して行われる。
の支障があったときには、コマンド失敗が報告される。
この場合には、実行したコマンドが指定するメソッド
の、再プログラミングが行わなわれる。これもオブジェ
クトメソッド実行処理135のを利用して行われる。
【0040】このように、オブジェクトメソッド実行処
理135は状況によってさまざまの働きをするが、コマ
ンド待ち行列スタック122がこれを制御する働きをす
る。
理135は状況によってさまざまの働きをするが、コマ
ンド待ち行列スタック122がこれを制御する働きをす
る。
【0041】(5)オブジェクトインスタンスに対応す
る3次元形状アイコンは任意の時点でその位置、表示状
態を変更することができる。これはモーションコントロ
ール画面103上のスライダ217〜222のバリュエ
ータ(縦太線部分)をマウスで左右に移動して行われ
る。変更の結果はプログラミングの途中では命令として
作成中のプログラム中には蓄えられない。プログラムコ
ントロール画面106中の「記憶」ボタン216をマウ
スで選択すると、その変更に到るまでの動作又は位置の
変化を再現するコマンド列を生成し、これを作成中のプ
ログラム中に記憶する。
る3次元形状アイコンは任意の時点でその位置、表示状
態を変更することができる。これはモーションコントロ
ール画面103上のスライダ217〜222のバリュエ
ータ(縦太線部分)をマウスで左右に移動して行われ
る。変更の結果はプログラミングの途中では命令として
作成中のプログラム中には蓄えられない。プログラムコ
ントロール画面106中の「記憶」ボタン216をマウ
スで選択すると、その変更に到るまでの動作又は位置の
変化を再現するコマンド列を生成し、これを作成中のプ
ログラム中に記憶する。
【0042】(6)(5)と同様にして、3次元形状を
持つアイコンをオブジェクト表示画面102上に投影す
る状態を任意の時点で変更することができる。また
(5)と同様に記憶ボタン216をマウスで選択するこ
とによって、その状態を再現するコマンドを生成し、プ
ログラム中に記憶する。
持つアイコンをオブジェクト表示画面102上に投影す
る状態を任意の時点で変更することができる。また
(5)と同様に記憶ボタン216をマウスで選択するこ
とによって、その状態を再現するコマンドを生成し、プ
ログラム中に記憶する。
【0043】以上のように、本実施例では、プログラム
作成中にこのプログラムを割り当てる人物アイコン31
02に所要の動きをさせるコマンドを作成すべきプログ
ラムに属するコマンドの一部として入力することに一つ
の特徴がある。さらにプログラム作成時に、これを実行
し、プログラミング的に操作者に、入力したコマンドの
実行状態を知らせる。さらに、本実施例では、この人物
アイコンを含み、アイコンとして3次元図形をそのまま
利用している。本実施例の他の特徴は以下の詳細説明に
て説明する。
作成中にこのプログラムを割り当てる人物アイコン31
02に所要の動きをさせるコマンドを作成すべきプログ
ラムに属するコマンドの一部として入力することに一つ
の特徴がある。さらにプログラム作成時に、これを実行
し、プログラミング的に操作者に、入力したコマンドの
実行状態を知らせる。さらに、本実施例では、この人物
アイコンを含み、アイコンとして3次元図形をそのまま
利用している。本実施例の他の特徴は以下の詳細説明に
て説明する。
【0044】B. システムの構成要素
以下に、本実施例のシステムの処理の詳細を述べる前に
各構成要素の詳細を述べる。
各構成要素の詳細を述べる。
【0045】B.1 データベース
1. 3次元形状データベース123(第4図)
本実施例では、オフィス空間内に配置された人物、電話
器、机等を表わす三次元図形をその空間内に配置された
カメラから見たときの図形を表示画面上に表示し、この
表示された図形をそれぞれ対応するオブジェクトを表す
ためのアイコンとして用いる。
器、机等を表わす三次元図形をその空間内に配置された
カメラから見たときの図形を表示画面上に表示し、この
表示された図形をそれぞれ対応するオブジェクトを表す
ためのアイコンとして用いる。
【0046】3次元形状データベース123はこのよう
な3次元図形のデータを記憶している。各3次元図形の
データは、第4図に例示されるように、各三次元図形を
構成する複数の多面体のそれぞれの種別と位置、それぞ
れ多面の色、光沢などの属性と、変換行列から構成され
る。第4図には、第3B図に示した電話オブジェクトイ
ンスタンス2750の下位要素である受話器(receiv
e)オブジェクトインスタンス2754の3次元図形デ
ータ2799の一部を示す。
な3次元図形のデータを記憶している。各3次元図形の
データは、第4図に例示されるように、各三次元図形を
構成する複数の多面体のそれぞれの種別と位置、それぞ
れ多面の色、光沢などの属性と、変換行列から構成され
る。第4図には、第3B図に示した電話オブジェクトイ
ンスタンス2750の下位要素である受話器(receiv
e)オブジェクトインスタンス2754の3次元図形デ
ータ2799の一部を示す。
【0047】ここでは8面体と、その頂点座標、色、光
沢、その位置、方向を表わしている。
沢、その位置、方向を表わしている。
【0048】2. オブジェクトインスタンスライブラ
リ124(第3A〜3C図) オブジェクトインスタンスライブラリ124は、いろい
ろのオブジェクトの情報(オブジェクトインスタン
ス)、たとえばオブジェクト構造データオブジェクトス
ロット、オブジェクトメソッドを保持する。第3A〜3
C図にそれぞれ人物、電話、カメラに対応するオブジェ
クトインスタンスの具体例を示す。ここではオブジェク
トインスタンスライブラリ124に登録されている第3
A図の人物オブジェクト2701を例にとって説明す
る。
リ124(第3A〜3C図) オブジェクトインスタンスライブラリ124は、いろい
ろのオブジェクトの情報(オブジェクトインスタン
ス)、たとえばオブジェクト構造データオブジェクトス
ロット、オブジェクトメソッドを保持する。第3A〜3
C図にそれぞれ人物、電話、カメラに対応するオブジェ
クトインスタンスの具体例を示す。ここではオブジェク
トインスタンスライブラリ124に登録されている第3
A図の人物オブジェクト2701を例にとって説明す
る。
【0049】スロット2711は人物オブジェクトの持
つ属性の名前であり、スロット値を持つ。スロット27
11はそれぞれの属性の名前と、その属性に関するデー
タ型を指定する。第3A図の例では、人物オブジェクト
インスタンス2701のスロット2711には位置27
20と方向2721と名前2722という3つの属性の
名前があり、それぞれに関するデータの型がベクトル、
ベクトル、文字列という型のデータが格納されることを
示している。
つ属性の名前であり、スロット値を持つ。スロット27
11はそれぞれの属性の名前と、その属性に関するデー
タ型を指定する。第3A図の例では、人物オブジェクト
インスタンス2701のスロット2711には位置27
20と方向2721と名前2722という3つの属性の
名前があり、それぞれに関するデータの型がベクトル、
ベクトル、文字列という型のデータが格納されることを
示している。
【0050】オブジェクトメソッドはオブジェクト固有
の手続きであり、ここではその名前と名前に対応する複
数のコマンド列と、引数オブジェクトの組である。実行
時のメソッド呼出しは定義順に行われる。第3A図の例
では、callメソッド 2712、gotoメソッド
2713、tel_takeメソッド、2714、c
onnect(1)メソッド 2715、connec
t(2)メソッド 2716が定義されている。ここで
connectメソッドは2つの定義があるが、その定
義順を表すために順序付けが行われている。
の手続きであり、ここではその名前と名前に対応する複
数のコマンド列と、引数オブジェクトの組である。実行
時のメソッド呼出しは定義順に行われる。第3A図の例
では、callメソッド 2712、gotoメソッド
2713、tel_takeメソッド、2714、c
onnect(1)メソッド 2715、connec
t(2)メソッド 2716が定義されている。ここで
connectメソッドは2つの定義があるが、その定
義順を表すために順序付けが行われている。
【0051】本実施例ではオブジェクトは要素を木構造
で構成された要素を有する。それぞれの要素もまたオブ
ジェクトである。オブジェクトインスタンスについても
同じである。第3A図でオブジェクト構造データ270
2から分かるように、人物オブジェクトインスタンス2
703は、身体(body)オブジェクトインスタンス
2704を下位要素としてもつ。身体(body)オブ
ジェクトインスタンス2704は右上腕(ruarm)
オブジェクトインスタンス2708、左上腕(luar
m)オブジェクトインスタンス2705、などを下位要
素として持つ。このなかでruarmオブジェクトイン
スタンス2708はrlarmオブジェクトインスタン
ス2709を下位要素として持ち、rlarmオブジェ
クトインスタンス2709はrhandオブジェクトイ
ンスタンス2710を下位要素として持つ。要素のオブ
ジェクトインスタンスの具体例は簡単化のために図示お
よび詳細説明を省略してある。
で構成された要素を有する。それぞれの要素もまたオブ
ジェクトである。オブジェクトインスタンスについても
同じである。第3A図でオブジェクト構造データ270
2から分かるように、人物オブジェクトインスタンス2
703は、身体(body)オブジェクトインスタンス
2704を下位要素としてもつ。身体(body)オブ
ジェクトインスタンス2704は右上腕(ruarm)
オブジェクトインスタンス2708、左上腕(luar
m)オブジェクトインスタンス2705、などを下位要
素として持つ。このなかでruarmオブジェクトイン
スタンス2708はrlarmオブジェクトインスタン
ス2709を下位要素として持ち、rlarmオブジェ
クトインスタンス2709はrhandオブジェクトイ
ンスタンス2710を下位要素として持つ。要素のオブ
ジェクトインスタンスの具体例は簡単化のために図示お
よび詳細説明を省略してある。
【0052】本実施例では各要素は3次元形状を持って
いる。3次元形状は3次元形状データベース123(第
2図)に格納されている。また、各要素のオブジェクト
インスタンス(図示せず)にはその要素の属性として、
移動可能属性と回転可能属性が保持される。第3A図の
例では、移動可能属性を持つ要素には(+)を、回転可
能属性を持つ要素には(*)を記してある。このことは
他の図、たとえば第3B,3C図でも同様である。
いる。3次元形状は3次元形状データベース123(第
2図)に格納されている。また、各要素のオブジェクト
インスタンス(図示せず)にはその要素の属性として、
移動可能属性と回転可能属性が保持される。第3A図の
例では、移動可能属性を持つ要素には(+)を、回転可
能属性を持つ要素には(*)を記してある。このことは
他の図、たとえば第3B,3C図でも同様である。
【0053】要素の属性の移動可能属性、回転可能属性
が移動不可能あるいは回転不可能になっている場合に
は、それぞれ移動、回転できない。第3A図の例では、
人物オブジェクトインスタンス2703の下位要素はす
べて移動可能属性が不可能である。このことにより、人
間の各関節は回転だけが可能で、移動はできないという
自然な状態を実現している。
が移動不可能あるいは回転不可能になっている場合に
は、それぞれ移動、回転できない。第3A図の例では、
人物オブジェクトインスタンス2703の下位要素はす
べて移動可能属性が不可能である。このことにより、人
間の各関節は回転だけが可能で、移動はできないという
自然な状態を実現している。
【0054】特殊なオブジェクトに対するインスタンス
としてカメラオブジェクトインスタンス2780(第3
C図)がある。カメラオブジェクトインスタンス278
0はそのスロット2790としてカメラ位置である位置
2791、カメラの視野の水平方向を示す横方向方向2
792、カメラの視野の垂直方向を示す上方向2793
という3つの属性それぞれにベクトル型のデータを格納
する。また、このオブジェクトインスタンスはメソッド
2795を組み込みメソッドとして持つ。このメソッド
は3次元形状データベース123内のいろいろの三次元
図形のデータをオブジェクト表示画面102(第1図)
上の座標系のデータに変換し、シェーディング、レンダ
リングを行い、得られた図形をオブジェクト表示画面1
02に表示する。
としてカメラオブジェクトインスタンス2780(第3
C図)がある。カメラオブジェクトインスタンス278
0はそのスロット2790としてカメラ位置である位置
2791、カメラの視野の水平方向を示す横方向方向2
792、カメラの視野の垂直方向を示す上方向2793
という3つの属性それぞれにベクトル型のデータを格納
する。また、このオブジェクトインスタンスはメソッド
2795を組み込みメソッドとして持つ。このメソッド
は3次元形状データベース123内のいろいろの三次元
図形のデータをオブジェクト表示画面102(第1図)
上の座標系のデータに変換し、シェーディング、レンダ
リングを行い、得られた図形をオブジェクト表示画面1
02に表示する。
【0055】なお、オブジェクト表示処理136(第2
図)はこのメソッドを3次元形状データベース123ま
たは、オブジェクトインスタンスライブラリ124が更
新された場合や、そのほかの画面表示要求があった場合
に実行されるようになっている。
図)はこのメソッドを3次元形状データベース123ま
たは、オブジェクトインスタンスライブラリ124が更
新された場合や、そのほかの画面表示要求があった場合
に実行されるようになっている。
【0056】オブジェクトインスタンスライブラリ12
4はオブジェクトインスタンスが生成又は、削除された
ときに修正されるようになっている。
4はオブジェクトインスタンスが生成又は、削除された
ときに修正されるようになっている。
【0057】3.候補音声データベース125(第5
図) 候補音声データベース125は、音声入力装置111か
ら入力された音声の認識を行うときに用いる、第5図に
示す候補音声データ501を複数格納するデータベース
である。ここで候補音声データ501は、音声データ5
02、データ種類503、文字列504の各領域から構
成されている。音声データ502は音声入力をそのまま
記憶したものであり、データ種類503は候補音声デー
タの種類を表すものであり、文字列504は音声認識の
結果、出力される文字列である。ここで、データ種類5
03は、オブジェクトインスタンス、オブジェクトメソ
ッド、組み込み命令コード、プログラムコメントのいず
れかを表す。
図) 候補音声データベース125は、音声入力装置111か
ら入力された音声の認識を行うときに用いる、第5図に
示す候補音声データ501を複数格納するデータベース
である。ここで候補音声データ501は、音声データ5
02、データ種類503、文字列504の各領域から構
成されている。音声データ502は音声入力をそのまま
記憶したものであり、データ種類503は候補音声デー
タの種類を表すものであり、文字列504は音声認識の
結果、出力される文字列である。ここで、データ種類5
03は、オブジェクトインスタンス、オブジェクトメソ
ッド、組み込み命令コード、プログラムコメントのいず
れかを表す。
【0058】はじめから登録されている候補音声データ
には次のものがある。
には次のものがある。
【0059】(1)後述する組み込み命令(第3図)に
関する候補音声データ。このデータ種類は組込命令コー
ドである。
関する候補音声データ。このデータ種類は組込命令コー
ドである。
【0060】(2)カメラオブジェクトインスタンスな
ど、組込オブジェクトインスタンスとして始めから定義
されているオブジェクトインスタンスに関連する候補音
声データ。これらのデータ種類は、オブジェクトインス
タンスである。
ど、組込オブジェクトインスタンスとして始めから定義
されているオブジェクトインスタンスに関連する候補音
声データ。これらのデータ種類は、オブジェクトインス
タンスである。
【0061】(3)操作者の「実行」という音声入力に
対応する候補音声データ。この候補音声データのデータ
種類はプログラムコントロール、文字列は”execu
te”である。
対応する候補音声データ。この候補音声データのデータ
種類はプログラムコントロール、文字列は”execu
te”である。
【0062】(4)操作者の「記憶」という音声入力に
対応する候補音声データ。この候補音声データのデータ
種類はプログラムコントロール、文字列は”recor
d”である。
対応する候補音声データ。この候補音声データのデータ
種類はプログラムコントロール、文字列は”recor
d”である。
【0063】B.2 処理
以下、第2図に示す本システム内でのいろいろのプログ
ラムによる処理について述べる。
ラムによる処理について述べる。
【0064】1.入力処理
システムに対する入力は、キーボード109、マウス1
10、音声入力装置111を用いて行われる。
10、音声入力装置111を用いて行われる。
【0065】1.1 イベントデータ(第6図)
後述するように、システムに対する入力に応答して音声
イベント発生処理143、マウスイベント発生処理14
0とキーボードイベント発生処理141がイベントデー
タを生成するようになっている。
イベント発生処理143、マウスイベント発生処理14
0とキーボードイベント発生処理141がイベントデー
タを生成するようになっている。
【0066】イベントデータ401は、第6図に示すよ
うにイベント種類領域402と付加情報領域403から
構成されている。ここでイベント種類402は、モーシ
ョンコントロール、ビューコントロール、オブジェクト
選択、プログラムコントロール、命令入力、オブジェク
トモデリング又はキーボードのいずれかである。付加情
報403はイベント種類によって異なる。イベント種類
がオブジェクト選択、命令入力、キーボードのいずれか
であるとき、そのイベントデータは作成すべきプログラ
ムを構成するコマンド又はその一部を構成するのに用い
られる。その他の種類のイベントデータは、コマンド生
成に直接関係しない。
うにイベント種類領域402と付加情報領域403から
構成されている。ここでイベント種類402は、モーシ
ョンコントロール、ビューコントロール、オブジェクト
選択、プログラムコントロール、命令入力、オブジェク
トモデリング又はキーボードのいずれかである。付加情
報403はイベント種類によって異なる。イベント種類
がオブジェクト選択、命令入力、キーボードのいずれか
であるとき、そのイベントデータは作成すべきプログラ
ムを構成するコマンド又はその一部を構成するのに用い
られる。その他の種類のイベントデータは、コマンド生
成に直接関係しない。
【0067】1.2 音声処理
1.2.1 音声入力
音声入力装置111からは、操作者は、作成すべきプロ
グラムに実行させたい処理を人物アイコン3102へ指
示するかのように音声で入力する。たとえば、「電話を
とって」を入力する。この音声入力処理では、この入力
音声を認識し、必要な一つ又は複数のイベントデータが
生成される。音声入力装置111から処理を指示する音
声だけでなく、作成されたコマンドの実行に関連する入
力、たとえば「実行」なども入力可能である。但し、い
ずれの種類の音声であっても、あらかじめ登録された表
現である必要がある。
グラムに実行させたい処理を人物アイコン3102へ指
示するかのように音声で入力する。たとえば、「電話を
とって」を入力する。この音声入力処理では、この入力
音声を認識し、必要な一つ又は複数のイベントデータが
生成される。音声入力装置111から処理を指示する音
声だけでなく、作成されたコマンドの実行に関連する入
力、たとえば「実行」なども入力可能である。但し、い
ずれの種類の音声であっても、あらかじめ登録された表
現である必要がある。
【0068】1.2.2 音声認識処理142(第7A
図) 音声認識処理142では第6図に示すように音声入力装
置111から送られてきた入力音声の異なる部分の各々
と、候補音声データベース125のすべての候補音声デ
ータ501(第5図)の音声データ503とを比較し、
それぞれの音声部分に最も似通った候補音声データを抽
出しステップ601、それぞれの音声部分に対して音声
イベント発生処理143(第2図)を起動する(ステッ
プ603)。似通った候補音声が存在しない場合には
(ステップ602)、何も出力しない。
図) 音声認識処理142では第6図に示すように音声入力装
置111から送られてきた入力音声の異なる部分の各々
と、候補音声データベース125のすべての候補音声デ
ータ501(第5図)の音声データ503とを比較し、
それぞれの音声部分に最も似通った候補音声データを抽
出しステップ601、それぞれの音声部分に対して音声
イベント発生処理143(第2図)を起動する(ステッ
プ603)。似通った候補音声が存在しない場合には
(ステップ602)、何も出力しない。
【0069】1.2.3 音声イベント発生処理143
(第7B図) 第7B図に示すように音声認識処理142で抽出された
候補音声データ内のデータ種類領域を調べて(ステップ
701,703、705、707)その種類に依存して
特定のイベント種類のイベントデータを生成し(ステッ
プ702、704、706、708)、入力イベント処
理126(第2図)を起動する(ステップ709)。
(第7B図) 第7B図に示すように音声認識処理142で抽出された
候補音声データ内のデータ種類領域を調べて(ステップ
701,703、705、707)その種類に依存して
特定のイベント種類のイベントデータを生成し(ステッ
プ702、704、706、708)、入力イベント処
理126(第2図)を起動する(ステップ709)。
【0070】生成されるイベントデータは次のとおりで
ある。なお、生成されるイベントデータ生成時に、その
付加情報403には、抽出された候補音声データ501
の文字列領域504をそのまま用いる。
ある。なお、生成されるイベントデータ生成時に、その
付加情報403には、抽出された候補音声データ501
の文字列領域504をそのまま用いる。
【0071】たとえば、入力音声「電話をとって」の
「電話」のごとく、処理対象を表わす音声部分に対して
抽出された候補音声データのデータ種類はオブジェクト
インスタンスとなる。その場合(ステップ701)、イ
ベント種類がオブジェクト選択であるイベントデータを
生成する(ステップ702)。
「電話」のごとく、処理対象を表わす音声部分に対して
抽出された候補音声データのデータ種類はオブジェクト
インスタンスとなる。その場合(ステップ701)、イ
ベント種類がオブジェクト選択であるイベントデータを
生成する(ステップ702)。
【0072】たとえば、入力音声「電話をとって」の
「とって」のごとく、処理内容を表わす音声部分に対し
て抽出された候補音声データのデータ種類はオブジェク
トメソッドとなる。この場合(ステップ703)、イベ
ント種類が命令入力であるイベントデータを発生する
(ステップ704)。
「とって」のごとく、処理内容を表わす音声部分に対し
て抽出された候補音声データのデータ種類はオブジェク
トメソッドとなる。この場合(ステップ703)、イベ
ント種類が命令入力であるイベントデータを発生する
(ステップ704)。
【0073】入力音声中の、組み込み命令(後述)を表
わす部分に対して抽出された候補音声データのデータ種
類は組み込み命令コードとなる。この場合(ステップ7
05)、イベント種類が命令入力であるイベントデータ
を生成する(ステップ706)。
わす部分に対して抽出された候補音声データのデータ種
類は組み込み命令コードとなる。この場合(ステップ7
05)、イベント種類が命令入力であるイベントデータ
を生成する(ステップ706)。
【0074】以上の3つのイベントデータは、それぞれ
生成すべきコマンドの処理対象又は引数としてのオブジ
ェクトインスタンス又はオブジェクトメソッドあるいは
そのコマンドの命令コードを、操作者が音声で入力する
ときに生成される。
生成すべきコマンドの処理対象又は引数としてのオブジ
ェクトインスタンス又はオブジェクトメソッドあるいは
そのコマンドの命令コードを、操作者が音声で入力する
ときに生成される。
【0075】たとえば、入力音声「記憶」あるいは「実
行」に対して抽出される候補音声データのデータ種類は
プログラムコントロールとなる。この場合(ステップ7
07)、イベント種類がプログラムコントロールである
イベントデータを生成する(ステップ708)。
行」に対して抽出される候補音声データのデータ種類は
プログラムコントロールとなる。この場合(ステップ7
07)、イベント種類がプログラムコントロールである
イベントデータを生成する(ステップ708)。
【0076】入力音声「実行」に対するイベントデータ
は、直前に生成されたコマンドの実行を指示するがコマ
ンドの生成には用いられない。「記憶」はコマンドの生
成に用いられる。
は、直前に生成されたコマンドの実行を指示するがコマ
ンドの生成には用いられない。「記憶」はコマンドの生
成に用いられる。
【0077】1.3 マウス入力とマウスイベント発生
処理140(第8A図) 第1図のディスプレイ装置101内の表示画面102〜
104、106,108のいずれかにマウスカーソル2
01を置くことにより、画面を用いた入力可能となる。
処理140(第8A図) 第1図のディスプレイ装置101内の表示画面102〜
104、106,108のいずれかにマウスカーソル2
01を置くことにより、画面を用いた入力可能となる。
【0078】マウスイベント発生処理はマウスによるイ
ベント発生処理の総称であり、以下に述べるオブジェク
ト選択イベント発生処理304、モーションイベント発
生処理305、ビューイベント発生処理306、プログ
ラムコントロールイベント発生処理307、オブジェク
トモデリングイベント発生処理308からなる。これら
の処理304〜308は第8A図に示すとおり、それぞ
れ、表示画面102,103,104,106,108
にマウスカーソル201があるときに起動される。
ベント発生処理の総称であり、以下に述べるオブジェク
ト選択イベント発生処理304、モーションイベント発
生処理305、ビューイベント発生処理306、プログ
ラムコントロールイベント発生処理307、オブジェク
トモデリングイベント発生処理308からなる。これら
の処理304〜308は第8A図に示すとおり、それぞ
れ、表示画面102,103,104,106,108
にマウスカーソル201があるときに起動される。
【0079】なお、オブジェクト選択イベントデータ発
生処理304で発生されたイベントデータはコマンドの
生成に用いられるが、他の処理305,306,308
により生成されるイベントデータは、コマンドの生成に
は用いられない。処理307によるイベントデータはコ
マンド生成に用いられるものとそでないものがある。
生処理304で発生されたイベントデータはコマンドの
生成に用いられるが、他の処理305,306,308
により生成されるイベントデータは、コマンドの生成に
は用いられない。処理307によるイベントデータはコ
マンド生成に用いられるものとそでないものがある。
【0080】1.3.1 オブジェクト選択イベント処
理304(第8B図) この処理は、生成すべきコマンドの処理対象又は引数と
して用いるオブジェクトインステンスを操作者がマウス
で入力するときに実行される。すなわち、操作者は入力
したいオブジェクトインスタンスを表わす、オブジェク
ト表示画面102内のアイコン上にマウスカーソル20
1を移動してマウスボタン(図示せず)を押す。このマ
ウス操作に応答して、オブジェクト選択イベント、処理
304が起動される。第8B図に示すように、まず、3
次元形状データベース123を参照してこのマウス操作
により選択されたオブジェクトインスタンスを認識して
(ステップ801)、イベント種類にオブジェクト選
択、付加情報として選択されたオブジェクトインスタン
スを表す文字列を格納したイベントデータを生成する
(ステップ802)。選択されたオブジェクトインスタ
ンスが別のオブジェクトインスタンスの構成要素である
場合には、この付加情報として、上位オブジェクトイン
スタンスの名前から選択されたオブジェクトインスタン
スの名前までをピリオド(.)で区切ってつなげた文字
列を格納する。そして、入力イベント処理126(第2
図)を起動する(ステップ803)。
理304(第8B図) この処理は、生成すべきコマンドの処理対象又は引数と
して用いるオブジェクトインステンスを操作者がマウス
で入力するときに実行される。すなわち、操作者は入力
したいオブジェクトインスタンスを表わす、オブジェク
ト表示画面102内のアイコン上にマウスカーソル20
1を移動してマウスボタン(図示せず)を押す。このマ
ウス操作に応答して、オブジェクト選択イベント、処理
304が起動される。第8B図に示すように、まず、3
次元形状データベース123を参照してこのマウス操作
により選択されたオブジェクトインスタンスを認識して
(ステップ801)、イベント種類にオブジェクト選
択、付加情報として選択されたオブジェクトインスタン
スを表す文字列を格納したイベントデータを生成する
(ステップ802)。選択されたオブジェクトインスタ
ンスが別のオブジェクトインスタンスの構成要素である
場合には、この付加情報として、上位オブジェクトイン
スタンスの名前から選択されたオブジェクトインスタン
スの名前までをピリオド(.)で区切ってつなげた文字
列を格納する。そして、入力イベント処理126(第2
図)を起動する(ステップ803)。
【0081】1.3.2 モーションイベント発生処理
305(第8C図) この処理はオブジェクト表示画面102内のアイコンの
移動(あるいは回転)を操作者がモーションコントロー
ル画面103を用いて指示するとときに起動される。す
なわち、第1図に示すようにモーションコントロール画
面103には6つのバリュエータ217〜222が表示
されている。このうちのどれかのバリュエータがマウス
109によって操作された場合に、第8C図に示すよう
に、イベント種類にモーションコントロール、付加情報
に操作されたバリュエータの名称とバリュエータのスラ
イダの支持ガイド上の目盛の値(すなわち、移動量又は
回転量)を格納したイベントデータを生成する(ステッ
プ901)。そして、入力イベント処理126(第2
図)を起動する(ステップ902)。なお、このバリエ
ータ操作の前には、オブジェクト表示画像102に対し
てオブジェクト選択がなされなければならない。
305(第8C図) この処理はオブジェクト表示画面102内のアイコンの
移動(あるいは回転)を操作者がモーションコントロー
ル画面103を用いて指示するとときに起動される。す
なわち、第1図に示すようにモーションコントロール画
面103には6つのバリュエータ217〜222が表示
されている。このうちのどれかのバリュエータがマウス
109によって操作された場合に、第8C図に示すよう
に、イベント種類にモーションコントロール、付加情報
に操作されたバリュエータの名称とバリュエータのスラ
イダの支持ガイド上の目盛の値(すなわち、移動量又は
回転量)を格納したイベントデータを生成する(ステッ
プ901)。そして、入力イベント処理126(第2
図)を起動する(ステップ902)。なお、このバリエ
ータ操作の前には、オブジェクト表示画像102に対し
てオブジェクト選択がなされなければならない。
【0082】1.3.3 ビューイベント発生処理30
6(第8D図) この処理ではマウス入力にビューコントロール画面10
4内の6つのバリエータ230〜235を用い、イベン
ト種類にビューコントロールを格納したイベントデータ
を生成すること以外、モーションイベント発生処理30
5と同じ処理を行う(第8D図、ステップ1001、1
002)。
6(第8D図) この処理ではマウス入力にビューコントロール画面10
4内の6つのバリエータ230〜235を用い、イベン
ト種類にビューコントロールを格納したイベントデータ
を生成すること以外、モーションイベント発生処理30
5と同じ処理を行う(第8D図、ステップ1001、1
002)。
【0083】1.3.4 プログラムコントロールイベ
ント発生処理307(第8E図) プログラムコントロール画面106内の「実行」ボタン
上215(第1図)にマウスカーソル201があるとき
にマウスボタン(図示せず)が押された場合には、第8
E図に示すように、イベント種類にプログラムコントロ
ール、付加情報に”execute”を格納したイベントデー
タを発生する。これは直前に完成されたコマンドの実行
を指示するのに用いられる。音声入力「実行」の場合と
同様である。同様に「記憶」ボタン216が押された場
合には、イベント種類にプログラムコントロール、付加
情報に”record”を格納したイベントデータを生成する
(ステップ1101)。そして、いずれの場合も入力イ
ベント処理126(第2図)を起動する(ステップ11
02)。「記憶」ボタン216は、オブジェクト画面1
02に表示されるアイコンあるいはカメラ(図示せず)
を移動あるいは回転したあと、その移動あるいは回転を
実行するコマンドを生成するときに押される。音声入力
「記憶」も同様に用いられる。
ント発生処理307(第8E図) プログラムコントロール画面106内の「実行」ボタン
上215(第1図)にマウスカーソル201があるとき
にマウスボタン(図示せず)が押された場合には、第8
E図に示すように、イベント種類にプログラムコントロ
ール、付加情報に”execute”を格納したイベントデー
タを発生する。これは直前に完成されたコマンドの実行
を指示するのに用いられる。音声入力「実行」の場合と
同様である。同様に「記憶」ボタン216が押された場
合には、イベント種類にプログラムコントロール、付加
情報に”record”を格納したイベントデータを生成する
(ステップ1101)。そして、いずれの場合も入力イ
ベント処理126(第2図)を起動する(ステップ11
02)。「記憶」ボタン216は、オブジェクト画面1
02に表示されるアイコンあるいはカメラ(図示せず)
を移動あるいは回転したあと、その移動あるいは回転を
実行するコマンドを生成するときに押される。音声入力
「記憶」も同様に用いられる。
【0084】1.3.5 オブジェクトモデリングイベ
ント発生処理308(第8F図) 第8F図に示すように、オブジェクトモデリング画面1
08でのマウス入力はイベント種類にオブジェクトモデ
リング、付加情報に入力情報を格納したイベントデータ
を生成する(ステップ1201)。そして、入力イベン
ト処理126(第2図)を起動する(1202)。ここ
に示したイベントデータは、オブジェクトインスタンス
の作成又は修性正に用いられるもので、コマンドの作成
には直接関係しない。
ント発生処理308(第8F図) 第8F図に示すように、オブジェクトモデリング画面1
08でのマウス入力はイベント種類にオブジェクトモデ
リング、付加情報に入力情報を格納したイベントデータ
を生成する(ステップ1201)。そして、入力イベン
ト処理126(第2図)を起動する(1202)。ここ
に示したイベントデータは、オブジェクトインスタンス
の作成又は修性正に用いられるもので、コマンドの作成
には直接関係しない。
【0085】1.4 キーボードイベント発生処理30
9(第9図) キーボード110(第1図)による入力は一つのキー操
作ごとにキーボードイベント発生処理141に送られ
る。
9(第9図) キーボード110(第1図)による入力は一つのキー操
作ごとにキーボードイベント発生処理141に送られ
る。
【0086】第9図に示すように、マウスカーソル20
1がオブジェクトモデリング画面108にある場合には
(ステップ1301)、イベント種類にオブジェクトモ
デリング、付加情報にキーコードを格納したイベントデ
ータを生成する(ステップ1302)。
1がオブジェクトモデリング画面108にある場合には
(ステップ1301)、イベント種類にオブジェクトモ
デリング、付加情報にキーコードを格納したイベントデ
ータを生成する(ステップ1302)。
【0087】マウスカーソル201がオブジェクトモデ
リング画面108になく、キーコードが改行コードを含
まない場合には(1303)、イベント種類にキーボー
ド、付加情報にキーコード又はキーコードを格納したイ
ベントデータを生成する(ステップ1304)。改行コ
ードが入力されない状態でのキー入力は、コマンド作成
に必要な情報の入力であるがコマンド作成のための最後
の入力でないことを示している。したがってこのイベン
トデータの付加情報は生成すべきコマンドの一部のデー
タとして利用される。
リング画面108になく、キーコードが改行コードを含
まない場合には(1303)、イベント種類にキーボー
ド、付加情報にキーコード又はキーコードを格納したイ
ベントデータを生成する(ステップ1304)。改行コ
ードが入力されない状態でのキー入力は、コマンド作成
に必要な情報の入力であるがコマンド作成のための最後
の入力でないことを示している。したがってこのイベン
トデータの付加情報は生成すべきコマンドの一部のデー
タとして利用される。
【0088】マウスカーソル201がオブジェクトモデ
リング画面108になく、キーコードが改行コードを末
尾に含まない場合には(ステップ1303)、イベント
種類に命令入力、付加情報は空のイベントデータを生成
する(ステップ1305)。
リング画面108になく、キーコードが改行コードを末
尾に含まない場合には(ステップ1303)、イベント
種類に命令入力、付加情報は空のイベントデータを生成
する(ステップ1305)。
【0089】改行コードは、コマンド生成のために必要
な最後の情報すなわち、命令コードの入力が完了したこ
とを示すために操作者により入力される。したがってこ
のイベントデータは、それまでの入力データによりコマ
ンドを完成すべきことを指示する。
な最後の情報すなわち、命令コードの入力が完了したこ
とを示すために操作者により入力される。したがってこ
のイベントデータは、それまでの入力データによりコマ
ンドを完成すべきことを指示する。
【0090】そして、入力イベント処理を起動する(ス
テップ1306)。
テップ1306)。
【0091】1.5 入力イベント処理126
入力イベント処理126は第2図に示すように音声イベ
ント発生処理143と、マウスイベント発生処理140
と、キーボードイベント発生処理141の各イベント発
生処理により起動されると、そこで生成されたイベント
データ401を入力イベント待ち行列119に加える。
ント発生処理143と、マウスイベント発生処理140
と、キーボードイベント発生処理141の各イベント発
生処理により起動されると、そこで生成されたイベント
データ401を入力イベント待ち行列119に加える。
【0092】入力イベント待ち行列119は先入り先出
し待ち行列として実現してあり、入力イベント処理12
6はイベントデータの格納を入力イベント待ち行列11
9の最後から行う。一方、次に述べるイベントデータを
取り出すイベントディスパッチ処理127は、入力イベ
ント待ち行列119のはじめに格納されたイベントデー
タから取り出す。このことによって、入力データは損な
われることなく、発生順に処理される。
し待ち行列として実現してあり、入力イベント処理12
6はイベントデータの格納を入力イベント待ち行列11
9の最後から行う。一方、次に述べるイベントデータを
取り出すイベントディスパッチ処理127は、入力イベ
ント待ち行列119のはじめに格納されたイベントデー
タから取り出す。このことによって、入力データは損な
われることなく、発生順に処理される。
【0093】2.入力イベントの解釈および処理
以上のようにして入力イベント待ち行列119に格納さ
れたイベントデータの各々はイベントディスパッチ処理
127により一つづつ解釈され、処理される。
れたイベントデータの各々はイベントディスパッチ処理
127により一つづつ解釈され、処理される。
【0094】2.1 コマンド(第10図)
作成するべきプログラムを構成するコマンド1701の
フォーマットは第10図に示すような構成になってい
る。すなわち、それぞれ文字列からなる3つの部分から
なり、それぞれの部分は空白文字で区切られている。
フォーマットは第10図に示すような構成になってい
る。すなわち、それぞれ文字列からなる3つの部分から
なり、それぞれの部分は空白文字で区切られている。
【0095】(1)はじめの部分1702は処理対称で
ある。これはオブジェクト指向モデルでいうところの指
示オブジェクトに相当する。ここには処理すべきオブジ
ェクトインスタンスの名称が格納される。このオブジェ
クトインスタンスは、オブジェクト自身のオブジェクト
インスタンスの名称か、そのオブジェクトインスタンス
のある構成要素の名称か、そのオブジェクトインスタン
スのスロットの名称か、あるいは処理対象は存在しない
かを示す文字列のいずれかが格納される。処理対象が存
在しない場合は、特殊な組み込みコマンドに限られる。
ある。これはオブジェクト指向モデルでいうところの指
示オブジェクトに相当する。ここには処理すべきオブジ
ェクトインスタンスの名称が格納される。このオブジェ
クトインスタンスは、オブジェクト自身のオブジェクト
インスタンスの名称か、そのオブジェクトインスタンス
のある構成要素の名称か、そのオブジェクトインスタン
スのスロットの名称か、あるいは処理対象は存在しない
かを示す文字列のいずれかが格納される。処理対象が存
在しない場合は、特殊な組み込みコマンドに限られる。
【0096】ここでオブジェクトインスタンスの構成要
素名は、オブジェクトインスタンス名とその構成要素名
の間にピリオド(.)を置いたもので表現され、また、
オブジェクトインスタンスのスロット名は、オブジェク
トインスタンス名とスロット名の間にシャープ(#)を
置いたもので表現される。このようにして、システム内
で一意に名前が与えられる。
素名は、オブジェクトインスタンス名とその構成要素名
の間にピリオド(.)を置いたもので表現され、また、
オブジェクトインスタンスのスロット名は、オブジェク
トインスタンス名とスロット名の間にシャープ(#)を
置いたもので表現される。このようにして、システム内
で一意に名前が与えられる。
【0097】(2)次の部分1703は引数である。引
数1703は任意個の引数オブジェクトからなる。引数
オブジェクトの間は空白文字で区切られる。引数の個数
はメソッドによって異なる。引数オブジェクトは先に述
べたオブジェクトインスタンス、またはアトムかのいず
れかである。アトムは整数か浮動小数点数か文字列のい
ずれかである。
数1703は任意個の引数オブジェクトからなる。引数
オブジェクトの間は空白文字で区切られる。引数の個数
はメソッドによって異なる。引数オブジェクトは先に述
べたオブジェクトインスタンス、またはアトムかのいず
れかである。アトムは整数か浮動小数点数か文字列のい
ずれかである。
【0098】(3)3つめの部分1704は命令コード
である。命令コード1704はオブジェクトインスタン
スのメソッド名か、組み込み命令コードかのいずれかで
ある。
である。命令コード1704はオブジェクトインスタン
スのメソッド名か、組み込み命令コードかのいずれかで
ある。
【0099】コマンドバッファ120はコマンド170
1の一時的格納場所であり、ここに後述するように一つ
又は複数のイベントデータ又はそれぞれの一つの一部が
前詰めで格納され、一つのコマンドが完成される。
1の一時的格納場所であり、ここに後述するように一つ
又は複数のイベントデータ又はそれぞれの一つの一部が
前詰めで格納され、一つのコマンドが完成される。
【0100】但し、コマンド作成に用いられるイベント
データは、イベント種類がオブジェクト選択、命令入力
あるいはキーボードのもののみである。
データは、イベント種類がオブジェクト選択、命令入力
あるいはキーボードのもののみである。
【0101】2.2 コマンド待ち行列121(第11
図) 第11図に示すように、コマンド待ち行列121はコマ
ンドバッファ120を用いて完成されたコマンドを複数
個、先入れ先出し待ち行列として保持するものである。
コマンド待ち行列1801にコマンドを加える場合に
は、最後に加えられたコマンドの次に加えられ、コマン
ド待ち行列1801からコマンドを取り出す場合には、
その中で一番はじめに加えられたコマンドを取り出す。
図) 第11図に示すように、コマンド待ち行列121はコマ
ンドバッファ120を用いて完成されたコマンドを複数
個、先入れ先出し待ち行列として保持するものである。
コマンド待ち行列1801にコマンドを加える場合に
は、最後に加えられたコマンドの次に加えられ、コマン
ド待ち行列1801からコマンドを取り出す場合には、
その中で一番はじめに加えられたコマンドを取り出す。
【0102】コマンド待ち行列1801はプログラムの
実行状況によって生成されたり、消去される。
実行状況によって生成されたり、消去される。
【0103】2.3 コマンド待ち行列スタック122
(第12図) 第12図に示すように、コマンド待ち行列スタック12
2には、コマンド待ち行列121を複数個格納するスタ
ックであり、システム内に1つだけ用意される。スタッ
クに対する操作にはプッシュとポップとがあり、プッシ
ュは一番最近プッシュされたコマンド待ち行列の後に新
たなコマンドを加えるものであり、ポップは一番最近に
プッシュされたコマンド待行列を取り出す。
(第12図) 第12図に示すように、コマンド待ち行列スタック12
2には、コマンド待ち行列121を複数個格納するスタ
ックであり、システム内に1つだけ用意される。スタッ
クに対する操作にはプッシュとポップとがあり、プッシ
ュは一番最近プッシュされたコマンド待ち行列の後に新
たなコマンドを加えるものであり、ポップは一番最近に
プッシュされたコマンド待行列を取り出す。
【0104】また、スタックの底には初期コマンド待ち
行列1903が置かれる。
行列1903が置かれる。
【0105】2.4 イベントディスパッチ処理127
(第13図) イベントディスパッチ処理127は第13図に示すよう
に、入力イベント待ち行列119(第2図)の先頭から
1つずつイベントデータをとりだし(ステップ140
1)、イベント種類によってそのイベントデータの処理
を以下のように選択する。なお、イベント待ち行列11
9が空の場合には、何もしない。
(第13図) イベントディスパッチ処理127は第13図に示すよう
に、入力イベント待ち行列119(第2図)の先頭から
1つずつイベントデータをとりだし(ステップ140
1)、イベント種類によってそのイベントデータの処理
を以下のように選択する。なお、イベント待ち行列11
9が空の場合には、何もしない。
【0106】イベント種類がキーボードなら(ステップ
1402)、このイベントデータは、キーボンドイベン
ト発生処理309について説明したように、コマンド作
成用のデータであるが作成のための最後のデータでな
い。つまり、このイベントデータの付加情報のキーコー
ドは、処理対策又は引数を表わしている。したがってこ
の付加情報のキーコードをコマンドバッファ120に格
納する(ステップ1403)。格納位置は、コマンドバ
ッファ120内のなるべく前方の空き領域。
1402)、このイベントデータは、キーボンドイベン
ト発生処理309について説明したように、コマンド作
成用のデータであるが作成のための最後のデータでな
い。つまり、このイベントデータの付加情報のキーコー
ドは、処理対策又は引数を表わしている。したがってこ
の付加情報のキーコードをコマンドバッファ120に格
納する(ステップ1403)。格納位置は、コマンドバ
ッファ120内のなるべく前方の空き領域。
【0107】一方、イベント種類がオブジェクト選択、
命令入力モーションコントロール、ビューコントロー
ル、、プログラムコントロール、オブジェクトモデリン
グであるなら(ステップ1410〜1415)それぞ
れ、オブジェクト選択処理130、命令入力処理131
モーションコントロール処理128、ビューコントロー
ル処理129、、プログラムコントロール処理132、
オブジェクトモデリング処理133を起動する(ステッ
プ1404−1409)。オブジェクト選択処理13
0、命令入力処理131では後述するようにコマンドの
作成のために、イベントデータをコマンドバッファ12
0に格納される。
命令入力モーションコントロール、ビューコントロー
ル、、プログラムコントロール、オブジェクトモデリン
グであるなら(ステップ1410〜1415)それぞ
れ、オブジェクト選択処理130、命令入力処理131
モーションコントロール処理128、ビューコントロー
ル処理129、、プログラムコントロール処理132、
オブジェクトモデリング処理133を起動する(ステッ
プ1404−1409)。オブジェクト選択処理13
0、命令入力処理131では後述するようにコマンドの
作成のために、イベントデータをコマンドバッファ12
0に格納される。
【0108】なお、ステップ1403、あるいはステッ
プ1410−1415が終了すれば再び入力イベント待
ち行列119(第2図)の先頭のイベントの処理に戻
る。
プ1410−1415が終了すれば再び入力イベント待
ち行列119(第2図)の先頭のイベントの処理に戻
る。
【0109】2.5 オブジェクト選択処理130(第
14図) イベントデイスパッチ処理127で解釈されたイベント
データのイベント種類がオブジェクト選択であるとき、
この処理130が起動される。このようなイベントデー
タは、既に述べたように、マウスを用いて、操作者がコ
マンドの処理対象又は引数に用いられるべきオブジェク
トインスタンス等を選択したときに生成される。
14図) イベントデイスパッチ処理127で解釈されたイベント
データのイベント種類がオブジェクト選択であるとき、
この処理130が起動される。このようなイベントデー
タは、既に述べたように、マウスを用いて、操作者がコ
マンドの処理対象又は引数に用いられるべきオブジェク
トインスタンス等を選択したときに生成される。
【0110】オブジェクト選択処理130では第14図
に示すようにイベントディスパッチ処理127から送ら
れてくるイベントデータ内の付加情報(これは処理対象
又は引数を表わす)に引き続いて空白文字列をつけ加え
て、コマンドバッファ120内に前詰めで格納する(ス
テップ2001)。
に示すようにイベントディスパッチ処理127から送ら
れてくるイベントデータ内の付加情報(これは処理対象
又は引数を表わす)に引き続いて空白文字列をつけ加え
て、コマンドバッファ120内に前詰めで格納する(ス
テップ2001)。
【0111】2.6 命令入力処理131(第15図)
イベントディスパッチ処理127で解釈されたイベント
データのイベント種類が命令入力であるとき、この処理
131が起動される。このようなイベントデータは、既
に述べたように作成すべきコマンドに用いる情報の内の
最後の情報(すなわち、命令コード)の入力と同時ある
いはそれの入力後の入力により生成されるもので、音声
入力装置111あるいはキーボードからの操作者の入力
に応答して生成される。
データのイベント種類が命令入力であるとき、この処理
131が起動される。このようなイベントデータは、既
に述べたように作成すべきコマンドに用いる情報の内の
最後の情報(すなわち、命令コード)の入力と同時ある
いはそれの入力後の入力により生成されるもので、音声
入力装置111あるいはキーボードからの操作者の入力
に応答して生成される。
【0112】命令入力処理131では第15図に示すよ
うにイベントディスパッチ処理127から送られてくる
イベントデータの付加情報(この末尾は命令コードであ
る)をコマンドバッファ120内に前詰めでコマンドを
完成する(ステップ2101)。さらにこの完成された
コマンドをコマンド待ち行列スタック122のトップに
あるコマンド待ち行列の最後に加え(ステップ210
2)、コマンドバッファ120をクリアする(ステップ
2103)。
うにイベントディスパッチ処理127から送られてくる
イベントデータの付加情報(この末尾は命令コードであ
る)をコマンドバッファ120内に前詰めでコマンドを
完成する(ステップ2101)。さらにこの完成された
コマンドをコマンド待ち行列スタック122のトップに
あるコマンド待ち行列の最後に加え(ステップ210
2)、コマンドバッファ120をクリアする(ステップ
2103)。
【0113】2.7 モーションコントロール処理12
8(第16図) この処理はイベントデイスパッチ処理127で解釈され
たイベントデータの種類がモーションコントロールのと
きに起動される。すでに述べたように、この種のイベン
トデータは、操作者がモーションコントロール画面10
3内のバリュエータを操作し、オブジェクト表面画面1
02内のアイコンを移動あるいは回転するときに起動さ
れる。既述のように、このバリュータ操作の前には、移
動又は変形するアイコンを指定するためのオブジェクト
選択がなされていなければならない。つまり、このオブ
ジェクト選択の結果としてコマンドバッファ3120内
の処理対象部に、モーションコントロールの対象となる
オブジェクトインスタンスの名称がすでに格納されてい
なければならない。
8(第16図) この処理はイベントデイスパッチ処理127で解釈され
たイベントデータの種類がモーションコントロールのと
きに起動される。すでに述べたように、この種のイベン
トデータは、操作者がモーションコントロール画面10
3内のバリュエータを操作し、オブジェクト表面画面1
02内のアイコンを移動あるいは回転するときに起動さ
れる。既述のように、このバリュータ操作の前には、移
動又は変形するアイコンを指定するためのオブジェクト
選択がなされていなければならない。つまり、このオブ
ジェクト選択の結果としてコマンドバッファ3120内
の処理対象部に、モーションコントロールの対象となる
オブジェクトインスタンスの名称がすでに格納されてい
なければならない。
【0114】このモーションコントロール処理128で
は、この処理対称部により指定されたオブジェクトイン
スタンスに対するアイコンをイベントディスパッチ処理
127から与えられたイベントデータの付加情報に格納
してあるバリュエータ名と移動量あるいは回転角に従っ
て移動又は回転する。移動又は回転は3次元形状データ
ベース123内の図形データを修正することにより実現
される。
は、この処理対称部により指定されたオブジェクトイン
スタンスに対するアイコンをイベントディスパッチ処理
127から与えられたイベントデータの付加情報に格納
してあるバリュエータ名と移動量あるいは回転角に従っ
て移動又は回転する。移動又は回転は3次元形状データ
ベース123内の図形データを修正することにより実現
される。
【0115】なお、コマンドバッファ120に処理対象
が格納されていない場合には、以下に示す処理は行なわ
ない。
が格納されていない場合には、以下に示す処理は行なわ
ない。
【0116】より具体的には、第16図に示すように、
このバリュエータ名がx方向移動217の場合には(ス
テップ1502)、処理対象のオブジェクトインスタン
ス属性をオブジェクトインスタンスライブラリ124か
ら調べ、”移動可能”であることを確認して(ステップ
1505)バリュエータの値に応じて処理対象で示され
るオブジェクトインスタンスに対応するアイコンをX方
向に移動させる(ステップ1506)。
このバリュエータ名がx方向移動217の場合には(ス
テップ1502)、処理対象のオブジェクトインスタン
ス属性をオブジェクトインスタンスライブラリ124か
ら調べ、”移動可能”であることを確認して(ステップ
1505)バリュエータの値に応じて処理対象で示され
るオブジェクトインスタンスに対応するアイコンをX方
向に移動させる(ステップ1506)。
【0117】ステップ1505において処理対象の属性
が移動可能でない場合でも、処理対象が何らかのオブジ
ェクトの構成要素の場合には、その構成要素の上位の要
素の属性をオブジェクトインスタンスライブラリ124
から調べてそれが移動可能なら、その上位の要素を移動
可能と判断しこれを移動させる。オブジェクトの上位構
成要素をたどっていっても移動可能なものがない場合は
何も処理を行わない。
が移動可能でない場合でも、処理対象が何らかのオブジ
ェクトの構成要素の場合には、その構成要素の上位の要
素の属性をオブジェクトインスタンスライブラリ124
から調べてそれが移動可能なら、その上位の要素を移動
可能と判断しこれを移動させる。オブジェクトの上位構
成要素をたどっていっても移動可能なものがない場合は
何も処理を行わない。
【0118】バリュエータがy方向位移動218、z方
向移動219の場合も、同様に処理する(ステップ15
03−1506)。
向移動219の場合も、同様に処理する(ステップ15
03−1506)。
【0119】バリュエータ名がx軸周り回転220の場
合には、処理対象の属性を調べ(ステップ150
7)、”回転可能”であることを確認して(ステップ1
510)バリュエータの値に応じて処理対象をX 軸の周
りに回転させる(ステップ1511)。なお、ステップ
1510の判定において処理対象の属性が”回転可能”
でない場合でも、指示対象がオブジェクトの構成要素の
場合には、構成要素の上位の要素の属性を調べ、”回転
可能”なものがあれば、指示対象を”回転可能”と判断
し、ステップ1511でこの上位の要素を回転させるこ
とによって指示対象を回転させる。オブジェクトの上位
構成要素をたどっていっても”回転可能”なものがない
場合には、何も処理を行わない。この上の回転処理はオ
ブジェクトライブラリ124の内容を参照することによ
って行われる。バリュエータがy軸周り回転221,z
軸周り回転222の場合も、同様に処理する(ステップ
1508−1511)。
合には、処理対象の属性を調べ(ステップ150
7)、”回転可能”であることを確認して(ステップ1
510)バリュエータの値に応じて処理対象をX 軸の周
りに回転させる(ステップ1511)。なお、ステップ
1510の判定において処理対象の属性が”回転可能”
でない場合でも、指示対象がオブジェクトの構成要素の
場合には、構成要素の上位の要素の属性を調べ、”回転
可能”なものがあれば、指示対象を”回転可能”と判断
し、ステップ1511でこの上位の要素を回転させるこ
とによって指示対象を回転させる。オブジェクトの上位
構成要素をたどっていっても”回転可能”なものがない
場合には、何も処理を行わない。この上の回転処理はオ
ブジェクトライブラリ124の内容を参照することによ
って行われる。バリュエータがy軸周り回転221,z
軸周り回転222の場合も、同様に処理する(ステップ
1508−1511)。
【0120】2.8 ビューコントロール処理129
(第17図) ビューコントロール処理129は、第17図に示すよう
にカメラ(図示せず)の位置、その視野の水平方向、垂
直方向を操作されたバリュエータの種類、バリュエータ
のスライダ目盛に応じて制御する(ステップ1601−
1604、1650、1651)。6つのバリュエータ
230−235(第1図)はそれぞれ、前進命令、上昇
命令、水平移動命令、首上げ命令、首振り命令、回転命
令を意味する。
(第17図) ビューコントロール処理129は、第17図に示すよう
にカメラ(図示せず)の位置、その視野の水平方向、垂
直方向を操作されたバリュエータの種類、バリュエータ
のスライダ目盛に応じて制御する(ステップ1601−
1604、1650、1651)。6つのバリュエータ
230−235(第1図)はそれぞれ、前進命令、上昇
命令、水平移動命令、首上げ命令、首振り命令、回転命
令を意味する。
【0121】例えば、前進バリュエータ230が操作さ
れた場合(ステップ1601)には、オブジェクトイン
スタンスカメラ2780(第3図C)の位置スロット値
2791を、方向スロット値2792の方向に、イベン
トデータの付加情報の値のスライダ目盛の値に応じて変
化させる(ステップ1602)。
れた場合(ステップ1601)には、オブジェクトイン
スタンスカメラ2780(第3図C)の位置スロット値
2791を、方向スロット値2792の方向に、イベン
トデータの付加情報の値のスライダ目盛の値に応じて変
化させる(ステップ1602)。
【0122】オブジェクトインスタンスカメラ2780
が移動、回転することによってオブジェクト表示画面1
02で、好きなビューを選択することができる。この移
動、または回転はオブジェクトライブラリ124、3次
元形状データベース123を参照して行われ、移動また
は回転後にはそのオブジェクトに対する3次元図形デー
タが更新されるのはモーションコントロール処理128
の場合と同じである。
が移動、回転することによってオブジェクト表示画面1
02で、好きなビューを選択することができる。この移
動、または回転はオブジェクトライブラリ124、3次
元形状データベース123を参照して行われ、移動また
は回転後にはそのオブジェクトに対する3次元図形デー
タが更新されるのはモーションコントロール処理128
の場合と同じである。
【0123】2.9 プログラムコントロール処理13
2(第18図) この処理は、イベントディスパッチ処理127で解釈さ
れたイベントデータ内のデータ内のデータ種類がプログ
ラムコントロールのときに起動される。この種のイベン
トは、すでに述べないように、音声入力、マウス入力あ
るいはキー入力により「記憶」あるいは「実行」が指示
されたときに生成される。
2(第18図) この処理は、イベントディスパッチ処理127で解釈さ
れたイベントデータ内のデータ内のデータ種類がプログ
ラムコントロールのときに起動される。この種のイベン
トは、すでに述べないように、音声入力、マウス入力あ
るいはキー入力により「記憶」あるいは「実行」が指示
されたときに生成される。
【0124】このプログラムコントロール処理132は
第18図に示すように、そのイベントデータ内の付加情
報”record”なら(ステップ2201)、状態記憶処理
134(第2図)を起動し(ステップ2204)、その
付加情報が”execute”なら(ステップ2202)オブ
ジェクトメソッド実行処理135(第2図)を起動する
(ステップ2203)。
第18図に示すように、そのイベントデータ内の付加情
報”record”なら(ステップ2201)、状態記憶処理
134(第2図)を起動し(ステップ2204)、その
付加情報が”execute”なら(ステップ2202)オブ
ジェクトメソッド実行処理135(第2図)を起動する
(ステップ2203)。
【0125】2.10 オブジェクトモデリング処理1
33(第19図) この処理はイベントディスパッチ処理で解釈されたイベ
ントデータ内部データ種類がオブジェクトモデリングの
ときに起動される。この種のイベントデータは、すでに
述べたようにオブジェクトを新しく定義又は修正すると
きにマウス入力を用いて生成される。
33(第19図) この処理はイベントディスパッチ処理で解釈されたイベ
ントデータ内部データ種類がオブジェクトモデリングの
ときに起動される。この種のイベントデータは、すでに
述べたようにオブジェクトを新しく定義又は修正すると
きにマウス入力を用いて生成される。
【0126】オブジェクトモデリング処理133は1つ
の独立したアプリケーションプログラムである。ここで
は、まず第19図に示すように各オブジェクトを表す多
面体の集合およびそれぞれの属性を新たに定義する(ス
テップ2601)。次にこのオブジェクトを第3A〜3
C図に例示したように複数の要素から階層的に構成して
いき、それぞれの要素にたいして新しいオブジェクトを
定義する。この時、構成要素に移動可能属性か回転可能
属性かを指定する(ステップ2602)。次に、オブジ
ェクト名、オブジェクトスロット名、オブジェクトスロ
ットに入るデータ型を指定する(ステップ2603)。
こうしてできた、オブジェクトを表わす図形に関する情
報およびオブジェクト自身に関する情報をそれぞれ3次
元形状データベース123、オブジェクトライブラリ1
24に格納する(ステップ2604)。
の独立したアプリケーションプログラムである。ここで
は、まず第19図に示すように各オブジェクトを表す多
面体の集合およびそれぞれの属性を新たに定義する(ス
テップ2601)。次にこのオブジェクトを第3A〜3
C図に例示したように複数の要素から階層的に構成して
いき、それぞれの要素にたいして新しいオブジェクトを
定義する。この時、構成要素に移動可能属性か回転可能
属性かを指定する(ステップ2602)。次に、オブジ
ェクト名、オブジェクトスロット名、オブジェクトスロ
ットに入るデータ型を指定する(ステップ2603)。
こうしてできた、オブジェクトを表わす図形に関する情
報およびオブジェクト自身に関する情報をそれぞれ3次
元形状データベース123、オブジェクトライブラリ1
24に格納する(ステップ2604)。
【0127】任意の時点で、オブジェクトモデリング処
理133で既に定義してあるオブジェクトを編集するこ
ともできる。例えば、第3A図の人物オブジェクト27
03の下位の要素である右手2710のまた下位要素と
して、電話2803の下位要素である受話器2805を
登録するように階層を作れば、人間の手の動きにしたが
って受話器が動作することになり、結果として人間が受
話器をとったことを実現できる。後で述べる組込命令l
inkはこのようにして実現している。
理133で既に定義してあるオブジェクトを編集するこ
ともできる。例えば、第3A図の人物オブジェクト27
03の下位の要素である右手2710のまた下位要素と
して、電話2803の下位要素である受話器2805を
登録するように階層を作れば、人間の手の動きにしたが
って受話器が動作することになり、結果として人間が受
話器をとったことを実現できる。後で述べる組込命令l
inkはこのようにして実現している。
【0128】オブジェクトモデリング処理で定義された
オブジェクトの名称、形状、属性はオブジェクトモデリ
ング画面108(第1図)の領域236,237,23
8に表示される。作成ずみのオブジェクトを修正する場
合において、そのオブジェクトに対して定義ずみのメソ
ッドがある場合には、そのメソッドの名称が領域239
に表示される。
オブジェクトの名称、形状、属性はオブジェクトモデリ
ング画面108(第1図)の領域236,237,23
8に表示される。作成ずみのオブジェクトを修正する場
合において、そのオブジェクトに対して定義ずみのメソ
ッドがある場合には、そのメソッドの名称が領域239
に表示される。
【0129】3.状態記憶処理134(第20図)
この処理はすでに述べたごとく、作成ずみのコマンドの
記憶が操作者により指示されたときに、プログラムコン
トロール処理132により起動される。この状態記憶処
理134では、まずコマンドバッファ120に処理対象
を示すデータがあるかどうかを調べる(ステップ240
1)。処理対象を示すデータが存在する場合には、処理
対象用状態記憶処理2402(第21図)を起動する
(ステップ2402)。このデータが存在しないのはビ
ューコントロール画面104を用いてカメラ(図示せ
ず)の視野を変化させたあと現在の状態記憶指示が操作
者により与えられたときであり、オブジェクトインスタ
ンスカメラの状態を記憶する。すなわち、ビューコント
ロール処理129によって操作されたカメラ(図示せ
ず)の現在の状態(位置、方向、上方向)を、オブジェ
クトライブラリ124中のそれに対するインスタンス2
780(第3c図)を参照して調べる(ステップ240
3)。そして、コマンドバッファ120に、処理対象と
してカメラオブジェクトインスタンス2780、引数と
してカメラの現在の位置、方向および、上方向、命令コ
ードとしてcamera_setを格納してカメラの視
野セット用のコマンドを形成し、これをコマンド待ち行
列スタック122の先頭のコマンド待ち行列の末尾に加
える(ステップ2404)。命令コードcamera_
setは、カメラオブジェクトインスタンス2780に
対応するカメラ(図示せず)をコマンドの引数で指定さ
れた方向に配置させる組み込み命令に対する命令コード
である。
記憶が操作者により指示されたときに、プログラムコン
トロール処理132により起動される。この状態記憶処
理134では、まずコマンドバッファ120に処理対象
を示すデータがあるかどうかを調べる(ステップ240
1)。処理対象を示すデータが存在する場合には、処理
対象用状態記憶処理2402(第21図)を起動する
(ステップ2402)。このデータが存在しないのはビ
ューコントロール画面104を用いてカメラ(図示せ
ず)の視野を変化させたあと現在の状態記憶指示が操作
者により与えられたときであり、オブジェクトインスタ
ンスカメラの状態を記憶する。すなわち、ビューコント
ロール処理129によって操作されたカメラ(図示せ
ず)の現在の状態(位置、方向、上方向)を、オブジェ
クトライブラリ124中のそれに対するインスタンス2
780(第3c図)を参照して調べる(ステップ240
3)。そして、コマンドバッファ120に、処理対象と
してカメラオブジェクトインスタンス2780、引数と
してカメラの現在の位置、方向および、上方向、命令コ
ードとしてcamera_setを格納してカメラの視
野セット用のコマンドを形成し、これをコマンド待ち行
列スタック122の先頭のコマンド待ち行列の末尾に加
える(ステップ2404)。命令コードcamera_
setは、カメラオブジェクトインスタンス2780に
対応するカメラ(図示せず)をコマンドの引数で指定さ
れた方向に配置させる組み込み命令に対する命令コード
である。
【0130】一方、判定2401の結果、処理対象を示
すデータがコマンドバッファ120中にあると判断され
たのは、現在の状態記憶指示に先立って、操作者によ
り、モーションコントロール画面103(第1図)を用
いたマウス入力により、オブジェクト表示画面102中
のアイコンの移動又は回転が指示がなされたときであ
る。したがって、処理対象用状態記憶処理240が起動
されたとき、第21図に示すように、コマンドバッファ
120中のデータで示される処理対象が移動可能かどう
かと回転可能かどうかを処理対象のオブジェクトインス
タンスに関する属性データから調べる(ステップ250
1、2504)。
すデータがコマンドバッファ120中にあると判断され
たのは、現在の状態記憶指示に先立って、操作者によ
り、モーションコントロール画面103(第1図)を用
いたマウス入力により、オブジェクト表示画面102中
のアイコンの移動又は回転が指示がなされたときであ
る。したがって、処理対象用状態記憶処理240が起動
されたとき、第21図に示すように、コマンドバッファ
120中のデータで示される処理対象が移動可能かどう
かと回転可能かどうかを処理対象のオブジェクトインス
タンスに関する属性データから調べる(ステップ250
1、2504)。
【0131】移動可能性又は回転可能性の判断において
は、「2.7 モーションコントロール処理129」で
述べたと同じようにして処理対象のオブジェクトインス
タンス又はその下位の構成要素たるオブジェクトインス
タンスから移動又は回転可能なものをそれぞれ移動対
象、回転対象として選ぶ。移動あるいは回転可能な場合
にはそれぞれ、選択された移動対象オブジェクトインス
タンスの現在位置と回転対象オブジェクトインスタンス
の現在回転角を求める(ステップ2502)。そして、
移動、回転の各々に対して、コマンドバッファ120に
移動又は回転対象オブジェクトインスタンス、求めた現
在位置又は回転角、および、移動又は回転に関係する特
殊命令コードtranslate,又はrotateを格納し、移動又
は回転用のコマンドを生成する。それぞれのコマンドを
コマンド待ち行列スタック122の先頭のコマンド待ち
行列の末尾に加える(ステップ2502)。
は、「2.7 モーションコントロール処理129」で
述べたと同じようにして処理対象のオブジェクトインス
タンス又はその下位の構成要素たるオブジェクトインス
タンスから移動又は回転可能なものをそれぞれ移動対
象、回転対象として選ぶ。移動あるいは回転可能な場合
にはそれぞれ、選択された移動対象オブジェクトインス
タンスの現在位置と回転対象オブジェクトインスタンス
の現在回転角を求める(ステップ2502)。そして、
移動、回転の各々に対して、コマンドバッファ120に
移動又は回転対象オブジェクトインスタンス、求めた現
在位置又は回転角、および、移動又は回転に関係する特
殊命令コードtranslate,又はrotateを格納し、移動又
は回転用のコマンドを生成する。それぞれのコマンドを
コマンド待ち行列スタック122の先頭のコマンド待ち
行列の末尾に加える(ステップ2502)。
【0132】この処理により、操作者が指示したアイコ
ンの移動、回転を実行するコマンドをプログラム中に埋
め込むことができる。
ンの移動、回転を実行するコマンドをプログラム中に埋
め込むことができる。
【0133】4.オブジェクトメソッドの実行
本システムでは、オブジェクトメソッドの実行とオブジ
ェクトメソッドのプログラミングは同時に行うことがで
きる。これを実現するシステム要素について、以下に述
べる。
ェクトメソッドのプログラミングは同時に行うことがで
きる。これを実現するシステム要素について、以下に述
べる。
【0134】4.1 オブジェクトメソッド実行処理1
35(第22図) 第22図に示すように、オブジェクトメソッド実行処理
135が起動されると、呼出しコマンド(この処理の対
象となるコマンド)に従って以下の処理を行う。
35(第22図) 第22図に示すように、オブジェクトメソッド実行処理
135が起動されると、呼出しコマンド(この処理の対
象となるコマンド)に従って以下の処理を行う。
【0135】(1)そのコマンドが先行して生成された
一連のコマンドの実行が成功したならプログラムの実行
を終了することを指示するコマンドsuccess_endなら
(ステップ2801)、メソッド実行終了処理240
(第23図)を起動し(ステップ2802)、成功終了
を報告して(ステップ2803)制御を戻す。
一連のコマンドの実行が成功したならプログラムの実行
を終了することを指示するコマンドsuccess_endなら
(ステップ2801)、メソッド実行終了処理240
(第23図)を起動し(ステップ2802)、成功終了
を報告して(ステップ2803)制御を戻す。
【0136】(2)そのコマンドがsuccess_endでない
とき、そのコマンドの命令用のコードが組み込み命令コ
ードかどうかを調べ(ステップ2804)、組み込み命
令用のものであれば、その組み込み命令をあらかじめそ
の命令に対して定めら芦プログラムライブラリを用いて
実行する(ステップ2806)。そして実行が成功すれ
ば(ステップ2807)、成功終了を報告して(ステッ
プ2809)制御を戻し、実行が成功しなければ失敗終
了を報告して(ステップ2808)制御を戻す。
とき、そのコマンドの命令用のコードが組み込み命令コ
ードかどうかを調べ(ステップ2804)、組み込み命
令用のものであれば、その組み込み命令をあらかじめそ
の命令に対して定めら芦プログラムライブラリを用いて
実行する(ステップ2806)。そして実行が成功すれ
ば(ステップ2807)、成功終了を報告して(ステッ
プ2809)制御を戻し、実行が成功しなければ失敗終
了を報告して(ステップ2808)制御を戻す。
【0137】呼出しコマンドががsuccess_en
dでなく、またその命令コードが組み込み命令コードで
ない場合には、そのコマンドはユーザが定義したもので
あるか、又はこれから定義するものであり、以下の処理
を行う。
dでなく、またその命令コードが組み込み命令コードで
ない場合には、そのコマンドはユーザが定義したもので
あるか、又はこれから定義するものであり、以下の処理
を行う。
【0138】(1)そのコマンドの処理対称で指定され
るオブジェクトインスタンスに対してすでに定義されて
いるメソッドの中に未実行のメソッドが存在するかどう
かを調べる(ステップ2811)。存在しなければ、オ
ブジェクトメソッド生成処理250を起動し(ステップ
2812)、成功終了を報告して(ステップ2813)
制御を戻す。存在する場合には、そのメソッドをユーザ
が定義していることを意味し、これを実行するために次
に進む。
るオブジェクトインスタンスに対してすでに定義されて
いるメソッドの中に未実行のメソッドが存在するかどう
かを調べる(ステップ2811)。存在しなければ、オ
ブジェクトメソッド生成処理250を起動し(ステップ
2812)、成功終了を報告して(ステップ2813)
制御を戻す。存在する場合には、そのメソッドをユーザ
が定義していることを意味し、これを実行するために次
に進む。
【0139】(2)オブジェクトに対してユーザが定義
した未実行のメソッドの中で一番はじめに定義されたも
のを選択する(ステップ2815)。この選択のために
は、各オブジェクトに対して複数のメソッドが定義され
るときには、それぞれを定義順に並べて、オブジェクト
インスタンスライブラリに並べておく。そして、選択さ
れたメソッドの引数として指定されたオブジェクトイン
スタンスを呼出しコマンドのオブジェクトインスタンス
により置き換える(ステップ2816)。
した未実行のメソッドの中で一番はじめに定義されたも
のを選択する(ステップ2815)。この選択のために
は、各オブジェクトに対して複数のメソッドが定義され
るときには、それぞれを定義順に並べて、オブジェクト
インスタンスライブラリに並べておく。そして、選択さ
れたメソッドの引数として指定されたオブジェクトイン
スタンスを呼出しコマンドのオブジェクトインスタンス
により置き換える(ステップ2816)。
【0140】(3)そのメソッドを定義しているコマン
ド列の中の未実行のコマンドの中で、はじめのものを選
択し(ステップ2817)、このコマンドを呼び出しコ
マンドとしてオブジェクトメソッドを実行する(ステッ
プ2818)。
ド列の中の未実行のコマンドの中で、はじめのものを選
択し(ステップ2817)、このコマンドを呼び出しコ
マンドとしてオブジェクトメソッドを実行する(ステッ
プ2818)。
【0141】(4)そのメソッドにまだ未実行のコマン
ドが存在するかどうか調べる(ステップ2819)。存
在しないなら、そのメソッドの実行は正常に完了したこ
とを意味しており、成功終了を報告して制御を戻す(ス
テップ2821)。まだ存在するなら、そのメソッドは
まだ完了していないため、次に進む。
ドが存在するかどうか調べる(ステップ2819)。存
在しないなら、そのメソッドの実行は正常に完了したこ
とを意味しており、成功終了を報告して制御を戻す(ス
テップ2821)。まだ存在するなら、そのメソッドは
まだ完了していないため、次に進む。
【0142】(5)(3)で実行した結果を調べる(ス
テップ2820)。実行が成功しているなら、そのメソ
ッドの実行は順調に進行しており、(3)に戻る。そう
でなく、失敗しているなら、そのメソッドの実行に支障
が生じているため、これを回復するために(1)に戻
る。
テップ2820)。実行が成功しているなら、そのメソ
ッドの実行は順調に進行しており、(3)に戻る。そう
でなく、失敗しているなら、そのメソッドの実行に支障
が生じているため、これを回復するために(1)に戻
る。
【0143】4.2 メソッド実行終了処理2301
(第23図) 実行対象のコマンドがsuccess_endであるためメソッド
実行終了処理2301がメソッド実行処理135により
起動された場合、第23図に示すように、呼び出したコ
マンドに従い、以下の処理を行う。
(第23図) 実行対象のコマンドがsuccess_endであるためメソッド
実行終了処理2301がメソッド実行処理135により
起動された場合、第23図に示すように、呼び出したコ
マンドに従い、以下の処理を行う。
【0144】呼び出したコマンドがコマンド待ち行列ス
タック122のトップにあるコマンド待ち行列に対応す
るものであれば(ステップ2302)、以下の処理を行
う。そうでなければ、制御を戻す。
タック122のトップにあるコマンド待ち行列に対応す
るものであれば(ステップ2302)、以下の処理を行
う。そうでなければ、制御を戻す。
【0145】コマンド待ち行列スタック122のトップ
にあるコマンド待ち行列内のコマンド列として、コマン
ドの指示対象の、コマンドの命令コードメソッドに加え
る(ステップ2303)。
にあるコマンド待ち行列内のコマンド列として、コマン
ドの指示対象の、コマンドの命令コードメソッドに加え
る(ステップ2303)。
【0146】そして、コマンド待ち行列スタック122
をポップし、ポップされたコマンド待ち行列がトップに
ある間に生成されたオブジェクトインスタンスを消去
し、コマンドに対応するメソッドプログラミング画面を
消去する。(ステップ2304)そして、制御を戻す。
をポップし、ポップされたコマンド待ち行列がトップに
ある間に生成されたオブジェクトインスタンスを消去
し、コマンドに対応するメソッドプログラミング画面を
消去する。(ステップ2304)そして、制御を戻す。
【0147】4.3 オブジェクトメソッド生成処理2
812(第24図) 第24図に示すように、以下の処理を行う。
812(第24図) 第24図に示すように、以下の処理を行う。
【0148】呼出しコマンドに対応するコマンド待ち行
列を新しく生成して、これをコマンド待ち行列スタック
121(第2図)にプッシュする(ステップ291
0)。
列を新しく生成して、これをコマンド待ち行列スタック
121(第2図)にプッシュする(ステップ291
0)。
【0149】また、呼び出したコマンドのメソッドに対
応するメソッドプログラミング画面を生成する(ステッ
プ2921)。
応するメソッドプログラミング画面を生成する(ステッ
プ2921)。
【0150】そして、その画面にメソッド名、指示対象
とその属するオブジェクト名、引数とその属するオブジ
ェクト名を表示して(ステップ2930)、制御を戻
す。
とその属するオブジェクト名、引数とその属するオブジ
ェクト名を表示して(ステップ2930)、制御を戻
す。
【0151】4.4 組み込み命令実行処理2806
第25図に組み込み命令一覧3001を示す。この図で
は、組み込み命令の対象となるオブジェクト3002、
必要な引数3003、組み込み命令3004、命令を実
行したときの作用3004について示した。実際の対
象、引数はオブジェクトのインスタンスか、アトムであ
る。
は、組み込み命令の対象となるオブジェクト3002、
必要な引数3003、組み込み命令3004、命令を実
行したときの作用3004について示した。実際の対
象、引数はオブジェクトのインスタンスか、アトムであ
る。
【0152】C.動作説明
以下、具体例を用いて本実施例によるプログラムの作成
を説明する。初めの例では電話をかけるプログラムを作
成する。2番目の例では大型汎用計算機と通信して、こ
の上の既存のアプリケーションプログラムを利用するプ
ログラムを作成する。いずれの場合にも、人物アイコン
3102が行うべき動作を指示するコマンドをプログラ
ム用のコマンドをプログラム用のコマンドとして入力
し、このコマンドを実行して、人物アイコン3102に
その動作を行なわせる。このコマンド列は人物オブジェ
クトが実行するメソッドの一つとして人物オブジェクト
に記憶させる。
を説明する。初めの例では電話をかけるプログラムを作
成する。2番目の例では大型汎用計算機と通信して、こ
の上の既存のアプリケーションプログラムを利用するプ
ログラムを作成する。いずれの場合にも、人物アイコン
3102が行うべき動作を指示するコマンドをプログラ
ム用のコマンドをプログラム用のコマンドとして入力
し、このコマンドを実行して、人物アイコン3102に
その動作を行なわせる。このコマンド列は人物オブジェ
クトが実行するメソッドの一つとして人物オブジェクト
に記憶させる。
【0153】1.電話をかけるプログラムの生成
ここでは電話をかけるプログラム(メソッド)を作成す
る。人物オブジェクトにメソッドとして割りあてるメソ
ッド名はcallとする。
る。人物オブジェクトにメソッドとして割りあてるメソ
ッド名はcallとする。
【0154】a.コマンド入力
初期状態では、オブジェクト表示画面102は第26A
図のようになっているとする。
図のようになっているとする。
【0155】人物アイコン3102(第1図)は第3A
図の人物オブジェクト2701を表わし、電話アイコン
3104(第2図)は第3B図の電話オブジェクト27
50を表わす。電話番号オブジェクトはまだ説明しなか
ったが、以下では、初期状態ですでに定義されていると
仮定する。3103はこのオブジェクトを表わすアイコ
ンで、長方形形状をしており、その中央にスロット値電
話番号を有する。人物オブジェクトのインスタンス名は
rie,電話オブジェクトのインスタンス名はtel、
電話番号オブジェクトのインスタンス名はtnとする。
図の人物オブジェクト2701を表わし、電話アイコン
3104(第2図)は第3B図の電話オブジェクト27
50を表わす。電話番号オブジェクトはまだ説明しなか
ったが、以下では、初期状態ですでに定義されていると
仮定する。3103はこのオブジェクトを表わすアイコ
ンで、長方形形状をしており、その中央にスロット値電
話番号を有する。人物オブジェクトのインスタンス名は
rie,電話オブジェクトのインスタンス名はtel、
電話番号オブジェクトのインスタンス名はtnとする。
【0156】以下では、これらの名称は、対応するオブ
ジェクトを表わすアイコンの名称として用いる。
ジェクトを表わすアイコンの名称として用いる。
【0157】人物アイコン3102はどこか任意の、電
話アイコン3104からはなれた場所におり、電話アイ
コン3104の受話器はかかったままである。そして、
電話番号アイコン3103の内部には番号012−34
56が表示されている。また、第26B図に示すように
主記憶装置112内のコマンド待ち行列スタック122
には初期待ち行列スタック1903だけがある。
話アイコン3104からはなれた場所におり、電話アイ
コン3104の受話器はかかったままである。そして、
電話番号アイコン3103の内部には番号012−34
56が表示されている。また、第26B図に示すように
主記憶装置112内のコマンド待ち行列スタック122
には初期待ち行列スタック1903だけがある。
【0158】ここで人物アイコン3102に電話をかけ
させるためにはユーザは、コマンド (0)rie tel tn call を入力する。ここで、call以外は処理対象を表わ
し、callはメソッド名である。
させるためにはユーザは、コマンド (0)rie tel tn call を入力する。ここで、call以外は処理対象を表わ
し、callはメソッド名である。
【0159】(a−1)コマンドの処理対象と引数の入
力 以下では、“処理対象”は、とくに断わらないがぎりあ
るいは文脈上不自然でないかぎり、コマンドの処理対象
部をさす。
力 以下では、“処理対象”は、とくに断わらないがぎりあ
るいは文脈上不自然でないかぎり、コマンドの処理対象
部をさす。
【0160】このコマンドの入力のためには、操作者は
音声入力装置111かマウス109かキーボード111
を用いて文字列として処理対象”rie”と、”te
l”と、”tn”とをこの順で入力する。
音声入力装置111かマウス109かキーボード111
を用いて文字列として処理対象”rie”と、”te
l”と、”tn”とをこの順で入力する。
【0161】(a−1−1)音声入力の場合
例えば、音声によって文字列を入力するには音声入力装
置111(第1図)に向かって「りえ」と発声する。音
声は音声入力装置111から音声認識処理142(第2
図)に送られ、ここでは、第7A図に示すように候補音
声データベース125の音声データ領域のなかで最も近
い候補音声データを抽出し(ステップ601)、音声イ
ベント発声処理143を起動する(ステップ603)。
抽出された候補音声データを受取り、その候補音声デー
タのデータ種類がオブジェクトインスタンス名であるこ
とを確認して(ステップ701)、イベント種類がオブ
ジェクト選択、付加情報がその候補音声データの文字列
領域”rie”をコピーしたものであるイベントデータ
を生成し(ステップ702)入力イベント処理126を
起動する(ステップ709)。入力イベント処理126
では受け取ったイベントデータを入力イベント待ち行列
119(第2図)に加える。
置111(第1図)に向かって「りえ」と発声する。音
声は音声入力装置111から音声認識処理142(第2
図)に送られ、ここでは、第7A図に示すように候補音
声データベース125の音声データ領域のなかで最も近
い候補音声データを抽出し(ステップ601)、音声イ
ベント発声処理143を起動する(ステップ603)。
抽出された候補音声データを受取り、その候補音声デー
タのデータ種類がオブジェクトインスタンス名であるこ
とを確認して(ステップ701)、イベント種類がオブ
ジェクト選択、付加情報がその候補音声データの文字列
領域”rie”をコピーしたものであるイベントデータ
を生成し(ステップ702)入力イベント処理126を
起動する(ステップ709)。入力イベント処理126
では受け取ったイベントデータを入力イベント待ち行列
119(第2図)に加える。
【0162】なお、上記候補音声データは人物アイコン
3102を人物オブジェクト2701のインスタンスと
して先に定義したときに以下のようにして作成される。
すなわち、この定義時に操作者がそのインスタンスの名
前をキーボード入力すると同時にシステムがその名前の
音声入力を要求する。操作者がこの名前を音声入力をし
たとき、それを、候補音声データベース125内のri
eに対する候補音声データの内容として格納する。
3102を人物オブジェクト2701のインスタンスと
して先に定義したときに以下のようにして作成される。
すなわち、この定義時に操作者がそのインスタンスの名
前をキーボード入力すると同時にシステムがその名前の
音声入力を要求する。操作者がこの名前を音声入力をし
たとき、それを、候補音声データベース125内のri
eに対する候補音声データの内容として格納する。
【0163】イベントデイスパッチ処理127(第2
図)は操作者による入力に並行して動作可能で、メカイ
ベント待ち行列119内のイベントデータを処理する。
今の例では、「rie」に対するイベントデータはイベ
ント種類がオブジェクト選択であるためオブジェクト選
択処理130(第2図)が起動され、付加情報「ri
e」と空白がコマンドバッファ120に格納される(ス
テップ2001(第14図))。
図)は操作者による入力に並行して動作可能で、メカイ
ベント待ち行列119内のイベントデータを処理する。
今の例では、「rie」に対するイベントデータはイベ
ント種類がオブジェクト選択であるためオブジェクト選
択処理130(第2図)が起動され、付加情報「ri
e」と空白がコマンドバッファ120に格納される(ス
テップ2001(第14図))。
【0164】(a−1−2)マウス入力の場合
マウス109(第1図)を用いて”rie”を入力する
には、オブジェクト表示画面102に表示してある人物
アイコン3102の胴体上にマウスカーソル201(第
1図)をもってきて、マウスボタン(図示せず)を押
す。それによりオブジェクト選択イベント発生処理30
4が起動される(第8A図)。この処理304では、第
8B図に示すように、マウスカーソル201の位置と3
次元形状データベース123(第2図)を参照して(人
物アイコン3102)の上でマウスボタンが押されたこ
とを認識して(ステップ801)、イベント種類にオブ
ジェクト選択、付加情報にキーボードから入力された文
字列”rie”を格納したイベントデータを生成し(ス
テップ802)、入力イベント処理126を起動する
(ステップ803)。入力イベント処理126では送ら
れてきたイベントデータを入力イベント待ち行列119
に加える。
には、オブジェクト表示画面102に表示してある人物
アイコン3102の胴体上にマウスカーソル201(第
1図)をもってきて、マウスボタン(図示せず)を押
す。それによりオブジェクト選択イベント発生処理30
4が起動される(第8A図)。この処理304では、第
8B図に示すように、マウスカーソル201の位置と3
次元形状データベース123(第2図)を参照して(人
物アイコン3102)の上でマウスボタンが押されたこ
とを認識して(ステップ801)、イベント種類にオブ
ジェクト選択、付加情報にキーボードから入力された文
字列”rie”を格納したイベントデータを生成し(ス
テップ802)、入力イベント処理126を起動する
(ステップ803)。入力イベント処理126では送ら
れてきたイベントデータを入力イベント待ち行列119
に加える。
【0165】音声入力の場合と同様にこのイベントデー
タが後にデイスパッチされると、コマンドバッファ12
0に「rie」と空白が格納される。
タが後にデイスパッチされると、コマンドバッファ12
0に「rie」と空白が格納される。
【0166】(a−1−3)キーボード入力の場合
キーボード110(第1図)で”rie”を入力する場
合には、マウスカーソル201をオブジェクトモデリン
グ画面108(第1図)以外の所に置いた上で「r」
「i」「e」をそのままタイプする。それ焼れのキー入
力に対してキーボードイベント処理309(第2図)が
起動される。この処理309では、第9図に示すよう
に、判定1301,1303を経た上でイベント種類に
キーボード、付加情報にキーボードから与えられるキー
コードを格納したイベントデータを生成し(ステップ1
304)、入力イベント処理126を起動する(ステッ
プ1306)。入力イベント処理126はこのイベント
を入力イベント待ち行列119に加える。
合には、マウスカーソル201をオブジェクトモデリン
グ画面108(第1図)以外の所に置いた上で「r」
「i」「e」をそのままタイプする。それ焼れのキー入
力に対してキーボードイベント処理309(第2図)が
起動される。この処理309では、第9図に示すよう
に、判定1301,1303を経た上でイベント種類に
キーボード、付加情報にキーボードから与えられるキー
コードを格納したイベントデータを生成し(ステップ1
304)、入力イベント処理126を起動する(ステッ
プ1306)。入力イベント処理126はこのイベント
を入力イベント待ち行列119に加える。
【0167】このような入力に対するイベントデータが
後にデイスパッチされた場合、その中のキーコードをそ
のままコマンドバッファ120のの空きエリアに、その
前方から順に入力される。今の例では、「r」「i」
「e」の各々に対するイベントデータからコマンドバッ
ファ120に処理対象名「rie」が格納される。
後にデイスパッチされた場合、その中のキーコードをそ
のままコマンドバッファ120のの空きエリアに、その
前方から順に入力される。今の例では、「r」「i」
「e」の各々に対するイベントデータからコマンドバッ
ファ120に処理対象名「rie」が格納される。
【0168】このように、音声入力、マウス入力、キー
ボード入力のいずれを用いてもコマンド入力を可能とす
るために、それぞれからの各入力をイベントデータとい
う共通の形式のデータに変換している。
ボード入力のいずれを用いてもコマンド入力を可能とす
るために、それぞれからの各入力をイベントデータとい
う共通の形式のデータに変換している。
【0169】ここまでの操作で、入力すべきコマンドに
含まれるべき処理対象“rie”が格納された。引き続
いて処理対象“tel”、“tn”をコマンドに加え
る。この操作はこれまでの入力と同じようにして行われ
る。オブジェクト選択に関しては、これ以降のコマンド
入力についても同じことである。こいうと、コマンドバ
ッファ120には、「rie tel tu」が格納さ
れる。
含まれるべき処理対象“rie”が格納された。引き続
いて処理対象“tel”、“tn”をコマンドに加え
る。この操作はこれまでの入力と同じようにして行われ
る。オブジェクト選択に関しては、これ以降のコマンド
入力についても同じことである。こいうと、コマンドバ
ッファ120には、「rie tel tu」が格納さ
れる。
【0170】(a−2)メソッド名の入力
引き続いて、新しく定義するメソッドの名前callを
キーボード110から入力する。システム内で初めて用
いられるメソッドであるので、この入力はキーボード1
10からだけ入力可能である。この入力に応答して、前
述したのと同様にイベントデータが生成され、入力イベ
ント待ち行列119に格納される。引き続いて一つのコ
マンドの入力の終了を入力するために、コマンド入力指
示として改行コードをキー入力すると、キーボードイベ
ント処理141では第9図のステップ1303により、
イベント種類が命令入力、付加情報が空のイベントデー
タを生成し、イベント待ち行列119に加える。イベン
トディスパッチ処理127はこのイベントデータのイベ
ント種類が命令入力であるので、命令入力処理131を
起動する(ステップ1405(第13図))。この処理
131では、コマンドバッファ120の内容をコマンド
待ち行列スタック122のトップにある、初期コマンド
待ち行列1903に加え、コマンドバッファ120をク
リアする(ステップ2102,2102(第15
図))。これで、 (0)rie tel tn call が初期コマンド待ち行列1903に送られた。このよう
に、コマンドバッファ120入力された文字列を一時的
に記憶し、ユーザによりその後コマンド入力指示が与え
られたとき、それまでに入力済みの文字列を一つのコマ
ンドとして使用するようになっている。
キーボード110から入力する。システム内で初めて用
いられるメソッドであるので、この入力はキーボード1
10からだけ入力可能である。この入力に応答して、前
述したのと同様にイベントデータが生成され、入力イベ
ント待ち行列119に格納される。引き続いて一つのコ
マンドの入力の終了を入力するために、コマンド入力指
示として改行コードをキー入力すると、キーボードイベ
ント処理141では第9図のステップ1303により、
イベント種類が命令入力、付加情報が空のイベントデー
タを生成し、イベント待ち行列119に加える。イベン
トディスパッチ処理127はこのイベントデータのイベ
ント種類が命令入力であるので、命令入力処理131を
起動する(ステップ1405(第13図))。この処理
131では、コマンドバッファ120の内容をコマンド
待ち行列スタック122のトップにある、初期コマンド
待ち行列1903に加え、コマンドバッファ120をク
リアする(ステップ2102,2102(第15
図))。これで、 (0)rie tel tn call が初期コマンド待ち行列1903に送られた。このよう
に、コマンドバッファ120入力された文字列を一時的
に記憶し、ユーザによりその後コマンド入力指示が与え
られたとき、それまでに入力済みの文字列を一つのコマ
ンドとして使用するようになっている。
【0171】なお、この例ではメソッド名の入力はキー
ボードで行なったが、このメソッド名をあらわす候補音
声データ501を以下のようにあらかじめ記憶すれば未
定義のメソッドでも音声によっても入力することができ
る。すなわち、候補音声データ501の音声データ50
2にこのメソッド名をあらわす音声を、データ種類50
3に、オブジェクトメソッドを、文字列504に“ca
ll”を記憶する。このようにすれば、コマンド(0)
の引き数にひきつづいてメソッドcallを音声入力す
れば、音声認識処理(第7A図)で抽出された候補音声
データからは、音声イベント発生処理(第7B図)で、
イベント種類が命令入力であるイベントが生成される。
生成されたイベントは、先に述べたキーボードによるメ
ソッド名入力のキーストローク“call+改行コー
ド”よって生成されるイベントと等価である。すでに述
べたごとく、コマンドの処理対象あるいは引数の場合、
入力音声に対する候補データ中のデータの種類はオブジ
ェクトインスタンスであるから、この場合、入力音声は
コマンドバッファに蓄えられた。しかし上に述べたごと
く、メソッドを表わす音声入力は入力すべきコマンドの
末尾として扱えるので、このように音声入力に対する候
補データは、すでに入力された音声に対する候補データ
と組み合わせて一つのコマンドとすることができる。
ボードで行なったが、このメソッド名をあらわす候補音
声データ501を以下のようにあらかじめ記憶すれば未
定義のメソッドでも音声によっても入力することができ
る。すなわち、候補音声データ501の音声データ50
2にこのメソッド名をあらわす音声を、データ種類50
3に、オブジェクトメソッドを、文字列504に“ca
ll”を記憶する。このようにすれば、コマンド(0)
の引き数にひきつづいてメソッドcallを音声入力す
れば、音声認識処理(第7A図)で抽出された候補音声
データからは、音声イベント発生処理(第7B図)で、
イベント種類が命令入力であるイベントが生成される。
生成されたイベントは、先に述べたキーボードによるメ
ソッド名入力のキーストローク“call+改行コー
ド”よって生成されるイベントと等価である。すでに述
べたごとく、コマンドの処理対象あるいは引数の場合、
入力音声に対する候補データ中のデータの種類はオブジ
ェクトインスタンスであるから、この場合、入力音声は
コマンドバッファに蓄えられた。しかし上に述べたごと
く、メソッドを表わす音声入力は入力すべきコマンドの
末尾として扱えるので、このように音声入力に対する候
補データは、すでに入力された音声に対する候補データ
と組み合わせて一つのコマンドとすることができる。
【0172】このように、操作者が入力する音声の種類
を判別してコマンドの入力完了か否かを判断すれば、操
作者は改行コードのような特別な入力を用いなくてもよ
い。この上の音声入力は定義済みのメソッドに対しては
勿論、そのまま適用できる。
を判別してコマンドの入力完了か否かを判断すれば、操
作者は改行コードのような特別な入力を用いなくてもよ
い。この上の音声入力は定義済みのメソッドに対しては
勿論、そのまま適用できる。
【0173】なお、以上のようにして初期コマンド待ち
行列1903に格納された文字列はプログラムコントロ
ール画面106にコマンド番号とともに表示される(第
26A図)。
行列1903に格納された文字列はプログラムコントロ
ール画面106にコマンド番号とともに表示される(第
26A図)。
【0174】以下において、コマンド入力は上に述べた
方法を用いて行うものとする。
方法を用いて行うものとする。
【0175】b.コマンドの実行
操作者はプログラムコントロール画面106(第1図)
上の「実行」ボタン215の上にマウスカーソル201
を持ってきて、ここでマウスボタン(図示せず)を押
す。この操作により発生されるイベントデータに対して
イベントディスパッチ処理127がプログラムコントロ
ール処理132(第2図)を起動し、その処理132の
実行中にオブジェクトメソッド実行処理135が起動さ
れる(ステップ2203(第18図))。ここでコマン
ド待ち行列スタック122のトップにあるコマンド待ち
行列121は初期コマンド待ち行列1903(第26B
図)であり、その先頭のコマンドは前述のコマンド
(0)であり、メソッドcallは未定義である。しか
し、システムはコマンド中のメソッドが既定義のもので
あるかどうかに関わりなく、そのコマンドを実行するオ
ブジェクトメソッド実行処理135を起動する。
上の「実行」ボタン215の上にマウスカーソル201
を持ってきて、ここでマウスボタン(図示せず)を押
す。この操作により発生されるイベントデータに対して
イベントディスパッチ処理127がプログラムコントロ
ール処理132(第2図)を起動し、その処理132の
実行中にオブジェクトメソッド実行処理135が起動さ
れる(ステップ2203(第18図))。ここでコマン
ド待ち行列スタック122のトップにあるコマンド待ち
行列121は初期コマンド待ち行列1903(第26B
図)であり、その先頭のコマンドは前述のコマンド
(0)であり、メソッドcallは未定義である。しか
し、システムはコマンド中のメソッドが既定義のもので
あるかどうかに関わりなく、そのコマンドを実行するオ
ブジェクトメソッド実行処理135を起動する。
【0176】その処理135では、第22図に示すよう
に、命令コードはsuccess_endでなく(ステ
ップ2801)、組込命令でもなく(ステップ280
4)、また指示オブジェクト人物のメソッドとしてまだ
登録されていない(ステップ2811)ので、オブジェ
クトメソッド生成処理2812を起動する(ステップ2
812)。
に、命令コードはsuccess_endでなく(ステ
ップ2801)、組込命令でもなく(ステップ280
4)、また指示オブジェクト人物のメソッドとしてまだ
登録されていない(ステップ2811)ので、オブジェ
クトメソッド生成処理2812を起動する(ステップ2
812)。
【0177】この処理2812では第24図に示すよう
に、このコマンド(0)に対応する新しいcallコマ
ンド待ち行列(すなわち、このコマンドで要求されたメ
ソッドcallに含まれるべきコマンド列を格納するエ
リア行列)1903を生成して、コマンド待ちエリア行
列スタック122にプッシュする(ステップ291
0)。また、対応するメソッドプログラミング画面31
10を生成し(ステップ2920)、オブジェクトメソ
ッドプログラミング画面上にメソッド名call、指示
対象とその所属オブジェクトの組rie[人物]、引数
とその所属オブジェクトの組tel[電話],tn[電
話番号]が表示される(ステップ2930)。これは、
新しいメソッドを定義するための準備である。
に、このコマンド(0)に対応する新しいcallコマ
ンド待ち行列(すなわち、このコマンドで要求されたメ
ソッドcallに含まれるべきコマンド列を格納するエ
リア行列)1903を生成して、コマンド待ちエリア行
列スタック122にプッシュする(ステップ291
0)。また、対応するメソッドプログラミング画面31
10を生成し(ステップ2920)、オブジェクトメソ
ッドプログラミング画面上にメソッド名call、指示
対象とその所属オブジェクトの組rie[人物]、引数
とその所属オブジェクトの組tel[電話],tn[電
話番号]が表示される(ステップ2930)。これは、
新しいメソッドを定義するための準備である。
【0178】これ以降操作者は、メソッドcallのを
構成するコマンドの各々を入力し、かつ実行させる。こ
こでは、 (1)電話のところまでいって (rie tel#position goto) (2)電話をとって (rie tel tel_take) (3)与えられた電話番号のところに電話を掛ける。
構成するコマンドの各々を入力し、かつ実行させる。こ
こでは、 (1)電話のところまでいって (rie tel#position goto) (2)電話をとって (rie tel tel_take) (3)与えられた電話番号のところに電話を掛ける。
【0179】(rie tel tn connec
t) (4)以上のことができれば成功である。
t) (4)以上のことができれば成功である。
【0180】(success_end)
ことをプログラムする。
【0181】操作者はコマンド(1)−(4)を順次入
力する。ここで、#はオブジェクトインスタンスのスロ
ット値を表現するためのものである。コマンド(1)−
(4)はcallコマンド待ち行列3121に順に加え
られる。callメソッド待ち行列3121に格納され
たコマンドは、格納の都度対応するメソッドプログラミ
ング画面3110に表示される。
力する。ここで、#はオブジェクトインスタンスのスロ
ット値を表現するためのものである。コマンド(1)−
(4)はcallコマンド待ち行列3121に順に加え
られる。callメソッド待ち行列3121に格納され
たコマンドは、格納の都度対応するメソッドプログラミ
ング画面3110に表示される。
【0182】ここでプログラムコントロール画面上10
6の「実行」ボタン215(第26A図)の上にマウス
カーソル201を持ってきて、マウスボタンを押すと、
オブジェクトメソッド実行処理135によりcallメ
ソッドに対応するコマンド待ち行列3121の先頭のコ
マンド(1)を実行する。
6の「実行」ボタン215(第26A図)の上にマウス
カーソル201を持ってきて、マウスボタンを押すと、
オブジェクトメソッド実行処理135によりcallメ
ソッドに対応するコマンド待ち行列3121の先頭のコ
マンド(1)を実行する。
【0183】ここで、メソッドgotoは、succe
ss_endでなく(ステップ2801)、組み込み命
令でもなく(ステップ2804)、人物オブジェクトに
定義されていないので(ステップ2811)、オブジェ
クトメソッド生成処理2812を行う。つまり、ここで
callメソッドプログラミングを一時中断して、go
toメソッドプログラミングを行う。このためにこの処
理2812の中でもgotoコマンド待ち行列3020
(第27B図)をコマンド待ち行列スタック122のト
ップに形成する(ステップ2910(第24図))。
ss_endでなく(ステップ2801)、組み込み命
令でもなく(ステップ2804)、人物オブジェクトに
定義されていないので(ステップ2811)、オブジェ
クトメソッド生成処理2812を行う。つまり、ここで
callメソッドプログラミングを一時中断して、go
toメソッドプログラミングを行う。このためにこの処
理2812の中でもgotoコマンド待ち行列3020
(第27B図)をコマンド待ち行列スタック122のト
ップに形成する(ステップ2910(第24図))。
【0184】さらに、ディスプレイ装置上101には第
27B図gotoメソッド用のメソッドプログラミング
画面3210をcallメソッド用のメソッドプログラ
ミング画面3110に重ねて形成する(ステップ291
0)、このプログラミング画面3210には、このコマ
ンド(1)にしたがって、メソッド名、処理対象、引数
等が画面3110と同様に表示される(ステップ293
0)。このように、コマンド待ちエリア行列スタック1
22内の行列はメソッドプログラミング画面の数とその
対応するメソッドと等価であり、メソッドプログラミン
グを制御する役割を持つ。
27B図gotoメソッド用のメソッドプログラミング
画面3210をcallメソッド用のメソッドプログラ
ミング画面3110に重ねて形成する(ステップ291
0)、このプログラミング画面3210には、このコマ
ンド(1)にしたがって、メソッド名、処理対象、引数
等が画面3110と同様に表示される(ステップ293
0)。このように、コマンド待ちエリア行列スタック1
22内の行列はメソッドプログラミング画面の数とその
対応するメソッドと等価であり、メソッドプログラミン
グを制御する役割を持つ。
【0185】gotoメソッドは人間がある位置まで移
動させるプログラムである。ここでは、次のコマンド列
を入力する。
動させるプログラムである。ここでは、次のコマンド列
を入力する。
【0186】(10)距離を格納する一時オブジェクト
インスタンスを生成する dist scalar @ create (11)方向を格納する一時オブジェクトインスタンス
を生成する dir vector @ create (12)rieとtelの距離を調べる rie tel# take position dist get distance (13)rieからみたte1の方向を調べる rie tel# take position dir get direction (14)(13)の結果をもとにrieをtelの方向
に向かせる。rie dir rotate
インスタンスを生成する dist scalar @ create (11)方向を格納する一時オブジェクトインスタンス
を生成する dir vector @ create (12)rieとtelの距離を調べる rie tel# take position dist get distance (13)rieからみたte1の方向を調べる rie tel# take position dir get direction (14)(13)の結果をもとにrieをtelの方向
に向かせる。rie dir rotate
【0187】(15)rieに(1)の距離だけ歩かせ
るrie dist walk (16)rieを電話の方向に向かせる rie tel# direction rotate (17)以上のことが成功した場合にgotoメソッド
を終了する。success_end
るrie dist walk (16)rieを電話の方向に向かせる rie tel# direction rotate (17)以上のことが成功した場合にgotoメソッド
を終了する。success_end
【0188】コマンド(10),(11)は人物アイコ
ン3102と電話アイコン3104の間の距離dist
(これはスカラー量)を格納する距離オブジェクトと、
人物からみた電話器の方向dir(これはベクトル量)
を格納する方向オブジェクトをそれぞれ生成するコマン
ドである。本実施例ではオブジェクトを生成するコマン
ドは、(オブジェクト名)@createであり、組み
込みのものである。第27A図で、3202,3203
はそれぞれ距離オブジェクト、方向オブジェクトを表す
アイコンであり、これらのオブジェクトの定義にしたが
って、これらのアイコンが表示される。なお、このよう
に、オブジェクトを生成したときには、それぞれのオブ
ジェクトの名称(dist,dir)を音声入力する。
そして、候補音声データの音声データに入力した音声
を、データ種類にオブジェクトインスタンス、文字列デ
ータにそれぞれ名称を表す文字列(“dist”、“d
ir”)を記憶し、候補音声データベースに格納する。
ン3102と電話アイコン3104の間の距離dist
(これはスカラー量)を格納する距離オブジェクトと、
人物からみた電話器の方向dir(これはベクトル量)
を格納する方向オブジェクトをそれぞれ生成するコマン
ドである。本実施例ではオブジェクトを生成するコマン
ドは、(オブジェクト名)@createであり、組み
込みのものである。第27A図で、3202,3203
はそれぞれ距離オブジェクト、方向オブジェクトを表す
アイコンであり、これらのオブジェクトの定義にしたが
って、これらのアイコンが表示される。なお、このよう
に、オブジェクトを生成したときには、それぞれのオブ
ジェクトの名称(dist,dir)を音声入力する。
そして、候補音声データの音声データに入力した音声
を、データ種類にオブジェクトインスタンス、文字列デ
ータにそれぞれ名称を表す文字列(“dist”、“d
ir”)を記憶し、候補音声データベースに格納する。
【0189】コマンド(12)(13)では、コマンド
(10)(11)で生成した一時オブジェクトのインス
タンスにそれぞれ組み込み命令 getdistance, getdirectionを用いて上記距離dist,
方向dirの値を格納する。そしてコマンド(14)
で、人物アイコン3102を方向dirだけ回転させ、
コマンド(15)で距離distだけ歩かせる。次に
(16)で、電話の方向に向かせる。最後にコマンド
(17)(success_end)を加える。
(10)(11)で生成した一時オブジェクトのインス
タンスにそれぞれ組み込み命令 getdistance, getdirectionを用いて上記距離dist,
方向dirの値を格納する。そしてコマンド(14)
で、人物アイコン3102を方向dirだけ回転させ、
コマンド(15)で距離distだけ歩かせる。次に
(16)で、電話の方向に向かせる。最後にコマンド
(17)(success_end)を加える。
【0190】以上のコマンド列は最後のコマンド(1
7)の入力後gotoコマンド列エリア3230に格納
される。次に実行を指示すると、プログラム実行処理1
35(第22図)によりこのコマンド待ち行列を次々と
実行して、失敗を引き起こす要因が無くsuccess
_endまで実行が進む(ステップ2801)と、go
toメソッドのメソッド実行終了処理2301を行う
(ステップ2802)。メソッド実行終了処理2301
では、第23図に示すように、はじめにコマンド待ち行
列スタック122のトップを調べる(ステップ230
2)。これはgotoコマンド待ち行列3230である
ので、この中のコマンド列をgotoメソッドとして記
憶する(ステップ2303)。そしてコマンド待ち行列
スタック122をポップして、gotoメソッドプログ
ラミング画面3210を消去する。また、gotoメソ
ッド記述で生成した一時データであるdist320
2、dir3203をオブジェクトライブラリ124、
3次元形状データベース123、オブジェクト表示画面
102から消去する(ステップ2304)。
7)の入力後gotoコマンド列エリア3230に格納
される。次に実行を指示すると、プログラム実行処理1
35(第22図)によりこのコマンド待ち行列を次々と
実行して、失敗を引き起こす要因が無くsuccess
_endまで実行が進む(ステップ2801)と、go
toメソッドのメソッド実行終了処理2301を行う
(ステップ2802)。メソッド実行終了処理2301
では、第23図に示すように、はじめにコマンド待ち行
列スタック122のトップを調べる(ステップ230
2)。これはgotoコマンド待ち行列3230である
ので、この中のコマンド列をgotoメソッドとして記
憶する(ステップ2303)。そしてコマンド待ち行列
スタック122をポップして、gotoメソッドプログ
ラミング画面3210を消去する。また、gotoメソ
ッド記述で生成した一時データであるdist320
2、dir3203をオブジェクトライブラリ124、
3次元形状データベース123、オブジェクト表示画面
102から消去する(ステップ2304)。
【0191】この時点でコマンド待ち行列スタックのト
ップはcallコマンド待ち行列3121に戻る。
ップはcallコマンド待ち行列3121に戻る。
【0192】callコマンド待ち行列3121の残り
のコマンドは (2)rie tel tel_take (3)rie tel tn connect (4)success_end である。すなわち、ここから一時中断されていたcal
lメソッドプログラミングを再開することになる。
のコマンドは (2)rie tel tel_take (3)rie tel tn connect (4)success_end である。すなわち、ここから一時中断されていたcal
lメソッドプログラミングを再開することになる。
【0193】次に改めて実行を指示すると、callコ
マンド待ち行列3121の先頭コマンド(2)を実行す
る。tel_takeメソッドは指示オブジェクトhu
manでは定義されてないので、オブジェクトメソッド
生成処理2812が行われる。つまり、再び、call
メソッドプログラミングを中断してtel_takeメ
ソッドプログラミングを行う。
マンド待ち行列3121の先頭コマンド(2)を実行す
る。tel_takeメソッドは指示オブジェクトhu
manでは定義されてないので、オブジェクトメソッド
生成処理2812が行われる。つまり、再び、call
メソッドプログラミングを中断してtel_takeメ
ソッドプログラミングを行う。
【0194】この処理2812の結果、コマンド待ち行
列スタック122のトップには、第28A図に示すよう
にtel_takeコマンド待ち行列3320があり、
メソッドプログラミング画面には第28B図に示すよう
にcallメソッド用の画面3110とtel_tak
eメソッド用の画面3301のが存在する。
列スタック122のトップには、第28A図に示すよう
にtel_takeコマンド待ち行列3320があり、
メソッドプログラミング画面には第28B図に示すよう
にcallメソッド用の画面3110とtel_tak
eメソッド用の画面3301のが存在する。
【0195】先程のgotoメソッドの実行の結果、人
物3102は電話3104をとるのに適した位置で、電
話の方向を向いて立っている。そこで、ここでは人物3
102の右手を電話3104の受話器の方に伸ばして、
受話器をとり、受話器をとった右手を人物の3102の
右耳の近くに持ってくるという動作をプログラムする。
物3102は電話3104をとるのに適した位置で、電
話の方向を向いて立っている。そこで、ここでは人物3
102の右手を電話3104の受話器の方に伸ばして、
受話器をとり、受話器をとった右手を人物の3102の
右耳の近くに持ってくるという動作をプログラムする。
【0196】人物3102の右上腕と右下腕を電話31
04の受話器をとるような形にするには、まず、右上腕
と右下腕を交互に選択してこれらに対しモーションコン
トロール処理128を実行する。ここではモーションコ
ントロール画面上のx軸周り回転バリュエータ220
(第1図),y軸周り回転バリュエータ221,z軸周
り回転バリュエータ222を操作する。第3A図に示す
ように、右上腕と右下腕は回転可能属性が付いているの
で、右肩と右肘の部分で回転させることができる。ま
た、両方共移動可能属性は付いてなく、これを移動させ
ようとすると図からもわかるように人間全体が移動する
ため、移動は行わない。こうして、右上腕と右下腕をう
まく操作して第16図に示すモーションコントロール処
理128により電話の受話器の付近に右手を置く。この
ように属性を与えるのは、人間などの関節は回転できる
だけであり、移動することはできないことを表現するた
めである。
04の受話器をとるような形にするには、まず、右上腕
と右下腕を交互に選択してこれらに対しモーションコン
トロール処理128を実行する。ここではモーションコ
ントロール画面上のx軸周り回転バリュエータ220
(第1図),y軸周り回転バリュエータ221,z軸周
り回転バリュエータ222を操作する。第3A図に示す
ように、右上腕と右下腕は回転可能属性が付いているの
で、右肩と右肘の部分で回転させることができる。ま
た、両方共移動可能属性は付いてなく、これを移動させ
ようとすると図からもわかるように人間全体が移動する
ため、移動は行わない。こうして、右上腕と右下腕をう
まく操作して第16図に示すモーションコントロール処
理128により電話の受話器の付近に右手を置く。この
ように属性を与えるのは、人間などの関節は回転できる
だけであり、移動することはできないことを表現するた
めである。
【0197】以上のモーションコントロールの後”ri
e.ruarm”を入力し、コマンドバッファ120の
処理対象として格納し、プログラムコントロール画面1
06上の「記憶」ボタン216上にマウスカーソル20
1を持ってきてここでマウスボタン202を押すことに
よって、プログラムコントロール132が起動され、そ
の処理の中で状態記憶処理134が起動されるステップ
2204(第18図)。状態記憶処理134では、処理
対象(rie,ruarm)がコマンドバッファ120
内にあるため、処理対象用に記憶処理210を起動する
(ステップ2402(第20図))。
e.ruarm”を入力し、コマンドバッファ120の
処理対象として格納し、プログラムコントロール画面1
06上の「記憶」ボタン216上にマウスカーソル20
1を持ってきてここでマウスボタン202を押すことに
よって、プログラムコントロール132が起動され、そ
の処理の中で状態記憶処理134が起動されるステップ
2204(第18図)。状態記憶処理134では、処理
対象(rie,ruarm)がコマンドバッファ120
内にあるため、処理対象用に記憶処理210を起動する
(ステップ2402(第20図))。
【0198】この処理では、コマンドバッファ中の処理
対象が人物3102の右上腕であり、これが回転可能属
性だけが付いていることから、右上腕を現在示されてい
る回転角まで回転させる。次のコマンド (20)rie.ruarm 現在回転角 rotat
e が生成され、tel_takeコマンド待ち行列332
0に加えられる(ステップ2504〜2506)。同様
にして人物3102の右下腕に対して処理対象用状態記
憶処理210を行うことによって次のコマンド (21)rie.rlarm 現在回転角 rotat
e がtel_takeコマンド待ち行列3320に加えら
れる。
対象が人物3102の右上腕であり、これが回転可能属
性だけが付いていることから、右上腕を現在示されてい
る回転角まで回転させる。次のコマンド (20)rie.ruarm 現在回転角 rotat
e が生成され、tel_takeコマンド待ち行列332
0に加えられる(ステップ2504〜2506)。同様
にして人物3102の右下腕に対して処理対象用状態記
憶処理210を行うことによって次のコマンド (21)rie.rlarm 現在回転角 rotat
e がtel_takeコマンド待ち行列3320に加えら
れる。
【0199】次に、rie3102の右手にte131
04の受話器を持たせる。このための組み込み命令1i
nkを用いる。コマンドは (22)rie.rhand tel. receiv
er link である。このメソッドlinkは指示対象の下位構造に
引数オブジェクトを指定することによって実現してい
る。結果的に、これ以降受話器は人物3102の右手の
位置に従って移動、回転を行う。
04の受話器を持たせる。このための組み込み命令1i
nkを用いる。コマンドは (22)rie.rhand tel. receiv
er link である。このメソッドlinkは指示対象の下位構造に
引数オブジェクトを指定することによって実現してい
る。結果的に、これ以降受話器は人物3102の右手の
位置に従って移動、回転を行う。
【0200】また、電話3104を移動・回転しても受
話器はその影響を受けない。
話器はその影響を受けない。
【0201】このままでは電話3104の動きにしたが
って受話器も動くことになるので、この関係を断つコマ
ンド (23)tel.body tel. receive
r unlink を実行する。
って受話器も動くことになるので、この関係を断つコマ
ンド (23)tel.body tel. receive
r unlink を実行する。
【0202】この結果、人物3102と電記3104の
オブジェクト構造は第28A図に示すようになる。
オブジェクト構造は第28A図に示すようになる。
【0203】次に、再び人物3102の右上腕、右下腕
をモーションコントロール画面103上のバリュエータ
rot_x(220),rot_y(221),rot
_z(222)を用いて操作して、受話器が右耳の付近
にちょうど位置するような格好をとらせ、このあと状態
記憶処理134を起動する。
をモーションコントロール画面103上のバリュエータ
rot_x(220),rot_y(221),rot
_z(222)を用いて操作して、受話器が右耳の付近
にちょうど位置するような格好をとらせ、このあと状態
記憶処理134を起動する。
【0204】その結果、コマンド
(24)rie.ruarm 現在回転角 rotat
e (25)rie.rlarm 現在回転角 rotat
e がtel_takeコマンド待ち行列3320に加えら
れる。
e (25)rie.rlarm 現在回転角 rotat
e がtel_takeコマンド待ち行列3320に加えら
れる。
【0205】このメソッド用の最後のコマンドとして、
(26)success_end
を加える。そしてこれらのコマンドを次々と実行してい
き、success_endにまで到達したときメソッ
ド実行終了処理2301を行う。
き、success_endにまで到達したときメソッ
ド実行終了処理2301を行う。
【0206】tel_takeメソッド記述してきたコ
マンド列(20)−(26)を記憶し、コマンド待ち行
列スタック122をポップし、tel_takeメソッ
ドプログラミング画面3301を消去する。
マンド列(20)−(26)を記憶し、コマンド待ち行
列スタック122をポップし、tel_takeメソッ
ドプログラミング画面3301を消去する。
【0207】callコマンド待ち行列3121の次の
コマンドは、 (3)rie tel tn connectである。
connectメソッドも人間オブジェクト2701
(第3A図)の中で定義されていないので、新しいコマ
ンド待ち行列3430が生成され、音声登録を行い、オ
ブジェクトメソッド生成処理2812を行う。
コマンドは、 (3)rie tel tn connectである。
connectメソッドも人間オブジェクト2701
(第3A図)の中で定義されていないので、新しいコマ
ンド待ち行列3430が生成され、音声登録を行い、オ
ブジェクトメソッド生成処理2812を行う。
【0208】その結果、コマンド待ち行列スタック12
2のトップにはconnectコマンド待ち行列343
0が作られ(第29B図)、メソッドプログラミング画
面はcallに対応するもの3110と、connec
tに対応するもの3420の2つが表示される(第29
A図)。
2のトップにはconnectコマンド待ち行列343
0が作られ(第29B図)、メソッドプログラミング画
面はcallに対応するもの3110と、connec
tに対応するもの3420の2つが表示される(第29
A図)。
【0209】ここでは、
(30)指定された電話番号に接続要求を出す
tel tn connect_request
(31)接続が成功したならその旨、音声出力する
rie “つながりました”
speak
(32)以上が成功すれば終了する
success_end
とする。
【0210】このコマンド列を実行していき、(32)
success_endにまで到達した場合に、メソッ
ド実行終了処理2301を行い、connectメソッ
ドとしてコマンド列(30)−(32)を記憶し、コマ
ンド待ち行列スタック122をポップし、connec
tメソッドプログラミング画面3420を消去する。
success_endにまで到達した場合に、メソッ
ド実行終了処理2301を行い、connectメソッ
ドとしてコマンド列(30)−(32)を記憶し、コマ
ンド待ち行列スタック122をポップし、connec
tメソッドプログラミング画面3420を消去する。
【0211】ここでコマンド待ち行列スタックのトップ
はcallコマンド待ち行列3121であり、その先頭
のコマンドは(4)success_endである。こ
れを実行するとメソッド実行終了処理2301が起動さ
れ、(1)−(4)コマンド列をcallメソッドとし
て記憶し、コマンド待ち行列スタック122をポップ
し、callメソッドプログラミング画面3110を消
去する。以上で、当初意図したcallメソッドのプロ
グラミングが終了したことになる。また、ここでのコマ
ンド待ち行列スタック122のトップは初期コマンド待
ち行列3120である。これで、callメソッドプロ
グラミングが終了した。
はcallコマンド待ち行列3121であり、その先頭
のコマンドは(4)success_endである。こ
れを実行するとメソッド実行終了処理2301が起動さ
れ、(1)−(4)コマンド列をcallメソッドとし
て記憶し、コマンド待ち行列スタック122をポップ
し、callメソッドプログラミング画面3110を消
去する。以上で、当初意図したcallメソッドのプロ
グラミングが終了したことになる。また、ここでのコマ
ンド待ち行列スタック122のトップは初期コマンド待
ち行列3120である。これで、callメソッドプロ
グラミングが終了した。
【0212】これ以降、「実行」を入力して「人物オブ
ジェクトインスタンス 電話オブジェクトインスタンス
電話番号オブジェクトインスタンスcall」という
コマンドをオブジェクトメソッド実行処理135に送れ
ば、人物オブジェクトインスタンスは電話の位置まで移
動して、後を向いて受話器をとり、指定された電話番号
に接続要求を出して接続が成功したならば「つながりま
した」という音声を発することになる。
ジェクトインスタンス 電話オブジェクトインスタンス
電話番号オブジェクトインスタンスcall」という
コマンドをオブジェクトメソッド実行処理135に送れ
ば、人物オブジェクトインスタンスは電話の位置まで移
動して、後を向いて受話器をとり、指定された電話番号
に接続要求を出して接続が成功したならば「つながりま
した」という音声を発することになる。
【0213】また、「人物オブジェクトインスタンス
ベクトルオブジェクトインスタンスgoto」、「人物
オブジェクトインスタンス 電話オブジェクトインスタ
ンス tel_take」、「人物オブジェクトインス
タンス 電話オブジェクトインスタンス 電話番号オブ
ジェクトインスタンス connect」の各コマンド
もcallメソッド定義の過程の中でに定義されてい
る。 コマンドの実行は依頼したオブジェクトインスタ
ンスの動作として、また音声として出力されるため、そ
の状態の認識が容易である。
ベクトルオブジェクトインスタンスgoto」、「人物
オブジェクトインスタンス 電話オブジェクトインスタ
ンス tel_take」、「人物オブジェクトインス
タンス 電話オブジェクトインスタンス 電話番号オブ
ジェクトインスタンス connect」の各コマンド
もcallメソッド定義の過程の中でに定義されてい
る。 コマンドの実行は依頼したオブジェクトインスタ
ンスの動作として、また音声として出力されるため、そ
の状態の認識が容易である。
【0214】しかし、コマンドを実行中、どこかで失敗
をする可能性がある。本例では電話の接続要求を出す次
のコマンド、 (3)rie tel tn connect のなかの (30)rie tel tn connect_re
quest で相手が話し中であるなどの理由で失敗することが考え
られる。しかし、失敗が現に生じるまではプログラムを
記述する必要のないところが本発明の特徴の1つであ
る。
をする可能性がある。本例では電話の接続要求を出す次
のコマンド、 (3)rie tel tn connect のなかの (30)rie tel tn connect_re
quest で相手が話し中であるなどの理由で失敗することが考え
られる。しかし、失敗が現に生じるまではプログラムを
記述する必要のないところが本発明の特徴の1つであ
る。
【0215】何度かコマンドを実行しているうちに、コ
マンド(30)で失敗した場合には、その失敗した例を
用いてプログラムを記述することができる。第29A図
の例では、人物3102が電話を用いて、電話番号オブ
ジェクトインスタンスtn1を用いた場合に、失敗した
とする。そのコマンドは、 (40)rie tel tn1 connect であり、失敗するのはコマンド(30)を現在の例で置
き換えたコマンド (30)’rie tel tn1 connect_
request である。
マンド(30)で失敗した場合には、その失敗した例を
用いてプログラムを記述することができる。第29A図
の例では、人物3102が電話を用いて、電話番号オブ
ジェクトインスタンスtn1を用いた場合に、失敗した
とする。そのコマンドは、 (40)rie tel tn1 connect であり、失敗するのはコマンド(30)を現在の例で置
き換えたコマンド (30)’rie tel tn1 connect_
request である。
【0216】前述の場合と同様にコマンド(40)のオ
ブジェクトメソッド生成処理2812(第24図)を行
う。
ブジェクトメソッド生成処理2812(第24図)を行
う。
【0217】ここでのプログラムは電話の接続に失敗し
た場合のものである。ここでのコマンド列は次のように
する。
た場合のものである。ここでのコマンド列は次のように
する。
【0218】(41)“失敗しました”と音声でメッセ
ージを出力する rie “失敗しました” speak (42)受話器を本体にはまる位置に回転させる rie.reciever 受話器が電話器に収まる向
き rotate (43)受話器を本体の位置に置く rie.receiver tel#position translate (44)受話器とrieの右手を切り離す rie.receiver tel. body link (45)受話器と本体をもとの関係に戻す rie.rhand rie. receiver unlink (46)直立する rie neutral (47)以上が成功したら終了する success_end とする。
ージを出力する rie “失敗しました” speak (42)受話器を本体にはまる位置に回転させる rie.reciever 受話器が電話器に収まる向
き rotate (43)受話器を本体の位置に置く rie.receiver tel#position translate (44)受話器とrieの右手を切り離す rie.receiver tel. body link (45)受話器と本体をもとの関係に戻す rie.rhand rie. receiver unlink (46)直立する rie neutral (47)以上が成功したら終了する success_end とする。
【0219】ここで、(44)、(45)のコマンドを
実行すると、オブジェクトの構造は第30C図3330
に示すようになる。これは人物オブジェクト2701と
電話オブジェクト2750ではじめに定義した状態であ
る。これ以降、人物と電話は通常の人物オブジェクト2
701、電話オブジェクト2750として動作する。
実行すると、オブジェクトの構造は第30C図3330
に示すようになる。これは人物オブジェクト2701と
電話オブジェクト2750ではじめに定義した状態であ
る。これ以降、人物と電話は通常の人物オブジェクト2
701、電話オブジェクト2750として動作する。
【0220】上のコマンドを順次実行して(47)su
ccess_endコマンドまで到達すれば、メソッド
実行終了処理2301が行われ、コマンド列(41)−
(47)が人物オブジェクト2701のconnect
メソッドとして、第29B図で定義したものを失うこと
なく、新たに記憶される。
ccess_endコマンドまで到達すれば、メソッド
実行終了処理2301が行われ、コマンド列(41)−
(47)が人物オブジェクト2701のconnect
メソッドとして、第29B図で定義したものを失うこと
なく、新たに記憶される。
【0221】これで、人物オブジェクトに対するcon
nectメソッドとしてはコマンド列(30)−(3
2)と、コマンド列(41)−(47)の2つが定義さ
れた。メソッド実行は定義順に行われるため、「人物オ
ブジェクトインスタンス 電話オブジェクトインスタン
ス 電話番号インスタンス connect」コマンド
を実行すると、はじめに(30)−(32)で定義した
コマンド列を用いて指定の接続要求を出す。その結果、
成功すれば「成功しました」との音声出力を行う。成功
しなければ、(41)−(47)の実行に移り、「接続
失敗しました」との音声出力を行い、受話器を置いて直
立する。
nectメソッドとしてはコマンド列(30)−(3
2)と、コマンド列(41)−(47)の2つが定義さ
れた。メソッド実行は定義順に行われるため、「人物オ
ブジェクトインスタンス 電話オブジェクトインスタン
ス 電話番号インスタンス connect」コマンド
を実行すると、はじめに(30)−(32)で定義した
コマンド列を用いて指定の接続要求を出す。その結果、
成功すれば「成功しました」との音声出力を行う。成功
しなければ、(41)−(47)の実行に移り、「接続
失敗しました」との音声出力を行い、受話器を置いて直
立する。
【0222】以上で秘書は電話をかけることに関して
は、一応のメソッドを持ったことになる。人物オブジェ
クト2701は第3A図に示すように、callメソッ
ド(2712)、gotoメソッド(2713)、te
l_takeメソッド(2714)、connect
(1)メソッド(2715)、connect(2)メ
ソッド(2716)と第25図に示した組み込み命令コ
ードの群の中の、処理対象が人物であるものを持ってい
る。
は、一応のメソッドを持ったことになる。人物オブジェ
クト2701は第3A図に示すように、callメソッ
ド(2712)、gotoメソッド(2713)、te
l_takeメソッド(2714)、connect
(1)メソッド(2715)、connect(2)メ
ソッド(2716)と第25図に示した組み込み命令コ
ードの群の中の、処理対象が人物であるものを持ってい
る。
【0223】2.大型汎用計算機116との通信を用い
たプログラム 次に、大型汎用計算機を用いて会議室を予約することを
プログラムする例を用いて本発明の実施例の特徴を説明
する。ここではカメラの視野(ビュー)をプログラムす
ることにも言及する。
たプログラム 次に、大型汎用計算機を用いて会議室を予約することを
プログラムする例を用いて本発明の実施例の特徴を説明
する。ここではカメラの視野(ビュー)をプログラムす
ることにも言及する。
【0224】人物オブジェクトインスタンスrie(3
102)、端末オブジェクトインスタンスterm(3
612)、日付オブジェクトインスタンスdate36
10、部屋オブジェクトインスタンスroom3611
を用いてメソッドyoyakuを記述する。
102)、端末オブジェクトインスタンスterm(3
612)、日付オブジェクトインスタンスdate36
10、部屋オブジェクトインスタンスroom3611
を用いてメソッドyoyakuを記述する。
【0225】ここで、オブジェクトインスタンスは第3
1A図に示すように、3次元空間中に配置されているも
のとする。
1A図に示すように、3次元空間中に配置されているも
のとする。
【0226】はじめカメラオブジェクトインスタンスは
ビュー1(3701)を用いており、端末オブジェクト
インスタンスterm(3612)は、第31A図のオ
ブジェクト表示画面1(3601)に示すようにオブジ
ェクト表示画面中で仕切り3602にはばまれて表示さ
れていないとする。従ってこれをマウス109で選択す
ることもできないものとする。
ビュー1(3701)を用いており、端末オブジェクト
インスタンスterm(3612)は、第31A図のオ
ブジェクト表示画面1(3601)に示すようにオブジ
ェクト表示画面中で仕切り3602にはばまれて表示さ
れていないとする。従ってこれをマウス109で選択す
ることもできないものとする。
【0227】メソッドを
(50)rie term dete room yo
yaku とする。この中でterm(3612)は音声かキーボ
ードによって入力される。
yaku とする。この中でterm(3612)は音声かキーボ
ードによって入力される。
【0228】これを実行すると、オブジェクトメソッド
生成処理2812が起動され、コマンド待ち行列スタッ
ク122にyoyakuコマンド待ち行列3630がプ
ッシュされ、メソッドプログラミング画面3620が生
成される。
生成処理2812が起動され、コマンド待ち行列スタッ
ク122にyoyakuコマンド待ち行列3630がプ
ッシュされ、メソッドプログラミング画面3620が生
成される。
【0229】ここでは、端末が実際に表示されていない
と何にたいして操作をしているかわからなくなるので、
ビューコントロール画面104のバリュエータを操作し
て、term3612が見えるビューであるビュー2
(3702)に変更する。そうしてオブジェクト表示画
面2(3602)のようにしてにterm3612が表
示されれば、これをマウス109によっても選択するこ
とができる。
と何にたいして操作をしているかわからなくなるので、
ビューコントロール画面104のバリュエータを操作し
て、term3612が見えるビューであるビュー2
(3702)に変更する。そうしてオブジェクト表示画
面2(3602)のようにしてにterm3612が表
示されれば、これをマウス109によっても選択するこ
とができる。
【0230】このように、計算機内で3次元形状として
定義されているものをディスプレイ装置とマウスを用い
て選択する場合に、ディスプレイ装置上に投影されない
ものがある場合には、ビューを変更してディスプレイ装
置上に投影されるようにしてから、選択することができ
る。
定義されているものをディスプレイ装置とマウスを用い
て選択する場合に、ディスプレイ装置上に投影されない
ものがある場合には、ビューを変更してディスプレイ装
置上に投影されるようにしてから、選択することができ
る。
【0231】そして、このプログラムではこのビューで
仕事をさせたいと操作者がプログラムするとして、カメ
ラに対する状態記憶処理134を実行する。このために
は、コマンドバッファの処理対象を空にしておけばよ
い。状態記憶処理134が実行されると、 (51)カメラ termが見える位置 termが見える方向 camera_set コマン
ドが生成される。これはビューを変更するための特殊な
コマンドである。
仕事をさせたいと操作者がプログラムするとして、カメ
ラに対する状態記憶処理134を実行する。このために
は、コマンドバッファの処理対象を空にしておけばよ
い。状態記憶処理134が実行されると、 (51)カメラ termが見える位置 termが見える方向 camera_set コマン
ドが生成される。これはビューを変更するための特殊な
コマンドである。
【0232】つぎに、既定義メソッドgotoを用い
て、 (52)rie term#position got
o コマンドを加えて、rie3102をterm3612
の場所まで歩いて移動させる。
て、 (52)rie term#position got
o コマンドを加えて、rie3102をterm3612
の場所まで歩いて移動させる。
【0233】次のコマンド
(53)term openterminal
の命令コードは組み込み命令で、大型汎用機と通信路を
開き、これにログオンする。同時に、端末画面107を
ディスプレイ装置101上に表示する。
開き、これにログオンする。同時に、端末画面107を
ディスプレイ装置101上に表示する。
【0234】次に、コマンド
(54)term date room get re
servation を実行して大型汎用計算機上の予約アプリケーションプ
ログラムを実行し、date3610とroom361
1に従って会議室の予約をとる。
servation を実行して大型汎用計算機上の予約アプリケーションプ
ログラムを実行し、date3610とroom361
1に従って会議室の予約をとる。
【0235】以上のことが成功したらコマンド
(55)success_end
をyoyakuコマンド待ち行列3630に加える。こ
れを実行すれば、コマンド列(51)−(55)がyo
yakuメソッドとして記憶され、コマンド待ち行列ス
タック122はポップされ、yoyakuメソッドプロ
グラミング画面3620は消去される。
れを実行すれば、コマンド列(51)−(55)がyo
yakuメソッドとして記憶され、コマンド待ち行列ス
タック122はポップされ、yoyakuメソッドプロ
グラミング画面3620は消去される。
【0236】このようにして、特定のビュー位置を設定
して、その位置にカメラを置いてオブジェクトメソッド
を実行するように指定することができる。また、大型汎
用計算機を用いた仕事を行うこともできる。
して、その位置にカメラを置いてオブジェクトメソッド
を実行するように指定することができる。また、大型汎
用計算機を用いた仕事を行うこともできる。
【0237】D.変形例
これまでは、3次元形状データベース123を用いて3
次元形状をオブジェクト表示画面102に表示した例を
説明したが、これは本発明にとって必ずしも本質的では
ない。ここでは、3次元形状を用いないシステムの実現
方法について説明する。例として、1.で説明した電話
をかけるプログラムについて述べる。
次元形状をオブジェクト表示画面102に表示した例を
説明したが、これは本発明にとって必ずしも本質的では
ない。ここでは、3次元形状を用いないシステムの実現
方法について説明する。例として、1.で説明した電話
をかけるプログラムについて述べる。
【0238】電話をかけるプログラムを2次元システム
で実現する場合の問題点は、依頼を受けたオブジェクト
インスタンスが電話オブジェクトインスタンスのところ
までいって、電話をもつことをどう表現するかである。
これには、第33図に示すように、依頼を受けたオブジ
ェクトインスタンス3801を処理の対象となるオブジ
ェクトインスタンス3802のところまで移動させて、
電話をとったことを表現するためにその電話を表すアイ
コンを点滅させるなどの強調処理を行えばよい。あるい
は、移動を伴わなくても、両方を強調処理してもよい。
また、第34図に示すように、依頼を受けたオブジェク
トインスタンスのアイコン3901と処理対象のアイコ
ン3902との表示を変更させてもよい。さらに、第3
5図に示すように、依頼を受けたアイコン4001から
処理対象のアイコン4002に向けて、または処理対象
のアイコン4002から依頼を受けたアイコン4001
に向けて、矢印を表示してもよい。
で実現する場合の問題点は、依頼を受けたオブジェクト
インスタンスが電話オブジェクトインスタンスのところ
までいって、電話をもつことをどう表現するかである。
これには、第33図に示すように、依頼を受けたオブジ
ェクトインスタンス3801を処理の対象となるオブジ
ェクトインスタンス3802のところまで移動させて、
電話をとったことを表現するためにその電話を表すアイ
コンを点滅させるなどの強調処理を行えばよい。あるい
は、移動を伴わなくても、両方を強調処理してもよい。
また、第34図に示すように、依頼を受けたオブジェク
トインスタンスのアイコン3901と処理対象のアイコ
ン3902との表示を変更させてもよい。さらに、第3
5図に示すように、依頼を受けたアイコン4001から
処理対象のアイコン4002に向けて、または処理対象
のアイコン4002から依頼を受けたアイコン4001
に向けて、矢印を表示してもよい。
【0239】このように、本発明の本質的な点は、プロ
グラムの実行状態をディスプレイ装置上で表現する場合
に、プログラムライブラリの実行を管理するプログラム
を図形化して表示し、これを実行状況に応じて表示を変
化させることである。
グラムの実行状態をディスプレイ装置上で表現する場合
に、プログラムライブラリの実行を管理するプログラム
を図形化して表示し、これを実行状況に応じて表示を変
化させることである。
【0240】さらに、本実施例において、人物アイコン
3102に電話をとらせるのに、コマンド(2)を入力
し、このコマンドに対しコマンド列(20)〜(26)
からなるメソッドによる定義した。しかしながら、プロ
グラムの実行状態を操作者に知らせるという目的のため
には、電話をかけるコマンド(3)の命令connectのメ
ソッドの中に、あらかじめコマンド列(20)〜(2
6)を埋め込んでおくことにより、コマンド(3)の入
力に応答した、電話をかける操作の近傍で、人物310
2に対して、電話器の方に移動し、受話器を取らせるよ
うにすることもできる。
3102に電話をとらせるのに、コマンド(2)を入力
し、このコマンドに対しコマンド列(20)〜(26)
からなるメソッドによる定義した。しかしながら、プロ
グラムの実行状態を操作者に知らせるという目的のため
には、電話をかけるコマンド(3)の命令connectのメ
ソッドの中に、あらかじめコマンド列(20)〜(2
6)を埋め込んでおくことにより、コマンド(3)の入
力に応答した、電話をかける操作の近傍で、人物310
2に対して、電話器の方に移動し、受話器を取らせるよ
うにすることもできる。
【0241】さらに、本実施例では人物アイコン310
2にリンクして受話器を移動させたが、コマンド(3)
の命令connectに応答して、受話器を移動させるように
するとともにできる。これによっても作成中のプログラ
ムから要求があった他のオブジェクトのメソッドが何で
あるかを操作者に分からせることも可能である。
2にリンクして受話器を移動させたが、コマンド(3)
の命令connectに応答して、受話器を移動させるように
するとともにできる。これによっても作成中のプログラ
ムから要求があった他のオブジェクトのメソッドが何で
あるかを操作者に分からせることも可能である。
【0242】
【発明の効果】以上、本発明によれば、指示により変化
したプログラムの動作状況を表示できるため、プログラ
ムの動作状況を分かり易くすることが可能となる。
したプログラムの動作状況を表示できるため、プログラ
ムの動作状況を分かり易くすることが可能となる。
【0243】
【0244】
【0245】
【図1】本発明を実現するシステムの、全体の構成図で
ある。
ある。
【図2】第1図の主記憶装置に保持されるプログラム作
成用のプログラムの機能ブロックおよびそれに関連する
データベースを示す。
成用のプログラムの機能ブロックおよびそれに関連する
データベースを示す。
【図3】本実施例で用いるいろいろのオブジェクトイン
スタンス情報を示す図である。
スタンス情報を示す図である。
【図4】第2図に示した3次元データベース内の図形デ
ータの例を示す図、
ータの例を示す図、
【図5】第2図の音声データベース内の候補音声データ
の構造と処理に関する説明図である。
の構造と処理に関する説明図である。
【図6】第2図のプログラムによる処理されるイベント
データの構造および説明図である。
データの構造および説明図である。
【図7】音声入力処理に関する流れ図である。
【図8】マウスの入力処理に関する流れ図である。
【図9】キーボードの入力に関する流れ図である。
【図10】コマンドのフォーマット図である。
【図11】コマンド待行列の構造図である。
【図12】コマンド待行列スタッフの構造図である。
【図13】ユーザ入力を解釈する、イベントディスパッ
チ処理の流れ図である。
チ処理の流れ図である。
【図14】イベントディスパッチ処理が起動する処理に
関する流れ図である。
関する流れ図である。
【図15】イベントディスパッチ処理が起動する処理に
関する流れ図である。
関する流れ図である。
【図16】イベントディスパッチ処理が起動する処理に
関する流れ図である。
関する流れ図である。
【図17】イベントディスパッチ処理が起動する処理に
関する流れ図である。
関する流れ図である。
【図18】イベントディスパッチ処理が起動する処理に
関する流れ図である。
関する流れ図である。
【図19】イベントディスパッチ処理が起動する処理に
関する流れ図である。
関する流れ図である。
【図20】プログラムコントロール処理が起動する、状
態記憶処理に関する、流れ図である。
態記憶処理に関する、流れ図である。
【図21】プログラムコントロール処理が起動する、状
態記憶処理に関する、流れ図である。
態記憶処理に関する、流れ図である。
【図22】オブジェクトメソッド実行処理の中でよびだ
される、メソッド実行終了処理に関する、流れ図であ
る。
される、メソッド実行終了処理に関する、流れ図であ
る。
【図23】オブジェクトメソッド実行処理の中でよびだ
される、メソッド実行終了処理に関する、流れ図であ
る。
される、メソッド実行終了処理に関する、流れ図であ
る。
【図24】オブジェクトメソッド実行処理の中でよびだ
される、メソッド実行終了処理に関する、流れ図であ
る。
される、メソッド実行終了処理に関する、流れ図であ
る。
【図25】第2図のプログラムで用いる組み込み命令群
を示す図である。
を示す図である。
【図26】具体例を用いた実施例の説明図であり、ディ
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
【図27】具体例を用いた実施例の説明図であり、ディ
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
【図28】具体例を用いた実施例の説明図であり、ディ
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
【図29】具体例を用いた実施例の説明図であり、ディ
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
【図30】具体例を用いた実施例の説明図であり、ディ
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
【図31】具体例を用いた実施例の説明図であり、ディ
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
スプレイ装置上の様子と、主記憶装置上の主な状態を説
明するものである。
【図32】オブジェクトインスタンスの3次元空間内の
配置とそれを投影するビューを説明する図である。
配置とそれを投影するビューを説明する図である。
【図33】それぞれ本発明を2次元システムで簡単に実
現する方法を説明する図である。
現する方法を説明する図である。
【図34】それぞれ本発明を2次元システムで簡単に実
現する方法を説明する図である。
現する方法を説明する図である。
【図35】それぞれ本発明を2次元システムで簡単に実
現する方法を説明する図である。
現する方法を説明する図である。
135…オブジェクトメソッド実行処理、123…3次
元形状データベース、124…オブジェクトライブラ
リ、122…コマンド待ち行列スタック、125…候補
音声データベース、142…音声認識処理、143…音
声イベント発生処理。
元形状データベース、124…オブジェクトライブラ
リ、122…コマンド待ち行列スタック、125…候補
音声データベース、142…音声認識処理、143…音
声イベント発生処理。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 松田 芳樹
東京都国分寺市東恋ヶ窪1丁目280番地
株式会社日立製作所 中央研究所内
(56)参考文献 矢野外2名著,高度通信サービスにお
けるヒューマンインタフェースの一検
討,昭和63年春季電子情報通信学会全国
大会論文集(分冊B−2),p.2−52
小島,松田著,視覚的プログラミング
システムLIVE,第30回プログラミン
グ・シンポジウム報告書,1989年,p.
9−17
小山田・岩戸著,リアルタイムソフト
ウェア向け視覚的設計支援の提案−動作
設計技法の概要,第39回(平成元年後
期)情報処理学会全国大会講演論文集
(II),p.1582−1583
(58)調査した分野(Int.Cl.7,DB名)
G06F 9/44
Claims (4)
- 【請求項1】 所定の処理に関するメソッドを持つ操作
対象オブジェクトに対応付けられる操作対象アイコン
と、前記操作対象オブジェクトに関連する所定の処理の
メソッドを持つ電子秘書オブジェクトのアイコンとを表
示し、前記電子秘書オブジェクトのメソッドの実行を指
示するイベントを受け付け、前記電子秘書オブジェクト
のメソッドの実行に対応して電子秘書アイコンの表示を
変化させ、前記電子秘書オブジェクトのメソッドにより
呼び出される前記操作対象オブジェクトのメソッドの実
行に対応して前記操作対象アイコンの表示を変化させる
ことを特徴とするプログラム動作状況表示方法。 - 【請求項2】 前記電子秘書の表示変化は、前記操作対
象アイコンの表示の近くに前記電子秘書アイコンの表示
が移動することを特徴とする請求項1記載のプログラム
動作状況表示方法。 - 【請求項3】 所定の処理に関するメソッドを持つ操作
対象オブジェクトに対応付けられる操作対象アイコン
と、前記操作対象オブジェクトに関連する所定の処理の
メソッドを持つ電子秘書オブジェクトのアイコンとを表
示させる手段と、前記電子秘書オブジェクトのメソッド
の実行を指示するイベントを受け付ける手段と、前記電
子秘書オブジェクトのメソッドの実行に対応して電子秘
書アイコンの表示を変化させる手段と、前記電子秘書オ
ブジェクトのメソッドにより呼び出される前記操作対象
オブジェクトのメソッドの実行に対応して前記操作対象
アイコンの表示を変化させる手段とを備えたことを特徴
とするプログラム動作状況表示システム。 - 【請求項4】 前記電子秘書アイコンの表示を変化させ
る手段は、前記操作対象アイコンの表示の近くに前記電
子秘書アイコンの表示を移動させることを特徴とする請
求項3記載のプログラム動作状況表示システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000048906A JP3366313B2 (ja) | 1990-04-24 | 2000-02-21 | プログラム動作状況表示方法およびシステム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2110014A JPH0410030A (ja) | 1990-04-27 | 1990-04-27 | プログラム作成方法 |
JP2000048906A JP3366313B2 (ja) | 1990-04-24 | 2000-02-21 | プログラム動作状況表示方法およびシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2110014A Division JPH0410030A (ja) | 1989-09-29 | 1990-04-27 | プログラム作成方法 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001107929A Division JP3322264B2 (ja) | 2001-04-06 | 2001-04-06 | アイコン表示方法およびシステム |
JP2002242806A Division JP2003162431A (ja) | 2002-08-23 | 2002-08-23 | アイコン表示方法およびシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000215036A JP2000215036A (ja) | 2000-08-04 |
JP3366313B2 true JP3366313B2 (ja) | 2003-01-14 |
Family
ID=26449720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000048906A Expired - Lifetime JP3366313B2 (ja) | 1990-04-24 | 2000-02-21 | プログラム動作状況表示方法およびシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3366313B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002344601A1 (en) * | 2002-10-29 | 2004-05-25 | E Frontier, Inc. | Method and system for exterminating computer virus, computer virus exterminating program, and recording medium |
JP4935569B2 (ja) | 2007-08-06 | 2012-05-23 | 株式会社ニコン | 処理実行プログラム、および処理実行装置 |
JP6587237B2 (ja) * | 2015-05-15 | 2019-10-09 | 株式会社建設システム | プログラム、情報処理方法、画像処理装置、及びサーバ |
-
2000
- 2000-02-21 JP JP2000048906A patent/JP3366313B2/ja not_active Expired - Lifetime
Non-Patent Citations (3)
Title |
---|
小山田・岩戸著,リアルタイムソフトウェア向け視覚的設計支援の提案−動作設計技法の概要,第39回(平成元年後期)情報処理学会全国大会講演論文集(II),p.1582−1583 |
小島,松田著,視覚的プログラミングシステムLIVE,第30回プログラミング・シンポジウム報告書,1989年,p.9−17 |
矢野外2名著,高度通信サービスにおけるヒューマンインタフェースの一検討,昭和63年春季電子情報通信学会全国大会論文集(分冊B−2),p.2−52 |
Also Published As
Publication number | Publication date |
---|---|
JP2000215036A (ja) | 2000-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6606741B2 (en) | Method for visual programming with aid of animation | |
US5566294A (en) | Method for visual programming with aid of animation | |
US5561811A (en) | Method and apparatus for per-user customization of applications shared by a plurality of users on a single display | |
JP3148133B2 (ja) | 情報検索装置 | |
Potel | MVP: Model-View-Presenter the Taligent programming model for C++ and Java | |
US6078325A (en) | Object oriented customer information exchange system and method | |
Billinghurst et al. | Advanced interaction techniques for augmented reality applications | |
JP5698733B2 (ja) | 三空間入力の検出、表現、および解釈:自由空間、近接、および表面接触モードを組み込むジェスチャ連続体 | |
US20120107790A1 (en) | Apparatus and method for authoring experiential learning content | |
JPH08287288A (ja) | 対話式三次元グラフィックスにおける複数側面アノテーション及びホットリンク | |
CN111857717A (zh) | Ui编辑方法、装置、设备及计算机可读存储介质 | |
US6515688B1 (en) | Viewer interactive three-dimensional workspace with a two-dimensional workplane containing interactive two-dimensional images | |
CN114742981A (zh) | 后处理特效的制作系统、方法、ar特效渲染方法及装置 | |
CN110347458A (zh) | 一种按钮控件展示方法、装置、存储介质及交互智能平板 | |
JP3322264B2 (ja) | アイコン表示方法およびシステム | |
JP3366313B2 (ja) | プログラム動作状況表示方法およびシステム | |
Hudson et al. | Extensible input handling in the subArctic toolkit | |
JP2000200188A (ja) | プログラム動作状況表示方法および装置 | |
US6219068B1 (en) | Editor and editing method in CAD system enabling efficient interactive pattern design | |
JPH0410030A (ja) | プログラム作成方法 | |
JP2003162431A (ja) | アイコン表示方法およびシステム | |
CN112451967A (zh) | 基于3d屏幕交互的游戏交互方法、装置和计算机设备 | |
CN111596957A (zh) | 一种Revit模型接口插件的配置、应用方法和接口插件 | |
JPS63118820A (ja) | メニユ−表示装置 | |
JPH04288674A (ja) | ハイパーテキスト編集装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081101 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081101 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091101 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101101 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101101 Year of fee payment: 8 |