DEIM Forum 2023 3a-3-5

アニメーション付き CAD モデル検索のためのデータ構造の提案
上田 宏也†

片山薫†† 東京都立大学システムデザイン研究科情報科学域 〒 191–0065 東京都日野市旭が丘 6-6
E-mail: †ueda-hiroya@ed.tmu.ac.jp, ††kaoru@tmu.ac.jp
あらまし

近年では CAD ソフトを利用して動く工業製品の表現の為アニメーション付きの CAD モデルが製作されている。アニメーション付きモデルを保存するファイル形式は多機能なデータ形式が用いられており、形状表現にも、通常 CAD モデルのデータとして用いられる単純なデータ形式に比べ、複雑なステップを踏み計算されるため検索に利用しにくいデータ構造である。本稿ではこのようなアニメーション付き CAD モデル検索のためのデータ構造を提案し、またアニメーションする CAD モデルの保存に使用される代表的なフォーマットの一つである FBX ファイル形式を、提案するデータ構造に変換する手法を開発した。
キーワード マルチメディア、3D モデル、CAD モデル、アセンブリモデル、アニメーション
データは中間的でソフトウェアに依存しない保存形式を利用す

1 はじめに
従来 3 次元モデルは製造業等の精密さを求める分野と映像等のデザインやイメージを伝えるための分野で利用されてきた。
それぞれの分野では異なる利用目的から, 異なった形式で３次元モデルが活用されてきた。本論文では前者を CAD モデル、る必要がある。
本論文では、アニメーション付き CAD モデルの検索のためのデータモデルの探索及び、既存のデータ形式の問題点に着目し、アニメーション付き CAD モデルの検索に適したデータ構造の提案を行う。

後者を CG モデルと呼ぶ。

CAD モデルは、製造や建築、医療などの幅広い分野で利用されており、蓄積された膨大なデータを効率的に管理するために検索手法やデータベース設計の研究が盛んにおこなわれている。そのような、CAD モデルの検索手法として 3 次元形状を小さな三角形集合体で表現するメッシュ構造を利用した、モデル形状の検索が多く提案されている [1]。また機械設計などで作られる自動車などの CAD モデルは、複数の部品を組み合わせた配置構造を持つことが多く、このようなモデルのことをアセンブリモデルと呼ぶ。アセンブリ構造は木構造を成し、ここではアセンブリモデルの木構造の葉にあたるモデルを部品と定義する。
一方 CG モデルは映像、ゲームなどで利用されており、形状

図 1 星型エンジンのアニメーション付きモデルデータ以外にも様々な情報を扱える多機能なデータ形式が用いられ、より様々な描写や表現を行うための研究が行われてきた [2][3]。

図 1 は、CAD モデルの共有を行うコミュニティサイトである

近年では、ソフトウェアのの発展によりその垣根が低くなっ

GRABCAD[8] にて共有されていた step 形式にて保存されててきており、3dsMax[4] や Fusion360[5] といった CAD ソフトいる星型エンジンを、Blender(var.2.83.4) を利用して、スケルはアニメーションなどの表現が行えるようになり、Maya[6] やトン及びアニメーションを追加したものである。

Blender[7] といった CG ソフトは工業製品等の設計にも対応した。そして現在では、動く工業製品の表現の為、アニメーションする CAD モデルが製作されるようになっている。そのようなアニメーション付き CAD モデルに対して管理、検索のアプローチをするためにはモデルを保存するデータ形式を決める必要がある。上記の様な CAD ソフト及び CG ソフトはそのソフトウェア独自の保存形式を持ち、独自の環境に依存するモデルであるため、読み込むソフトウェアの種類やバージョンによって、データが変化及び欠損する問題がある。そのため、研究2 関連研究Mchenry ら [9] は様々な 3D モデルのファイル形式について調査を行なっている。ここで上げられている代表的な３次元モデルのデータ形式として、 Maya[3] や Blender[4] が提供するファイル形式の.mb や.blend はアニメーションするアセンブリモデルを表現可能である。しかしながら、提供されている3DCG ソフトウェアに依存する不安定なデータ形式であるため、3 次元モデル管理のファイル形式には適していない。そのためアニメーションする CAD モデルを表現可能でありながら、ないため、検索のためのデータとして利用できない。それらにソフトウェアに依存しない中間的なデータ形式に保存された検該当しないデータ形式の中で、アニメーション情報を保持可能索モデルを準備することが本研究の目的である。

