aike氏は8月5日(水)、3Dツール間の座標軸変換を視覚的に理解・検証できるWebツール「3D座標系 変換ビジュアライザ」を公開した。Unity、Unreal Engine、Godot、Blender、Maya、glTF、OpenGL、Direct3Dといった3D制作環境やグラフィックスAPI間において、3Dモデルの「同じ向き・同じ位置」を保つための座標変換行列の仕組みをインタラクティブなWebページで解説している。表示は日本語と英語で切り替え可能。なお、本プロジェクトのソースコードはオープンソース(MITライセンス)で公開されている。

意味方向から変換行列を導き出す

  • ▲ドロップダウンリストから変換元と変換先を指定
  • ▲MayaからUEに変換した場合の変換行列と座標の変換例

「3D座標系 変換ビジュアライザ」は、各ツールの座標系を構成する右、上、前といった意味方向を基に、任意のツール間で変換行列を導き出すアプローチを採用。変換元から変換先への計算は、成分の入れ替えと符号反転によって行われる。

右手系と左手系の間で変換を行う際に生じる行列式がマイナス1になる現象は、反転を含む変換となり、ポリゴンを表裏が裏返る結果となる。そのため、インポート側でのインデックス順の反転や、法線の再計算が必須となる。また、オイラー角やクォータニオンの変換時にも、符号の厳密な調整が必要となる。

スケールの差異と前方概念の解釈のちがい

  • ▲1単位の長さは、Mayaが1cmでUnityが1m
  • ▲Blenderは1m、UEは1cm

各ツールが規定する1単位の長さのちがいを換算する機能も実装。UnityやBlenderは1単位を1mとして扱うが、Unreal EngineやMayaは1cmを基準とする。本ツールでは、位置座標に対しては単位換算の係数を適用しつつ、方向ベクトルや法線にはスケールをかけないという、4行4列の同次変換行列を用いた正確な計算過程を確認できる。

また、「前方」が意味する概念のちがいもある。Blenderでは前方をプラスYとするかマイナスYとするかの慣習のちがいが存在し、データ出力時の設定と一貫させる必要がある。また、glTF形式における前方のプラスZは、モデルがカメラの方を向く正面を意味する。その一方、OpenGLにおける前方のマイナスZはカメラの視線方向という慣習に基づく。これらのことから、ツール間で単に軸のラベルを揃える恒等変換を行うだけでは、モデルの正面をどちらに向けるかという規約の不一致が残り、意図しない回転を引き起こす可能性があるという。

■3D座標系 変換ビジュアライザ
https://aike.github.io/3dtr/

■3D座標系 変換ビジュアライザ(GitHub)
https://github.com/aike/3dtr

CGWORLD関連情報

●トミナガハルキ氏、ファンタジー世界地図を自動生成する無料Webツール「USOMAP」公開 ハイトマップやSVGのエクスポートに対応

トミナガハルキ氏が、Webブラウザ上で動作する、架空の世界地図をプロシージャルに自動生成する無料ツール「USOMAP — 架空世界地図ジェネレーター」を公開。ランダムなノイズで地形を描画するだけでなく、気候や水系、生態系から都市の発展に至るまでの地理的なふるまいを段階的に計算し、破綻のない世界地図を生成する。生成したデータはPNG画像やSVG形式のベクターデータ、ハイトマップ、GeoJSON(空間データを扱うためのデータ形式)などとしてエクスポート可能。ユーザー登録不要かつ無料で商用利用が認められている。
https://cgworld.jp/flashnews/01-202608-USOMAP.html

●じゃむぞう氏、ブラウザで動作する毛束モデリングツール「カミジャム」HTMLファイル無償配布 OBJ形式の読み書きに対応、商用利用可

じゃむぞう氏がWebブラウザ上で3Dキャラクターの髪型メッシュを効率的に作成できる無料のモデリング支援ツール「KamiJam【カミジャム】」をBOOTHでリリース。本ツールはHTMLファイルとして提供され、PC内の3Dモデルデータを読み込んで、直感的なパラメータ操作で複雑な毛束を生成・調整できる。作成したデータはOBJ形式でエクスポート可能。
https://cgworld.jp/flashnews/01-202608-KamiJam.html

●株式会社TA、Maya×UE5用の揺れもの物理ツール「Bonjolt」ベータ公開 髪、スカート、アクセサリーなどのボーン物理をMaya上でセットアップし、UE5へ持ち込めるツール

株式会社TA(代表:上原達也氏)がMayaとUnreal Engine 5向けに開発された揺れもの用物理ツール「Bonjolt」のベータ版を公開。キャラクターの髪やスカートといったボーンベースの物理演算をMaya上でセットアップし、その設定をUE5へ直接持ち込むことを目的とする。現在、個人および法人を問わず利用可能なベータ版を無料公開中。
https://cgworld.jp/flashnews/01-202607-Bonjolt.html