ダウンロード

クォータニオン計算モジュール mod_quaternion Ver.1.01 (2023/01/28)
ダウンロード (49.4 KB)

内容

 本モジュールは、HSP3でクォータニオン(四元数)の計算を手軽に行えるようにするためのモジュールです。命令を呼び出せば、計算方法を知らなくても計算させることができます。

 クォータニオンを使用するとHGIMG4などで、複雑な回転操作を行うことができるようになります。またX,Y,Z軸の角度(オイラー角)を指定する方法では、回転しなくなってしまう問題(ジンバルロック)がありますが、クォータニオンを使用すれば問題を回避することができます。

 大変便利な一方で、計算を毎回自分で書くのは少し大変です。HSP3には専用の計算命令も用意されていないので作成してみました。

ライセンス

 本モジュールと3Dモデルデータのライセンスは、NYSL Version 0.9982 です。

動作環境

Windows10で動作確認済み。
標準命令で作られているのでほとんどの環境で動くと思います。

機能

以下のような計算が可能です。

  • クォータニオンをコピー
  • オイラー角からクォータニオンを算出
  • クォータニオンの初期化
  • クォータニオンをリセット
  • クォータニオンの共役
  • 逆クォータニオン
  • クォータニオンの乗算
  • クォータニオンの内積
  • ベクトルをクォータニオンで回転
  • クォータニオンの正規化
  • クォータニオンのノルム
  • クォータニオンとオイラー角(X→Y→Z)の相互変換
  • クォータニオン間の球面線形補完・線形補完

添付データ

 HGIMG4用のXYZ座標軸の3Dモデル(gpbファイル)をフリー素材として添付しています。 3D界隈ではよく見かける赤緑青の3本の直行する矢印のやつです。 矢印1本の長さが、1になるように作成してあります。 さらに、X、Y、Zの矢印を1本ずつに分けたバージョンも添付。

履歴

2023/01/23
v1.00
・公開開始。
2023/01/28
v1.01
・計算誤差蓄積のサンプルを追加。
・slerpq 球面線形補間、lerpq 線形補間の命令を追加。
・dotq 内積 を追加。
・クォータニオンとオイラー角の相互返還命令を追加。euler2quat、quat2euler
XYZ方向を示す矢印の3Dモデル

▲サンプル素材

矢印の3Dモデルを回転させているサンプル

▲回転サンプル