JPH0644339A - 図形オブジェクト操作システム及び方法 - Google Patents

図形オブジェクト操作システム及び方法

Info

Publication number
JPH0644339A
JPH0644339A JP5071098A JP7109893A JPH0644339A JP H0644339 A JPH0644339 A JP H0644339A JP 5071098 A JP5071098 A JP 5071098A JP 7109893 A JP7109893 A JP 7109893A JP H0644339 A JPH0644339 A JP H0644339A
Authority
JP
Japan
Prior art keywords
behavior
graphic
user
state
graphic object
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.)
Pending
Application number
JP5071098A
Other languages
English (en)
Inventor
J Walton Thomas
トーマス・ジェイ・ウォルトン
K Falgum Kiper
キパー・ケイ・ファルガム
R Bacher Thomas
トーマス・アール・バチャ
T Duran Michael
マイケル・ティー・ジュラン
Eric J Kuzara
エリック・ジェイ・クザラ
F Krame Thomas
トーマス・エフ・クレーマ
L Johnson Roy
ロイ・エル・ジョンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0644339A publication Critical patent/JPH0644339A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 簡単で、習得が容易であり、柔軟性のあるマ
ンーマシンインターフェースの作成方法を提供する。 【構成】 図形エディタでマンーマシンインターフェー
ス画面を描く。このインターフェースの動作を表すた
め、このインターフェースを変形させた個々の状態をア
ニメーションフィルムの1つ1つの「こま」として格納
する。与えられた入力の種類等に応じて必要な「こま」
を取出して表示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はビデオテープレコーダ、
デジタル電圧計、自動車等のハードウエア機器およびリ
アルタイムシステムのための対話型図形ユーザインター
フェースを作成する図形ユーザインターフェース設計ツ
ールに関する。
【0002】
【従来技術及びその問題点】ほとんどの消費者向け製品
はなんらかのユーザインターフェースを必要とする。た
とえば、自動車には速度計とハンドルを有し、ビデオテ
ープレコーダはスイッチとつまみ、デジタル電圧計は押
しボタンとLED表示装置を有する。このようなユーザイ
ンターフェースは消費者向け製品の市場での売れ行きを
左右することが多い。それは、これが消費者向け製品と
エンドユーザの間の対話に当っての主要な接点であるた
めである。その結果、エンドユーザが製品と正しく対話
できるようにするユーザインターフェースがないと、技
術的には正常な製品であっても結果的にはユーザにとっ
てほとんど役に立たないものになる。
【0003】この問題を克服するために、製品の開発者
は製品の使い勝手と製品のインターフェースを試験する
ために用いる物理的なプロトタイプを作成することが多
かった。通常、これは製品の最終生産にかかる前に行わ
れてきた。しかし、物理的プロトタイプの作成には物理
的な部品の製造を要するため、物理的プロトタイプの作
成は費用と時間のかかる作業であった。実際、プロトタ
イプはその下敷きとなる製品が動作可能になるまでは作
成できない場合が多く、ユーザとのインターフェースが
製品の市場への導入を遅れさせることが多かった。
【0004】時間と費用を節約するために、製品開発者
は比較的最近では、製品の使い勝手とそのインターフェ
ースの試験に用いることのできる、図形的ソフトウエア
版のインターフェースを作成するようになった。このよ
うな“シミュレートされた”ユーザインターフェースは
プロトタイプを作るのに要する期間を短縮したが、この
ような“シミュレートされた”ユーザインターフェース
もまたその作成には多大な時間を要する。さらに、この
ような“シミュレート”されたユーザインターフェース
の作成にはコンピュータグラフィックスの専門家を必要
としてきた。多くの消費者向け製品の開発のためのソフ
トウエアコストが増大する中で、このような“シミュレ
ートされた”ユーザインターフェースの作成にコンピュ
ータグラフィックスの専門家を用いることはもはや費用
の面で効率的とはいえない。
【0005】プロトタイピングツール、システムモデリ
ングツール、システムシミュレーションツール等の多数
のソフトウエアツールが、エンドユーザを想定したコン
セプトや試験案についての検証を行うために、コンピュ
ータグラフィックスの専門家がこのような“シミュレー
トされた”ユーザインターフェースを作成するのに用い
られてきた。このようなツールは通常システムが最終シ
ステムと同様に“動作する”ように作成されたなんらか
の形態のモデルのアニメーションを提供する。したがっ
て、このようなシステムを使えば、製品の開発者は、製
品仕様に対するフィードバックを得るために、提案され
たシステムの“動作する”モデルを構成したエンドユー
ザに見せることができる。このようなシステムは、理想
的には、“コード”を別途書く必要もなく“動作する”
モデルを提供し、その一方では製品の開発者がこのシス
テムをその最終的なハードウエア構成要素とソフトウエ
ア構成要素を区分するための何らかの支援を提供する。
しかし、このような“シミュレートされた”プロトタイ
プのアニメーションは、製品開発者が学習しなければな
らない、あるいはコンピュータグラフィックスの専門家
が実装しなければならない独自の、専用言語でシステム
の挙動を記述することによって提供されるため、これに
よってでき上がるシステムはその製品を実現する際に再
使用することができず、通常は開発者がそれによって簡
単に独自のグラフィクスを作成することができず、また
製品開発費が不当に増大する。
【0006】最近では、製品開発者が表示画面上でスラ
イダやつまみといった事前にプログラムされた図形的ユ
ーザインターフェース(GUI)要素をピックしたり置いた
りすることによってユーザインターフェースを図形的に
作成できるようにするグラフィクスシステムが開発され
ている。しかし、このような従来のシステムに利用でき
る構成要素の数は限られており、インターフェース要素
の挙動はその要素の元の作成者が要求したものに限定さ
れる。その結果、新しい部品あるいは専用の部品の追加
が必要な場合、この専用部品を作成するためにグラフィ
クスプログラミングの専門家が必要である。また、この
ようなシステムの既存のインターフェース要素はその変
更や改造が非常に困難である。
【0007】このような従来の図形ツールは通常ユーザ
インターフェースツールキット、ユーザインターフェー
スビルダ、ユーザインターフェース管理システムと呼ば
れる。このようなグラフィクスツールは製品開発者によ
る画面指向の対人インターフェースの作成を助け、製品
開発者は次のこのインターフェースを用いて製品に含め
るべき実際のインターフェースを作成することができ
る。このような画面指向対人インターフェースの開発は
“生産”インターフェースの作成に必要なコードを自動
的に生成することによって簡単になった。しかし、この
ようなグラフィクスツールは情報システムにおいて典型
的な画面指向インターフェースを有するアプリケーショ
ンを作成する製品開発者の要望にのみ応えるように特に
設計されている。したがって、もっと広い目的の用途の
システムが必要とされる。
【0008】従来技術による最新のグラフィクスシステ
ムでは、製品開発者が図形エディタを使って、ユーザイ
ンターフェースオブジェクトを描き、テキストを使った
記述でこのオブジェクトをアニメートすることによっ
て、ユーザインターフェースオブジェクトの出力動作
(アニメーション)を作成することができる。このよう
なシステムは入力挙動(図形オブジェクトがどのように
してマウスイベントやキーボードイベントを受取り処理
するか等)をテキストであるいはなんらかのコンピュー
タ言語を用いて記述することを必要とする。これらの入
力オブジェクトはまたスライダやつまみ等のいくつかの
特定の種類の入力オブジェクトに限定されている。たと
えば、SL-Graphical Modeling System(SL-GMS)と呼ばれ
るこの種のシステムがSL Corporationから入手できる。
言われているところでは、SL-GMSシステムを使えば、プ
ログラマもまたプログラマでない者も描画ツールを用い
て可搬性のあるアプリケーションインターフェースを設
計し、画面オブジェクトをアニメートしてアプリケーシ
ョンデータの実時間の変化を反映し、また画面オブジェ
クトを用いてアプリケーションを制御できるようにな
る。
【0009】SL-GMSシステムはユーザアプリケーション
に組み込むことのできるグラフィクス画面の構築と管理
に用いる開発システムである。SL-GMSシステムは、オブ
ジェクト指向アーキテクチャを用いて、アプリケーショ
ンデータと画面オブジェクトのための40を上回る予め定
義された動作への直接的なテーブル駆動型のアクセスを
提供する。また、関数ライブラリを呼び出すことによっ
て修正や拡張を行うのに用いる事のできる一組の“積
木”を用いた専用の画面オブジェクトを作成するための
描画ツールも提供される。また、ユーザが図形オブジェ
クトを作成し、それを画面上に配置できるようにするマ
ウス駆動型図形エディタも提供される。たとえば、矩
形、線およびテキスト等のオブジェクトからメータやゲ
ージを構築することができる。オブジェクトを作成した
後、それぞれのオブジェクトの外観は、図形エディタを
用いて色、線幅、充填率とスタイル、サイズ、回転、位
置およびテキストのフォント等の標準的な図形属性を変
化させることによって、修正できる。SL-GMSシステムの
図形エディタによって指定することのできる図形属性は
また、外部データの変化を反映するために動的に修正す
ることができる。たとえば、このような修正はメータの
針を指定された範囲内で外部データ変数の変化につれて
回転させることによって行われる。また、階層的でオブ
ジェクト指向の手法を使って、図形要素のすべての“イ
ンスタンス”にプロパティを付与することができる。次
に、図形エディタを用い、画面要素とアプリケーション
データベース変数の間に直接的な関係を確立することに
よって、画面オブジェクトをアニメートする関数を指定
できる。このようにして、画面オブジェクトは、このシ
ステムが許容している約40の図形動作属性によって実時
間データを用いてアニメートすることができる。しか
し、SL-GMSシステムは入力動作と出力動作をテキストで
記述しなければならない点に制約がある。したがって、
直接操作によって簡単に使用することのできる改良され
たシステムが必要とされる。
【0010】アプリケーションプログラムからの出力に
応答してアニメートされる図形をユーザが提供すること
ができるようにするために、V.I. Corporationの Datav
iewsGraphics Software, Virtual Prototypes, Inc.のV
irtual Prototyping System(VAPS)、Integrated System
s, Inc.のAC-100 System、ExperTelligence, Inc.のAct
ion! System等の他のシステムも開発されている。しか
し、これらのシステムではいずれもシステムへの図形入
力あるいは図形出力を完全に図形的な方法で定義するこ
とができない。オブジェクトの直接操作によって簡単に
使用することのできるシステムが必要とされている。
【0011】使い難いことに加えて、従来の図形プロト
タイプ開発システムは、階層的なオブジェクトをもっと
小さい構成要素に分解することができず、また図形エデ
ィタの動作中にアプリケーションコードを結合すること
ができないという制約がある。さらに、構成要素のライ
ブラリの使用と作成が困難である。これらの特徴または
それ以外の特徴を有し、簡単で学習が容易で柔軟性のあ
るシステムが必要とされている。本発明はこれらの要望
に応えるべく行なわれた。
【0012】
【目的】本発明はプログラム言語の知識を要せず、また
大きくして複雑なコマンドセットを学習する必要もなく
GUIを作成するための、簡単で学習が容易で柔軟性のあ
る手段を提供することを目的とする。本発明の視覚的ソ
フトウエア開発(VSE)システムは従来のものとは事な
り、GUIへの入力とGUIへの出力の両方を定義するに当っ
て、あるユーザアプリケーション入力に応答してそのオ
ブジェクトにしてほしいことの例をユーザが提供するよ
うにするという単純なコンセプトに基いている。本発明
の技術は上述の図形プロトタイプ開発システムを“例に
よるアニメーション”を含むように拡張したものと考え
ることができる。
【0013】
【概要】本発明によれば、ユーザインターフェースを設
計するとき、インターフェースの開発者は先ず図形エデ
ィタでユーザインターフェースを描画することによっ
て、所望のユーザインターフェースを作成する。次に、
ユーザアニメーションの各状態あるいはフレームを示す
ことによってユーザインターフェースの構成要素の出力
動作を定義する(あるいはアニメートする)。これは移
動や回転といった図形エディタの機能を用いてユーザイ
ンターフェース中の図形オブジェクトを変化させ、次に
この図形オブジェクトの変化した各状態を図形情報の
“フレーム”として、オブジェクト指向データベース中
にこの図形オブジェクトとともに格納することによって
行われる。これらの状態の作成にあたっては、ユーザは
一連の格納されたフレームにフレーム名とフレーム番号
を挙動関数として割り当てることができる。また、出力
(あるいはアニメーション)を定義するのと同様に、入
力もまた図形オブジェクトにどのような種類の入力を探
すべきかの例を与えることによって定義することができ
る。こうすれば図形オブジェクトがその入力を発見した
とき、この図形オブジェクトにはどのフレームを出力す
べきかあるいはどのフレームに変更すべきかが知らせら
れる。かくして、アプリケーションコードは例のフレー
ムのそれぞれに割り当てられているフレーム番号にアク
セスすることによって、アニメーションを駆動したり入
力を読み出すことができる。このようなアプリケーショ
ンコードは、たとえば、ホスト、命令セットシミュレー
タあるいは物理的装置で動作するコードであってよい。
これによって、ユーザはアプリケーションコードをホス
トからシミュレータやエミュレータに移すことができ
る。
【0014】本発明にしたがって作成されたすべての図
形オブジェクトはライブラリに格納して再利用すること
ができる。また、これらの図形オブジェクトはライブラ
リから取り出して、変更したり、あるいは通常の図形編
集コマンドを用いてカスタマイズしてから、新しい構成
要素としてライブラリに格納することができる。また、
ユーザは自己のユーザインターフェースの設計全体をデ
ィスクに格納し、このインターフェースの開発中に入力
されたコマンドを保管して、これらのコマンドを後で再
実行できるようにすることができる。また、本発明のシ
ステムは入力挙動および出力挙動の定義に補間を用いる
ことができ、またマルチビュー図形エディタを提供する
ことができる。さらに階層的オブジェクトを作成するこ
とができ、それによって階層の個々の要素へ常にアクセ
スできる。
【0015】本発明の一実施例では、図形オブジェクト
を表示画面上で直接操作することによって図形オブジェ
クトの作成とアニメーションを行うためのシステムが提
供される。このようなシステムには好適には、ユーザの
制御の下に表示画面上で図形オブジェクトを作成し操作
するための図形エディタと、図形オブジェクトの操作を
図形オブジェクトの対応するそれぞれの動作状態として
表す情報を格納し、図形オブジェクトの対応する挙動状
態を指定してこの操作を再生することによって、図形オ
ブジェクトをアニメートする手段が設けられている。か
くして、アニメートされた図形オブジェクトが表示画面
に表示される。この実施例では、アニメート手段は、ユ
ーザの定義した入力領域、動作状態、挙動各および挙動
値を選択的にユーザ入力動作にマッピングすることによ
って、図形オブジェクトがどのような入力動作を有する
かを定義し、また各図形オブジェクトの現在の挙動状態
をユーザの定義した出力状態名と出力状態値にマッピン
グすることによって、図形オブジェクトがどのような出
力挙動を有するかを定義する挙動エディタを有する。挙
動エディタはまた、出力状態名と出力状態値を指定する
ことによって図形オブジェクトにある与えられた挙動状
態を送る手段を有してもよい。
【0016】本発明の一実施例では、アニメート手段は
ハードウエアマウスパッド付きのハードウエアマウス入
力装置で行われる動作を定義するための例示マウスパッ
ド付き例示マウス入力装置を有する。この例示マウスは
ハードウエアマウスパッドが対応付けられたハードウエ
アマウスを表示画面上で表す図形マウスオブジェクト
と、ハードウエアマウスの動作を模擬するようにこの図
形マウスオブジェクトを操作する手段を有する。好適に
は、この操作手段はハードウエアマウスとそれに対応付
けられたハードウエアマウスパッドの制御のもとに例示
マウスパッド上の1つあるいは複数のボタンを押したり
放したりする手段を有し、これによって例示マウスパッ
ド上のどのボタンを押すべきかがハードウエアマウスを
用いてユーザによって選択され、ユーザが例示ハードウ
エアマウスパッド上の対応するボタンを押すことによっ
て例示マウスパッド上のボタンを押す。また、この操作
手段は、好適にはハードウエアマウスとそれに対応する
ハードウエアマウスパッドの制御のもとに、例示マウス
をそれに対応する例示マウスパッド上で移動する手段を
含む。その結果、ユーザはハードウエアマウスを用い
て、例示マウスを選択し、またハードウエアマウスを移
動させることにより表示スクリーン上でハードウエアマ
ウスの動きに相当する量だけ例示マウスを対応する例示
マウスパッド上で移動させる。
【0017】好適には、本発明はさらに図形エディタに
よって作成された図形オブジェクトの挙動状態をユーザ
の定義したソースコードあるいは外部データベースにリ
ンクするためのインターフェースを含む。
【0018】また、本発明の範囲には、表示画面上で図
形オブジェクトを直接操作することによって図形オブジ
ェクトを作成しアニメートする方法が含まれる。本発明
のこのような方法は好適には以下のステップを含む:図
形エディタで所望の図形オブジェクトを描く、所望の図
形オブジェクトを操作して異なる表示状態にする、所望
の図形オブジェクトの異なる入力状態に対して所望の出
力挙動を定義する、各入力状態に対して、定義された出
力挙動を対応する図形オブジェクトとともに格納する;
表示すべき表示状態を指定し、次に指定された表示状態
を所望の順序でアニメーションとして表示することによ
って図形オブジェクトをアニメートする。
【0019】好適には、本発明の方法中の所望の図形オ
ブジェクトを操作するステップは、図形オブジェクトを
移動、回転、拡大・縮小、引き伸ばし、カット、塗りつ
ぶし、貼り付け、マッピングあるいはアンマッピングす
るステップを有する。また、図形オブジェクトをアニメ
ートするステップは、好適には例示マウス入力装置をそ
れに対応する例示マウスパッドとともに用いて、ハード
ウエアマウスパッドが対応付けられたハードウエアマウ
ス入力装置を用いて行われた動作を定義するステップを
有する。好適には、本発明の方法中の所望の図形オブジ
ェクトを操作するステップはハードウエアマウスとそれ
に対応したハードウエアマウスパッドの制御のもとに例
示マウスパッド上の1つあるいは複数のボタンを押した
り開放したりするステップを有する。これは、ハードウ
エアマウスを用いて例示マウスパッド上の押すべきボタ
ンを選択し、ハードウエアマウスパッド上の対応するボ
タンを押して例示マウスパッド上のボタンを押すことに
よって行うことができる。このとき、ハードウエアマウ
スとそれに対応するハードウエアマウスパッドの制御の
もとにハードウエアマウスを用いて例示マウスを選択
し、例示マウスが表示画面上の対応する例示マウスパッ
ド上で対応する量だけハードウエアマウスを移動するよ
うに移動することによって、例示マウスをそれに対応す
る例示マウスパッド上で移動することができる。
【0020】本発明はまた好適には図形オブジェクトへ
のユーザ入力を図形オブジェクトのそれぞれの挙動状態
として定義する方法を有する。本発明によればこのよう
な方法は以下のステップを有する:ユーザ入力を受け取
る可能性のあるそれぞれの図形オブジェクトに対して表
示画面上の少なくとも1つの領域を定義する;図形オブ
ジェクトのそれぞれに対するこの少なくとも1つの領域
についてどんな種類の入力イベントがこの図形オブジェ
クトの出力挙動を制御する図形オブジェクトの出力挙動
状態をシミュレートできるかを記述する;図形オブジェ
クトの出力挙動状態をシミュレートすることのできる図
形オブジェクトのための所望の入力挙動状態を定義す
る;それぞれの出力挙動状態について、定義された入力
挙動状態を対応する図形オブジェクトとともに格納す
る;図形オブジェクトのうちの少なくとも1つのものの
少なくとも1つの出力挙動状態の変化を発生させるよう
に、図形オブジェクトを定義された入力挙動状態ととも
にシミュレートし、それによって図形オブジェクトのう
ちの少なくとも1つのものの表示状態を変化させる。
【0021】本発明によるこのような方法はまたさら
に、図形オブジェクトを予め定義された入力挙動状態と
ともにライブラリから取り出し、取り出された図形オブ
ジェクトの入力挙動を記述ステッブで記述されている図
形オブジェクトに割り当てるステップを有する。
【0022】このように設計された本発明のVSEシステ
ムによれば、このソフトウエアインターフェースを用い
ることによりシステムの外観や動作を説明するのに早い
段階でハードウエアプロトタイプを開発する必要がなく
なるという点で、開発の期間と費用が節約される。この
ソフトウエアインターフェースはまたハードウエアの場
合に比べてその変更がはるかに容易であり、またはるか
に少ない費用と時間しか要しない。また、構成要素の修
正あるいは追加によってこのソフトウエアインターフェ
ースを特定の問題領域に容易に対応させることができ
る。また、ソフトウエアインターフェースは開発者が構
築している実際のコードに容易に接続できる。このよう
な構築中のコードは、開発ホスト、そのホスト上の命令
セットシミュレータ、あるいは物理的な製品のプロセッ
サ上で走るものであってよく、またこれら3つのすべて
で同じように走ってもよい。本発明のシステムはまた新
しい抽象言語を学習する必要をなくし、また早期の試験
にも用いることができる。これは対応する製品の開発中
に製品開発者がユーザインターフェースのためのテスト
を書き始めることができるためである。
【0023】本発明は好適には描かれた形状が別個に移
動可能なオブジェクトであるオブジェクトベースの技術
を用いて設計される。図形的に“つかんで”さらに操作
すべくユーザのワークエリアに複写することのできる標
準的なオブジェクトの“パレット”を供給することもで
きる。これらのオブジェクトに起るマウスイベントによ
り、オブジェクトはそれらの内部動作を実行する。たと
えば、“ボタン”オブジェクトの上でマウスクリックを
行なうと、ボタンはその境界色を反転して、ボタンが押
されていることをシミュレートすることができる。さら
に、ユーザはターゲットアプリケーションからのあるい
はこのようなマウスイベントを介しての入力値に応答し
てオブジェクトの挙作を対話形式で定義して、入力イベ
ントと出力オブジェクトに対する応答を記録し再生する
ための自動的な履歴記録を行うことができる。これによ
って、本発明は完全な製品試験および自動化されたデモ
ンストレーションの作成に用いることができる。
【0024】
【実施例】本発明の現在の好適な実施例による上述した
有益な特徴を有する視覚型ソフトウエア開発システムを
図1から図19を参照して説明する。当業者には、ここ
で行う説明は例示のために行うにすぎず、いかなる意味
でも本発明の範囲を限定するものではないことが理解さ
れるであろう。UNIXワークステーションが実時間製品開
発プロジェクトの開発プラットフォームとして広く用い
られているため、本発明の実施例はUNIXワークステーシ
ョンで使用するものとして説明する。また、Cコンピュ
ータ言語およびC++コンピュータ言語がインターフェー
ス開発者が実現に用いる主要な言語であるため、本実施
例はこれらの言語で作成されている。しかし、当該技術
に精通する者には、他のプラットフォームや言語を用い
ることもできるが理解されるであろう。したがって、本
発明の範囲に関するあらゆる疑問は本願特許請求の範囲
を参照して解明されねばならない。
【0025】本発明は、ハードウエアユーザインターフ
ェースを実際に製作する必要なく、製品へのユーザイン
ターフェースのプロトタイプを設計するシステムに関す
る。具体的には、プロトタイプ製品の動作をその製品が
実際に製作される前に見ることができるように、本発明
にしたがってカスタム図形表示が開発される。その結
果、ユーザはプロトタイプを製作することなく提案され
たインターフェースを設計し、試験することができる。
後で詳細に説明するが、本発明によればユーザが例にし
たがって入力を提供し、所望の出力挙動(あるいはアニ
メーション)を表すフレームを作成することによってカ
スタム図形オブジェクトをアニメートすることができる
ようになる。
【0026】本発明によれば、ユーザが挙動関数名を図
形オブジェクトに割り当て、次に図形エディタを用いて
図形オブジェクトを操作して例にしたがって設計者がそ
の特定の図形オブジェクトに何をして欲しいかを示すこ
とができるようにするアニメーションウィンドウが作成
される。操作される図形オブジェクトの現在の挙動が図
形オブジェクトの現在の操作(表示状態)とともに挙動
状態として格納される。このようにして、設計者はアニ
メーションの“フレーム(こま)”を作成し、このフレ
ームは後で所望の動作シーケンスを作成するために呼び
出すことができる。特に、ユーザソフトウエアを用いて
図形オブジェクトにアクセスすることができ、また挙動
関数名と所望の挙動状態を提供することによって、図形
オブジェクトはユーザアプリケーションコードから直接
に表示図面上で操作することができる。このように、ア
ニメーションは例を用いて作成することができるため、
設計者は図形システムの操作に関する技術をほとんどあ
るいは必要としない。
【0027】本発明は設計者がインターフェースコード
を書かなくても、生成されたグラフィクスオブジェクト
を用いてユーザアプリケーションコードが入力を読み込
んで表示画面に出力を送ることができるという点で特に
有効である。また、ユーザアプリケーションコードは画
面からユーザの定義したアニメーション入力を取り出
し、それを処理し、画面に送り返し、アニメーションの
変化を見ることができる。このようにして、システムに
対する変更を図形技術をほとんどあるいは全く持ってい
ない者がシステムの動作中に行うことができる。
【0028】本発明のVSEオブジェクトはこのように挙
動情報および図形情報を格納する。この挙動情報は、色
の変更、移動、回転、拡大・縮小、引き伸ばし、塗りつ
ぶし、マップ、アンマップ、上げ(raise)および(lower)
といった図形オブジェクトの任意の可能な図形変換を表
すことができる。つまり、図形エディタが実行すること
のできるいかなる変換も図形オブジェクトの挙動状態と
して格納することができる。次に説明するが、VSEオブ
ジェクトは複合オブジェクトにまとめて、挙動作の定義
等の目的のために単一のオブジェクトとして取り扱うこ
とができる。
【0029】図1は本発明のVSEシステムの概念ブロッ
ク図である。図示するように、インターフェース設計者
は標準の構成要素およびユーザの作成した構成要素のラ
イブラリ100から図形オブジェクトを選び、これらの図
形オブジェクトを描画および挙動エディタ110に入れ
る。これらの構成要素は通常たとえばビデオテープレコ
ーダ等の装置の出力を表すためのゲージ、スライドバー
等を含む。インターフェース設計者は、次に設計者のコ
ンピュータシステムの図形エディタの利用可能な機能を
用いて、描画および動作エディタ110中の図形オブジェ
クトを望み通りに作成および/または修正する。得られ
たオブジェクトは次にオブジェクト指向データベースシ
ステム中にオブジェクトとして格納され、オブジェクト
指向システムで一般的に用いられる技術にしたがって他
のオブジェクトあるいはユーザコード120に結合され
る。このように、格納された情報はオブジェクト指向構
成要素の定義130を参照し、当該技術に精通する者には
周知である種類のプロセス間通信機構を介してクライア
ントサーバ414と通信することによって、ユーザコード1
20からアクセスできる。このようにして得られた情報は
従来のオブジェクト指向プログラミング技術にしたがっ
てユーザのプログラム中で利用することができる。
【0030】図2は提案されているインターフェースに
用いる図形表示オブジェクトとしてゲージ210が選択さ
れた例を示す。図示するように、図形オブジェクトのア
ニメーションを定義するアニメーションデータにしたが
って表示を行うために図形オブジェクトをアニメートす
るためのアニメーションコード220が設けられる。図示
するように、ユーザプログラムは好適にはこのアニメー
ション情報にアクセスし、選択されたアニメーションに
ついてのオブジェクト及びそれに対応付けられた挙動と
挙動値を呼び出すためのインターフェース230を含む。
【0031】図3は本発明の一実施例のブロック図であ
る。図示するように、ユーザ入力はマウスあるいはキー
パッド300等によって図形エディタ310に与えられる。後
により詳細な説明するように、図形エディタ310はユー
ザが画面上で図形を描き、画面上でオブジェクトを作
成、削除および操作できるようにするVSEシステムの一
部である。図3に示すように、図形エディタ310に読み
込み、ユーザが操作することのできるVSE図形オブジェ
クト(以下、“パレット”と称する)を格納するための
図形オブジェクトのライブラリも設けられている。得ら
れた図形イメージは実行中にユーザが観察できるように
ディスプレイ330に表示される。
【0032】図3の発明は特に、図形オブジェクトがど
のような入力挙動状態および出力挙動状態を有しなけれ
ばならないかをユーザが例に従って定義できるようにす
るアニメータ340を特徴としている。後により詳細に説
明するように、これは対応する入出力挙動および表示状
態を図形オブジェクトとともに格納し、インターフェー
スへの入力の具体的な変化に対してどのように出力が変
化するかを表す表示として、この情報を選択的に呼び戻
してディスプレイ330上に表示することによって行われ
る。これも後により詳細に説明するように、ユーザが実
行中に発生するコマンドや挙動イベントを記録し再生で
きるように記録/再生装置350を設けることが好適であ
る。本発明はこの特徴によってユーザがいろいろな状況
での装置の出力を示すデモを作成できるようにする。さ
らに、図形エディタ310によって作成された図形オブジ
ェクトの挙動状態もまたユーザのソースコードに、その
ソースコードが図形オブジェクトの状態を操作できるよ
うにリンクすることができる。この目的を達成するた
め、ユーザは入力と出力に両方について格納された挙動
関数と挙動値にアクセスすることができる。たとえば、
挙動が与えられることになっているダイアルに対して
は、アニメータ340は#define set_dial(value) vse_sen
d_event(“dial”,value)を生成することができる。こ
れによって、ユーザアプリケーションプログラムはvse_
send_eventのかわりに“set_dial”を呼び出すことがで
きる。この挙動状態はまた外部データベース370に格納
することができる。
【0033】本発明の現在の好適な実施例を図4−図1
9を参照して説明する。
【0034】図4は本発明のVSEシステム400のモジ
ュールを示す。以下の説明から明らかになるが、このVS
Eシステム400は好適にはコンピュータ上のソフトウエア
で実現され、ウインドウシステム402を介してアクセス
される。図示するように、VSEシステム400の主要な構成
要素は、表示画面上で図形オブジェクトを描き操作する
ための図形エディタ404、ユーザが図形オブジェクトの
ライブラリを作成し管理できるようにするパレットエデ
ィタ406、および図形オブジェクトがどのような入力挙
動状態および出力挙動状態を持つかをユーザが定義でき
るようにする挙動エディタ408である。コマンドと挙動
イベントをそれぞれVSEシステム400内のさまざまな部分
やオブジェクトに経路指定するためにコマンドルータ41
0と挙動ルータ412が設けられ、またユーザコードをVSE
システム400に接続するためにクライアントサーバ414が
設けられている。またユーザがコマンドと挙動イベント
を記録および再生することができるようにコマンドレコ
ーダ/プレーヤー416と挙動レコーダ/プレーヤー418が
設けられている。
【0035】ユニバース420が、すべてのVSE図形オブジ
ェクトを格納する場所として設けられている。図5に示
すように、ユニバース420は複数のVSE複合オブジェクト
422を含む。VSE複合オブジェクト422は図形オブジェク
トを階層的な構築できるようにするオブジェクト指向要
素である。また、ユーザが表示装置上に描いたオブジェ
クトを表現するためのVSEプリミティブオブジェクト424
が設けられている。さらに、ユーザにユニバース420へ
の異なるビューを与えるためのビューオブジェクト426
が設けられている。さらに、オブジェクトのそれぞれの
挙動状態についてその挙動を格納するためのVSE挙動オ
ブジェクト428が設けられている。特定のビューオブジ
ェクト426が持つことのできる挙動を格納するためにビ
ューポート挙動オブジェクト430が設けられる。最後
に、好適にはビューオブジェクト426がユニバース420を
見る位置とビューオブジェクト426が動作している縮尺
をユーザが変更できるようにするためのパナー(panner)
オブジェクト432が設けられている。
【0036】図4および図5の各モジュールについて詳
細に説明する。
【0037】ウィンドウシステム402 本発明のVSEシステム400のウィンドウシステム402は実
行時にVSEシステム400が表示されるウィンドウシステム
へのインターフェースである。ウィンドウシステム402
の主な機能はホストのウィンドウプログラミングを分離
して、ウィンドウシステムが変更されたときウィンドウ
モジュール402だけを変更すればよくシステムの他の部
分を変更しなくてもよいようにすることである。このよ
うなウィンドウシステムの具体的な設計は当該技術分野
に精通する者には十分可能なものと考えられる。
【0038】図形エディタ404 図形エディタ404は本発明のVSEシステム400の一部であ
り、ユーザがディスプレイ上に図形を描けるようにす
る。図形エディタ404はユーザがデイスプレイ上でオブ
ジェクトを作成、削除および操作し、このようなオブジ
ェトをまとめて複合オブジェクトを構築し、オブジェク
トあるいはオブジェクトのグループを選択しそれらを操
作できるようにする。ここで操作とは以下のうちのいず
れかとする:移動、回転、拡大・縮小、引き伸ばし、カ
ッティング、塗りつぶし、貼り付け、マッピング、アン
マッピングあるいは図形エディタ404で可能な他の図形
操作。従って、図形エディタ404は当該技術に精通する
者が描画プログラムに期待する機能のすべてを有する。
【0039】図形エディタ404はVSEシステム400中であ
らゆるカスタム図形オブジェクトの作成と修正を行う。
図形エディタ404は、IBM-PCで利用可能な“Drawing Gal
lery”や本願出願人のワークステーションで利用可能な
xgeditあるいはidrawといった通常の独立型の作図プロ
グラムにユーザが期待するあらゆる機能を、好ましくは
オブジェクト指向のやり方で提供する。本発明の図形エ
ディタ404を用いることによって、ユーザはあらゆる図
を詳細に描き、色付けすることができ、その形状、色あ
るいは質感を幅広く選択することができる。さらに、ユ
ーザは図を作成した後その図の図形オブジェクトを図形
的に操作、記憶、検索することができる。
【0040】本発明の図形エディタ404はオブジェクト
の図形表現を取り扱う。あらゆる動作および操作はこれ
らのオブジェクトに対するものであり、すべての作図お
よび色付け動作はこの表現を作成し修正する。ユーザは
ワークスエリアの“領域”を用いる動作を行うことがで
きるが、これらの領域は一般的にオブジェクトあるいは
オブジェクトの部分のいずれかとして内部的に取り扱わ
れる。好適には、オブジェクトの図形表現は本来階層的
である。つまり、オブジェクトの下位構成要素はそれら
自体がオブジェクトである。そのため、いかなる複合オ
ブジェクトも単一のオブジェクトとして取り扱うことが
でき、あるいはその要素を個々にアクセスすることもで
きる。しかし、現実には複合オブジェクトはその各部分
の和としての表現以外には図形的表現を有しない。
【0041】図形エディタ404はオブジェクトの図形を
作成するが、一般的にはそれがすべてである。作成され
た後は、図形オブジェトはそれ自体を自ら制御しなけれ
ばならず、図形エディタ404は単に図形オブジェクトへ
の要求を出すだけである。動作中、図形エディタ404は
ユニバース420に照会して、自分がどのようなオブジェ
クトを取り扱っているのか(すなわち、どの図形オブジ
ェクトが選択されるか)を判定し、次にオブジェクト自
体にどのような要求が正当であるかを問う。次に、図形
エディタ404はそのメニューを動的に更新してその図形
オブジェクトの能力を反映させる。また、図形エディタ
404はオブジェクトが作成され操作されるワークエリア
あるいはメインウィンドウを管理する。これを行うため
に、図形エディタ404は(図形エディタ404が複数のビュ
ーを支援するとき)オブジェクトのすべてのビューが常
に現在のものであるようにする。
【0042】本発明の一実施例の図形エディタ404は2
種類のファィル、すなわち図形ファイルと設計ファイ
ル、を管理する。図形ファイルはオブジェクトの図形的
表現を格納してオブジェクトの外観を表示およびプリン
トするために作成され、設計ファイルは、図形ファイル
が持っている情報とともに、オブジェクトの関係とオブ
ジェクトの挙動関数の記述を含む。つまり、図形ファイ
ルはオブジェクトの絵を格納し、設計ファイルはオブジ
ェクトの外観と挙動を格納する。
【0043】本発明のVSEシステム400は最終製品の一部
分をなしていてもよく、また最終製品を作成するための
ツールであってもよいため、VSEシステム400は好適には
図形エディタ404の動作と外観に大きく影響する2つの
モードを有する。編集モードは図形エディタ404がその
すべてのメニューとパレットとともに現れ、ユーザが絵
あるいはモデルの作成を行なえるようにするモードであ
る。一方、実行モードではこれらのメニューおよびパレ
ットは消えて、ユーザはVSEシステム400あるいは図形エ
ディタ404が存在しているという表示のない状態で作成
されたモデルを動かすことができる。したがって、基本
的には実行モードにおけるVSEシステム400の外観と挙動
が最終製品である。
【0044】当該技術に精通する者には、本発明の図形
エディタ404はユーザが図形エディタ404を駆動できるよ
うにするさまざまな操作上の機能を有することが理解さ
れるであろう。図形エディタ404の制御と図形エディタ4
04が持っている、図形エディタ404が処理している図形
オブジェクトのビューを提供する管理機能は変更するこ
とができる。たとえば、図形エディタの実施例には以下
の機能を持たせることができる。ただし、これらの機能
に限定されない。
【0045】クリア:クリア機能はすべてのオブジェク
トのワークエリアをクリアする。ワークエリアの1つの
領域もまた“ラバーバンドボックス”機構を用いてクリ
アすることができる。
【0046】選択:選択機能は、作図、色塗り、操作を
行うべきオブジェクトを選択する。オブジェクトが選択
されると、行われる追加あるいは削除がそのオブジェク
トに適用される。同様に、拡大・縮小や回転といった操
作も選択されたオブジェクトに適用される。図形オブジ
ェクトは好適には階層的であるため、このような操作は
通常すべてのサブオブジェクトにも適用される。本発明
の一実施例では、VSEシステム400は、1つのオブジェク
トあるいはオブジェクトの集合の境界線上に“取っ手(h
andle)”を描くことによってそのオブジェクトが現在選
択されていることを示す。
【0047】オープンビュー:この機能は図形エディタ
404のワークステーションへの複数のビューを支援する
ために用いられる。つまり、図形オブジェクトを表示す
る複数のウィンドウを作成することができる。たとえ
ば、1つのビューの特定の領域上で拡大を行なうことが
でき、その一方で別のビューをワークエリアの異なる部
分に水平移動(pan)することができる。いずれにして
も、あるオブジェクトが作成され、1つのビューにおい
て修正あるいは操作されると、それは現在見えるか否か
にかかわらず、他のすべてのビューに入る。
【0048】カット/複写/貼り付け:この機能によ
り、ユーザがワークエリアからあるいはワークエリアへ
領域あるいはオブジェクトをカット/複写/貼り付けで
きるようにする。
【0049】グループ/グループ化解除:この機能によ
り、ユーザが複合オブジェクトを作ったり解体したり、
また複数のオブジェクトを、行なわれるあらゆる操作に
対して1つのものとして取扱うことができるようにす
る。
【0050】前/後:この機能はオブジェクトをワーク
エリア内の他のすべてのオブジェクトの前面あるいは背
面に移動する。
【0051】グリッド:グリッド機能を使えば、ユーザ
がオブジェクトをワークエリア内に正確に配置できるよ
うにする。好適には、それぞれのVSEビューに対して1
つのグリッドが用いられる。
【0052】取り入れ/捕獲:これらの機能は、図形エ
ディタ404が他のツールを用いてVSEシステム400の外部
で作成された図形を取り入れることができるようにす
る。複数のファイルフォーマットをサポートすることが
でき、また図形エディタ404はユーザが図形エディタ404
の外部のウィンドウを選択し、そのイメージをワークエ
リア内に複写できるように図形を“捕獲する”ことがで
きなければならない。
【0053】保管/復元:この機能は、図形エディタ40
4が作成し読み出す図形ファイルおよび設計ファイルの
維持に用いられる。絵だけが必要である場合、ユーザは
図形ファイルへの保管あるいは図形ファイルからの復元
を行う。しかし、オブジェクトの機能を保持しなければ
ならない場合、設計ファイルが用いられる。
【0054】取り消し/再実行:この機能は、ユーザが
図形コマンド待ち行列中を一度に1コマンドずつ後退あ
るいは前進できるようにする。その結果、あるオブドェ
クトの編集に間違いがあった場合、ユーザは間違いの発
生した位置まで取り消しによって戻ることができる。
【0055】パンとズーム:ワークエリアは画面に表示
可能なものより大きい場合があるため、ユーザがワーク
エリア中で移動できるようにこれらの機能とが設けられ
ている。パナーを用いてユーザは作業を行うべきワーク
エリア内の領域を選択することができ、またズーム機能
を使えば、“ラバーバンドボックス”あるいは独立した
“ズーム”ボタンを用いてワークエリアの拡大すべき小
部分を選択することができる。
【0056】プリント:この機能により、図形表現され
たビューをプリンタにダンプすることができる。
【0057】リフレッシュ:この機能はビューを含むす
べてのオブジェクトに描き直しを指示して画面を単にリ
フレッシュする。
【0058】図形エディタ404の操作機能により、図形
エディタ404がオブジェクト自体あるいはワークエリア
の領域内で動作できるようになる。これらの機能はワー
クエリア中のオブジェクトの外観、位置あるいは向きを
変えることがあるが、描画や色塗りの動作で行われるよ
うにオブジェクトの基本的に図形的性質を変えることは
ない。サンプル操作機能には移動機能、拡大・縮小機
能、引き伸ばし機能、回転機能、平滑化/非平滑化機
能、塗りつぶし機能が含まれるが、当該技術分野に精通
する者には図形オブジェクトに対するその他の操作を用
いることもできることが理解されるであろう。
【0059】図形エディタ404の描画機能はオブジェク
トの図形表現を作成する基礎を提供する。オブジェクト
の全体的な外観と形状がこれらの機能を用いて作成され
る。オブジェクトの基本的な図形的性質が与えられる
と、色塗り機能を用いてその外観を“微調整”すること
ができる。好適な実施例においては、描画の基本モード
は形状を基礎とするものであり、これは基本的な形状か
ら開始され、ユーザがこれを所望の大きさに適宜引き伸
ばし、あるいは縮尺する。線の属性、描画モード、形状
およびテキストもまた、当該技術に精通する者には周知
である技術を用いて選択することができる。
【0060】また、図形エディタ404には図形オブジェ
クトに質感と色を与えることによって基本図を改良する
ためのペイント機能を持たせることができる。これを行
うために、デフォルト色パレットを利用できるようにし
てペン、前景、背景およびテキストの色を変更すること
ができる。さまざまな塗り潰しパターンおよびディザリ
ングやエアブラシ処理能力を設けることもできる。さら
に、ユーザが挙動関数を定義するときにこれらの機能に
アクセスできるようにオブジェクトにビープ音、クリッ
ク音等の聴覚的機能を設けることもできる。
【0061】VSEオブジェクト 図形オブジェクトは本発明のVSEシステム400のための最
も重要なオブジェクトである。図形オブジェクトは他の
いかなるオブジェクトよりもVSEシステム400と多く通信
する。好適には、VSEオブジェクトは2つの主要な部
分、すなわち図形要素と動作要素からなる。図形オブジ
ェクトのこのような特徴について次により詳細に説明す
る。
【0062】オブジェクト指向システムにおけるオブジ
ェクトで典型的に見られるように、本発明の図形オブジ
ェクトは、要求された場合自分を描画することができ、
また自分が選択されたことを表示することができなけれ
ばならない。これはオブジェクトに現れる小さなボック
スを用いて行うことができる。複合オブジェクトの全体
を選択することもできるし、あるいは、その子のすべて
が選択されたことを示すために複合オブジェクトを選択
することもできる。
【0063】好適には、本発明のVSEオブジェクトは値
の変化が発生したとき(挙作イベント)、VSEオブジェ
クトがその図形的表現を変え、ディスプレイ上で自分自
身を更新できるように、挙動関数(図形操作)を追跡す
る。ユーザは端点の値の変化を定義して、図形オブジェ
クトに中間値を補間させることもできるし、あるいはユ
ーザが離散値変化を選択して挙動関数の各離散値につい
てのオブジェクトの状態が定義されるようにもできる。
また、ユーザは、挙動関数の値がある与えられた範囲に
達したときの別の挙動関数がトリガされるように指定す
ることができる。前述したように、基本動作は色の変
更、移動、回転、拡大・縮小、引き伸ばし、塗りつぶ
し、マップ、アンマップ、上げ、下げ等である。このよ
うな動作はすべてオブジェクトの現在の位置に相対的に
行うの好適である。
【0064】後により詳細に説明するように、図形オブ
ジェクトはまたマウスボタンの押下、それに続くマウス
の移動とその後のマウスボタンの解放といったユーザ入
力のシーケンスを追跡するようセットアップすることが
できる。このようなユーザ入力を受取っている間に、図
形オブジェクトは次にどんなイベントを希望するかを挙
動ルータ412に登録する。イベントシーケンスが起った
とき、挙動関数の値を設定することができ、また座標値
やボタンといったイベントを挙動関数値にマッピングす
ることができる。
【0065】オブジェクトが作成された後、このオブジ
ェクトはユニバース420に入れられる。ユニバース420は
どのオブジェクトがどのオブジェクトの上にあるかを管
理し、ユニバース420が損傷を受けたとき更新されるビ
ューのリストを管理する。ユニバース420はまた、入力
モードにあるビューからの入力イベントを受取り、それ
らのイベントをその種のイベントを受取るように登録さ
れたオブジェクトに導く。VSEオブジェクトは表示状態
名及び挙動情報とともに記憶される値を含む。オブジェ
クトがユニバース420に挿入されると、このオブジェク
トがユニバース420内にある限り、このオブジェクトが
変化するときユニバース420のすべてのビューにこのオ
ブジェクトが描かれる。
【0066】あるVSEオブジェクトについての挙動が定
義されると、自分自身を挙動ルータ412に登録し、どの
挙動関数に関心があるのかを知らせ、またその初期値を
知らせる。また、VSEオブジェクトは図形エディタ404お
よびパレットエダィタ406によって操作することができ
る。また、後により詳細に説明するように、挙動エディ
タ408は挙動関数を定義しあるいは削除し、挙動状態を
定義しあるいは削除し、動作が相対項で行なわれるかあ
るいはは定数項で行われるかを指定し、またオブジェク
トについて定義された挙動関数および状態を判定するこ
とができる。
【0067】それぞれのVSEオブジェクトは好適には階
層中の自分のレベルにおけるユニークな名前を有する。
この名前は通常、ユーザがこの名前を用いてオブジェク
トを参照する必要がないようにVSEシステム400がデフォ
ルト値を与える。したがって、ユーザがオブジェクトを
操作したいとき、ユーザコード中ではオブジェクト名で
はなくこのオブジェクトを変化させる挙動関数名を参照
する。
【0068】図形オブジェクトは3つの異なるファイ
ル、すなわち上述の設計ファイル、図形ファイル及びパ
レットファイル、に記憶することができる。設計ファイ
ルはユーザの現在のワークエリアを管理する。また、パ
レットファイルはオブジェクトのテンプレートを格納
し、これらのテンプレートは通常はオブジェクトに関連
付けられた動作状態を持っている。一方、図形ファイル
は(プリントすることのできる)図形オブジェクトの現
在の図形的表現を含む。図形ファイルはまたVSEシステ
ム400の外部の他の図形エディタからの図形オブジェク
トを受取るのに用いることができる。オブジェクトは自
分自身を設計ファイルとパレットファイルに記憶し、そ
こから復元することについて責任を持つのみである。図
形ファイル入力についてはファイル読出し部がファイル
を読出してこのファイルの内容に基づいてオブジェクト
を作成する。一方、出力についてはオブジェクトを画面
外の図形ブロックに描き、要求されたフォーマットでラ
スタデータを出力する。
【0069】パレットエディタ406 本発明のパレットエディタ406はVSEシステム400の中
の、ユーザがVSEオブジェクトのライブラリ(ここでは
“パレット”と称する)を作成および管理できるように
する部分である。パレットエディタ406を使えばユーザ
は、システム上にどのようなパレットがあるかを見、新
しいパレットを作成し、古いパレットを削除し、既存の
パレットを編集することができる。パレットの編集のさ
いに、ユーザはパレットにどのようなオブジェクトがあ
るかを表示し、パレット上のオブジェクトの位置と大き
さを変更し、オブジェクトをワークエリアとパレットの
間で移動することができる。本発明の好適な実施例のパ
レットエディタ406の動作を説明するフローチャートを
図に示す。
【0070】図6の各ブロックの動作は以下の通りであ
る。 500:スタート 502:新たなユニバースを作成 504:オブジェクトをライブラリファイルからユニバ
ースに読み出す 506:ユニバースのビューを表示スクリーン上に作成 508:ユーザ入力を待つ 510:ユーザはオブジェクトをライブラリに追加しよ
うとしているか? 512:エディタビュー中でユーザがオブジェクト上で
の選択を行うのを待つ 514:エディタビュー中でユーザがオブジェクトを選
択したか? 516:ウインドウシステム中にオブジェクトのアイコ
ンを作成し、マウスの動きを追跡しながらボタンが押さ
れるのを待つ 518:パレットビュー中でボタンが押されたか? 520:オブジェクトのインスタンスをパレットビュー
に対応したユニバース中に作成 522:ウインドウシステム中のオブジェックとのアイ
コンを消去 524:ユーザがパレットビュー中のオブジェクトを選
択したか? 526:オブジェクトのアイコンをウインドウシステム
中に作成し、マウスの動きを追跡しながらボタンが押さ
れるのを待つ 528:エディタビュー中でボタンが押されたか? 530:エディタビューに関連付けられたユニバース中
にオブジェクトのインスタンスを作成 532:ユーザはパレットをファイルに保存したがって
いるか? 534:ユニバースのコピーをライブラリファイルに保
存 536:ユーザはパレットビューをクローズしたがって
いるか? 538:ライブラリユニバースのビューを消去 540:ライブラリユニバースを消去 542:停止
【0071】好適な実施例においては、利用可能なパレ
ットのリストがVSEシステム400のスクロール可能なサブ
ウィンドウに現れる。また、それぞれの設計ファイルは
好適にはその作成中に用いられたパレットのリストを含
む。設計ファイルがロードされるとき、そのパレットの
リストは適当な資源ファイルから得られたリストと併合
される。設計ファイルはそれが最後に保管されたときオ
ープンされていたパレットのリストを含むことがあり、
その場合、これらのパレットはファイルがロードされる
とき自動的にオープンされる。
【0072】パレットはスクロールされるリスト中で
は、フアイル名で現れる。この場合には、ベース名がは
じめにリストされ、別のカラムにはこのファイルへのデ
ィレクトリパスがリストされる。好ましくは、編集フィ
ールドとボタンがこのパレットリストにともなってお
り、ボタンでパレットリストの項目を選択するとパレッ
トの完全な名前が編集フィールドに入れられるようにな
っている。ボタンを2回押すことによって、パレットの
名前をフィールドとパレット内のオブジェクトのアイコ
ンを表示するウィンドウに置くことができる。この名は
キーボードから編集フィールドに入力することもでき
る。
【0073】パレットエディタ406を用いて、新たなパ
レットに固有の名前を作成し、パスネームセグメントを
定義することによって、新たなパレットを作成すること
ができる。新しいパレットの名前がパレットリストに加
えられ、必要であればウィンドウを開くことができる。
パレットファイルに記憶された各オブジェクトのデータ
には、オブジェクトの名前、オブジェクトの種類(他の
サブオブジェクトのプレイスホルダである複合オブジェ
クト、あるいは図形的表現を有するオブジェクトである
プリミティブオブジェクトのいずれか)を含んでいてよ
い。オブジェクトの種類がプリミティブオブジェクトで
ある場合、このプリミティブの種類を同定しなければな
らない。挙動関数の定義もまたパレットファイルに記憶
される。また各オブジェクトのデフォルトの挙動関数値
もまたそのオブジェクトとともにパレットファイルに記
憶することができる。ユーザはVSEセッション中に任意
の数のこのようなパレットを用いることができる。もち
ろん、オブジェクトのパレットへ追加し、パレットから
削除しあるいはそこから保存するための関数も設けられ
ている。またパレットは当該技術に精通する者には周知
である技術を用いて名前を変えたり、複写することがで
きる。
【0074】好ましくは、オブジェクトは、このオブジ
ェクトにパレットのビューの上に自分自身を描画させる
ことによって、パレット上に表現される。この構成要素
の名前がこれにともなっている。また、パレット上のオ
ブジェクトを見るためにスクロール可能なウィンドウを
作成することができる。
【0075】パレットからオブジェクトを選択し、VSE
ビューでそのコピーを作成するために、好ましくはピッ
クアンドプレース法が用いられる。オブジェクトは好ま
しくはパレット間であるいはビューからパレットに複写
される。オブジェクトがパレットに追加されるとき、こ
のオブジェクトにはVSEシステム400からデフォルトの名
が与えられ、このオブジェクトについてのアイコンに付
随する名前欄に表示される。この名前はパレット上の既
存のオブジェクトに付随する他の名前と異なるユニーク
なものである。さらに、名前欄はユーザがより適切な名
前を選択することができるように編集可能であることが
好ましい。
【0076】挙動エディタ408 挙動エディタ408は、ユーザがあるオブジェクトがどの
ような入力動作状態および出力動作状態を有するかを定
義すことを可能とする、VSEシステム400の部分である。
動作エディタ408の好適な実施例の動作のフローチャー
トを図7から図9に示す。
【0077】図7の各ブロックの動作は以下の通りであ
る。 600:ユーザ入力を待つ 602:入力挙動の定義か(図8)? 604:例示カーソルの現在のサイズ、形及び区域(入
力領域)を得る。最近の例示マウスイベントを得る。 606:領域とマウスイベントタイプを使って入力を定
義するようにVSEオブジェクトに指示 608:出力挙動の定義か(図9)? 610:現在の挙動状態についての挙動を定義するよう
にVSEオブジェクトに指示 612:現在の状態を変えるか? 614:新たな現在の挙動状態のルートを決めるために
挙動ルータに指示
【0078】図8の各ブロックの動作は以下の通りであ
る。 700:定義入力を待つ 702:状態名は定義されているか? 704:新たな状態名を作成 706:新たな状態名を挙動ルータに登録 708:状態ベースの入力か? 710:入力をオブジェクトとともに格納 712:状態値は定義されているか? 714:新たな状態値を作成 716:入力情報を挙動状態とともに格納
【0079】図9の各ブロックの動作は以下の通りであ
る。 800:挙動定義を待つ 802:状態値が存在するか? 804:新たな状態名を作成 806:新たな状態を挙動ルータに登録 808:新たな状態値を作成 810:状態値が存在するか? 812:オブジェクトのの図形状態を得る 814:オブジェクトの図形状態を格納
【0080】上述したように、VSEシステム400は例に従
って挙動を定義する方法を用いる。したがって、出力挙
動を定義するとき、VSEシステム400はオブジェクトの操
作の後ユーザによって作成される新しい図形状態を用い
る。ユーザは、後でアニメーションシーケンスで再生で
きるように、VSEシステム400にその状態を記憶するよう
指示する。ユーザはたとえばマウスを用いて、コンピュ
ータ画面上で“出力定義”とラベルの付けられたボタン
を押すことによって、VSEシステム400に状態を記憶する
ように指示する。当該技術に精通する者には明らかなよ
うに、この考え方はカメラで一連のこまを撮影する場合
に非常に近い。
【0081】挙動エディタ408は、オブジェクトの現在
の図形状態をユーザの定義した出力状態名と出力状態値
にマップすることによって、VSE図形オブジェクト用の
特製の関数の定義を制御する。重要なことは、本発明の
挙動エディタ408はユーザの定義した入力領域、状態名
および値を、例えば例示マウス、マウスボタンのクリッ
クやマウスの移動、あるいはキーボード入力(後により
詳細に説明)によって定義されるマウス挙動等の、ユー
ザの入力動作にマップする。挙動エディタ408はまた、
あるオブジェクトにどのような挙動が定義されているか
をユーザが見て、望むならばその挙動を削除、移動ある
いは複写できるようにする。挙動エディタ408はまた、
ユーザが挙動作状態名と値を指定することによって挙動
イベントをオブジェクトに送ることができるようにす
る。
【0082】挙動エディタ408は図形オブジェクトにつ
いての特性の“関数”を定義する。この定義は、その関
数が単一のパラメータをもち、この単一のパラメータは
ユーザが定義した値の範囲(たとえば0から100までの
整数値)内にあるようにすることによってなされる。ま
た、ユーザは、図形エディタ404を用いてオブジェクト
が値の範囲に対してその外観をどのように変化させねば
ならないかを定義することによって、オブジェクトを図
形的に操作する。このようにして、ユーザは基本的に、
整数の範囲の値についてこのオブジェクトについての図
形形態の集合をマッピングする。
【0083】VSEシステム400は好適には移動、拡大・縮
小、回転、塗りつぶし、および引き伸ばし等の操作を線
形に補間する手段を有し、これにより初期値と最終値に
ついて外観を定義するだけでよいようにする。ここで、
初期値と最終値は隣接していない。初期値と最終値が隣
接している場合(たとえば0と1)は、オブジェクトは
1つの状態の遷移の間に完全に変換される。このように
して、離散的な挙動を作成することができる。
【0084】動作エディタ408は、現在選択されている
オブジェクトに対してその表示を要求することによって
表示される。挙動エディタ408のビューはそれが常に現
在選択されているオブジェクトについての情報を表示す
るように変化する。挙動エディタ408は、選択されたオ
ブジェクトともしそれにサブオブジェクトがあればその
サブオブジェクトについて現在定義されている関数を挙
動エディタウィンドウ中にリストする。ユーザはこのリ
ストから特定の関数を選択することによってその詳細を
表示させることができる。すると、複数の関数の詳細が
他とは別になったウィンドウに表示される。ユーザがウ
ィンドウ間で詳細をカットしたり貼り付けたりできるよ
うに、カットおよび貼り付け機構を設けることができ
る。
【0085】好適には、挙動エディタ408の関数の詳細
には、関数名、この関数の入力パラメータについて現在
定義されている値の範囲を確率する最小数と最大数、こ
れら最小値と最大値の間の範囲内の、オブジェクトがイ
ンスタンスとしてさいしょに生成されたときこの関数に
渡されなければならない選択された値、およびこの関数
によって実行される図形動作とこの動作がどのような範
囲の入力値について実行されるかを文章で記述するアク
ションリストが含まれる。たとえば、挙動編集ウィンド
ウの中のボタンを使って、ユーザが最小値から最大値ま
での範囲内のパラメータ値で現在選択されている関数を
直接呼び出すことができる。これによって、ユーザは与
えられた関数の制御のもとにオブジェクトの挙動を直ち
に観察することができる。ユーザは新しいパラメータ値
を与えてこの関数を1回あるいはもっと多く呼び出すこ
とができる。関数についてのアクションは、オブジェク
トを所望の状態にし、オブジェクトを直接操作してその
状態についてのその外観を修正し、この修正を保管する
ことによって、いつでも追加あるいは修正することがで
きる。この修正を保管する際、この変更を反映させるた
めにアクションリストは自動的に更新される。関数につ
いてのアクションはまた、アクションリストの項目を直
接編集したり、新しい項目を追加したり、あるいは現在
の項目を削除することによって、修正することができ
る。
【0086】VSEシステム400は、デフォルトでは相対項
(relative term)で挙動アクションを捕獲し、任意の未
解決の変換についてそれらを実行する。たとえば、ある
オブジェクトについて定義された挙動作が、入力値範囲
0〜90について、その初期状態から時計回りに90゜回転
することである場合、挙動エディタ408を出た後、オブ
ジェクトを90゜時計回りに回転することによってオブジ
ェクトをその右側のヘリのまわりに回転させようと、ユ
ーザが決めたとしよう。挙動関数が今実行されると、こ
の関数はオブジェクトをその新しい向きに対して時計回
りに0〜90゜回転させる。その結果、アクションの記述
が少なくとも入力値、変化分値および定数をマッピング
できなければならない。しかし、当該技術に精通する者
は絶対的な位置決めを用いることもできる。定義の後、
ユーザはユーザのアプリケーションプログラムから挙動
関数を呼び出すことができる。挙動関数を呼び出すと、
挙動イベントが作成されるが、現存しない状態値を用い
て挙動イベントを呼び出すと、VSEシステム400は何のア
クションもとらない。
【0087】本発明の好適な実施例では、複数のオブジ
ェクトが同じ名前の挙動関数を持つことがありうる。こ
のような関数が呼び出されると、その名前を有するすべ
ての関数が呼び出される。すなわち、この挙動イベント
はすべての関連するオブジェクトに広がり、VSEオブジ
ェクトを1つに結合する単純な機構をユーザに提供す
る。しかし、挙動関数が複数のオブジェクトに共有され
る場合、この関数に割り当てられる初期値もまた共有さ
れねばならない。初期値が1つのオブジェクトについて
挙動エディタ408中で修正された場合、これは実際には
すべてのオブジェクトについて修正される。また、新し
いオブジェクトがパレットエディタ406のパレットのワ
ークエリアあるいはそのワークエリア上の別のオブジェ
クトの上に複製されると、その挙動関数はワークエリア
にすでに存在するオブジェクトのための任意のマッチン
グする挙動関数からの現在値と初期値をとる。したがっ
て、本発明はオブジェクトについての大域挙動関数再命
名機構を含むように変更することができる。
【0088】オブジェクトはあらかじめ定義された固有
の(cintrinsic)挙動関数を有するデフォルトパレット上
に供給することができる。すなわち、これらの挙動関数
によるアクションはアクションリスト内で記述すること
ができない。一例として、ユーザがチャートに任意の点
を追加するあるいはチャートをクリアすることができる
ようにする挙動関数を有するストリップチャートオブジ
ェクトがある。これは直接操作で記述することも一連の
アクションとして表すこともできない。これらの“固有
の”挙動関数はオブジェクト変換あるいは編集関数の呼
び出しとして取り扱われ、挙動関数の入力値はこの変換
あるいは編集関数を介して入力値と1対1でマッピング
される。挙動エディタ408の一部としてユーザはオブジ
ェクトが支援している変換あるいは編集関数のリストを
見ることを要求することができる。
【0089】入力オブジェクト(すなわち、その外観が
キーボードイベントあるいはマウスイベントに応答して
変化するオブジェクト)は好適には出力オブジェクトの
スーパーセットである。入力オブジェクトの外観の必要
な変化は挙動関数の状態にマッピングされ、これにより
キーボードイベントあるいはマウスイベントを挙動関数
が受入れる範囲の値にマッピングするだけでよいように
する。実際には、ユーザは挙動関数の実行をトリガする
ためにある種のマウスイベントあるいはキーボードイベ
ントのシーケンスを望む場合がある。
【0090】コマンドルータ410 コマンドルータ410はVSEシステム400のうちでコマンド
をVSEシステム400のさまざまな部分に経路指定する部分
である。すべてのコマンドはコマンドルータ410によっ
て経路指定され、VSEシステムのうちで特定のコマンド
がいつ実行されるかを知りたがっている任意の部分がコ
マンドルータ410に登録を行ない、そのコマンドが実行
されるときメッセージを受け取ることができる。たとえ
ば挙動エディタ408は選択コマンドについて登録し、ユ
ーザがオブジェクト選択を行うと図形エディタ404がそ
の選択コマンドをコマンドルータ410に送り、コマンド
ルータ410が挙動エディタ408に選択が起ったことを知ら
せる。許容可能なコマンドルータ410の具体的な設計に
ついては当該技術に精通する者の判断に任せる。
【0091】挙動ルータ412 挙動ルータ412はVSEシステム400のうちで挙動イベント
をVSEシステム400内のオブジェクトに経路指定する部分
である。上述したように、挙動イベントはある与えられ
た挙動状態をある状態値に設定することである。ユーザ
コード、VSEオブジェクト、および挙動エディタ408が挙
動イベントを挙動ルータ412に送る。挙動ルータ412はこ
のイベントをその特定の挙動状態名について登録された
オブジェクトあるいは他のVSE構成要素に送る。
【0092】この挙動ルータの好適な実施例の動作を説
明するフローチャートを図10と図11に示す。図10
は挙動状態名と挙動状態値を登録されたオブジェクトに
渡す場合のフローチャートであり、図11は登録された
挙動状態の探索を示すフローチャートである。
【0093】図10の各ブロックの動作は以下の通りで
ある。 700:状態名と状態値からなる挙動状態を待つ 902:挙動イベントキャッシュ中の状態名についての
新たな状態値を保存 904:登録された挙動受信側のリストをスキャン 906:他の受信側を発見したか? 908:受信側を呼出して与えられた状態名と状態値を
それに渡す
【0094】図11の各ブロックの動作は以下の通りで
ある。 920:状態名を待つ 922:挙動イベントキャッシュ中で状態名をサーチ 924:状態名が見つかったか? 926:状態名に対応付けられた状態値を返す 928:値0を返す
【0095】上述したように、挙動ルータ412はイベン
ト名と整数の値からなる挙動イベントを受け取る。挙動
イベントが受け取られると、挙動ルータ412はどの図形
オブジェクトが同じ名前の挙動関数を有するかを判定す
る。挙動ルータ412はそれぞれのオブジェクトに順次コ
ンタクトし、図12に示すフローチャートにしたがって
そのオブジェクトに自分が持っている挙動関数を所望の
値を与えて実行するように要求する。
【0096】図12の各ブロックの動作は以下の通りで
ある。 1000:(挙動ルータからの)新たな挙動状態名と挙
動値を待つ 1002:状態名が定義されているか? 1004:状態値が定義されているか? 1006:新たな状態情報をオブジェクトにロード 1008:低い側の状態値が定義されているか? 1010:高い側の状態値が定義されているか? 1012:低い側の状態値を持つオブジェクトをロード 1014:高い側の状態値を持つ一時オブジェクトをロ
ード 1016:一時オブジェクトの変換を現在のオブジェク
トにマージ
【0097】そうすることが適当であれば、挙動ルータ
412はこの挙動イベントについてクライアントアプリケ
ーションに通知することもできる。複数の図形オブジェ
クトが同じ名前の挙動関数を持つことがある。しかし、
それぞれのオブジェクトは挙動関数によって実行される
アクションについて自分自身の定義を有する。したがっ
て、複数のオブジェクトが挙動作関数について単一の定
義を共有することはできない。しかし、それらは同じパ
レットオブジェクトからコピーされた結果同じ定義を有
することもある。当該技術に精通する者には明らかなよ
うに、挙動イベントに図形オブジェクトの状態の変化を
起こさせるのは、通常はクライアントアプリケーション
である。
【0098】図形オブジェクトはさまざまな状況で挙動
イベントを生成する。ユーザからの入力を受入れるオブ
ジェクトについては、マウスイベントあるいはキーボー
ドイベントがオブジェクトにその挙動関数のうちの1つ
を実行させる場合がある。このオブジェクトはそれに対
応付けられた挙動関数を実行した後、挙動イベントを挙
動ルータ412に送る。同じ挙動関数を有する他のオブジ
ェクトがある場合、挙動ルータ412はそれらを呼び出
す。また挙動ルータ412はこのイベントを任意のクライ
アントアプリケーションに経路指定する。一方、挙動関
数のアクションのうちの1つあるいは複数のものが別の
関数についての挙動イベントを発生するよう要求される
ことがある。初期挙動関数を実行しているオブジェクト
がこの新しい挙動イベントに対応付けられた関数を有す
る場合、新しい挙動イベントを挙動ルータ412に経路指
定する前にこの新しい関数を実行する。同じ挙動関数を
有する他のオブジェクトがある場合、挙動ルータ412は
それらを呼び出す。また挙動ルータ412はこの挙動イベ
ントを任意のクライアントアプリケーションに経路指定
する。
【0099】はじめに挙動イベントを生成するオブジェ
クトあるいはクライアントアプリケーションは、挙動ル
ータ412がこのイベントを処理するとき挙動ルータ412か
らコンタクトされない。たとえば、オブジェクトA、オ
ブジェクトB、オブジェクトCが図形オブジェクトであ
り、それぞれに対応付けられたる挙動関数F(整数値)
を有するものと仮定する。また、クライアントA、クラ
イアントB、クライアントCがVSEシステム400に接続さ
れたクライアントアプリケーションであると仮定する。
すると、クライアントAがF(10)に対する挙動事象を
開始すると、それを受取って挙動作ルータ412はオブジ
ェクトA、B、Cに値10でそれらの対応するF(整数
値)挙動関数を実行するように要求する。挙動ルータ41
2はまた、F(10)に対する挙動事象をクライアントB
に渡す。一方、オブジェクトAが値20で動作関数F(整
数値)を実行させるキーボードイベントあるいはマウス
イベントを受取ったと仮定すると、実行完了後、オブジ
ェクトAはF(20)に対する挙動イベントを開始する。
挙動ルータ412はオブジェクトB、Cに値20でそれらの
対応するF(整数値)挙動関数を実行するように要求す
る。挙動ルータ412はまた、F(20)に対する挙動イベ
ントをクライアントBおよびクライアントBに渡す。
【0100】オブジェクトの挙動関数は前述した挙動エ
ディタ408を用いて定義される。挙動エディタ408は、挙
動関数が異なる値あるいは異なる範囲の値で呼び出され
るときオブジェクトに発生する図形的変化をユーザが選
択できるようにする。この定義の一部として、ユーザ
は、挙動関数が開始されるときユーザがそれを呼び出す
のに用いることを希望するデフォルト値を選択すること
ができる。ユニバース402中のあるオブジェクトが設計
ファイルあるいはパレットに保管されるとき、それに対
応付けられた挙動関数の定義もまた保管される。さら
に、それぞれの挙動関数のデフォルト値および最終値も
また保管される。
【0101】オブジェクトの挙動関数は、そのオブジェ
クトが設計ファイルからロードされるとき、あるいはそ
のオブジェクトがパレットから複写されるときに活性化
される。このオブジェクト自体は、作成されたばかりの
挙動関数に関係する挙動事象について登録を行なう。挙
動ルータ412はこれらの登録要求を受け入れる。
【0102】好適な実施例において、ある挙動イベント
について動作ルータ412へ登録するための呼び出しに
は、パラメータオブジェクト識別子、挙動イベント名、
所望のデフォルト値と最後の分かっている値を必要とす
る。オブジェクト識別子は挙動イベントが検出されたと
き何を呼び出すかを識別し、挙動イベント名は登録され
るイベントの名前である。所望のデフォルト値は初期設
定の際に呼出し元が挙動関数にどのような値が渡されね
ばならないと考えるかを決定し、最後の分かっている値
は挙動関数が設計ファイルに保管される前の最後の値で
ある。挙動エディタ408がインスタンスを生成している
場合、挙動エディタ408は挙動関数の定義中にユーザに
よって与えられた所望のデフォルト値を渡す。挙動エデ
ィタ408は最後の分かっている値の概念を持たず、した
がって所望のデフォルト値を最後の分かっている値とし
て渡す。しかし、インスタンス生成が設計ファイルのロ
ーディングの結果として起っている場合、所望のデフォ
ルト値と最後の分かっている値は設計ファイル情報から
供給される。インスタンス生成がパレットからのオブジ
ェクトの複写の結果として起っている場合、所望のデフ
ォルトはパレットファイル情報から供給される。パレッ
トオブジェクトは好適にはデフォルト状態で現れなけれ
ばならないため、所望のデフォルト値は最後の分かって
いる値として渡されなければならない。挙動ルータ412
は挙動関数を実際にはどのような値で初期設定しなけれ
ばならないかを決定するためにデフォルト値と最終値を
必要とする。挙動ルータ412はこの値を呼出元に返し、
呼出元は挙動関数がこの値をパラメータとして実行され
たことを知る。しかし、挙動イベントは挙動関数が初期
設定過程の一部として呼び出されているときには生成さ
れないのが好適である。つまり、クライアントアプリケ
ーションは挙動イベントを挙動関数の初期設定の結果と
しては受け取らない。
【0103】挙動ルータ412の仕事の一部は、特定の挙
動イベントに関連するすべての挙動関数が同一の状態を
保つようにすることである。すなわち、それぞれの関数
は挙動イベントが発生したとき同じ値で呼び出されなけ
ればならない。新しい挙動関数のインスタンスが生成さ
れる場合、それは最新のイベント値で初期設定されねば
ならない。しかし、挙動ルータ412が登録要求を受取っ
たとき、挙動ルータ412は好適には呼出元の所望のデフ
ォルト値と最後の分かっている値およびその特定のイベ
ントについての自分自身の履歴を用いてこの新しい挙動
関数の初期設定に用いるべき値を決定する。したがて、
登録にあたって次の2つのシナリオのうちの1つが起こ
る。
【0104】これがその挙動イベントについて行われた
初めての登録であり、誰も過去にこのイベントを生成し
ていない場合、挙動ルータ412はその挙動イベントの現
在値とデフォルト値のリストに新しい項目を作成する。
登録元から受け取った所望のデフォルト値は挙動ルータ
412によってこの挙動イベントのデフォルト値フィール
ドに格納される。VSEシステム400がすべてのオブジェク
トをそのデフォルト状態でロードするモードになってい
る場合、挙動ルータ412は最後の既知の値を無視し、所
望のデフォルト値を現在の値として格納し、所望のデフ
ォルト値を推奨初期設定値として返す。一方、VSEシス
テムがすべてのオブジェクトをその最後の既知の状態で
ロードするモードになっている場合、挙動ルータ412は
最後の既知の値を現在の値として格納し、またそれを推
奨初期設定値として返す。
【0105】シナリオ2 その挙動イベントについて別のオブジェクトがすでに登
録されている、あるいはこの登録の前にあるイベントが
生成されていた場合、挙動ルータ412はこのイベントに
ついての現在値をすでに知っているし、またさらにデフ
ォルト値をも知っている場合がある。挙動ルータ412が
格納された省略時値を有しない(すなわち、挙動ルータ
412は挙動イベントを受け取っているが、これがそれら
のイベントについて登録すべき最初のオブジェクトであ
る)場合、挙動ルータ412は登録元から渡されたデフォ
ルト値を格納する。そうでない場合には、それを無視す
る。また、挙動ルータ412は以前の登録あるいはある挙
動イベントの受領の結果として格納された値をすでに有
するため、登録元から渡された最後の既知の値を無視
し、その格納された現在値を推奨初期設定値として返
す。
【0106】挙動ルータ412は好適にはVSEシステム400
の他の部分が挙動イベントに関連する現在値とデフォル
ト値について挙動ルータ412に照会できるようにする方
法を提供する。パレットエディタ406はあるオブジェク
トがユニバース420からパレットに複写され、それぞれ
の挙動関数に対応付けられたデフォルト値を記録する必
要があるときこれらの方法を用いることを希望する。ま
た、挙動エディタ408は現在定義されている挙動関数へ
のビューを作成し、それに対応付けられたデフォルト値
と現在値を表示することが必要であるとき、これらの方
法を用いることを希望する。また、挙動ルータ412はVSE
システム400の他の部分がある挙動イベントに対応付け
られたデフォルト値を修正できるようにする方法を提供
する。挙動エディタ408はユーザが現在定義されている
挙動関数に対応付けられたデフォルト値を修正できるよ
うにするためにこれを用いることを希望することがある
が、上述したように、実際にはこれによって同じ名前の
すべての挙動関数についてデフォルト値を変更すること
がある。
【0107】挙動エディタ408はまた挙動ルータ412に挙
動イベントを登録することを希望する。たとえば、挙動
エディタ408が図形オブジェクトAについての挙動関数
F(整数値)を見ていると仮定すると、クライアントア
プリケーションがF(20)についての挙動イベントを生成
する場合、挙動エディタ408はそのビューを更新できる
ように通知を受けることを希望する。たとえば、この関
数の現在値を示す表示フィールドの変更を希望する。
【0108】一方、クライアントアプリケーションは挙
動イベントを受け取るために明示的に登録を行う必要が
ない。VSEシステム400はクライアントが接続しているこ
とを検出すると、図13に示すようにこの新しい接続を
管理するためのクライアントエージェントのインスタン
スを作成する。
【0109】図13の各ブロックの動作は以下の通りで
ある。 1100:スタート 1102:挙動イベントについて挙動ルータに登録 1104:挙動ルータからの挙動イベントあるいはクラ
イアントサーバからの挙動イベント選択設定への要求を
待つ 1106:挙動イベントを受信したか? 1108:挙動イベント選択リスト中の挙動イベントに
関連付けられた状態名を探す 1110:状態名が選択リスト中に発見されたか? 1112:挙動イベントについての状態名と状態値をク
ライアント(ユーザプログラム)に送る 1114:挙動イベント選択設定要求を受信したか? 1116:名前を挙動イベント選択リストに付加する
【0110】クライアントエージェントは挙動ルータ41
2に将来発生する可能性のある新しい種類のものまでを
含むあらゆる種類の挙動イベントについての通知を要求
する特殊登録要求を行う。すると、特定のクライアント
アプリケーションに送られる挙動イベントは実際にはこ
のクライアントエージェントによって待ち行列に入れら
れる可能性がある。VSEクライアント側ライブラリを用
いてこの待ち行列のアイテムを要求することができる。
VSEクライアント側ライブラリは接続、その待ち行列の
読み出し、挙動イベントの生成、および現在値の読み出
しといったVSE移送媒体上のトランザクションを開始す
る機構である。
【0111】接続に際しては、VSEクライアント側ライ
ブラリはVSEシステム400に接続中であることを知らせ
る。これは他の種類のトランザクションを開始する前に
行わなければならない。このトランザクションはクライ
アントエージェントのインスタンスを作って接続を制御
し、このクライアントエージェントは将来の挙動イベン
トのための待ち行列を準備する。次に、VSEクライアン
ト側ライブラリは適当な要求を行って現在この待ち行列
に入っている挙動イベントを読み出す。また、VSEクラ
イアント側ライブラリはクライアントエージェントに挙
動イベントの生成を要求し、この挙動イベントは図形オ
ブジェクト、他のクライアント、および挙動エディタ40
8が事象について登録されている場合挙動エディタ408に
ディスパッチすべく挙動ルータ412に送られる。VSEクラ
イアント側ライブラリはまた挙動イベントに対応付けら
れた現在値を要求する。このような要求はクライアント
アプリケーションの待ち行列に入っている可能性のある
同じ名前のすべての挙動イベントを巡回する。挙動ルー
タ412は次に与えられたイベント名に対応付けられた現
在値について照会を受け、これをクライアントアプリケ
ーションに返す。
【0112】最後に、挙動ルータ412は好適にはオブジ
ェクトが挙動イベントについて登録を取り消せるように
する方法も提供する。たとえば、図形オブジェクトはそ
れがユニバース420から削除される場合その登録を取り
消すことができる。さらに、挙動エディタ408はユーザ
がそれをクローズするとき、あるいは異なる挙動関数を
見ることを要求するとき登録を取り消される。クライア
ントエージェントはまたクライアント接続がクローズさ
れるとき登録を取り消さねばならない。
【0113】クライアントサーバ414 クライアントサーバ414はVSEシステム400中でユーザコ
ードをVSEシステム400に接続する部分である。本発明の
クライアントサーバ414の好適な実施例のフローチャー
トを図14に示す。
【0114】図14の各ブロックの動作は以下の通りで
ある。 1200:スタート 1202:新たなユーザプログラム(クライアント)接
続要求についてチェック 1204:新たなクライアントか? 1206:新たなクライアントについての挙動イベント
受信側を生成して、クライアントを既存のクライアント
リストに付加 1208:既存のクライアントからの要求についてチェ
ック 1210:要求が保留中か? 1212:次のクライアント要求を獲得 1214:挙動要求を経路指定することの要求か? 1216:挙動イベント状態名と状態値を経路指定のた
めに挙動ルータに与える 1218:挙動イベント選択設定の要求か? 1220:挙動イベント選択要求をクライアント挙動イ
ベント受信側に与える 1222:与えられた状態名の状態値が求められている
のか? 1224:挙動ルータに状態値を問い合わせてそれをク
ライアントに送る 1226:切離し要求か? 1228:クライアントについての挙動イベント受信側
を削除して、クライアントを既存のクライアントリスト
から除去
【0115】図示するように、クライアントサーバ414
はユーザプログラムとVSEシステム400の間の接続を確立
し、必要に応じてこれら2つの間で情報をやり取りす
る。
【0116】コマンドプレーヤ/レコーダ416 コマンドプレーヤ/レコーダ416は、VSEシステム400中
で実行されているアクションをユーザが記録および再生
できるようにする部分である。ユーザはアクションをフ
ァイルに記録し、それを後で再生することができる。コ
マンドが再生されるとき、VSEシステム400はユーザがコ
マンドを直接入力しているかのように動作する。
【0117】挙動レコーダ/プレーヤ418 挙動レコーダ/プレーヤ418 VSE システム400中ではユ
ーザが挙動イベントを記録および再生できるようにする
部分である。挙動イベントはユーザからあるいはユーザ
のコードから来ることができるため、ユーザはこれらの
イベントを別々にあるいはコマンドと一緒に保管するこ
とができる。コマンドと同様に、挙動イベントはファイ
ルに記録され、後で再生される。図15と図16はそれ
ぞれ本発明の動作レコーダおよび動作プレーヤの好適な
実施例のフローチャートを示す。
【0118】図15の各ブロックの動作は以下の通りで
ある。 1300:スタート 1302:出力ファイルをオープン 1304:挙動イベントについて挙動ルータに登録 1306:タイマをリセット 1308:挙動イベントを待つかユーザからの要求を停
止 1310:挙動イベントを受信したか? 1312:最後のタイマリセット以来の時間を得る 1314:状態名と状態値をタイムスタンプとともに出
力ファイルに書き込む 1316:停止要求を受信したか? 1318:挙動イベントについて挙動ルータに登録解除
させる 1320:出力ファイルをクローズ 1322:停止
【0119】図16の各ブロックの動作は以下の通りで
ある。 1400:スタート 1402:入力ファイルをオープン 1404:行をファイルから得る 1406:新たな行があるか? 1408:ファイルをクローズ 1410:停止 1412:行についてのタイムスタンプを得る 1414:待ちタイマをタイムスタンプから設定 1416:待ちタイマをチェック 1418:時間切れか? 1420:状態名と値をファイル中の行から読み出す 1422:状態名と値を経路指定のために挙動ルータに
送る
【0120】ユニバース420 上述したように、ユニバース420はVSEシステム中でVSE
オブジェクトのすべてがそこに保持される部分である。
ユニバース420はまたオブジェクトを変化させたときに
そのオブジェクトのすべてのビューを更新する責任を有
する。ユニバース420はオブジェクトのディスクファイ
ルへの保管とそこからの復元およびユニバース420のビ
ューの追加と削除ができるようにする。また、ユニバー
ス420はオブジェクトの外観が変化したとき、すべての
ビューが更新すべき部分を書き直すことができるように
すべてのビューにその変化を知らせる。ユニバース420
内のオブジェクトを図5に例示する。図示するように、
ユニバース420はVSE複合オブジェクト422、VSE基本オブ
ジェクト424、ビューオブジェクト426、VSE挙動オブジ
ェクト428、ビューポート挙動オブジェクト430およびパ
ナーオブジェクト432を含む。
【0121】VSE複合オブジェクト422 VSE複合オブジェクト422は、VSEシステム400中でオブジ
ェクトの階層的な構築をできるようにする部分である。
VSE複合オブジェクト422はそれに所属するオブジェクト
を管理し、複合オブジェクト422に対して実行される動
作はVSE複合オブジェクト422を介して子オブジェクトに
渡される。
【0122】VSEプリミティブオブジェクト424 VSEプリミティブオブジェクト424は、VSEシステム中
で、ユーザが画面上に描いたオブジェクトを表す部分で
ある。このオブジェクトはオブジェクトの図形状態およ
びそれに対し実行することのできるすべての操動を保持
する。図形状態情報にはたとえば現在の図形変換、オブ
ジェクトの種類、色、線のスタイル等が含まれる。
【0123】ビューオブジェクト426 ビューオブジェクト426はユーザにVSEオブジェクトのユ
ニバース420へのビューを見せる。これは基本的にはユ
ニバース420の一部へのウィンドウであり、ユニバース4
20のその領域中のすべてのオブジェクトを見せる。
【0124】VSE挙動オブジェクト428 VSE挙動オブジェクト428は、あるオブジェクトのそれぞ
れの挙動状態について挙動が保管される場所である。こ
れは、ある与えられた挙動状態に対してあるオブジェク
トの図形状態がどのようでなければならないかの情報、
およびこのオブジェクトをその状態にするためにこのオ
ブジェクトに適用すべき変換についての情報を有する。
【0125】ビューポート挙動オブジェクト430 ビューポート挙動オブジェクト430はビューオブジェク
ト426が持つことのできる挙動を表す。これは挙動オブ
ジェクトとは異なるオブジェクトである。なぜなら、ビ
ューの挙動状態は図形的状態等を含まず、ビューが活動
状態であるか、ユニバース420のどの領域を見ているの
か、またビューのスケール等の情報を含むためである。
【0126】パナー(panner)オブジェクト432 パナーオブジェクト432はユニバース420へのビューの視
点とそのビューが動作しているスケールを変更するため
にユーザが対話する相手となるオブジェクトである。
【0127】例示マウス(example mouse) 上述したように、出力挙動を定義するとき、VSEシステ
ム400は例を用いて入力を定義するやり方を用いる。た
とえば、ユーザはマウスを用いてカーソルをあるオブジ
ェクトに移動させ、マウス上のボタンを押す。これはマ
ウスのシーケンスと位置を定義するための例としてはた
らく。しかし、この方法の問題点は、マウスを例として
用いることに加えて、ユーザがマウスを用いて“入力定
義”のラベルが付けられたボタンを押さなければならな
いことである。このため、2つのマウスが必要である。
すなわち、一方のマウスはあるオブジェクトがどのよう
な入力を受けるかの例として用いられ(例示マウス)、
他方のマウスは挙動エディタ408を操作させるために用
いられる(操作マウス)。
【0128】例示マウスにはさまざまな実施例が可能で
ある。実施例の1つとしては、コンピュータに接続され
た単なる第2の物理的マウスがある。しかし、このよう
な構成を支援するにはコンピュータハードウエアを追加
する必要がある。したがって、例示マウスの好適な実施
例は表示画面上のマウスの図形イメージである。かかる
例示マウスを図19に要素1700として示す。この例示マ
ウス1700は動作マウスを用いて画面上を移動させること
ができ、例示マウス上のマウスボタン1702は図17のフ
ローチャートに示すように動作マウスを用いて押すこと
ができる。これらのイベントは“DEFINE INPUT(入力定
義)”が押されたときオブジェクトとともに記録および
格納される。
【0129】図17の各ブロックの動作は以下の通りで
ある。 1500:ユーザ入力を待つ 1502:例示マウスをつかんで動かしたか? 1504:最後の例示マウスイベントタイプを動きとし
て格納 1506:例示カーソルの位置を変更 1508:例示カーソルのサイズあるいは形を変更した
か? 1510:例示カーソルのサイズあるいは形を変更 1512:例示マウスのボタンを押したか? 1514:最後の例示マウスイベントタイプをボタン押
下として格納
【0130】好適には、例示マウスにはカーソル(例示
カーソル)が対応付けられている。このカーソルは例示
マウスを追跡し、位置を示すことに加えて、例示カーソ
ルはこれからオブジェクトが記憶することになっている
形状と領域(入力領域)を表示する。入力領域とマウス
イベントの組合せは入力挙動を決定するために組合せら
れる。入力領域は任意の形状をとることができる。しか
し、入力領域の形状は好適には矩形あるいは極形状(pol
ar shape)である。極形状はつまみ等を定義するのに有
用な円、扇あるいはリングの形状をとることができる。
【0131】VSEオブジェクトの入力挙動がこのように
定義されると、VSEオブジェクトの入力挙動はたとえば
ユーザがハードウエアマウスを動かすことによって実行
することができる。図18は本発明によるVSEオブジェ
クト入力挙動の実行のフローチャートを示す。
【0132】図18の各ブロックの動作は以下のとおり
である。 1600:ユーザからの入力を待つ 1602:入力はオブジェクトに対して定義されている
か? 1604:入力はオブジェクトベースか? 1606:イネーブル関数が設定されているか? 1608:状態入力情報を得る 1610:入力イベントタイプは正しいか? 1612:入力イベントは正しい領域中にあるか? 1614:挙動ルータに新たな挙動状態を経路指定する
ように指示 1616:2つの入力領域が定義されているか? 1618:両入力領域間で補間するか? 1620:補間値を定める
【0133】図示するように、入力値は、表示されたオ
ブジェクトがスムーズな動きで表示されるように、記憶
された動作状態の値の間で補間することができる。
【0134】ボタンの例 図19は本発明の好適な実施例のVSEシステム400へのウ
ィンドウを示す。図示するように、VSE図形エディタ404
はカラーパレット1704と図形操作ボタン1706を含む。以
下の例はVSE図形エディタ404を用いてボタンが押された
とき色を変更するプッシュボタン1708の作成に要するス
テップを説明するものである(すなわち、マウスのポイ
ンタがプッシュボタン領域に動かされ、マウス上のボタ
ンが押され保持される。)以下の各ステップでは、まず
ユーザの取るアクションを述べ、次にVSEシステム400内
のどのアクションがこのユーザアクションによってトリ
ガされるかを述べる。
【0135】ステップ1:操動マウスで図形操作ボタン
1706の“[]”ボタンを選択する。これによってボック
ス作成ツールが選択される。次に、操動マウスをワーク
エリアに移動し、操動マウスのをドラッグしている間そ
のボタンを押し込み続ける。これによって操動マウスの
動きに従うラバーバンドボックスが作成される。ラバー
バンドボックスが所望のボタンボックスの大きさになっ
た時、操動マウスのボタンを解放すると、現在の背景色
(たとえばグレー)で塗りつぶされたボックスが作成さ
れる。
【0136】これによって図形エディタ404は矩形(ボ
ックス)オブジェクトを作成し、それをユニバース420
に入れる。この矩形のオブジェクトにはその現在の色
(グレー)が渡され、その位置、回転および拡大縮小率
を定義する図形変換行列を作成する。図形エディタ404
はまたユニバース420にその一部が破壊されたことを知
らせる。ユニバース420はこの破壊をすべてのビューに
知らせる。図形エディタ404が実行を完了したとき、ユ
ニバース420に自分自身を更新するよう指示する。ユニ
バース420はすべてのビューに以前の破壊を修復するよ
うに指示し、これらのビューは更新を要する画面の部分
を描き直す。ボックスが次に画面に表れる。ユニバース
420に影響を受けた領域のすべてのオブジェクトの描き
直しを要求することによって、これらのビューがこの動
作を行なう。次に、ユニバース420はグレーのボックス
に自分自身を描くように指示する。
【0137】ステップ2:ユーザは作成したグレーのボ
ックス中で操動マウスのボタンをクリックする。ハンド
ル(handle)がボックスの周囲に現れ、それが現在選択さ
れているオブジェクトであることを示す。またボックス
に取り囲まれたクロスヘア1710がグレーのボックスの中
心に現れる。これによって、図形エディタ404はボック
スオブジェクトが選択されたことをコマンドルータ410
に知らせる。次に、図形エディタ404はオブジェクトに
その選択ハンドルをオンにするように指示する。コマン
ドルータ410は挙動エディタ408に新しく選択されたオブ
ジェクトがあることを知らせ、挙動エディタ408はボッ
クスの中心にクロスヘアとデフォルト入力領域を作成す
る。図形エディタ404ユニバース420にビューの更新を指
示し、オブジェクトが描かれる。
【0138】ステップ3:次に、ユーザーは操動マウス
を挙動エディタ406の出力関数名フィールド(OUTPUT FUN
CTION NAME) 1712に移動し、“F1”を“chcolor”に変
更し、それによって色の変更を示す。次に、ユーザはマ
ウスを出力定義ボタン(DEFINE OUTPUT)1714に移動して
操作マウスの選択ボタンをクリックする。これによっ
て、状態名が“chcolor”と値が“0”が グレーのボ
ックスの現在の状態として定義される。これによって挙
動エディタ408がボックスオブジェクトに“chcolor”と
呼ばれる新しい挙動状態関数を作成し、その関数の値
“0”に対してオブジェクトの現在の動作状態を取らせ
るようにし、またこの挙動関数を保管するように指示す
る。オブジェクトは関数“chcolor”、値“0”および
グレーのボックスの現在の図形状態を含むVSE挙動オブ
ジェクト428を作成する。また、挙動ルータ412にそれが
“chcolor”関数に関係があることを登録する。
【0139】ステップ4:次に、ユーザは操作マウスを
カラーパレット1704に移動し、白色の正方形の上で操作
マウスの選択ボタンをクリックし保持する。操作マウス
のボタンを押し込んだ状態で、ユーザは操作マウスを背
景の正方形の上に移動し、ここで操作マウスの選択ボタ
ンを解放する。このアクションによって、現在選択され
ているオブジェクト(ボックス)の色が白に変わる。こ
れによって、図形エディタ404が、このボックスの現在
の状態をその色を白に変更することによって変更する。
次に、図形エディタ404がユニバース420に更新を指示
し、白のボックスが描かれる。
【0140】ステップ5:ユーザは次に操作マウスを出
力状態フィールド(OUTPUT STATE)1716の隣の矢印(三角
形)に移動し、上を指した矢印の上で選択ボタンをクリ
ックする。これによって、出力状態フィールド1716が
“1”に変わる。次に、ユーザは出力定義ボタン1714上
でクリックすると、挙動状態“1”が、ボックスの色が
白であるという情報とともに保管される。これによっ
て、挙動エディタ408がボックスオブジェクトに、その
現在の状態を関数“chcolor”の状態“1”として保管
するように指示する。ボックスオブジェクトはその挙動
オブジェクト428に関数“chcolor”の新しい状態“1”
を追加し、その現在の図形状態情報のすべてを与える
(この場合、白色を保管する)。また、挙動エディタ40
8は挙動ルータ412に“chcolor”関数の状態を値“1”
に変更するように指示する。“chcolor”に関係する他
の任意のオブジェクトが何かあれば次にはそれらに対し
て通知される。
【0141】ステップ6:ユーザは次に操作マウスを出
力状態フィールド1716の隣の矢印に移動し、“0”と
“1”の間で状態値をトグルする。これによって、出力
挙動が機能し、ボックスの色がグレーと白の間で交互に
変わることが確認される。ユーザが出力状態フィールド
1716を変更するとき、挙動エディタ408が挙動ルータ412
に、関数“chcolor”の値が変わったことを知らせる。
すると、挙動ルータ412はボックスオブジェクトに関数
“chcolor”が変わったことを知らせる。これによっ
て、ボックスオブジェクトは“chcolor”のその状態に
ついての図形状態情報をその現在の図形状態にロードす
る。ボックスオブジェクトは次にユニバース420にその
領域が破壊されたことを知らせる。最後に、挙動ルータ
412がユニバース420に更新を指示し、これによってユニ
バース420がオブジェクトにその破壊された部分を修復
するように指示する。画面は次にオブジェクトが新しい
色を有するように更新される。
【0142】ステップ7:ユーザは次にクロスヘア1710
の周囲のボックスがグレーボックスと同じ大きさになる
まで、操作マウスを用いてクロスヘア1710の周囲のボッ
クスの幅と高さを調節する。このようにしてユーザは入
力フィールドをボックスオブジェクトと同じ大きさに指
定した。挙動エディタ408はユーザのマウス動作を追跡
し、それに応じて入力領域の大きさを変える。
【0143】ステップ8:次に、ユーザはマウスを挙動
エディタパネルのオブジェクト定義入力領域(DEFINE IN
PUT)1718に移動し、次関数名フィールド(NEXT FUNCTION
NAME)1720を“F1”から“chcolor”に変える。ユーザは
次に操作マウスを例示マウス1700に移動し、例示マウス
ボタン1702の上で操作マウスの選択ボタンをクリックす
る。例示マウス1700は更新されてそのボタン1702が押さ
れたことを示す。次に、ユーザは操作マウスを移動し、
オブジェクト定義入力ボタン1718の上でその選択ボタン
をクリックする。これによって、VSEシステム400に、例
示マウスが入力領域にあり、ボタン1702が押し込まれて
いるとき、値“0”で挙動イベント“chcolor”を発す
ることができることが知らせられる。
【0144】これによって、挙動エディタ408が、与え
られた入力領域に結び付けられ、例示マウスボタン1702
が押し込まれている入力挙動状態をボックスオブジェク
トに作成させる。この状態が発生すると、挙動イベント
が名前“chcolor”と値“0”とともに挙動ルータ412に
送られる。プリミティブオブジェクト424はこの入力挙
動状態をその挙動オブジェクト428に加える。
【0145】ステップ9:次に、ユーザはマウスをオブ
ジェクト定義入力セクションの次状態フィールド(NEXT
STATE)1722に移動し、このフィールドの隣の矢印の上で
操作マウスをクリックして値を“0”から“1”に変更
する。ユーザは次に操作マウスを例示マウス1700の押し
込まれたボタン1702に移動し、その上で操作マウス上の
選択ボタンをクリックする。これによってボタン1702は
上向きの位置に戻る。ユーザは次にオブジェクト定義入
力ボタン1718上でクリックする。これによって例示マウ
スボタン1702が入力領域で解放されたときには、値
“0”で挙動イベント“chcolor”を発行するように、V
SEシステム400に指示する。
【0146】これによって、挙動エディタ408は、与え
られた入力領域に結び付けられており、例示マウスの左
のボタン1702が解放されている入力挙動状態の作成をボ
ックスオブジェクトに指示する。その後これが発生する
と、挙動ルータ412には“ch-color”と値“1”が送ら
れる。プリミティブオブジェクト424はこれをその挙動
オブジェクト428に加える。
【0147】ステップ10:ユーザは次に操作マウスを移
動し、その選択ボタンをRUNと表記されているダイアモ
ンドボタン1724上でクリックする。これによって、VSE
システム400はランモードになる。このモードでは、ボ
タンは消える(ユーザがこれらを使用することができな
いため)。操作マウス上でのボタンのクリックは、エデ
ィタではなくワークエリア上のオブジェクトに向けられ
る。
【0148】挙動エディタ408はそのボタンを消し、コ
マンドルータ410にランモードが発せられたことを知ら
せる。これによって、他のエディタもそのボタンを消す
ことができる。挙動エディタ408は次に、ワークエリア
(ビューオブジェクト426)にワークエリア中のいかな
るユーザ入力もユニバース420に送るよう指示する。
【0149】ステップ11:ユーザは次に操作マウスを現
在白であるボックスオブジェクトの上に移動する。次に
ユーザが次に操作マウスの左のマウスボタンを押し込む
と、オブジェクトはグレーになる。次にユーザがこのマ
ウスボタンを解放すると、オブジェクトは白に戻る。ユ
ーザはこのようにして2つの状態を有する汎用ボタンを
作成したことになり、任意の個数のオブジェクトあるい
はユーザコードがランモードでの状態の変化についての
情報を受け取ることができる。
【0150】ユーザが操作マウス選択ボタンをボックス
オブジェクト上で押し込むと、ビューオブジェクト426
は挙動イベントを得る。ユーザはこのイベントをユニバ
ース420に渡し、ユニバース420はそのオブジェクトにそ
れらがこの領域におけるボタンの押下に関係があるかど
うかを問う。ボックスオブジェクトはこのイベントを得
て、“chcolor”値“0”の挙動イベントを挙動ルータ4
12に発する。挙動ルータ412はこのイベントをボックス
オブジェクトに送り返す。すると、ボックスオブジェク
トはその図形状態を変更する。これにはグレーへの色の
変更が含まれる。ユニバース420が更新され、ボックス
はその新しい色で描かれる。ユーザが操作マウスボタン
を解放するとき、同じシーケンスのイベントが再度発生
する。ただし、このときは値は“1”であり、ボックス
は白に戻る。
【0151】したがって、本発明のVSEシステム400によ
れば、システム開発中に以下のステップを実行すること
ができる:オブジェクトへのインターフェースを作成す
るための図形が作成され、(マウスボタン上のクリック
等によって)入力挙動および出力挙動が付加される。次
に、オブジェクトが試験され保管される。ユーザは次に
所望のアプリケーションコードを作成し、特定のオブジ
ェクトを要求するアプリケーションを実行する。このユ
ーザアプリケーションコードはVSEシステム400に接続さ
れ、その結果が表示される。そこで、オブジェクトを修
正し、必要に応じて保管することができる。
【0152】本発明の一実施例を詳細に説明したが、当
該技術に精通する者にはこの発明の新規性のある原理と
利点から離れることなくこの実施例に他に多くの変更を
行いうることが理解されるであろう。したがって、この
ような変更はすべて本願特許請求の範囲に定義する本発
明の範囲に含まれるものである。
【0153】
【効果】以上詳細に説明したように、本発明によれば、
マン−マシンインターフェースやその入出力動作を、プ
ログラミングなしで、図形的に定義することができる。
【図面の簡単な説明】
【図1】本発明の一実施例の概念的ブロック図。
【図2】本発明の一実施例の概略ブロック図。
【図3】本発明の一実施例の概略ブロック図。
【図4】本発明の一実施例を実現するソフトウエアモジ
ュールを示す図。
【図5】本発明の一実施例を実現するソフトウエアモジ
ュールを示す図。
【図6】本発明の一実施例によるパレットエディタのフ
ローチャート。
【図7】本発明の一実施例による挙動エディタのフロー
チャート。
【図8】本発明の一実施例による挙動エディタのフロー
チャート。
【図9】本発明の一実施例による挙動エディタのフロー
チャート。
【図10】本発明の一実施例による挙動ルータのフロー
チャート。
【図11】本発明の一実施例による挙動ルータのフロー
チャート。
【図12】本発明の一実施例によるVSEオブジェクトの
出力挙動関数のフローチャート。
【図13】本発明の一実施例によるユーザアプリケーシ
ョンの新規の接続の管理を示すフローチャート。
【図14】本発明の一実施例によるクライアントサーバ
のフローチャート。
【図15】本発明の一実施例による挙動レコーダのフロ
ーチャート。
【図16】本発明の一実施例による挙動プレーヤのフロ
ーチャート。
【図17】本発明の一実施例による例示マウスの動作の
フローチャート。
【図18】本発明の一実施例によるVSEオブジェクトの
入力挙動のフローチャート。
【図19】本発明の一実施例によるVSE図形エディタの
ウインドウを示す図。
【符号の説明】
100:ライブラリ 110:描画および挙動エディタ 120:ユーザーコード 130:オブジェクト指向構成要素の定義 210:ゲージ 220:アニメーションコード 230:インターフェース 300:マウス 310:図形エディタ 320:図形オブジェクトのライブラリ 330:ディスプレイ 340:アニメータ 350:記録/再生装置 360:ユーザのソースコード 370:外部データベース 400:VSEシステム 402:ウインドウシステム 404:図形エディタ 406:パレットエディタ 408:挙動エディタ 410:コマンドルータ 412:挙動ルータ 414:クライアントサーバ 416:コマンドレコーダ/プレーヤ 418:挙動レコーダ/プレーヤ 420:ユニバース 422:VSE複合オブジェクト 424:VSEプリミティブオブジェクト 426:ビューオブジェクト 428:VSE挙動オブジェクト 430:ビューポート挙動オブジェクト 432:パナーオブジェクト 1700:例示マウス 1702:マウスボタン 1704:カラーパレット 1706:図形操作ボタン 1708:プッシュボタン 1710:クロスヘア 1712:出力関数名フィールド 1714:出力定義ボタン 1716:出力状態フィールド 1718:オブジェクト定義入力領域 1722:次状態フィールド 1724:ダイアモンドボタン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス・アール・バチャ アメリカ合衆国コロラド州コロラド・スプ リングス・リッジクレスト・ドライブ 4403 (72)発明者 マイケル・ティー・ジュラン アメリカ合衆国コロラド州ライランズ・ラ ンチ・イースト・ブラック・ホーク・コー ト 6754 (72)発明者 エリック・ジェイ・クザラ アメリカ合衆国コロラド州コロラド・スプ リングス・トップセイル・ドライブ 3827 (72)発明者 トーマス・エフ・クレーマ アメリカ合衆国コロラド州コロラド・スプ リングス・アベンス・サークル 8510 (72)発明者 ロイ・エル・ジョンソン アメリカ合衆国コロラド州フォート・コリ ンズ・キングスベリ・ドライブ 4231

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】以下の(A)ないし(C)を設け、表示画
    面上の図形オブジェクトを直接操作することによって図
    形オブジェクトを作成しアニメートするシステム: (A)ユーザの制御の下に、前記表示画面上の前記図形
    オブジェクトを作成して操作する図形エディタ; (B)前記図形オブジェクトの操作を前記図形オブジェ
    クトを夫々の挙動状態として表す情報を格納し、前記図
    形オブジェクトの対応する挙動状態を指定することによ
    り前記操作を再生する手段; (C)前記表示画面上の前記アニメートされた図形オブ
    ジェクトを前記図形オブジェクトの夫々の表示状態とし
    て表示する手段。
  2. 【請求項2】(A)ないし(E)のステップを設け、表
    示画面上の図形オブジェクトを直接操作することによっ
    て図形オブジェクトを作成しアニメートする方法: (A)所望の図形オブジェクトを図形エディタを用いて
    描く; (B)前記所望の図形オブジェクトを操作して各種の表
    示状態にする; (C)前記所望の図形オブジェクトの、前記所望の図形
    オブジェクトの前記各種の表示状態について、所望の出
    力挙動を定義する; (D)夫々の表示状態について、前記定義された出力挙
    動を対応する図形オブジェクトと共に格納する; (E)前記表示状態を表示されるように指定し、前記指
    定された表示状態をアニメーションとして指定された順
    序で表示する。
  3. 【請求項3】以下の(A)ないし(E)を設け、図形オ
    ブジェクトへのユーザ入力を前記図形オブジェクトの夫
    々の挙動状態として定義する方法: (A)ユーザ入力を受け取ることのできる図形オブジェ
    クトの各々に対して、表示画面上に少なくとも1つの領
    域を定義する; (B)前記図形オブジェクトの各々に対する前記少なく
    とも1つの領域についてどのような入力イベントタイプ
    が、前記図形オブジェクトについての出力挙動を制御す
    る前記図形オブジェクトの出力挙動状態をシミュレート
    できるかを記述する; (C)前記図形オブジェクトの前記出力挙動状態をシミ
    ュレートできる前記図形オブジェクトについての所望の
    入力挙動状態を定義する; (D)ゾレゾレの出力挙動状態について、前記定義され
    た入力挙動状態を対応する図形オブジェクトと共に格納
    する; (E)前記図形オブジェクトの少なくとも1つの少なく
    とも1つの出力挙動状態に変化を起こすように、前記図
    形オブジェクトを前記定義された入力挙動状態とともに
    シミュレートし、これによって前記図形オブジェクトの
    前記少なくとも1つの表示状態を変化させる。
