中央にあるコンパスが画面に同期して回転します。パノラマシーンごとに東西南北の向きと、上下の位置を変更しています。

パノラマオーサリングソフトフェア「krpano」は、オーストリアの会社の製品です。リンク先を見てわかるよう、webサイトは英語です。その昔までドイツ語版もあったような気がするのですが、気のせいかなぁ? なので、日本語しかできない私にはハードルが高いのですが、google翻訳という強い味方ができたお蔭で、少なくとも「壁」ではなくなりました。

この東京タワーのパノラマの中央に配置したコンパス(方位磁石)は、苦労に苦労を重ねて2012年に私がコードを書いて作った愛着ある作品です。だからといって一切仕事には結びつかなかったのですが、この顛末を少し。

パノラマ画面に画像などを貼り付ける要素をkrpanoではホットスポットといいます。白い円盤に東西南北という漢字を入れた画像を水平に配置。東西(EW)と南北(SN)は垂直に90度ずらして配置していますが、単純に貼り付けただけだと、パノラマ画像の水平位置(角度)に追従して一緒に回転してしまいますから、回転の度にこれを補正することで中央にありつづけるようにしています。このトリックが一番のポイントです。

東西と南北の画像の配置と回転は、比較的すんなりできました。水平位置の円盤の配置もなんとかできました。ところが不思議なことに、水平の円盤をパノラマ画像に追従して回転させようとすると、なぜか水平に回転せず、斜めにグニャグニャ動くのです。わけがわかりません。あれやこれや手さぐりでいろんな計算式を考えて当てはめてみるけれど、一向に埒があかない。ここにいたってはもうお手上げ、水平の円盤に文字を入れなければ(回転させなければ)、見た目にはできている感がだせる。というわけで、水平の円盤には東西南北のマークを入れずに、どきどきしながらkrpanoのフォーラムに公開したのです。名前を「air compass」にしたのは、当時、macの製品で、airなんちゃら、というのが流行っていたからです。2012年1月16日(月)のことでした。

そして公開して数時間した頃から、いろんな国の方々が「Very very nice!」やら「That’s wonderful.」やら「Wow that’s brilliant !!!」やら、「Great. How is it done? 」と返信を上げてくださるようになりました。気をよくした私はコードを公開して、水平のが上手くできんのだよ・・。と相談を持ちかけたわけです。そうすると、これまたいろんな方々がいろんなアイデアをくださるようになって、この件は一件落着。でまた、いろんな方々が、別のアイデアを加えて新しいコンパスを作るようになったりして、まあ、面白いのなんの。

解決のヒントは、オイラー角の順番にありました。krpanoのホットスポットは、パノラマ画像の持つ座標(水平と垂直)で位置を定めるのですが、これ以外に、画像に回転を与えることができます。この属性は、rx、ry、rzの3種で、前者からピッチ、ヨー、ロールに相当します。この値がなんかいたずらをしているらしいことまでは分かったのですが、なかなか解決しません。手さぐりでいろんな計算方法を編み出しては試すのですが、どれもこれも失敗続き。2カ月くらい悩んだんじゃないかなぁ。で、あるとき、krpnaoのクラウスさんが、「 inverserotation」という属性があるよって教えてくださいまして、なんと、これだけで一挙解決。

inverserotation=”true”

たった一行。

inverserotationは、ピッチ、ヨー、ロールの順番を変えます。ここまで来てやっと、オイラー角というのは、3つの属性の値を与える順番によって、向く角の値が変わってしまう! という性質があることを知りました。

飛んでいる飛行機を想像しながら前向きに、上に45度、右に30度、回転15度、というのと、同じく前向きに右に30度、上に45度、回転15度、は微妙に異なる方向を向きます。といっても多分、同じに感じてしまうはずです。だから分かりにくいのですが、前者では、上に45度傾けた時に自分が上向きになっているため、右30度が、絶対座標の上ではやや右下向きになっていることに気付くことができれば、話が速いです。が、地球ゴマでも触りながらやれるといいのですが、本当に言葉だけでは理解しづらいでしょう。

 

もっと極端に考えると分かりやすくなります。想像してみてください。北を向きながら、上に90度向いた後で、自分の頭を基準に右に90度動かすと・・・、首が痛くて死にそうになるでしょうが、理屈からすると顔は東向きで、頭のてっぺんは南に向いているはずです
では次に、右に90度回した後で、顔の向きを基準に上90度を見上げると・・・頭のてっぺんは西向きで、顔は天頂を向いているはずです。
前者は、ピッチ90度+ヨー90度+ロール0度。後者は、ヨー90度+ピッチ90度+ロール0度。順番が違うだけで、向きは全然違います。

 

あ、そういうことだったのね。とわかってしまえば、どうということはないのですが、それにしても、海外のこうしたフォーラムは、いろんな方々がオープンに意見交換しているんだなぁ、ということに本当に驚き、感動したことは忘れません。ここでつながったオランダの方とは、その後も情報交換しながら今に至っています。

こうした経緯があって、日本語のフォーラムができたらいいなぁと思い「ちいでんフォーラム」を作ってみたのですが、運営がまったく上手くできず、去年、閉めてしまいました。こればかりは今でも心残りなのです。もっとも、京都の二宮さんのフォーラムもあんまり動いてなかったし、そもそも、日本人には合わないのかなぁ、と諦め気味の今日この頃ではあるのですが・・・。

ブラウザの全画面で見る場合は、こちらをクリックしてください。新しいタブで開きます。