10年前から(愛ちゃんよりも、)四元派

クォータニオンジンバルロック回避のカギとか解説している間抜けを久しぶりに見かけました。

 


 

7,8年ほど前、ごみためまんは妙な仕事に取り組んでおりました。

 

   

3Dの半製品モデルがある。

   

加工の様子をCGで表現するために、

   

自在に半製品の位置と姿勢を指定しなければならない。

 

というようなものです。

 

 

 

機械加工に詳しくない人でも、ボール盤くらいはわかるでしょう。

 

ふたの開いた箱の側面に穴を開けるためには、ボール盤のドリルの真下に箱の側面が来るように、しかもボール盤の支柱に当たらないように置かなければなりませんね。

 

「ワークのハンドリングの可視化」と書けばペレの皆様には充分でしょう。

 

それを1024倍くらいややこしくした問題だと思ってください。

 

 

 

加工は複数工程から成りますので、半製品をある姿勢から別の姿勢に動かすわけです。当時から他軸ロボットの応用も実用化されていました。山師見習いのごみためまんはあくまでもデモのことだけ考えていましたので、とにかく計算機上でその移動と姿勢変更を表現できればよかったわけです。

 

 

 

子供のころから、CG関連の識者の方々の記事を眺めていた私はDirectXではとっくにクォータニオンのAPIが提供されておることも知っており、

 

   

これはクォータニオンで簡単に解決できる問題だ

 

と、CGモデルを動かしたものです。

 

 

 

当時、「思い切ってGems本を買いました」とか言っていた会社の先輩(CAD関係の人)からは

 

   

「そうですね、制約条件で姿勢を決めるのと、姿勢の中間状態を求めるだけならクォータニオンでいいですね。」

 

という反応でした。なにを言っているかというと、

 

   

姿勢を決めるためのクォータニオンも計算できるし、

   

二つの姿勢を「つなぐ」クォータニオンも計算できる

   

「つなぐ」クォータニオンに0~1の係数を掛ければ、中間の姿勢も簡単に計算できる

   

(そもそもCADのAPIなら一発で書けるしな)

 

というだけのことです。含みがあるように感じられるのは当然で、

 

   

ただし、クォータニオンに限らず元のモデルに変換行列をかけたものはビュー用にしか使えないけどね。

   

たとえば、ただの軸周りの回転行列を重ねて掛け続けてみなよ。

   

回転中心に向かってどんどん縮んでいくからさ。

 

という、学生実験レベルの常識の説明を省略したからです。

 

# ごみためまんはその数年前にZ80アセンブラレベルでその常識の壁で苦労しましたけど

 

 

 

いまどきも当時も各種ツールを駆使すれば「スクリプトを書く程度で」「なんでも表現できる」「モデル制作とモーション採取がミソ」とか言ってる方々は、そりゃもう雲の上で仕事をしてラクでいいでしょうな、という感想です。

 

 

 

ごみためまんが書いたしょうもないデモを、当時の害虫に要求してもきっとクソ仕様でしか仕上がらなかったでしょう。それが「広く使われているかどうかの基準」だとするのはしかたがないとしても、ググればすぐに分かる程度の、本屋に平積みされてる本を見れば解ける問題を解けずに炎上する現場のいかに多いことか。

 

それで最近気づいたのは、自称技術者の方々が日本語を読めなくなっているということです。

 

   

ネィティブが日本語でない人が増えた

   

文盲のニポジンが増えてきた

 

以上2点、喫緊に解決すべき問題でしょう。技術書の多くが英語のままで出版されるようになったらそれが終わりの始まりではないかと。後進国ではふつうの風景のようですが。