であり、一般的に利用されている FBX 形式に注目し、問題解

Bustos ら [1] は CAD モデルの検索について纏めており、決へのアプローチを行った。

CAD モデルの検索のために多くの研究がなされて来た。一般的な 3 次元モデルの検索手法の多くは形状を識別することに重点を置いており、3D モデルのアニメーションを考慮した検索手法の研究はあまり行われておらず、発展途上にある。佐波ら [10] は、CAD モデルの構造をもとにを、アセンブリモデルに基づき、時間ごとのモデルの形状および姿勢を計算することでコンピュータ内に機織機のアニメーションの再現を行い、3dsMax[4] や Fusion360[5] といった CAD ソフトでは、 CADモデルにアニメーションをつけ、精密な動きを付ける環境を提供している。このように、工業部品をアニメーションし、CADモデルの動作イメージをコンピューター内で表現することへ需要は存在し、そのデータを効率的に管理するためのデータモデ

4 既存のデータ形式の問題点
本章では、アニメーションする CAD モデルを保存できるデータ形式の代表的なものとして、CG モデルの保存に利用されるFBX 形式を例としてその構造及び用語についての説明を行う。
ここで扱う 3DCG の用語及び FBX で利用する用語に関しては、説明を表 1, 表 2 に記述する。FBX 形式はアニメーションする CAD モデルを始め、3DCG で扱えるように様々な属性を持った 3 次元モデルを保存する、ソフトウェアに依存しない中間的なファイル形式であり、幅広く活用されているため、データベースとして利用可能であれば有用なファイル形式である。

ルの提案が必要であると考えられる。
豊泉ら [11] アニメーション付きアセンブリモデルのレイアウ
ト情報を考慮した検索手法の提案を行っており、アニメーション情報を用いて各フレームにおけるモデルのラドン変換、フーリエ変換後のパワースペクトルを再現しアニメーション時のアセンブリモデルの特徴量計算の処理時間の短縮が行い三次元モデルのアニメーション情報を利用した検索手法の有用性を示している。しかしながら、この検索手法にはアニメーション時のモデルの形状情報ではなく、静止するモデルの形状をアニメーション後のモデルの形状 に計算するための独立したアニメーション情報の準備が必要である。

3 既存のデータ収集手法の問題点
既存の検索手法及び管理手法を扱う上で 3 次元モデルから

図 2.FBX ファイルのデータ構造データを読み出す手法は大きく二つに分かれる。
方法 1： モデリングソフト及び 3D ビューワから形状情報等

図 2 は FBX 形式でのデータ構造の例である。CAD モデルを出力したデータを利用する。の一般の保存形式として利用される STL 形式はポリゴンを構

方法 2： STL 等の中間的なファイル形式をデータとして利用

成する頂点のインデックス情報と各頂点の座標情報の二つの配する。

列から構成されるのに比べ、FBX 形式では 3DCG を表現する

方法 1 は、3D ソフトウェアから形状情報やアニメーションために必要な情報を保存するために多くのノードから形成さ情報を出力する方法である。方法 2 に比べ、様々なファイル形れる木構造になっている。この木構造にはモデルの内部構造を式からデータを取り出すことが出来る利点があるが、入出力を表すノードには明確なフォーマットがなく、モデルの製作者にソフトウェア独自のインターフェース依存するため、データのよってノード配置が異なる。またカメラや、ライトを表すノー正確性に難があり、収集効率も悪い。方法 2 は、3D モデルのド等、モデルの形状以外の情報も多く混在しており、スキニン受け渡し等に利用される、読み込みをソフトウェアに依存しなグされたモデルのアニメーション情報を得るためには、以下のいファイル形式を利用する方法である。既存の静的モデルの検手順を踏む必要がある。