JP5071098A 1992-03-06 1993-03-05 図形オブジェクト操作システム及び方法 Pending JPH0644339A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US847,569 1977-11-01
US84756992A 1992-03-06 1992-03-06

Publications (1)

Publication Number Publication Date
JPH0644339A true JPH0644339A (ja) 1994-02-18

Family

ID=25300946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5071098A Pending JPH0644339A (ja) 1992-03-06 1993-03-05 図形オブジェクト操作システム及び方法

Country Status (2)

Country Link
US (1) US5883639A (ja)
JP (1) JPH0644339A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099798A (ja) * 1999-06-10 2006-04-13 Dassault Systemes コンピュータシステムのオペレーション方法
JP2011023022A (ja) * 2000-07-06 2011-02-03 Mitsubishi Electric Corp 車載情報システム開発ツール
JP4864972B2 (ja) * 2005-09-09 2012-02-01 マイクロソフト コーポレーション 3dグラフィックスのための2d編集メタファ(metaphor)

Families Citing this family (259)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6037936A (en) * 1993-09-10 2000-03-14 Criticom Corp. Computer vision system with a graphic user interface and remote camera control
US5982390A (en) * 1996-03-25 1999-11-09 Stan Stoneking Controlling personality manifestations by objects in a computer-assisted animation environment
US6340978B1 (en) * 1997-01-31 2002-01-22 Making Everlasting Memories, Ltd. Method and apparatus for recording and presenting life stories
US6259445B1 (en) 1997-07-07 2001-07-10 Informix, Inc. Computer-based documentation and instruction
US6377263B1 (en) * 1997-07-07 2002-04-23 Aesthetic Solutions Intelligent software components for virtual worlds
WO1999004349A1 (en) * 1997-07-15 1999-01-28 Koninklijke Philips Electronics N.V. A method and system for designing a graphical user interface for an electronic consumer product
US6222537B1 (en) * 1997-07-29 2001-04-24 International Business Machines Corporation User interface controls for a computer system
JP4434355B2 (ja) * 1998-03-27 2010-03-17 キヤノン株式会社 アニメ―ションフォント作成装置
US7865832B2 (en) * 1999-07-26 2011-01-04 Sony Corporation Extended elements and mechanisms for displaying a rich graphical user interface in panel subunit
US6216261B1 (en) * 1998-08-27 2001-04-10 Ati Technologies Inc. Method and apparatus for generating generic programming instructions using visual programming
US6366293B1 (en) * 1998-09-29 2002-04-02 Rockwell Software Inc. Method and apparatus for manipulating and displaying graphical objects in a computer display device
US6362839B1 (en) 1998-09-29 2002-03-26 Rockwell Software Inc. Method and apparatus for displaying mechanical emulation with graphical objects in an object oriented computing environment
US6559860B1 (en) * 1998-09-29 2003-05-06 Rockwell Software Inc. Method and apparatus for joining and manipulating graphical objects in a graphical user interface
US6384846B1 (en) * 1998-12-11 2002-05-07 Hitachi America Ltd. Methods and apparatus for rendering multiple images using a limited rendering resource
US6330007B1 (en) * 1998-12-18 2001-12-11 Ncr Corporation Graphical user interface (GUI) prototyping and specification tool
US6487565B1 (en) * 1998-12-29 2002-11-26 Microsoft Corporation Updating animated images represented by scene graphs
DE19910536A1 (de) * 1999-03-09 2000-09-14 Siemens Ag Automatisierungssystem mit aus Modulkomponenten bestehenden Automatisierungsobjekten
US6429882B1 (en) * 1999-03-15 2002-08-06 Sun Microsystems, Inc. User interface component
US6748580B1 (en) * 1999-04-22 2004-06-08 International Business Machines Corporation Method and apparatus for creating software tools using a JTML interface
US6407753B1 (en) * 1999-05-04 2002-06-18 International Business Machines Corporation System and method for integrating entities via user-interactive rule-based matching and difference reconciliation
US6720979B1 (en) 1999-07-15 2004-04-13 International Business Machines Corporation Dynamic manipulation of animated graphics in a web browser
US6973649B1 (en) * 1999-09-30 2005-12-06 International Business Machines Corporation Utilizing programming object visual representation for state reflection
US7810069B2 (en) * 1999-10-05 2010-10-05 Borland Software Corporation Methods and systems for relating data structures and object-oriented elements for distributed computing
US6526526B1 (en) 1999-11-09 2003-02-25 International Business Machines Corporation Method, system and program for performing remote usability testing
US6489970B1 (en) * 1999-11-16 2002-12-03 International Business Machines, Corporation Means for specifying direct manipulation relationships on hierarchically structured visuals
US6654033B1 (en) 1999-12-07 2003-11-25 International Business Machines Corporation Finite state automation for emulation of activity sequenced engine
US6489971B1 (en) 1999-12-07 2002-12-03 International Business Machines Corporation Graphical programming environment for deterministic finite state automata
US6760842B1 (en) * 1999-12-07 2004-07-06 International Business Machines Corporation Finite state automata security system
US7490292B2 (en) * 1999-12-17 2009-02-10 International Business Machines Corporation Web-based instruction
US7039571B1 (en) * 1999-12-21 2006-05-02 Lockheed Martin Corporation Method for programming operator system interface with a simulator
US6425121B1 (en) 2000-01-14 2002-07-23 Softwire Technology, Llp Method and apparatus for resolving divergent paths in graphical programming environments
US6425120B1 (en) 2000-01-14 2002-07-23 Softwire Technology Llc Repeating program object for use with a graphical program-development system
US6701513B1 (en) 2000-01-14 2004-03-02 Measurement Computing Corporation Program-development environment for use in generating application programs
US6684385B1 (en) 2000-01-14 2004-01-27 Softwire Technology, Llc Program object for use in generating application programs
US6874148B1 (en) * 2000-06-14 2005-03-29 National Instruments Corporation System and method for exporting a graphical program to a shared library
US6957418B2 (en) 2001-01-23 2005-10-18 Altia, Inc. System and method of designing, testing, and employing graphical computer code
TW509873B (en) * 2001-07-18 2002-11-11 Flashants Inc Generation method for dynamic user interface with arbitrary shape
US7185313B1 (en) * 2002-05-21 2007-02-27 Microsoft Corporation Method and system for designing and implementing shapes in a software module
JP3755500B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
JP3760904B2 (ja) * 2002-09-06 2006-03-29 ソニー株式会社 Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム
US20040095388A1 (en) * 2002-11-15 2004-05-20 Rocchetti Robert J. Method and apparatus for creating user interfaces for computing devices
US7213235B2 (en) * 2003-02-21 2007-05-01 Sap Ag Method for using a business model user interface
US20040230600A1 (en) * 2003-05-01 2004-11-18 Lockheed Martin Corporation Method and apparatus for rapidly prototyping status display
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US20080086716A1 (en) * 2003-09-04 2008-04-10 Lockheed Martin Corporation Method and apparatus for information display with intermediate datasource access
JP2005196291A (ja) * 2003-12-26 2005-07-21 Fujitsu Ltd ユーザインタフェースアプリケーション開発プログラム、および開発装置
US20080109785A1 (en) * 2004-01-16 2008-05-08 Bailey Bendrix L Graphical Program Having Graphical and/or Textual Specification of Event Handler Procedures for Program Objects
US20050231512A1 (en) * 2004-04-16 2005-10-20 Niles Gregory E Animation of an object using behaviors
US8448083B1 (en) 2004-04-16 2013-05-21 Apple Inc. Gesture control of multimedia editing applications
US7805678B1 (en) 2004-04-16 2010-09-28 Apple Inc. Editing within single timeline
US7932909B2 (en) * 2004-04-16 2011-04-26 Apple Inc. User interface for controlling three-dimensional animation of an object
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US20050253849A1 (en) * 2004-05-13 2005-11-17 Pixar Custom spline interpolation
CN1981301B (zh) * 2004-05-17 2012-01-18 因文西斯系统公司 用于开发动画可视化界面的系统和方法
US7490295B2 (en) * 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7546543B2 (en) * 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US8453065B2 (en) * 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US7761800B2 (en) * 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8239749B2 (en) * 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US8302020B2 (en) * 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US8566732B2 (en) * 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US7411590B1 (en) 2004-08-09 2008-08-12 Apple Inc. Multimedia file format
US7788634B2 (en) * 2004-09-03 2010-08-31 Ensequence, Inc. Methods and systems for efficient behavior generation in software application development tool
US7653721B1 (en) * 2004-10-29 2010-01-26 Sun Microsystems, Inc. Mechanism for capturing high level events on user interface components
US7564458B2 (en) * 2004-12-15 2009-07-21 Microsoft Corporation System and method for interactively linking data to shapes in a diagram
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US20060218088A1 (en) * 2005-03-24 2006-09-28 Flora John R Intelligent auto-fill transaction data
US20060218086A1 (en) * 2005-03-24 2006-09-28 Heather Campbell Payee aliasing
US20060224558A1 (en) * 2005-03-24 2006-10-05 Flora John R Associating multiple categories with single payee or payor in financial software application
US20060218087A1 (en) * 2005-03-24 2006-09-28 Zimmerman Jeffrey P Automated aggregation and comparison of individual spending relative to population of similar users
US20060223045A1 (en) * 2005-03-31 2006-10-05 Lowe Jason D System and method for capturing visual information of a device
US7958454B2 (en) * 2005-04-19 2011-06-07 The Mathworks, Inc. Graphical state machine based programming for a graphical user interface
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US7474310B2 (en) * 2005-08-12 2009-01-06 Microsoft Corporation Object association in a computer generated drawing environment
US7954064B2 (en) * 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US8543824B2 (en) * 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US9104294B2 (en) * 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7743336B2 (en) * 2005-10-27 2010-06-22 Apple Inc. Widget security
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US20070101279A1 (en) * 2005-10-27 2007-05-03 Chaudhri Imran A Selection of user interface elements for unified display in a display environment
US20070136367A1 (en) * 2005-11-02 2007-06-14 Sourcecode Technology Holding, Inc. Methods and apparatus for dynamically modifying a business object definition
US20070143711A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for displaying a setup sequence
US8239226B2 (en) * 2005-11-02 2012-08-07 Sourcecode Technologies Holdings, Inc. Methods and apparatus for combining properties and methods from a plurality of different data sources
US8010940B2 (en) * 2005-11-02 2011-08-30 Sourcecode Technologies Holdings, Inc. Methods and apparatus for designing a workflow process using inheritance
US20070130138A1 (en) * 2005-11-02 2007-06-07 Sourcecode Technology Holding, Inc. Methods and apparatus for storing a collaboratively designed workflow process
US7996758B2 (en) * 2005-11-02 2011-08-09 Sourcecode Technologies Holding, Inc. Methods and apparatus for storing data associated with an electronic form
US20070143305A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for storing functions associated with an electronic form
US8224853B2 (en) 2005-11-02 2012-07-17 Sourcecode Technologies Holdings, Inc. Methods and apparatus for updating a plurality of data fields in an electronic form
EP1955201A4 (en) * 2005-11-02 2011-04-20 Sourcecode Technology Holding Inc METHODS AND APPARATUS FOR PROCESSING BUSINESS OBJECTS, ELECTRONIC FORMS, AND WORKSTREAM
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US20070162850A1 (en) * 2006-01-06 2007-07-12 Darin Adler Sports-related widgets
US8177121B2 (en) * 2006-01-13 2012-05-15 Intuit Inc. Automated aggregation and comparison of business spending relative to similar businesses
US8185453B1 (en) 2006-03-21 2012-05-22 Intuit Inc. Contextual access to workflow functionality
US7656404B1 (en) 2006-03-21 2010-02-02 Intuit Inc. Line trimming and arrow head placement algorithm
US20070240069A1 (en) * 2006-04-11 2007-10-11 Invensys Systems, Inc. Appearance objects for configuring and graphically displaying programmed/configured process control
US8155682B2 (en) * 2006-05-05 2012-04-10 Research In Motion Limited Handheld electronic device including automatic mobile phone number management, and associated method
US8902233B1 (en) 2006-06-09 2014-12-02 Pixar Driving systems extension
US7965294B1 (en) 2006-06-09 2011-06-21 Pixar Key frame animation with path-based motion
US8869027B2 (en) * 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
US20080126376A1 (en) * 2006-09-22 2008-05-29 Avraham Leff Enabling multi-view applications based on a relational state machine paradigm
US20080189637A1 (en) * 2006-10-16 2008-08-07 Invensys Systems, Inc. Data quality and status behavior for human machine interface graphics in industrial control and automation systems
US8554868B2 (en) 2007-01-05 2013-10-08 Yahoo! Inc. Simultaneous sharing communication interface
US20080168367A1 (en) * 2007-01-07 2008-07-10 Chaudhri Imran A Dashboards, Widgets and Devices
US20080184139A1 (en) * 2007-01-29 2008-07-31 Brian Robert Stewart System and method for generating graphical user interfaces and graphical user interface models
US20080270919A1 (en) * 2007-04-27 2008-10-30 Kulp Richard L Context Based Software Layer
AU2008248373A1 (en) * 2007-05-08 2008-11-13 Sourcecode Technology Holding, Inc. Methods and apparatus for exposing workflow process definitions as business objects
US20090005071A1 (en) * 2007-06-28 2009-01-01 Apple Inc. Event Triggered Content Presentation
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US20090021486A1 (en) * 2007-07-19 2009-01-22 Apple Inc. Dashboard Surfaces
US8667415B2 (en) * 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8156467B2 (en) * 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US20140250423A1 (en) * 2009-01-08 2014-09-04 Adobe Systems Incorporated Simulating Runtime Interactivity And Other Changes Within A Computer Content Creation Environment
US20100207951A1 (en) * 2009-01-20 2010-08-19 Pvt Solar, Inc. Method and device for monitoring operation of a solar thermal system
US8448076B2 (en) * 2009-04-27 2013-05-21 Fisher-Rosemount Systems, Inc. Configuring animations and events for operator interface displays in a process control system
FI123008B (fi) * 2010-06-22 2012-09-28 Janne Pitkaenen Laitteisto ja menetelmä käytettävyystestausta varten
EP2596446A4 (en) * 2010-07-22 2017-12-20 White Magic Robotics Inc. A non-programmer method for creating simulation-enabled 3d robotic models for immediate robotic simulation, without programming intervention
US8843892B2 (en) * 2010-12-03 2014-09-23 Adobe Systems Incorporated Visual representations of code in application development environments
JP5677174B2 (ja) * 2011-04-14 2015-02-25 三菱電機株式会社 監視画面作成装置及び監視画面表示装置
US8701002B2 (en) * 2011-04-19 2014-04-15 Autodesk, Inc. Hierarchical display and navigation of document revision histories
US8874525B2 (en) 2011-04-19 2014-10-28 Autodesk, Inc. Hierarchical display and navigation of document revision histories
JP2012252642A (ja) * 2011-06-06 2012-12-20 Sony Corp 情報処理装置、情報処理方法、及びプログラム
TW201301173A (zh) * 2011-06-30 2013-01-01 Ibm 終端裝置與在其上展示軟體產品的方法
EP2732383B1 (en) 2011-07-12 2018-04-04 Snap Inc. Methods and systems of providing visual content editing functions
JP5824978B2 (ja) * 2011-08-31 2015-12-02 ブラザー工業株式会社 画像形成装置、画像形成システム、画像形成プログラム
US9495134B2 (en) * 2011-09-16 2016-11-15 Adobe Systems Incorporated Methods and apparatus for code segment handling
JP5972578B2 (ja) * 2012-01-16 2016-08-17 シャープ株式会社 画像処理装置、画像形成装置、プログラム、記録媒体
US8972357B2 (en) 2012-02-24 2015-03-03 Placed, Inc. System and method for data collection to validate location data
US11734712B2 (en) 2012-02-24 2023-08-22 Foursquare Labs, Inc. Attributing in-store visits to media consumption based on data collected from user devices
US9189210B2 (en) * 2012-02-29 2015-11-17 Avaya Inc. Using source code generated from a data model file to generate a graphical user interface from objects in a database
US10155168B2 (en) 2012-05-08 2018-12-18 Snap Inc. System and method for adaptable avatars
US10331765B2 (en) 2013-05-24 2019-06-25 Sourcecode Technology Holdings, Inc. Methods and apparatus for translating forms to native mobile applications
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9628950B1 (en) 2014-01-12 2017-04-18 Investment Asset Holdings Llc Location-based messaging
US20150206447A1 (en) * 2014-01-23 2015-07-23 Zyante, Inc. System and method for authoring content for web viewable textbook data object
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
IL239237B (en) 2014-06-05 2018-12-31 Rotem Efrat Network document extension
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US10423983B2 (en) 2014-09-16 2019-09-24 Snap Inc. Determining targeting information based on a predictive targeting model
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US10284508B1 (en) 2014-10-02 2019-05-07 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
US9015285B1 (en) 2014-11-12 2015-04-21 Snapchat, Inc. User interface for accessing media at a geographic location
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9754355B2 (en) 2015-01-09 2017-09-05 Snap Inc. Object recognition based photo filters
US11388226B1 (en) 2015-01-13 2022-07-12 Snap Inc. Guided personal identity based actions
US10133705B1 (en) 2015-01-19 2018-11-20 Snap Inc. Multichannel system
US9521515B2 (en) 2015-01-26 2016-12-13 Mobli Technologies 2010 Ltd. Content request by location
US10223397B1 (en) 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
KR102217723B1 (ko) 2015-03-18 2021-02-19 스냅 인코포레이티드 지오-펜스 인가 프로비저닝
US9692967B1 (en) 2015-03-23 2017-06-27 Snap Inc. Systems and methods for reducing boot time and power consumption in camera systems
US9881094B2 (en) 2015-05-05 2018-01-30 Snap Inc. Systems and methods for automated local story generation and curation
US10135949B1 (en) 2015-05-05 2018-11-20 Snap Inc. Systems and methods for story and sub-story navigation
US10993069B2 (en) 2015-07-16 2021-04-27 Snap Inc. Dynamically adaptive media content delivery
US10817898B2 (en) 2015-08-13 2020-10-27 Placed, Llc Determining exposures to content presented by physical objects
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US10474321B2 (en) 2015-11-30 2019-11-12 Snap Inc. Network resource location linking and visual content sharing
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US11023514B2 (en) 2016-02-26 2021-06-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10285001B2 (en) 2016-02-26 2019-05-07 Snap Inc. Generation, curation, and presentation of media collections
US10679389B2 (en) 2016-02-26 2020-06-09 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10339365B2 (en) 2016-03-31 2019-07-02 Snap Inc. Automated avatar generation
US11201981B1 (en) 2016-06-20 2021-12-14 Pipbin, Inc. System for notification of user accessibility of curated location-dependent content in an augmented estate
US11044393B1 (en) 2016-06-20 2021-06-22 Pipbin, Inc. System for curation and display of location-dependent augmented reality content in an augmented estate system
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
US10334134B1 (en) 2016-06-20 2019-06-25 Maximillian John Suiter Augmented real estate with location and chattel tagging system and apparatus for virtual diary, scrapbooking, game play, messaging, canvasing, advertising and social interaction
US10805696B1 (en) 2016-06-20 2020-10-13 Pipbin, Inc. System for recording and targeting tagged content of user interest
US10638256B1 (en) 2016-06-20 2020-04-28 Pipbin, Inc. System for distribution and display of mobile targeted augmented reality content
US10430838B1 (en) 2016-06-28 2019-10-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections with automated advertising
US9681265B1 (en) 2016-06-28 2017-06-13 Snap Inc. System to track engagement of media items
US10733255B1 (en) 2016-06-30 2020-08-04 Snap Inc. Systems and methods for content navigation with automated curation
US10348662B2 (en) 2016-07-19 2019-07-09 Snap Inc. Generating customized electronic messaging graphics
CN109804411B (zh) 2016-08-30 2023-02-17 斯纳普公司 用于同时定位和映射的系统和方法
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
EP3535756B1 (en) 2016-11-07 2021-07-28 Snap Inc. Selective identification and order of image modifiers
US10203855B2 (en) 2016-12-09 2019-02-12 Snap Inc. Customized user-controlled media overlays
US11616745B2 (en) 2017-01-09 2023-03-28 Snap Inc. Contextual generation and selection of customized media content
US10454857B1 (en) 2017-01-23 2019-10-22 Snap Inc. Customized digital avatar accessories
US10915911B2 (en) 2017-02-03 2021-02-09 Snap Inc. System to determine a price-schedule to distribute media content
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US11250075B1 (en) 2017-02-17 2022-02-15 Snap Inc. Searching social media content
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10565795B2 (en) 2017-03-06 2020-02-18 Snap Inc. Virtual vision system
US10523625B1 (en) 2017-03-09 2019-12-31 Snap Inc. Restricted group content collection
US10582277B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10581782B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US11170393B1 (en) 2017-04-11 2021-11-09 Snap Inc. System to calculate an engagement score of location based media content
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
US10212541B1 (en) 2017-04-27 2019-02-19 Snap Inc. Selective location-based identity communication
CN110945555A (zh) 2017-04-27 2020-03-31 斯纳普公司 社交媒体平台上用户位置的区域级别表示
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US10467147B1 (en) 2017-04-28 2019-11-05 Snap Inc. Precaching unlockable data elements
US10803120B1 (en) 2017-05-31 2020-10-13 Snap Inc. Geolocation based playlists
US11475254B1 (en) 2017-09-08 2022-10-18 Snap Inc. Multimodal entity identification
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
US10499191B1 (en) 2017-10-09 2019-12-03 Snap Inc. Context sensitive presentation of content
US10573043B2 (en) 2017-10-30 2020-02-25 Snap Inc. Mobile-based cartographic control of display content
US11265273B1 (en) 2017-12-01 2022-03-01 Snap, Inc. Dynamic media overlay with smart widget
US10782935B2 (en) * 2017-12-04 2020-09-22 Booz Allen Hamilton Inc. Method and system to provide a generalized framework for dynamic creation of module analytic applications
US11017173B1 (en) 2017-12-22 2021-05-25 Snap Inc. Named entity recognition visual context and caption data
US10678818B2 (en) 2018-01-03 2020-06-09 Snap Inc. Tag distribution visualization system
US11507614B1 (en) 2018-02-13 2022-11-22 Snap Inc. Icon based tagging
US10979752B1 (en) 2018-02-28 2021-04-13 Snap Inc. Generating media content items based on location information
US10885136B1 (en) 2018-02-28 2021-01-05 Snap Inc. Audience filtering system
US10327096B1 (en) 2018-03-06 2019-06-18 Snap Inc. Geo-fence selection system
KR102574151B1 (ko) 2018-03-14 2023-09-06 스냅 인코포레이티드 위치 정보에 기초한 수집가능한 항목들의 생성
US11163941B1 (en) 2018-03-30 2021-11-02 Snap Inc. Annotating a collection of media content items
US10219111B1 (en) 2018-04-18 2019-02-26 Snap Inc. Visitation tracking system
US10896197B1 (en) 2018-05-22 2021-01-19 Snap Inc. Event detection system
US10679393B2 (en) 2018-07-24 2020-06-09 Snap Inc. Conditional modification of augmented reality object
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US10698583B2 (en) 2018-09-28 2020-06-30 Snap Inc. Collaborative achievement interface
US10778623B1 (en) 2018-10-31 2020-09-15 Snap Inc. Messaging and gaming applications communication platform
US11199957B1 (en) 2018-11-30 2021-12-14 Snap Inc. Generating customized avatars based on location information
US10939236B1 (en) 2018-11-30 2021-03-02 Snap Inc. Position service to determine relative position to map features
US11032670B1 (en) 2019-01-14 2021-06-08 Snap Inc. Destination sharing in location sharing system
US10939246B1 (en) 2019-01-16 2021-03-02 Snap Inc. Location-based context information sharing in a messaging system
US11294936B1 (en) 2019-01-30 2022-04-05 Snap Inc. Adaptive spatial density based clustering
US11972529B2 (en) 2019-02-01 2024-04-30 Snap Inc. Augmented reality system
US10936066B1 (en) 2019-02-13 2021-03-02 Snap Inc. Sleep detection in a location sharing system
US10838599B2 (en) 2019-02-25 2020-11-17 Snap Inc. Custom media overlay system
US10964082B2 (en) 2019-02-26 2021-03-30 Snap Inc. Avatar based on weather
US10852918B1 (en) 2019-03-08 2020-12-01 Snap Inc. Contextual information in chat
US11868414B1 (en) 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
US11852554B1 (en) 2019-03-21 2023-12-26 Snap Inc. Barometer calibration in a location sharing system
US11249614B2 (en) 2019-03-28 2022-02-15 Snap Inc. Generating personalized map interface with enhanced icons
US10810782B1 (en) 2019-04-01 2020-10-20 Snap Inc. Semantic texture mapping system
US10582453B1 (en) 2019-05-30 2020-03-03 Snap Inc. Wearable device location systems architecture
US10560898B1 (en) 2019-05-30 2020-02-11 Snap Inc. Wearable device location systems
US10893385B1 (en) 2019-06-07 2021-01-12 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
US11821742B2 (en) 2019-09-26 2023-11-21 Snap Inc. Travel based notifications
US11218838B2 (en) 2019-10-31 2022-01-04 Snap Inc. Focused map-based context information surfacing
US11128715B1 (en) 2019-12-30 2021-09-21 Snap Inc. Physical friend proximity in chat
US11429618B2 (en) 2019-12-30 2022-08-30 Snap Inc. Surfacing augmented reality objects
US11169658B2 (en) 2019-12-31 2021-11-09 Snap Inc. Combined map icon with action indicator
US11343323B2 (en) 2019-12-31 2022-05-24 Snap Inc. Augmented reality objects registry
US11228551B1 (en) 2020-02-12 2022-01-18 Snap Inc. Multiple gateway message exchange
US11516167B2 (en) 2020-03-05 2022-11-29 Snap Inc. Storing data based on device location
US11619501B2 (en) 2020-03-11 2023-04-04 Snap Inc. Avatar based on trip
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US10956743B1 (en) 2020-03-27 2021-03-23 Snap Inc. Shared augmented reality system
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11308327B2 (en) 2020-06-29 2022-04-19 Snap Inc. Providing travel-based augmented reality content with a captured image
US11349797B2 (en) 2020-08-31 2022-05-31 Snap Inc. Co-location connection service
US11606756B2 (en) 2021-03-29 2023-03-14 Snap Inc. Scheduling requests for location data
US11645324B2 (en) 2021-03-31 2023-05-09 Snap Inc. Location-based timeline media content system
US11829834B2 (en) 2021-10-29 2023-11-28 Snap Inc. Extended QR code
TWI819433B (zh) * 2021-12-14 2023-10-21 荷蘭商荷蘭移動驅動器公司 系統介面控制方法、車輛終端及電腦可讀存儲介質

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US4914568A (en) * 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
GB8621061D0 (en) * 1986-09-01 1986-10-08 Hewlett Packard Ltd User interface simulation
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5261820A (en) * 1990-12-21 1993-11-16 Dynamix, Inc. Computer simulation playback method and simulation
US5261041A (en) * 1990-12-28 1993-11-09 Apple Computer, Inc. Computer controlled animation system based on definitional animated objects and methods of manipulating same
US5485600A (en) * 1992-11-09 1996-01-16 Virtual Prototypes, Inc. Computer modelling system and method for specifying the behavior of graphical operator interfaces

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099798A (ja) * 1999-06-10 2006-04-13 Dassault Systemes コンピュータシステムのオペレーション方法
JP2011023022A (ja) * 2000-07-06 2011-02-03 Mitsubishi Electric Corp 車載情報システム開発ツール
JP4864972B2 (ja) * 2005-09-09 2012-02-01 マイクロソフト コーポレーション 3dグラフィックスのための2d編集メタファ(metaphor)
US8464170B2 (en) 2005-09-09 2013-06-11 Microsoft Corporation 2D editing metaphor for 3D graphics

