(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-18
(45)【発行日】2024-04-26
(54)【発明の名称】回転を少なくとも含む動きを生成するための方法
(51)【国際特許分類】
G06T 13/20 20110101AFI20240419BHJP
G06F 3/0482 20130101ALI20240419BHJP
G06F 3/04847 20220101ALI20240419BHJP
G06F 30/10 20200101ALI20240419BHJP
【FI】
G06T13/20
G06F3/0482
G06F3/04847
G06F30/10
G06F30/10 100
G06F30/10 200
(21)【出願番号】P 2019166470
(22)【出願日】2019-09-12
【審査請求日】2022-09-12
(32)【優先日】2018-09-12
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】クリストフ デルフィーノ
(72)【発明者】
【氏名】ギヨーム ダイデ
【審査官】中田 剛史
(56)【参考文献】
【文献】特開平08-106486(JP,A)
【文献】米国特許第08452435(US,B1)
【文献】米国特許出願公開第2006/0085088(US,A1)
【文献】特開2002-056406(JP,A)
【文献】特開2017-126325(JP,A)
【文献】特開2003-263648(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/20
G06F 30/10
G06F 3/04847
G06F 3/0482
(57)【特許請求の範囲】
【請求項1】
3Dシーンにおいて3Dアセンブリ(ASM)の3Dパーツ(PAR)の動きを生成するためのコンピュータ実装方法であって、前記3Dパーツの前記動きは、多くとも予め決められた角度分の回転
を少なくと
も含み、前記方法は、
a)前記3Dシーンにおいて3Dパーツの3Dアセンブリ(ASM)を表示するステップと、
b)前記3Dアセンブリ(ASM)の3Dパーツ(PAR)を選択するステップと、
c)前記3Dシーンにおいて、3つの軸線(AX1、AX2、AX3)を含む3Dマニピュレータ(MAN)を表示するステップであって、前記3Dマニピュレータ(MAN)がアンカーポイント(ANP)において前記3Dパーツ(PAR)にアンカーされる、表示するステップと、
d)前記3Dマニピュレータ(MAN)を、1つの軸線(AX1、AX2、AX3)に沿って、前記1つの軸線(AX1、AX2、AX3)上の前記アンカーポイント(ANP)からの現在の距離(CD)分だけドラッグするステップであって、前記予め決められた角度が前記アンカーポイント(ANP)からの最大距離(MD)に対応する、ドラッグするステップと、
e)前記3Dマニピュレータ(MAN)をドラッグするステップの間に、前記最大距離(MD)に対する前記現在の距離(CD)の比を計算するステップと、
f)前記比に比例して前記3Dパーツの前記動きを生成するステップと
を含むコンピュータ実装方法。
【請求項2】
前記回転は、前記軸線に沿った並進および前記軸線を回る回転と組み合わされて、予め決められたスレッドピッチに従って、ねじ締めすること、またはねじ外しすることを表現する請求項1に記載のコンピュータ実装方法。
【請求項3】
ステップb)は、前記3Dパーツ(PAR)を封入する境界ボックス(BB)を特定するステップを含み、
ステップc)は、前記境界ボックス(BB)の中心に前記アンカーポイント(ANP)を位置付けるステップを含む
請求項1または2に記載のコンピュータ実装方法。
【請求項4】
ステップb)は、前記境界ボックス(BB)の3つの割線エッジ(ED1、ED2、ED3)を特定するステップを含み、
ステップc)は、前記3Dマニピュレータ(MAN)の前記軸線(AX1、AX2、AX3)を、前記境界ボックス(BB)の前記3つの割線エッジ(ED1、ED2、ED3)と位置合わせするステップを含む
請求項3に記載のコンピュータ実装方法。
【請求項5】
前記動きは、回転なしの、前記軸線に沿った予め決められた長さ分の並進をさらに含み、前記方法は、
ステップd)において、前記最大距離(MD)を2つの部分的な最大距離(MD1、MD2)に分割するステップであって、前記予め決められた角度が第1の部分的な最大距離(MD1)に対応し、前記予め決められた長さが第2の部分的な最大距離(MD2)に対応する、分割するステップと、
ステップe)において、前記第1の部分的な最大距離(MD1)に対する前記現在の距離(CD)の第1の比を計算するステップ、前記第1の部分的な最大距離(MD1)分だけ前記アンカーポイント(ANP)から離れて前記軸線上に置かれる中間ポイントを決定するステップ、前記現在の距離(CD)の値をリセットするステップ、前記中間ポイントから始めてそれを再計算するステップ、および前記第2の部分的な最大距離(MD2)に対する再計算された現在の距離(CD)の第2の比を計算するステップと、
ステップf)において、前記第1の比に比例して前記3Dパーツの前記回転を生成し、前記第2の比に比例して前記3Dパーツの前記並進を生成するステップと
を含む請求項1乃至4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記動きの少なくともパラメータを設定するステップであって、前記ステップは、
前記3Dマニピュレータ(MAN)上で第1のユーザ対話を検出するサブステップと、
前記第1のユーザ対話の検出に応答して、前記動きの前記パラメータの少なくとも1つの値を表示するサブステップと、
ユーザによる前記値の更新を検出し、それによって前記動きの前記パラメータを設定するサブステップと
を含む、設定するステップ
を含む請求項1乃至5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
複数の動きの中の1つの動きを選択するステップであって、
前記3Dマニピュレータ(MAN)上で第2のユーザ対話を検出するサブステップと、
前記第2のユーザ対話の検出に応答して、前記複数の動きのそれぞれの動きを表現するアイコンのセット(MI、SI)を表示するサブステップと、
前記アイコンのセット(MI、SI)の中の1つの上で第3のユーザ対話を検出し、それによって対応する動きを選択するサブステップと
を含む選択するステップ
を含む請求項1乃至6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
前記動きのビデオアニメーションを作成するステップを含む請求項1乃至7のいずれか一項に記載のコンピュータ実装方法。
【請求項9】
コンピュータシステムに、請求項1乃至8のいずれか一項に記載のコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を含む、不揮発性コンピュータ可読データストレージ媒体上に記憶されたコンピュータプログラム。
【請求項10】
コンピュータシステムに、請求項1乃至8のいずれか一項に記載のコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を収容する不揮発性コンピュータ可読データストレージ媒体。
【請求項11】
メモリ(M1~M4)に結合されたプロセッサ(P)と、グラフィカルユーザインターフェースとを備えるコンピュータ支援設計システムであって、前記メモリ(M1~M4)は、前記コンピュータ支援設計システムに、請求項1乃至8のいずれか一項に記載のコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を記憶するコンピュータ支援設計システム。
【請求項12】
メモリ(M1~M4)に結合されたプロセッサ(P)と、グラフィカルユーザインターフェースとを備える3次元イラストレーションオーサリングシステムであって、前記メモリ(M1~M4)は、前記3次元イラストレーションオーサリングシステムに、請求項1乃至8のいずれか一項に記載のコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を記憶する3次元イラストレーションオーサリングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータプログラムの分野に関し、より詳細には、3Dシーンにおいて3Dアセンブリの3Dパーツの動きを生成するための、方法、コンピュータプログラム製品、不揮発性コンピュータ可読データストレージ媒体、コンピュータ支援設計システム、および3次元イラストレーションオーサリングシステムに関する。それは、コンピュータグラフィクスの分野に属し、より個別には、オーサリングシステムの分野に属する。
【背景技術】
【0002】
商標CATIA ComposerのもとでDassault Systemesによって提供される1つなどのオーサリングシステムは、3Dパーツの既存の3Dアセンブリから始める、2Dまたは3Dのドキュメンテーション、テクニカルイラストレーション、アニメーションをユーザが作成するのを可能にする。ユーザは、詳細な画像およびアニメーションを通じて、3Dパーツに関して明確かつ理解可能なテクニカルイラストレーションを作成する。たとえば、ユーザは、3Dパーツの対話型の材料表(もしくはパーツカタログ)、または3Dアセンブリの分解組立図を作成することができる。メンテナンスおよびトレーニング動作ならびにアセンブリ命令に関するアニメーションもまた、オーサリングシステムのおかげで製作され得る。本開示は、より個別には、これらの種類のアプリケーションに関する。
【0003】
オーサリングシステムのユーザは、設計エンジニア、製造エンジニア、テクニカルイラストレータだけでなく、CAD経験が少ない、またはCAD経験すらないユーザでもある。よって、オーサリングシステムは、使用が容易でなければならない。
【0004】
並進、回転、または並進と回転との組合せを伴うアニメーションは、通例、たとえば、限定はしないが、製造分野において、または手仕事の分野において、組み立てる、または解体する手順を例示するために、オーサリングシステムのユーザによって作成される。並進と回転との組合せの1つのイラストレーションは、ねじ締めする動作、またはねじ外しする動作である。たとえば、3Dパーツは、ねじまたはボルトであってよく、3Dアセンブリは、少なくとも3Dパーツを含む3Dオブジェクトである。
【0005】
たとえば、CATIA Composerにおける既存のオーサリングシステムにおいて、3Dパーツの並進を伴うアニメーションを作成する1つのやり方は、「コンパス」と呼ばれるマニピュレータを使用することである。コンパスは、特許文献1に開示されている。既存のオーサリングシステムにおいて、ユーザは、カーソルでコンパスをクリックして(カーソルを押して、放す)、それをアクティブにし、並進させることになる3Dパーツへとコンパスをドラッグする。次いでユーザは、3Dパーツ上でコンパスを放し、そのことがコンパスを3Dパーツにアンカーさせる。ユーザは、コンパスの軸線の1つを選択し、カーソルのドラッギングが、3Dパーツを、選択された軸線の方向に並進で動かす。カーソルのドラッギングの間、3Dパーツのアバターが並進され、3Dパーツは次いで、ユーザが押しボタンを放すとき、アバターの代わりに位置付けられる。オーサリングシステムは、最終的に、並進アニメーションのキー(時間マーカー)を作成し、それは次いで、アニメーションを作成するために、オーサリングシステムによって挿入される。
【0006】
同様に、回転アニメーションを作成するために、ユーザは、カーソルでコンパスをクリックし、回転させることになる3Dパーツへとコンパスをドラッグする。次いでユーザは、3Dパーツ上でコンパスを放し、そのことがコンパスを3Dパーツにアンカーさせる。ユーザは、コンパスのアークの1つを選択し、カーソルのドラッギングが、3Dパーツを、選択されたアークの平面に直角である軸線周りの回転において動かす。カーソルのドラッギングの間、3Dパーツのアバターが回転され、3Dパーツは次いで、ユーザが押しボタンを放すとき、アバターの代わりに位置付けられる。別の可能性は、回転の軸線を選択すること、およびダイアログボックスに度数を入力することである。オーサリングシステムは、最終的に、並進アニメーションについてのように、回転アニメーションのキーを作成する。
【0007】
上で説明されたマニピュレータを用いて、ユーザは、限定的な運動、すなわち、並進または回転を作成することができる。しかしながら、説明されたマニピュレータの使用は、CAD経験のないユーザにとっては簡単ではない。加えて、ユーザが3Dシーンにおいて、ねじ締めする、またはねじ外しする動作のアニメーションを作成したい場合、ユーザは、最初に回転アニメーションを作成し、それは3Dパーツを定位置でスピンさせる。オーサリングシステムは、回転を表現するキーを作成する。次いでユーザは、並進アニメーションを作成し、それは、回転アニメーションの最後のキーの間に、スピンする3Dパーツを並進させる。したがって、アニメーションは、回転の冒頭から始まる、同時発生する回転および並進を伴わない。
【0008】
それを避けるやり方は、3Dパーツの回転アニメーションを作成し、次いでアセンブリを作成し、回転する3Dパーツをアセンブリに入れることである。最後に、ユーザは、並進運動でアセンブリをアニメ化し、それによって回転する3Dパーツの並進のアニメーションを作成する。この解決策は煩雑であり、それは、ユーザが、カーソルを3Dシーンの外側に動かし、アセンブリを作成するために3Dシーンの外側のメニュー内を移動し、メニューにおいて3Dパーツを(特徴ツリーから)アセンブリへとドラッグし、アセンブリに名前を付けなければならないからである。
【0009】
したがって、この解決策は使いやすくなく、CAD経験が少ない、またはCAD経験すらないユーザは、通常、どのようにアセンブリを作成するかがわからず、回転と並進とを組み合わせるアニメーションを作成することを断念してしまう。
【0010】
この手続きのやり方はまた、ユーザがねじ締めすること、またはねじ外しすることの反復アニメーションを作成しなければならない場合、オーサリングシステムに精通するユーザにとってさえ、時間のかかることがある。
【0011】
そこで、本開示の目的は、使いやすく、時間を節約し、とりわけ、ねじ締めする/ねじ外しする動きを生成するために、3Dシーンにおいて3Dパーツの回転の動きを少なくとも生成するためのコンピュータ実装方法を提供することである。
【先行技術文献】
【特許文献】
【0012】
【文献】米国特許出願公開第2003/0187532号明細書
【発明の概要】
【0013】
本発明の一態様によれば、3Dシーンにおいて3Dアセンブリの3Dパーツの動きを生成するためのコンピュータ実装方法が提案され、3Dパーツの動きは、多くとも予め決められた角度分の回転を少なくとも含み、方法は、
a)3Dシーンにおいて3Dパーツの3Dアセンブリを表示するステップと、
b)3Dアセンブリの3Dパーツを選択するステップと、
c)3Dシーンにおいて、3つの軸線を含む3Dマニピュレータを表示するステップであって、前記3Dマニピュレータがアンカーポイントにおいて3Dパーツにアンカーされる、表示するステップと、
d)3Dマニピュレータを、1つの軸線に沿って、前記1つの軸線上のアンカーポイントからの現在の距離分だけドラッグするステップであって、予め決められた角度がアンカーポイントからの最大距離に対応する、ドラッグするステップと、
e)3Dマニピュレータをドラッグするステップの間に、最大距離に対する現在の距離の比を計算するステップと、
f)比に比例して3Dパーツの動きを生成するステップと
を含む。
【0014】
本発明の特定の実施形態によれば、回転は、軸線に沿った並進および軸線を回る回転と組み合わされて、予め決められたスレッドピッチに従って、ねじ締めすること、またはねじ外しすることを表現する。
【0015】
予め定義された方法において、
- ステップb)は、3Dパーツを封入する境界ボックスを特定するステップを含み、
- ステップc)は、境界ボックスの中心にアンカーポイントを位置付けるステップを含む。
予め定義された方法において、
- ステップb)は、境界ボックスの3つの割線エッジを特定するステップを含み、
- ステップc)は、3Dマニピュレータの軸線を、境界ボックスの3つの割線エッジと位置合わせするステップを含む。
【0016】
動きは、回転なしの、軸線に沿った予め決められた長さ分の並進をさらに含み、方法は、
- ステップd)において、最大距離を2つの部分的な最大距離に分割するステップであって、予め決められた角度が第1の部分的な最大距離に対応し、予め決められた長さが第2の部分的な最大距離に対応する、分割するステップと、
- ステップe)において、第1の部分的な最大距離に対する現在の距離の第1の比を計算するステップ、第1の部分的な最大距離分だけアンカーポイントから離れて軸線上に置かれる中間ポイントを決定するステップ、現在の距離の値をリセットするステップ、中間ポイントから始めてそれを再計算するステップ、および第2の部分的な最大距離に対する再計算された現在の距離の第2の比を計算するステップと、
- ステップf)において、第1の比に比例して3Dパーツの回転を生成し、第2の比に比例して3Dパーツの並進を生成するステップと
を含む。
【0017】
方法は、動きの少なくともパラメータを設定するステップを含み、前記ステップは、
- 3Dマニピュレータ上で第1のユーザ対話を検出するサブステップと、
- 第1のユーザ対話の検出に応答して、動きのパラメータの少なくとも1つの値を表示するサブステップと、
- ユーザによる値の更新を検出し、それによって動きのパラメータを設定するサブステップと
を含む。
【0018】
方法は、複数の動きの中の1つの動きを選択するステップ含み、選択するステップは、
- 3Dマニピュレータ上で第2のユーザ対話を検出するサブステップと、
- 第2のユーザ対話の検出に応答して、複数の動きのそれぞれの動きを表現するアイコンのセットを表示するサブステップと、
- アイコンのセットの中の1つの上で第3のユーザ対話を検出し、それによって対応する動きを選択するサブステップと
を含む。
【0019】
方法は、動きのビデオアニメーションを作成するステップを含む。
本発明の実施形態にかかる発明はまた、コンピュータシステムに、予め定義されたコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を含む、不揮発性コンピュータ可読データストレージ媒体上に記憶されたコンピュータプログラム製品に関する。
【0020】
本発明の実施形態にかかる発明はまた、コンピュータシステムに、予め定義されたコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を収容する不揮発性コンピュータ可読データストレージ媒体に関する。
【0021】
本発明の実施形態にかかる発明はまた、メモリに結合されたプロセッサと、グラフィカルユーザインターフェースとを備えるコンピュータ支援設計システムに関し、メモリは、コンピュータ支援設計システムに、予め定義されたコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を記憶する。
【0022】
本発明の実施形態にかかる発明はまた、メモリに結合されたプロセッサと、グラフィカルユーザインターフェースとを備える3次元イラストレーションオーサリングシステムに関し、メモリは、3次元イラストレーションオーサリングシステムに、予め定義されたコンピュータ実装方法を遂行させるためのコンピュータ実行可能命令を記憶する。
【図面の簡単な説明】
【0023】
本発明の実施形態にかかる発明は、非限定的な例として説明され、付属の図面によって例示されるいくつかの実施形態の検討により、よりよく理解されるであろう。
【
図1】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図2】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図3】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図4】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図5】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図6】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図7】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図8】本発明の実施形態にかかる発明による方法の実装を例示する図である。
【
図9】本発明の実施形態にかかる発明による方法の流れ図である。
【
図10】本発明の実施形態にかかる発明が実装され得るコンピューティング環境を例示する図である。
【
図11】本発明の実施形態にかかる発明が実装され得るコンピューティング環境を例示する図である。
【発明を実施するための形態】
【0024】
図1は、本発明の実施形態にかかる発明による方法のステップa)およびb)を例示する。第1のステップa)において、3Dパーツの3DアセンブリASMが、3Dシーンにおいて表示される。
図1上で、3DアセンブリASMは、2つの3Dパーツ、すなわち、接続ロッドおよびねじから構成される。本発明の実施形態にかかる発明のおかげで、オーサリングシステムのユーザは、接続ロッドの外側からねじをねじ外しすることのアニメーションを作成する。3Dアセンブリは、他のパーツを含んでもよいし、また他の3Dパーツを含むアセンブリに統合されてもよい。簡素化のために、本出願において、3Dアセンブリは、2つのみの3Dパーツから構成される。
【0025】
3DアセンブリASMは、3Dシーンの一定の視点に従ってスクリーン上に差し出され、視点は、知られている技法に従って変更され得る。
【0026】
第2のステップb)において、ユーザは、3Dアセンブリを構成するすべての3Dパーツの中で、3DアセンブリASMの1つの3DパーツPARを選択する。3Dパーツのうちの1つを選択するいくつかのやり方が存在する。最初の1つは、3Dシーン内を移動すること、および3Dシーンにおいて3Dパーツのうちの1つを選択することである。(指またはスタイラスを用いる)タッチモードにおいては、ユーザは、3Dパーツのうちの1つの上で長押しを行い、マウスを用いる場合、ユーザは、3Dパーツのうちの1つの上でクリックを行う。「クリック」は、押すこと、および放すことを指す。あるいは、3Dアセンブリが、3Dシーンの外側に置かれるメニューにおいて「特徴ツリー」として表示されてもよい。こうして、ユーザは、特徴ツリーをスクロールダウンし、特徴ツリーにおいて3Dパーツのうちの1つを選択する。あるいは、3Dパーツは、オーサリングシステムにおける検索エンジンを呼び出すことによって選択されてもよい。たとえば、ユーザは、3Dパーツの名前について、またはそのプロパティのいくつかについて照会を行う。一旦選択されると、3Dパーツはハイライトされる。
図1上では、選択された3Dパーツ(ねじ)が接続ロットによって不明瞭にされており、こうして、選択された3Dパーツをハイライトすること、またはその色が、選択された3Dパーツの視認性を向上させる。
これ以降、3Dパーツは、ユーザがそれについての動きを生成したいと望む、3Dアセンブリの選択された3Dパーツのみを指す。
【0027】
3DパーツPARの動きは、3Dマニピュレータを使用することによって生成される。3Dマニピュレータは、マウスによって、またはタッチスクリーン上でスタイラスもしくは指を用いて制御可能なグラフィカルアーチファクトである。3Dマニピュレータは、専用のコマンドを通じて呼び出され得る。たとえば、一旦ユーザが3DパーツPARを選択すると、ユーザは、
図1上で例示されるように、3Dシーン内でまたは3Dシーンの外側で提供されるリボンに置かれていてよい、専用のアイコンをクリックする。3Dマニピュレータのアクティブ化はまた、コンテキストメニューにおいてユーザに提案されてもよく、コンテキストメニューは、3DパーツPARの近くに置かれていてよく、3Dパーツについての関連コマンドを提示する。コンテキストメニューは、3Dシーンにおいて恒常的に表示されることが可能であり、またはそれは、ユーザ対話、たとえば、3Dシーンにおけるマウスを用いた右クリック、もしくはタッチモードでの3Dシーンにおけるタップに応答して表示されることもまた可能である。あるいは、3Dマニピュレータは、キーボードショートカットを使用することによって、または音声コマンドによって呼び出されることも可能である。
【0028】
図2は、本発明の実施形態にかかる発明による方法のステップc)を例示する。呼び出された3DマニピュレータMANは、3つの軸線(AX1、AX2、AX3)を含む。3つの軸線は、空間システム、優先的には、3つの直交軸線および原点を有する直交空間システムを形成する。動きを概略的に表現するアイコンが、直交空間システムの原点に置かれてよい。直交軸線は、3つの矢印によって表現されており、操作の異なる方向を提示している。3DマニピュレータMANは、デフォルトで、3Dシーンにおけるどこに位置付けられてもよい。とりわけ、それは、デフォルトで、3DパーツPARの近く、または3DパーツPAR上に位置付けられ得る。したがって、ユーザは、3DマニピュレータMANを操作し、同じ視界において3Dパーツの動きを見る。好ましい実施形態において、3DマニピュレータMANは、デフォルトで、3DパーツPARを封入する境界ボックスBBの中心に位置付けられる。境界ボックスBBは、3DパーツPARを取り囲む、最小サイズの直方体である。境界ボックスBBの中心は、計算され、境界ボックスBBの中心に対応する。いずれのケースにおいても、ユーザは、たとえば、キーボードの専用のキー、たとえば「CTRL」キーを押しながら、3DマニピュレータMANをドラッグすることによって、3Dマニピュレータのデフォルト位置を変更することができる。
【0029】
空間システムの原点の場所は、3DマニピュレータMANに対するアンカーポイントANPとして記憶される。アンカーポイントANPは、空間システムの原点のデフォルト場所または変更された場所に対応する固定ポイントである。次いで、3DマニピュレータMANは、ユーザによってドラッグされ、本発明の実施形態にかかる発明の原理の1つは、アンカーポイントANPと3DマニピュレータMANとの間の距離に従って、3Dパーツの動きを生成することである。
【0030】
次いで、最大距離MDが計算される。好ましい実施形態において、最大距離MDは、モニタの最も小さい寸法(通常、縦の長さ)の一部に対応する、ピクセルにおける距離である。たとえば、最大距離MDは、モニタの最も小さい寸法の半分に対応する。実際、ユーザは、3Dパーツがモニタの中心になるように、ユーザの視点を位置付ける傾向にある。最大距離MDはまた、予め定義され得る縁を差し引いて、モニタの最も小さい寸法の一部に等しくすることもできる。
【0031】
あるいは、最大距離MDは、動きの軸線の方向における、アンカーポイントANPとウィンドウのエッジとの間の距離として言及されてもよい。あるいは、最大距離MDは、アンカーポイントANPとウィンドウのエッジとの間の距離の一部(たとえば、半分)であってもよい。したがって、ユーザは、3DマニピュレータMANを長い距離にわたってドラッグする必要がない。いずれのケースにおいても、最大距離MDは、上述された方法のうちの1つを選択することによって、ユーザによって設定されてよい。
【0032】
一旦最大距離MDが計算されると、それは、予め決められた角度に関連付けられる。こうして、ユーザが最大距離MDを超えて3DマニピュレータMANをドラッグしたとしても、動きの生成は停止する。
【0033】
ステップd)において、ユーザは、3Dマニピュレータを、その軸線(AX1、AX2、AX3)のうちの1つに沿ってドラッグする。
図3上に例示されるように、ユーザは、3DマニピュレータMANを軸線AX3に沿ってドラッグする。タッチモードにおいて、「ドラッグすること」は、付加物(スタイラスまたは指)とタッチスクリーンとの間の接触を維持することを指す。マウスを用いる場合、「ドラッグすること」は、クリック(たとえば、左クリック)を放さないで押すことを指す。ドラッギングの間、3DマニピュレータMANは、マウスの、または付加物のコマンドに従って、カーソルの動きをたどる。
生成されることになる動きは、予め決められた角度分の回転を少なくとも含む。いかなる限定もなしに、生成される動きは、以下であってよい。
【0034】
- 予め決められた角度分の3DパーツPARの回転;ユーザは、3Dマニピュレータを回転の軸線に沿ってドラッグする。
【0035】
- 回転の軸線を回る予め決められた角度分の回転と、同じ軸線に沿った予め決められた長さ分の並進との組合せ。ユーザは、3Dマニピュレータを前述の軸線に沿ってドラッグする。ねじ締めする、またはねじ外しする動きが、そのような組合せを表現する。回転の並進との組合せを表現する動きは、予め決められたスレッドピッチに従って実施される。スレッドピッチは、回転および並進の軸線に沿った、ねじのスレッド間の距離である。スレッドピッチは、通常、ミリメートルで表される。たとえば、1.5のスレッドピッチは、1つのスレッドと次のスレッドとの間の距離が1.5mmであることを意味する。組合せはまた、回転の予め決められた角度によって、および並進の予め決められた長さによって(たとえば、720°および10mm)、特徴付けられてもよい。
【0036】
- 予め決められた角度分の3Dパーツの回転に、予め決められた長さ分の3Dパーツの並進が続く(または、その逆)。
【0037】
- 予め決められたスレッドピッチに従って、ねじ締めすること、またはねじ外しすることに、予め決められた長さ分の並進、または予め決められた角度分の回転が続く(または、その逆)。
【0038】
ユーザが3DマニピュレータMANをドラッグし始めるや否や、アンカーポイントANPと3DマニピュレータMANとの間の距離が恒常的に計算される。「現在の距離」CDと呼ばれる距離、より正確には、アンカーポイントANPから空間システムの原点までの距離が延在する。ユーザは、3DマニピュレータMANを、動きの軸線に沿ってドラッグする。こうして、ユーザは、動きを生成するために、軸線の矢印を「引っ張る」。
図3上で、動きの軸線は、軸線AX3である。ユーザは、必ずしも厳密に動きの軸線上にカーソルを位置付けるとは限らない。カーソルが動きの軸線の外側にある場合、3DマニピュレータMANは、軸線上のカーソルの突出部に従って動く。
【0039】
ステップe)において、3DマニピュレータMANをドラッグしている間、最大距離MDに対する現在の距離CDの比が計算される。
【0040】
ステップf)において、3Dパーツの動きが、比に比例して生成される。本発明の実施形態によれば、計算された比率は、たとえば、3DマニピュレータMANの近くに、またはカーソルの近くに表示される。たとえば、
図3上では、比率は、66%に等しい。こうして、ユーザは、動きの時間ラインの表現を見る。オーサリングシステムは、最終的に、動きのキー(時間マーカー)を作成し、キーは次いで、動きのアニメーションを作成するために、オーサリングシステムによって挿入される。
【0041】
動きが少なくとも2つの異なるシーケンス(たとえば、第1に予め決められた角度分の回転またはねじ締めすること、および第2に予め決められた長さ分の並進)を含む場合、最大距離MDは、ステップd)において、同じ数の部分的な最大距離に分割される。各シーケンスの大きさは、部分的な最大距離に対応する。たとえば、第1に予め決められた角度分の回転またはねじ締めすること、および第2に予め決められた長さ分の並進であれば、予め決められた角度が第1の部分的な最大距離MD1に対応し、予め決められた長さが第2の部分的な最大距離MD2に対応する。
【0042】
最大距離MDの分割は、すべての異なるシーケンスに対して等しいことがある。あるいは、最大距離MDの分割は、異なるシーケンスの予め決められた角度および/または予め決められた長さに比例して実施される。
【0043】
次いで、ステップe)において、第1の部分的な最大距離MD1に対する現在の距離CDの第1の比が計算される。軸線上に置かれ、かつ第1の部分的な最大距離MD1分だけアンカーポイントANPから離れた中間ポイントIPが決定される。
図4は、最大距離MDの分割を概略的に例示する。3DマニピュレータMANが第1の部分的な最大距離MD1分だけアンカーポイントANPから離れるとき、現在の距離CDの値がリセットされ、中間ポイントIPから始めて再計算され、次いで第2の部分的な最大距離MD2に対する再計算された現在の距離CDの第2の比が計算される。
【0044】
最後に、ステップf)において、3Dパーツの回転が第1の比に比例して生成され、3Dパーツの並進が第2の比に比例して生成される。
【0045】
同じことは、第1に並進、および第2にねじ締めすることまたは回転を含む動きに対して適用されることが理解される。そのケースにおいては、予め決められた長さが第1の部分的な最大距離MD1に対応し、予め決められた角度が第2の部分的な最大距離MD2に対応する。
【0046】
加えて、2つよりも多いシーケンスを含む動きについては、いくつかの中間ポイントIPが計算され、現在の距離CDがリセットされて、各中間ポイントIPから始めて再計算される。
【0047】
図3上で例示される動きは、いくつかのシーケンス、すなわち、最初に軸線AX3に沿って3DパーツPARをねじ外しすること、次いで軸線AX3に沿った並進を含む。動きの冒頭で、3DマニピュレータMANは、デフォルトで、3DパーツPARの境界ボックスBBの中心に置かれている。しかしながら、動きが進むにつれて、3DマニピュレータMANは、3Dパーツそれ自体よりも「速く」、動きの軸線に沿ってドラッグされることがある。たとえば、動きが回転である場合、3DパーツPARは、動きの軸線を回って回転し、一方3Dマニピュレータは、動きの軸線に沿ってドラッグされる。同じことは、動きが最大距離と比較して小さい予め決められた長さ分だけねじ外しすることである場合に適用される。
【0048】
好ましい実施形態によれば、
図5によって例示されるように、3DマニピュレータMANの向きは、3DパーツPARの向きと一致する。そのために、ステップb)において、境界ボックスBBを成す直方体の3つの割線エッジ(ED1、ED2、ED3)が特定される。次いで、ステップc)において、3DマニピュレータMANの軸線(AX1、AX2、AX3)が境界ボックスBBの3つの割線エッジと位置合わせされる。したがって、3Dシーンにおいて3DパーツPARが傾いて現れる場合、3DマニピュレータMANもまた、呼び出されるとき、傾いて現れる。加えて、3Dシーンにおいて3DパーツPARが予め設定された回転角度で現れる場合、3Dマニピュレータの軸線は、回転の動きが予め設定された回転角度を考慮に入れるように、境界ボックスBBの割線エッジと位置合わせされる。オプションとして、動きが、回転またはねじ締めすること/ねじ外しすることである場合、3DマニピュレータMANは、3DマニピュレータMANの軸線の境界ボックスBBの割線エッジとの位置合わせを保つように、動きの軸線を回って回転することができる。
【0049】
動きのいくつかのパラメータを設定するために、3DマニピュレータMANをドラッグする前または後で、ユーザはそれと対話することができる。よって、方法は、動きの少なくともパラメータを設定するステップを含む。
【0050】
第1のサブステップにおいて、第1のユーザ対話が、3DマニピュレータMAN上で検出される。検出は、ステップc)の間、すなわち動きの生成の前に、ステップf)の後、すなわち動きの生成の後に、およびユーザが3DマニピュレータMANをドラッグすることを停止した場合は、動きの生成の間にさえ実施され得る。たとえば、第1のユーザ対話は、
図6上に例示されるように、空間システムの原点に置かれるアイコンMIのダブルクリックであってよい。タッチモードにおいては、第1のユーザ対話は、ダブルタップであってよい。
【0051】
第2のサブステップにおいて、第1のユーザ対話の検出に応答して、動きのパラメータの少なくとも1つの値が表示される。
図7によって例示されるように、カスタマイゼーションパネルCPAが表示されてよい。カスタマイゼーションパネルCPAの編集ボタンEBのおかげで、ユーザは、回転の予め決められた角度、または並進の予め決められた長さを変更することができる。各基本的な動き(回転または並進)は、別々に編集され得る。基本的な動きの組合せ、たとえば、ねじ締めすること/ねじ外しすることが、リンクLNKを通じて表示される。ユーザは、リンクLNKをクリックすることによって、それをアクティブ化または非アクティブ化することができる。ユーザは、いずれのリンクLNKも自由に非アクティブ化することができる。しかしながら、2つの基本的な動きの間でリンクLNKをアクティブ化するために、両方の基本的な動きが異なること、および両方の基本的な動きが既存のリンクに結び付けられていないことが検出される。ユーザはまた、基本的な動きを追加する、または基本的な動きのシーケンシャルな順序を変えることができる。
【0052】
第3のサブステップにおいて、たとえば、カスタマイゼーションパネルCPAにおける専用のボタンをクリックすることによる、ユーザによる値の更新が検出され、それによって動きのパラメータを設定する。
【0053】
ユーザはまた、3DパーツPARについての別の動きを選択することができる。そのために、カスタマイゼーションパネルCPAにおけるドロップダウンメニューDMが、どの動きをユーザが編集するかをユーザに選ばせる。
【0054】
他のやり方において、ユーザは、カスタマイゼーションパネルCPAを起動する必要なしに、3DパーツPARについての複数の動きの中の別の動きを選択することができる。動きの生成の前、動きの生成の後、および動きの生成の間でさえ、ユーザは、3DマニピュレータMANと対話することができる(
図6を参照されたい)。
図8を参照すると、第1のユーザ対話とは異なる第2のユーザ対話を通じて、複数の動きのそれぞれの動きを表現するアイコンのセット(MI、SI)が表示され得る。第2のユーザ対話は、たとえば、空間システムの原点の、シングルクリック、またはタッチモードでは、タップである。空間システムの原点に置かれるメインアイコンMIは、動きの概略的なビューを表現する。空間システムの原点に近接して置かれる2次アイコンSIは、複数の動きの中の他の動きのそれぞれの概略的なビューを表現する。ついでに言えば、カーソルがアイコンのうちの1つの上にあるとき、またはタッチモードにおける専用のコマンドを通じて、動きを例示するビデオが表示される。次いで、たとえば、アイコンのうちの1つのシングルクリック、またはタッチモードでのタップである第3の対話が検出された場合、3DパーツPARについての別の動きが選択される。
【0055】
図9は、本発明の実施形態にかかる発明による方法の、とりわけステップa)からf)の本発明の実施形態にかかる発明による方法の流れ図を例示する。
【0056】
本発明の実施形態にかかる発明は、回転および並進、ならびに回転と並進との組合せを実施するための効率的なツールをユーザに提供する。アニメーションは、ねじまたはボルトをとりわけ収容するアセンブリまたは解体の手順について、特により容易に作成される。その上、それらの動きの設定は、上述されたカスタマイゼーションパネルの使用を通じて調整される。
【0057】
本発明の実施形態にかかる発明の方法は、ハードディスク、ソリッドステートディスク、またはCD-ROMなどのコンピュータ可読媒体上に好適なプログラムを不揮発性形式で記憶し、そのマイクロプロセッサおよびメモリを使用してプログラムを実行する、好適にプログラムされた汎用コンピュータ、または、場合によりコンピュータネットワークを含むコンピュータシステムによって実施され得る。
【0058】
本発明の例となる実施形態による方法を遂行するために好適なコンピュータ、より正確には、コンピュータ支援設計システムもしくはイラストレーションオーサリングシステムまたはステーションが、
図10を参照して説明される。
図10において、コンピュータは、上で説明されたプロセスを実施する中央処理ユニット(CPU)Pを含む。プロセスは、実行可能プログラムとして、すなわち、コンピュータ可読命令のセットとして、RAM M1もしくはROM M2、もしくはハードディスクドライブ(HDD)M3、DVD/CDドライブM4などのメモリに記憶され得るか、またはリモートに記憶され得る。その上、3DパーツPARの動きがそこで生成されなければならない3次元シーン(たとえば、オブジェクトのアセンブリの分解組立図)を定義する1つまたは複数のコンピュータファイルもまた、メモリデバイスM1からM4上のうちの1つもしくは複数の上に、またはリモートに記憶されてよい。
【0059】
特許請求される本発明の実施形態にかかる発明は、本発明の実施形態にかかるプロセスのコンピュータ可読命令および/またはデジタルファイルがその上に記憶されるコンピュータ可読媒体の形式によって限定はされない。たとえば、命令およびファイルは、CD、DVD上に、フラッシュメモリ、RAM、ROM、PROM、EPROM、EEPROM、ハードディスク内に、または、サーバまたはコンピュータなどの、コンピュータ支援設計ステーションまたはイラストレーションオーサリングステーションが通信する任意の他の情報処理デバイスに記憶され得る。プログラムおよびファイルは、同じメモリデバイス上に記憶されても、または異なるメモリデバイス上に記憶されてもよい。
【0060】
さらに、本発明の実施形態にかかる方法を遂行するために好適なコンピュータプログラムが、CPU800、ならびにMicrosoft VISTA、Microsoft Windows8、UNIX、Solaris、LINUX、Apple MAC-OS、および当業者に知られる他のシステムなどのオペレーティングシステムと連携して実行される、ユーティリティアプリケーション、バックグラウンドデーモン、もしくはオペレーティングシステムのコンポーネント、またはそれらの組合せとして提供され得る。
【0061】
CPU Pは、アメリカのIntelからのXenonプロセッサ、もしくはアメリカのAMDからのOpteronプロセッサであってよく、またはアメリカのFreescale CorporationからのFreescale ColdFire、IMX、もしくはARMプロセッサなどの他のプロセッサタイプであってよい。あるいは、CPUは、アメリカのIntel CorporationからのCore2 Duoなどのプロセッサであってもよく、または当業者が認知するように、FPGA、ASIC、PAD上で、もしくはディスクリート論理回路を使用して実装されてもよい。さらに、CPUは、上で説明された本発明の実施形態にかかるプロセスのコンピュータ可読命令を実施するために協働して働く多数のプロセッサとして実装されてもよい。
【0062】
ユーザ操作の数を減らすことを通じて、最新技術と比較して、CPUの計算時間は、大幅に削減される。実際、最新技術の解決策において、回転と並進との組み合わせられた動きは、分割される。したがって、3Dパーツの並進のために第1の行列が計算され、回転のために第2の行列が計算される。次いで、並進と回転との組合せのために、第1の行列に第2の行列を掛けた行列積が計算される。よって、2つの行列計算が実施される。本発明の実施形態にかかる発明による方法においては、1つのみの行列計算が実施される。
【0063】
加えて、最新技術の解決策においては、ユーザは最初に並進を作成し、並進のキーが作成され、次いで、ユーザは回転を作成し、回転のキーが作成される(またはその逆)。本発明の実施形態にかかる発明によれば、ユーザは、組み合わせられた回転/並進を作成し、キーが作成される。これもまた、CPUの計算時間を削減する。
【0064】
図10におけるコンピュータ支援設計ステーションまたはイラストレーションオーサリングステーションはまた、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、その他などのネットワークとインターフェースを取るための、アメリカのIntel CorporationからのIntel Ethernet PROネットワークインターフェースカードなどのネットワークインターフェースNIを含む。コンピュータ支援設計ステーションまたはイラストレーションオーサリングステーションは、Hewlett Packard HPL2445w LCDモニタなどのディスプレイDYとインターフェースを取るための、アメリカのNVIDIA CorporationからのNVIDIA GeForce GTXグラフィクスアダプタなどのディスプレイコントローラDCをさらに含む。汎用I/OインターフェースIFは、キーボードKB、およびローラーボール、マウス、タッチパッド、その他などのポインティングデバイスPDとインターフェースを取る。ディスプレイ、キーボード、およびポインティングデバイスは、ディスプレイコントローラおよびI/Oインターフェースと一緒に、グラフィカルユーザインターフェースを形成し、グラフィカルユーザインターフェースは、たとえば、ポインタツールを動かす、ポイントまたは平面を選択するための入力コマンドを提供するためにユーザによって使用され、かつ3次元シーン、グラフィカルツール(平面セレクタ、ポインタツール)およびポリラインを表示するためにコンピュータ支援設計ステーションまたはイラストレーションオーサリングステーションによって使用される。
【0065】
ディスクコントローラDKCは、コンピュータ支援設計ステーションまたはイラストレーションオーサリングステーションのコンポーネントのすべてを相互接続するための、ISA、EISA、VESA、PCI、または同類のものであってよい通信バスCBSを用いて、HDD M3およびDVD/CD M4を接続する。
【0066】
ディスプレイ、キーボード、ポインティングデバイス、ならびにディスプレイコントローラ、ディスクコントローラ、ネットワークインターフェース、およびI/Oインターフェースの一般的な特徴および機能性の説明は、これらの特徴が知られていることから、簡潔さのために本明細書では省略される。
【0067】
図11は、本発明の実施形態にかかる発明の異なる例となる実施形態による方法を遂行するために好適なコンピュータシステムのブロック図である。
【0068】
図11において、実行可能プログラムEXPおよび3次元シーンを定義するコンピュータファイルが、サーバSCに接続されたメモリデバイス上に記憶されている。サーバのメモリデバイスおよび全体的なアーキテクチャは、サーバにはディスプレイコントローラ、ディスプレイ、キーボード、および/またはポインティングデバイスがなくてもよいことを除いて、
図10を参照して上で議論されたものと同じであってよい。
【0069】
サーバSCは次いで、ネットワークNWを介して、アドミニストレータシステムADSおよびエンドユーザコンピュータEUCに接続される。
【0070】
アドミニストレータシステムの、およびエンドユーザコンピュータの全体的なアーキテクチャは、アドミニストレータシステムおよびエンドユーザコンピュータのメモリデバイスが、実行可能プログラムEXPおよび/または3次元シーンを定義するコンピュータファイルを記憶しないことを除いて、
図10を参照して上で議論されたものと同じであってよい。しかしながら、エンドユーザコンピュータは、以下で議論されることになるように、サーバの実行可能プログラムと協働するために設計されたクライアントプログラムを記憶する。
【0071】
認識され得るように、ネットワークNWは、インターネットなどのパブリックネットワークであっても、またはLANもしくはWANネットワークなどのプライベートネットワークであっても、またはそれらの任意の組合せであってもよく、PSTNまたはISDNサブネットワークもまた含むことができる。ネットワークNWはまた、イーサネットネットワークなどのワイヤードであってもよいし、またはEDGE、3G、および4Gワイヤレスセルラーシステムを含むセルラーネットワークなどのワイヤレスであってもよい。ワイヤレスネットワークはまた、Wi-Fi、Bluetooth、または知られている通信の任意の他のワイヤレス形式であってもよい。よって、ネットワークNWは、単なる例となり、現行の進歩の範囲を決して限定するものではない。
【0072】
エンドユーザコンピュータのメモリデバイスに記憶され、エンドユーザコンピュータのCPUによって実行されるクライアントプログラムは、ネットワークNWを介して、データベースDBにアクセスし、データベースDBは、サーバSCによって記憶され、3DパーツPARの動きがそこで生成されなければならない3次元シーンを定義するファイルを収容する。これは、シーンのグラフィカル表現をパラメータ化し、上で説明されたように3Dパーツの動きを生成するために、エンドユーザがそのようなファイルを開き、場合により変更することを許可する。サーバは、上で説明されたように処理を実施し、ポリラインを含むシーンの所望の表現に対応する画像ファイルを、やはりネットワークNWを使用して、エンドユーザコンピュータに送信する。
【0073】
1つのみのアドミニストレータシステムADSおよび1つのみのエンドユーザシステムEUXが示されているが、システムは、限定することなく、任意の数のアドミニストレータシステムおよび/またはエンドユーザシステムをサポートすることができる。同様に、本発明の実施形態にかかる発明の範囲から逸脱することなく、多数のサーバもまたシステムにおいて実装されてよい。
【0074】
本明細書で説明されたいかなるプロセスも、プロセスにおける特定の論理機能またはステップを実装するための1つもしくは複数の実行可能命令を含むモジュール、セグメント、またはコードの部分を表現するものとして理解されるべきであり、代替実装は、本発明の例となる実施形態の範囲内に含まれる。