LoginSignup
16
21

More than 3 years have passed since last update.

FBXファイルの中に入れれるデータ一覧

Last updated at Posted at 2020-11-02

FBXファイル内に保持できる要素

初心者がFBXの構造を学習するにあたり、FBXのシーンに設定できる要素を調べましたので、メモとして残します。

初心者でも理解しやいような表現を心がけているため、用語の説明が正確でないかもしれません。間違いに気づいたらご指摘をお願いします。

引用:Autodesk FBX 2017

本記事の対象者

プログラミングはできるけど、CGの用語は疎いみたいな人が対象です。

FBX

FBXは、CG界隈で広く普及しているファイルフォーマットです。

3D空間内での物体の形状、模様、動き等を定義できます。

FBX SDK

プログラミング言語でFBXを読み込んだり書き込んだりできるツールです。

C++版とPython版の2種類があります。

シーン

FBXファイルの中身はHTMLのように階層構造になっています。

最上位層が シーン です。HTMLでいう <html> タグに相当する部分です。

この配下に エレメント がぶら下がります。

引用:Autodesk FBX 2017 / FBX Scenes

エレメントには以下の種類があります。

エレメント FBX SDKでのクラス名
メッシュ FbxMesh
LODグループ FbxLodGroup
カメラ FbxCamera
ライト FbxLight
ゴボ FbxGobo
ナーブス FbxNurbs
テクスチャ FbxTexture
マテリアル FbxSurfaceMaterial
コンストレイント FbxConstraint
デフォーマー FbxDeformer
グローバル設定 FbxGlobalSettings
アクシスシステム FbxAxisSystem
ノード FbxNode
マーカー FbxMarker
ライン FbxLine
スケルトン FbxSkeleton
アニメーションカーブ FbxAnimCurve
ポーズ FbxPose

メッシュ

メッシュとはポリゴン(多面体)のことです。物体の形状を、曲面ではなく平らな面の集合体で表現します。

引用:Wikipedia / ポリゴンメッシュ

LODグループ

LODは Level of Detail の略で、日本語では 詳細レベル と言ったりします。

カメラから遠い物体は荒いメッシュにして、カメラに近い物体は細かなメッシュで表示したい!

という時にLODを設定します。

Unityの記事ですが、LODの概念はこちらの記事がわかりやすかったです!

引用: 【Unity】LODで負荷を軽減させて60FPSを死守する
【Unity】LODで負荷を軽減させて60FPSを死守する

カメラ

我々が暮らす現実の物理世界ではカメラを使って動画を撮影し、その動画をスマホ等の長方形ディスプレイで視聴します。

それと同じ様に、3DCG空間内を撮影するためのカメラという要素がFBXにはあります。

Unityでゲームを作ったりするときは、Unity側のMain Cameraを使うので、FBX内のカメラは使わないかもしれません。ただ、BlenderやMaya等で3Dアニメーションを作る際には、カメラの動きをFBX内に保存したりします。

引用:Unity Documentatin / 物理カメラ

ライト

ライトとは照明のことです。これがないと空間が真っ暗になってしまいます。

太陽光やスポットライト等、いくつか種類があります。

引用:Unity / FBX Exporter / Working with Prefabs

ゴボ

ゴボとは、スポットライトに取り付ける画像のことです。影絵のようなことができます。

引用: MOTIONBUILDER / ゴボをスポット ライトにアタッチする
MOTIONBUILDER / ゴボをスポット ライトにアタッチする

ナーブス

ナーブス(NURBS)は曲面の一種です。物体の形状を曲面で表現します。

引用: Wikipedia / NURBS
Wikipedia / NURBS

曲面なので、メッシュ(ポリゴン)よりも滑らかな形状を表現できますが、計算量が多いので、ゲーム等のリアルタイム描画に使うのは難しいです。