Also Published As

Publication number Publication date
US5883639A (en) 1999-03-16

Similar Documents

Publication Publication Date Title
JPH0644339A (ja) 図形オブジェクト操作システム及び方法
US4841291A (en) Interactive animation of graphics objects
US6278455B1 (en) Pictorial interface for accessing information in an electronic file system
JP3592750B2 (ja) 機械操作方法
EP0241071B1 (en) A method of generating and processing models of two-dimensional or three-dimensional objects in a computer and of reproducing said models on a display
US5459832A (en) Method and apparatus for editing groups of graphic images
JP3143278B2 (ja) 組立図作成方法及び装置
CA2144871A1 (en) Display composting system
JPH05307476A (ja) 木構造表示編集装置
JP3186241B2 (ja) 図形編集装置
US11625900B2 (en) Broker for instancing
US5995984A (en) Apparatus and method for zoom-in entry of an element in a table
US20030193528A1 (en) Hierarchical data structure which enables interactive visualization of a geographical space
JPH0573630A (ja) 分散設計支援方法およびシステム
JPH11296571A (ja) 干渉チェック装置およびそのプログラム記録媒体
JP2713147B2 (ja) マルチメディアプレゼンテーション編集方法
JPH1166351A (ja) 3次元仮想空間内部におけるオブジェクト動作制御方法および装置とオブジェクト動作制御プログラムを記録した記録媒体
Alemparte et al. Interacting with discrete simulation using on line graphic animation
Chang et al. The Research Queuing Package Modeling Environment (RESQME)
Kiss Web based VRML modeling
de Vries et al. Development of an intuitive 3D sketching tool
Zhou et al. An Object‐Oriented View of the User Interface
JP3640982B2 (ja) 機械操作方法
JP2668606B2 (ja) ユーザインタフェース作成システム
Conti Invaider: A framework for visual programming languages