索及び管理手法の対象データとして CAD モデルを 3 次元形状

（ 1 ） スケルトンノードとメッシュノードを探索。の小さな三角形集合体で保存する STL 形式が活用されている。

（ 2 ） メッシュノードのメンバ関数を利用しスキニングされ動的モデル検索に対しても同様に検索対象となるデータ形式をたウエイト情報を呼び出し、リスト化されたウエイト情報から、決定する必要がある。

影響を受けるスケルトンノードを辿る。

3 次元モデルを保存可能なデータ形式は現在百種類を超える（ 3 ） ア ニ メ ー ション を 管 理 す る ノ ー ド で あ る Anima-

が、そのほとんどのデータ形式は独自の 3D ソフトウェアに読tionEvaluater を呼び出し、そのメンバ関数に特定したスケみ込みを依存することや、ファイルの内部情報が公開されていルトンノードを受け渡すことで、アニメーション情報を取り出す。

ため、ボーンの集合であるスケルトン構造を利用することで、以上のことから動的モデル検索のために、必要となる形状デー全ての頂点座標に対してアニメーションフレーム毎に変化後のタやアニメーションデータにアクセスしにくく、FBX 形式を座標を保持する必要がなく、シンプルで検索の応用性に富んだ検索データとして扱うことは勧められない。アニメーション付データ構造となる。

き CAD モデル検索のためには、より必要な情報にアクセスし易く、シンプルなデータ構造が求められる。

表 1 3DCG 用語の説明
スケルトン

複雑な形状を持つモデルのアニメーションを行う際に用いられ、ボーンから構成される階層構造のことを指す
スケルトンの構成要素、リンクされたメッシュ

ボーンはこれに追従する

メッシュ

小さな三角形の集合体で表現された部品の形状情報

スキニング

メッシュとスケルトンをリンクさせることを指す

ウエイト

スキニングされたメッシュがどのボーンに追従されるかをリスト情報で示す

次章では FBX 形式から提案するデータ構造への変換手法を開発し、図 1 のモデルを用いて実際のデータの抽出を行う。

6 FBX から提案するデータ構造への変換
Autodesk の提供する FBXSDK 2019.5 VS2017[12] を利用して、FBX モデルの読み込みを行い、以下の手順で提案するデータ形式への変換を行う。

6. 1 FBX モデルが含むノードの読み込み
FBX ファイルのデータ構造は図 1 の通りであり、FbxSceneに対して深さ優先探索を行うことで、図 4 のように FBX モデルに含まれる全てのノードが取得できる。またノードに含まれる属性をフィルタに掛けることで、目的の情報を持つノードを

表 2 FBX の各ノードについての説明
Scene

FBX を構成する木構造の根である。

MeshNode

メッシュ、スキニング、ウエイト情報が格納されている。

SkeletonNode取り出すことができる。

ボーンの情報を格納しており、このノードの集合がスケルトン構造を成している。

5 提案するデータ構造
以上の項を踏まえ本稿ではアニメーションする CAD モデルを効率的に検索可能なデータ構造 (図.3) を提案する。

図 4.FBX モデルが含むノードの読み込み

6. 2 スケルトン構造をベースとした木構造の作成
取得したノードの中から SkeletonNode の属性を持つノードの集合を探し、その最上階のノードを Root の子ノードとして、木構造のベースである図５を作成する。

図 5. スケルトン構造をベースとした木構造の作成
図 3. 提案するデータ構造

6. 3 作成した木構造に形状情報を紐づける

提案するデータ構造は、スケルトン構造を基に木構造を成し、MeshNode からウエイトのリンク情報にアクセスし、図 6 のそのノードはボーン情報とそのボーンにスキニングされた部品ように各 MeshNode に対してウエイトを持つ SkeletonNode をの形状情報、部品ごとの独立したアニメーション情報にアクセ探し作成した木構造にリンク付けを行う。FBX では SkeletonN-スできる。機械部品などの形状の変形を伴わないモデルにおい

