ちょっとわき道に戻る | |||
Shadeのローカル座標って何? | ![]() |
||
![]() |
![]() |
![]() |
![]() |
Shadeをはじめて操作した時、戸惑ったことが二つありました。一つは何もないインターフェイス。そしてもう一つがこのローカル座標系でした。 何かとっつきにくく,できれば考えずに避けて通りたかったと思ったのを覚えています。 しかし、今では、「これほど便利なものは無い」とさえ思います。 |
![]() |
![]() |
![]() |
![]() |
![]() |
まずは左の図を見てみてください。 これは,普通に回転体(赤い物体)を作成し、それをパートに入れたものです。 この状態では、まだローカル座標系を意識することはないと思いますが、ローカル座標系とグローバル座標系が同じなだけです。 図でいうと青い矢印がグローバルなXYZ軸、緑色の矢印がローカルのXYZ軸です。 水色のキュービックはローカール座標空間を表わしていると思ってください。(ここではとりあえず長さ,大きさの違いは無視してください。) |
||
図1 変換(変形)前の状態 | Topへ | ||
さて、ここでこの回転体をz軸周りに-28度回転するとしましょう。 方法は2種類 |
|||
![]() |
![]() |
||
図1-1 形状だけ選択 | 図1-2 パートごと選択 | Topへ | |
「だから何なんだ」といいわずに、さらに平行移動をしてみましょう。 今回もまた |
|||
![]() |
![]() |
||
図2-1 形状だけ選択して移動 | 図2-2 パートを選択して移動 | Topへ | |
こんなところでいいでしょう。 さて、ここまでモデリング(作成から回転、移動)してきて,貴方は「回転体の中心に軸(円柱)をモデリングするのを忘れた。」ことにふと気づきました。 図2-1のようにモデリングしてきた貴方は、どのようにして正確に「回転体の中心に軸(円柱)をモデリングする」のだろう。この程度の単純な回転と移動なら座標を計算することもできるでしょうが・・・。 私は嫌です。計算なんかしたくない。 |
|||
![]() |
Shadeのツールバーにある「Local」を押せばあっという間に表示がLocal座標空間に切り替わり「Shift」キーを使えば回転体の中心軸に沿った円柱を書くことなど簡単なことです。 これを今までと同じように表現したのが図3です。(あたかもグローバル座標系が傾いたようになるのです。) 余談ですが、私たちは普段ローカル座標から物を見ているのではないでしょうか? |
||
図3 Local表示のイメージ | Topへ |
![]() |
![]() |
![]() |
![]() |
ここは一応スクリプトのTipなので、スクリプトで使えるようにもう少し詳しく見てみましょう。 どうしてShadeではこのようなことができるのでしょう。 パートを選択して、コンテクストメニュー「形状の情報を見る」で表示される数字表が、その変換の情報なのです。 なぜ行列なのでしょう。 これを図でみてみましょう。 |
|||
![]() 図4-1 3つのパートの入れ子 |
図4-1はパート青の中にパート黄、パート黄の中にパート赤がある状態を表現しています。 また、図4-2はブラウザ上でどのようになっているかを示したものです。 最初に形状を作ります。 先ほど説明した通り 「それぞれに変換がかかっている」ということは ということです。ですからそれぞれ となっています。 それでは逆に変換された今の位置から、globalで作成した時の状態に戻すのにはどうすればいいのでしょう。 ところで、選択中のパートのマトリックスを取得/設定するには |
||
![]() 図4-2 ブラウザ上でのパートの状態 |
|||
一見複雑に見えるものも行列の計算でできてしまうのです。 行列の計算というのはコンピューターの最も得意とする分野ではないでしょうか。 少し飛躍しすぎたかもしれませんが実際の式を使わず観念的に説明したらこんなことになってしまいました。 |
|||
ちょっとわき道に戻る | Topへ |