技術仕様比較
このページでは、各種DCCや補助ツールの技術仕様について記載します。
主に、各ツール間の互換性を確保する、などの目的に利用できることを意図しています。
(まだ書き始めたばかりのため、内容の完全性は保証しません)
座標系
(標準設定の場合)
DCC
Maya | 3dsMax | Blender | MotionBuilder | Houdini | Modo | |
---|---|---|---|---|---|---|
3D空間の右手/左手 | 右手 | 右手 | 右手 | 右手 | 右手 | 右手 |
上方向の軸 | Y+ | Z+ | Z+ | Y+ | Y+ | Y+ |
手前方向の軸 | Z+ | Y- | Y- | Z+ | Z+ | Z+ |
長さの単位 | cm | inch | BU※ | cm | m |
※Blender Unitという独自単位で、ユーザーが任意の単位に換算する。2.56からメートルとヤードも選べるようになった。
3D API
基本的に、近年の3D APIはどのような座標系でも扱うことが可能。しかし、慣例的な主流の作法は存在する。
以下は、慣例的な作法が何かを示す。
OpenGL/WebGL | Direct3D 9 | Direct3D 10以降 | Vulkan | Metal | |
---|---|---|---|---|---|
3D空間の右手/左手 | 右手※ | 左手 | 右手 | 左手 | |
上方向の軸 | Y+ | Y+ | Y+ | Y+ | |
手前方向の軸 | Z+ | Z- | Z+ | Z- | |
正規デバイス座標系の奥行き値 | [-1,1] | [0,1] | [0,1] | ||
スクリーン座標系 | 左下原点 (p214 Figure 8.3.) | 左上原点 | |||
長さの単位 | 任意 | 任意 | 任意 | 任意 | 任意 |
※ただし、OpenGL/WebGLの正規デバイス座標系は左手系である。つまり、頂点シェーダーでプロジェクション行列を掛けずにポリゴンを素通りさせた場合、奥行き関係は反対(カメラ座標系では奥の座標だったポリゴンが手前に来てしまう)になってしまうことに注意すること。
ファイルフォーマット
FBX | glTF | ||||
---|---|---|---|---|---|
3D空間の右手/左手 | 右手 | 右手 | |||
上方向の軸 | Y+ | Y+ | |||
手前方向の軸 | Z+ | Z+ | |||
長さの単位 | cm | m | |||
回転の表現 | クォータニオン。データの並びは(x, y, z, w)の順 | ||||
参考 | link |
3dsMax/MotionBuilder/Maya間のFBXスケール問題について、Autodesk社のWebドキュメントに記載があります。
「トラブルシューティングと制限事項 > トラブルシューティング > 3ds Max でシーンのスケーリングが異なるのはなぜですか? > MotionBuilder と Maya のスケーリング」
https://www.autodesk.com/jp/fbx/2013/3dsmax/index.html?url=files/GUID-DFE074D9-FF5E-4AAC-B3F8-AB53ADCDC124.htm,topicNumber=d30e8067
回転がクォータニオンで表現されているフォーマットでは、DCCツール上で180度以上の回転を行う場合は、中間にキーフレーム(キーフレーム同士の間の角度変化が180度未満になるよう)を打つ必要があります(180度以上の変化の場合、ランタイム処理系で想定とは逆回転してしまう恐れがあります)。
そうしたフォーマット如何にかかわらず、やはり一般的には挙動の互換性の観点から、180度を超えるような回転を隣接キーフレーム間でつけない方が良いでしょう。
ゲームエンジン
Unreal Engine 4 | Unity | Lumberyard | |||
---|---|---|---|---|---|
3D空間の右手/左手 | 左手 | 左手 | 右手 | ||
上方向の軸 | Z+ | Y+ | Z+ | ||
手前方向の軸 | Y+ | Z- | Y- | ||
長さの単位 | cm | m |