また、ポリゴンは三角形・四角形等を組み合わせて、自由な形状を表現できますが、NURBSは制御点が格子状(碁盤の目のように)に整列している必要があるため、表現できる形状に大きな制約があります。

そのため、人間・動物・植物のような生物をNURBSで表現することは難しく、映像作品で使われることもあまりないです。

ただ、NURBSは曲率(曲面の曲がり具合)を正確にコントロールしやすいという特徴があるので、自動車や船の形状を厳密に定義したいとき等によく使われます。

テクスチャ

テクスチャはメッシュに貼り付ける画像です。物体の模様を表現します。

地球儀で例えるなら、球体がメッシュで、世界地図がテクスチャです。

テクスチャをメッシュへどのように貼り付けるのか?というデータもあり、 UVマップ と呼びます。

引用:SECOND LIFE MARKETPLACE / Maruti Textures # Texture - Full Perm

マテリアル

マテリアルは物体の質感のことです。物体に色や、光の反射具合、透明度等を設定できます。

引用:MAYA arnoldで金属やプラスチックのマテリアル調整する時の方法

コンストレイント

コンストレイントとは、物体を拘束して、動きを制限することです。

たとえば、ボールを手に拘束すれば、手の動きに合わせてボールも動きます。
拘束(コンストレイント)を解除すれば、ボールは手から落ちます。

引用:Maya / エイム コンストレイントの例

デフォーマー

デフォーマーとは制御点を利用して頂点群(メッシュ)を動かすことです。(Photoshopのワープとかのイメージに近いです。)

骨の動きに合わせてメッシュが変形するスケルトンアニメーション(スキニング)もデフォーマーの一種みたいです。

引用:Maya / ラティス デフォーマを作成する

グローバル設定

グローバル設定とは、シーン全体に関わる設定のことです。メタデータとかヘッダー等と呼ぶ人もいます。

アクシスシステム

アクシスシステムとは、座標軸の方向の決め方のことです。 右手系左手系 の2種類あります。

  • 右手系:x軸が東方向、z軸が北方向、y軸が天空方向
  • 左手系:x軸が東方向、z軸が南方向、y軸が天空方向

右手とか左手というのは、x軸を親指、y軸を人差し指、z軸を中指で表す時に、どちらの手を使うか?ということです。

引用:stack overflow / OpenCV triangulatePoints handedness

ノード

FBXにおけるノードとは、物体の位置・回転・大きさをひとまとめにしたものです。Unityでいう Transform に相当します。

すべてのノードは親子関係を持ちます。たとえば、右肩→右肘→右手首という感じです。

ノードの位置・回転・大きさは親の影響をうけます。たとえば、右肩が1m前に進めば、右手首も1m前に進みます。

引用:Autodesk FBX 2017 / FBX Nodes

マーカー

マーカーとは、モーションキャプチャーの目印のことで、皮膚の上に貼ったりします。

マーカーの位置を元に、関節の位置を計算したりします。

引用:Recommended marker set for full body capture

ライン

ラインは直線のことです。直線に沿って、物体を動かすときとかに使います。

スケルトン

スケルトンは人間の骨格のことです。ボーン(骨)とジョイント(関節)の集合体です。

骨格とはいっても、生物的な意味よりは、機械的な意味合いが強いです。たとえば、前髪を揺らしたければ、前髪ボーンを設定します。

人間の動きのことを スケルトンアニメーション と呼んだりします。

引用:STYLY MAGAZINE / Autodesk Maya〜スケルトン編〜

アニメーションカーブ

アニメーションカーブとは、物体の動きを定義したデータです。

スケルトンアニメーションの場合は、ジョイントの回転方向の時間変化(タイムライン)を設定します。

引用:Unity Documentation / アニメーションカーブの使用

ポーズ

ポーズとは姿勢のことです。時間変化しないアニメーションととらえることもできるかもしれません。

引用:DIGITAL FRONTIER / MotionBuilderの為のキャラクターセットアップ

さいごに

以下を参考にさせていただきました。

16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21