メインコンテンツまでスキップ

座標系とスケール単位


※ 翻訳には「Google AI Studio」を利用し、「Gemini Experimental 1206」のモデルを使用しています。

このガイドラインは、Khronos Groupの「3DC-Asset-Creation」で公開されている「Coordinate System and Scale Unit」を日本語に翻訳したものです。

原文のライセンス: Creative Commons Attribution 4.0 International License


座標系とスケール単位

バージョン 1.0.0 最終更新日: 2020年10月20日

アセット作成ガイドラインの概要

ワールドの上方向、前方向、スケール単位

使用する3Dソフトウェアによって、座標系と測定単位の解釈が異なります。一部のソフトウェアでは、+Z軸をワールドの上方向とし、右手座標系を使用していますが、他のソフトウェアでは+Yをワールドの上方向とし、左手/右手座標系を使用しています。また、ソフトウェアが右手座標系を使用しているか、左手座標系を使用しているかも重要です。スケール単位については、特定の制作ワークフローや、ソフトウェアで定義されているデフォルトの環境(インチ、センチメートル、メートルベースの単位など)に基づいて違いが生じる可能性があります。

制作プロセス中に、さまざまな座標系とスケール単位を扱う必要があるのが一般的です。幸い、ランタイムファイル形式のglTFとUSDZに変換する場合、どちらの形式も、アセットが準拠する必要がある標準化された設定を備えています。glTFとUSDZはどちらも、+Yワールドの上方向、+Zワールドの前方向、右手座標系を使用し、どちらもメートルベースのスケール標準です。

glTF

glTF2.0の仕様に関する詳細はこちら:

https://github.com/KhronosGroup/glTF/tree/master/specification/2.0

座標系と単位

glTFは右手座標系を使用します。つまり、+X+Yの外積は+Zになります。glTFでは+Yがワールドの上方向であり、glTFアセットの正面は+Zを向いています。すべての線形距離の単位はメートルです。すべての角度はラジアンで、正の回転は反時計回りです。こちらのBoomBoxの例をご覧ください(図1.1)。

ライセンス: CC BY 4.0 International ソースから変更: https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/BoomBox 図2.1: 座標系

法線マップとglTF

GLTF2.0の仕様によると、法線ベクトルはOpenGLの規則を使用し、+Xは右、+Yは上です。+Zはビューアーの方を向いています。

USDZ

USDZに関する詳細はこちら:

https://graphics.pixar.com/usd/docs/Usdz-File-Format-Specification.html

Apple ARKitのドキュメントによると、「ARKitは、右手規則に従ってワールド座標系とカメラ座標系を使用します。y軸は上を向き、(関連する場合は)z軸はビューアーの方を向き、x軸はビューアーの右を向いています。」

法線マップとUSDZ

USDzでは、法線ベクトルはOpenGLの規則を使用し、+Xは右、+Yは上です。+Zはビューアーの方を向いています。

USD

USDに関する詳細はこちら:

https://graphics.pixar.com/usd/docs/index.html

https://graphics.pixar.com/usd/docs/api/group___usd_geom_up_axis__group.html

「ステージの上方向軸は、ステージのメタデータ_upAxis_としてエンコードされ、その有効な値はUsdGeomTokens -> yUsdGeomTokens -> zで表されるYZです。もちろん、シーンの正しいカメラビューを構築するには、上方向軸だけでなく、座標系の利き手にも依存します。OpenGLと**UsdGeomGprim::GetOrientationAttr()のフォールバックと同様に、UsdGeomは右手座標系を規定しています。したがって、UsdStageY上方向軸で表示する場合、ステージのZ軸は画面の外側を向き、UsdStage**をZ上方向軸で表示する場合、ステージのY軸は画面の内側を向いています。」

要約すると、以下の形式に関する概要は次のとおりです。

形式glTFUSDZUSD
座標系右手右手右手
ワールドの上方向+Y+Y+Yまたは+Z
ワールドの前方向+Z+Z+Zまたは+Y
スケール単位メートルメートル(metersPerUnit = meter、それ以外はセンチメートル)メートル(シーンの線形単位をエンコードされた単位あたりのメートル数としてエンコードするステージレベルのメタデータ)

アセット作成ガイドラインの概要