ode から関連付けられた MeshNode にアクセスすることが出来ては、アニメーションするモデルを静止状態の座標と各部品とないため、MeshNode のウエイトの情報にアクセスし、スキニリンクしているボーンの座標変換行列で表現可能である。そのングされた全てのボーンの中から影響を受ける SkeletonNodeを特定を行い、SkeletonNode が影響を与える MeshNode を結作成したデータ図 8 は、アニメーションモデル検索に適した、ボーンとそれにリンクして動作する形状情報、アニメーションびつける。

する際のフレームごとの座標変換行列にまとめてアクセス可能なデータ形式である。提案手法を利用することで、FBX 形式をアニメーションする CAD モデルの検索データとしての活用ができ、今後検索データモデル及びそのデータベースの準備手法の改善につながると考える。

7 おわりに
本研究では、アニメーション付き CAD モデル検索に使うデータ収集の課題を、データ構造の提案及び FBX ファイル形
図 6.MeshNode とウエイト情報で関連付けられた式を利用して変換手法を実装することで解決した。また部品形

SkeletonNode状の変形を伴わないアニメーション付きの CAD モデルに対して、動的情報の抽出が容易となるデータ構造をスケルトン構造

6. 4 作成した木構造にアニメーション情報を紐づける
SkeletonNode にはアニメーション情報が保存されていない
ため、FbxScene から AnimationEvaluater にアクセスし、メを利用して提案を行った。３次元モデルの用途は未だ発展途上であり、今後も用途に従って、新たな属性が付与された３次元モデルが登場することが考えられる。

ンバ関数に引数として各 SkeltetonNode を与えることで、各3 次元モデルに付与されている属性に沿ったデータ構造の提ボーンのアニメーションフレームごとのグローバル座標情報を案は、今後とも進化し続け増加する３次元モデルデータの管理呼び出し、作成した木構造のノードに保存する。得られるアニ及び検索手法の構築に必要であると考える。

メーションフレームごとの座標変換行列は図 7 のような 4 × 4の行列の集合で表される。

図 7. 星型エンジンモデルのクランク部分に対応するボーンのフレームごとのグローバル座標行列

6. 5 完成したデータ構造

図 8.FBX から提案するデータ構造への変換したデータ

文

献[1] Bustos, B., Keim, D. A., Saupe, D., Schreck, T., Vrani´c, D.
V. ”Feature-based similarity search in 3D object databases.”
ACM Computing Surveys (CSUR), 37(4), 345-387.2005.
[2] Jessica K. Hodgins , Nancy S. Pollard ”Adapting Simulated Behaviors For New Characters” SIGGRAPH97 153162, 1997
[3] 桑原明栄子, 牧野光則, CG アニメーション用誇張表現作成補助システムの提案 , 芸術科学会論文誌 Vol.2,No.1, pp.21-30,
2006.
[4] Autodesk 3dsMax "https://www.autodesk.co.jp/products/3ds-max/overview"[5] Autodesk Fusion360 "https://www.autodesk.co.jp/products/fusion-360/overview"[6] Autodesk Maya "https://www.autodesk.co.jp/products/
maya/overview"[7] Blender "https://www.blender.org/"[8] GRABCAD,”https://grabcad.com/library/[9] K.mchenry and P.Bajcsy,”An Overview of 3D Data Content, File Formats and Viewers” Image Spatial Data Analysis GroupNational Center for Supercomputing Applications1205 W Clark, Urbana, IL 61801[10] 佐波 晶, 進藤 幸裕, 北嶋 克寛, アセンブリモデルを用いた手機織機の表現 , 精密工学会誌 Vol.73, No.12. pp.1362-1368,
2007.
[11] 豊泉 翔太郎 , 平島 栄志, 片山 薫,”アセンブリ構造をもったアニメーション CAD モデルのレイアウト情報を考慮した検索”DEIM2022 A 44-3.
[12] Autodesk FBXSDK ”https://www.autodesk.com/developernetwork /platform-technologies/fbx-sdk-2019-5”